欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    PB数据窗口绝对技巧.docx

    • 资源ID:96874320       资源大小:20.03KB        全文页数:7页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    PB数据窗口绝对技巧.docx

    PB数据窗口绝对技巧1、如何让存储文件目录的列,显示图片?选择对应的column的display as picture属性为true。2、如何复制grid类型的所选择的行的数据到系统剪切板?string ls_selectedls_selected=dw_1 .Object. DataWindow. Selected. Dataclipbord(ls_selected)3:如何改变GRID数据窗口列位置(新手常见)先preview,然后在预览窗口拖动位置即可。4、如何设置DW的底色?在DW的editsource中改变color的值。5、如何将Grid风格改成自由格式?在 DW 的 echtsource 中将 processings 的1 改为0。6、要新建一个表A但风格和现有表B风格一样,怎么将A表快速设置成表B风格?复制B表C,在C表的DW中的edtsource中将表名和字段名改成A表的,即可。7、如何实现gird风格的datawindow的多栏表头?添力 text至【J header带区,并设置band属性为foreground保存,edit source修改tex t的x和width属性表达式如下:x="100t integer(describe(,firstcol.x')n width=H1 OO-tinteger(describe('lastcol.x') - int eger(describe(,firstcol.x,) +integer(describe(1astcol. width1)8、如何过滤dddw编辑风格的显示值为指定值的记录?dw_1 .setfilter(,lookupdisplay(,column_name,)=,',+ls_display_value_your+"'H)dw_1 .filter()9、如何设置datawindow的某一列为空?string ls_tempsetnull(ls_temp)dw_1 .object.columnname. primary.current=ls_temp10如何设置datawindow的单双行不同颜色间隔?在 detail 带区的 color 属性表达式中写上讦(mod (getrow(),2)=1 ,rgb(255,0,0),rgb(0,255,0),如果是当前行以第三种颜色表示,表达式如下:if(getrow()=current()5rgb(25530,0)Jf(m od(getrow(),2)=1 5rgb(O,0,255),rgb(0,255,0)11、如何获取指定名称的datawindowobject?DWObject ldwo_use,ldwo_abc ldwo_use = dw_1 .Object ldwo_abc = ldwo_use._ _get_attribute(nt_1 ",FALSE)/t_1 datawindow 中 text 对象的名称12如何缩放datawindow的打印大小?dw_1 .object.datawindow.zoom=150 or dw_1 .object.datawindow.zoom=7513、如何在已过滤后的数据基础上对datawindow进行过滤?dw_1 .setfilter(dw_1 .describe(Hn)+yourjoin4-your_new_filter)dw_1 .filter()14、如何在datawindow中显示动态时间?建立一个计算域,表达式为 string(datetime(today(),now();yyyy mm 月 dd 日 hh 点 mm 分 ss 秒'),同时设置 datawindow 的属性 dw_1.Object.DataWindow.Timer_lnterval=50 015、如何让带用title bar的datawindow控件的标题栏呈活动窗口的颜色?外部函数定义:funcation logn SetActiveWindow(long hwnd ) Library ,user32.dir,datawindow控件的clicked事件代码:setactivewindow(handle(this)16、如何设置datawindow的当前行指示图标?在datawindow中建立一个计算列,expression为“,并将该计算列挪移为datawindow 的第一个列,在datawindow控件的rowfocuschanged事件中写入代码:SetRowFocuslndicator(hand!)或者 setrowfucsindicator(p_1 )/p_1 为窗口上的 picture 控件名 17、如何通过代码打开dddw?定义外部函数引用声明:SUBROUTINE keybd_event( int bVk, int bScan, int dwFlags, int dwExtralnf o) LIBRARY ,user32.dlln 代码如下:constant integer VK_F4 = 115dw_1 .SetFocus()dw_1,SetColumn( ndept_headjdn) / 设置当前 dddwkeybd_event( VK_F4,0,0,0 ) / 按下 F4键keybd_event( VK_F4,0,2,0 ) / 释放 F4键18、如何打印datawindow的内容到文件中?dw_1 .object.datawindow.print.fileName =nc:temp.prnndw_1.print()19、如何设置dddw的初始值?dw_1.object.columnname. lnitial=yourJnitial_value20、如何只显示不同的数据?dw_1 .filter(nisnull(columnname-1 ) and columnname<>columnname-1 '*)21、如何让带有Htlebar的datawindow不可以挪移?在datawindow的自定义事件ue_nc%ttest(pbm_ncMttest)中写入如I下代码:return 122、如何在N4JP显示风格中建立基于第N栏中的列的计算列?如column有两列,number和price ,并显示为两栏,则第一栏的cost计算列的expr ession 为 number*price,第二栏的 cost_1 计算列的 expression 为 number1*price123、如何清空ddlb或者edit.codetable中项目?dw_1 .Object.columnname. Values=,n24、如何实现指定的column的字体旋转90度?dw_1 .object.columnname.font. Escapement ="900”25、如何获取datawindow的sql代码?可以通过以下四种方法获取sql代码:string szselectszselect=dw_1 .describe("datawindow.table.select")szselect=dw_1 .describe(nM)szselect=dw_1.describe(Hdatawindow. table.select. attribute'1)szselect=dw_1 .getsqlselect()26、如何获取datawindow对象占有的虚拟存储的容量?使用 datawindow.storage 属性举例:在datawindow控件的retrieverow事件中,写入如下代码:long Istoragelstorage=long(dw_1 .object.datawindow. storage)if lstorage>50000 then dbcancel()27、如何连续在同一张纸打印两个数据窗口?dw_1 .object.datawindow.print.filename=',temp.prnHdw_2.object.datawindow.print.filename=',temp.prnHdw_1 .print()dw_2.print()28、如何设置datawindow分组后每一个分组中的记录号?建立一个计算歹U, expression 为 getrow() - first(getrow() for group 1)+129、如何实现在datawindow中惟独新增的行,才可以编辑?在所有的column的protect属性表达式中写入以下表达式:if(isrownew();071,)30、除了循环以外,有没有更好的方法统计数据窗口中处于选中状态的行数?普通习惯于使用循环来统计数据窗口中处于选中状态的行数,有没有更好的方法?其实 此问题在应用上用处不大,讨论一下,活跃一下思维还是有好处的。方法一:long ll_Selectedll_Selected = long(dw_1 .describe(',evaluate(,sum( if(lsSelected(), 1, 0) for all)1) ")方法二:long ll_Selectedll_Selected = long(dw_1.describee*evaluate('count(lsSelected() for all)1)") 方法三:upperbound(dw_1 .Object. Data. Selected)31、怎么让PB只打印当前记录,是用Free格式制作的数据窗口!DataStore ldt_temp long ll_Row , ll_Rows ll_Rows = dw_XX.Rowcount()If ll_Rows = 0 Then GoTo the_endIf ll_Rows = 1 Then dw_XX.Print() GoTo the_endEnd ifdw_XX. SetRedraw( False) ldt_terrip = Create DataStore ldt_temp. DataObject = dw_XX.DataObject ll_Row = dw_XX.GetRow()dw_XX.RowsMove( 1 , ll_Rows , Primary! , ldt_temp , 1 , Primary!)Idt_temp.RowsMove(ll_Row , ll_Row , Primary! , dw_XX , 1 , Primary!) dw_XX.Print()dw_XX.RowsMove( 1 , 1 , Primary! , ldt_temp , ll_Row , Primary!)Idt_ternp.RowsMove( 1 , ll_Rows , Primary! , dw_XX , 1 , Primary!)Destroy ldt_temp dw_XX. SetRedraw(T rue) the_end:只用将上述脚本拷入到打印部份即可,dw_XX为被打印的free型数据窗口,该方法可 保证dw_XX中的数据在打印先后包括sort等属性均不发生任何改变,但效率较低,不宜用 在数据量太大的数据窗口中,固然,考虑到打印本身速度就比较慢,所以3000行数据是可 以采用这种方法并让用户接受的。若在同一窗口上存在与dw_XX共享的grid数据窗口并且 与dw_XX同时显示,则需要与dw_one一起SetRedraw()o 32、字段如何自动换行的同时且自动高度?将数据窗口中相应列的auto horz scroll为不选中,选中autosize height;将detail 的autosize height选中。在数据窗口 retrieve后调用下面函数即可:uf_set_text(datawindow adw_content,string as_columns, boolean, ab_ignoreblank)Describe:在数据窗口 adw_content中,在as_columns中包含的列中插入空格Args : as_columns要操作的多个列,列间用逗号隔开 */ if (not isvalid(adw_content) or isnull(as_columns) or len(as_columns)<1 or isnull (ab_ignoreblank) then return -1n_cst_string lnv_stringstring ls_column , ls_width ,as_source,as_repIaced ,ls_temp int li_upperbound , li_width , li_column , li_fontWidth, li_counter long ll_rowcount , ll_row , ll_totalstep int li_yieldlnv_string.of_parsetoarray(as_columns,VJs_column) li_upperbound = upperbound(ls_column)11_ rowcount = adw_content. rowcount()if li_upperbound<1 or ll_rowcount<1 then return -1 openwithparm(w_waiting,this) ib_cancel = false iw_frame. enabled = falsell_totalstep = ll_rowcount * li_upperboundw_waiting.uf_register(ll_totalstep)for li_column = 1 to li_upperboundls_width = adw_content.describe(ls_columnli_column+n. width") li_width = integer(ls_width)if ls_width=,!1 or ls_width='?' or li_width=0 then continue end if/ls_temp = adw_content.describe(ls_columnli_column+',.Font.property = 'w idth,“)/messagebox(ls_columnli_column+H.Font.property = 'width1 n,ls_temp) /return 1 li_fontwidth = 27li_counter = li_width / li_fontWidthfor ll_row=1 to ll_rowcountif ib_cancel theniw_frame. enabled = truereturn 0/pressed cancel buttonend ifas_source = adw_content.getitemstring(ll_rowjs_columnli_column) as_replaced = uf_insertstring(as_sourceJli_counterJ' false) if as_replaced<>as_source thenadw_content.setitem(ll_row,ls_columnli_column,as_replaced) end ifw_waiting.uf_stepit()nextnextclose(w_waiting)iw_frame. enabled = truereturn 133、如何使dw的列不可挪移,不可调整列宽?在 datawindow 的 cilcked 事件写:if row=0 then return 1 end if34、光标跳转到数据窗口的某一行某一列dw_1 .scrolltorow(ll_row)dw_1 .setcolumn(ll_column)35、如何使光标指向每页第一行?long ll_firstrowonpage=long(dw_1 .describe(',datawindow.firstrowonpageH)dw_1 .scrolltorow (ll_firstrowonpage)dw_1 .setrow(ll_firstrowonpage)36、Grid的窗口如何使第一列固定不动?选上 data OBJECT 的 HSphtScroll 属性在constructor事件中:dw_1 .Object. DataWindow. HorizontalScrollSplit=integer(dw_1 .describe(n#1 .width*) 第一列的宽度在 scrollhorizontal 事件中:int iif pane = 1 theni = integer(this. OBJECT. datawindow.horizontalscrollposition2)if i < 1 or isnull(i) then returnif scrollpos > 0 thenthis. OBJECT. datawindow.horizontalScrollPosition = 0end if elsei = integer(this. Object. DataWindow. HorizontalScrollSplit)if i < 1 or isnull(i) then returnif i > scrollpos thenthis.OBJECT.datawindow.horizontalScrollPosition2 = iend if end if37、如何禁止修改grid数据窗口列宽度在Grid数据窗口的Clicked事件中加入:If row = 0 Then return 138、grid数据窗口改变列宽度事件:event: pbm_lbuttondown,pbm_mousemvoe,pbm_lbuttonup 如果:,pbm_lbuttondown:在数据窗口标题栏(getrow() = 0 and GetObjectAtPointer=你的标题)按下鼠标左键,记一个标志;,pbm_mousemvoe:鼠标挪移了,在记一个标志;“ pbmjbuttonup:这时鼠标左键up,再判断最后一列的位置是否发生变化,如果有, _|写你的脚本。39、如何判断数据窗口内容是否修改if dw_wh.deletedcount() + dw_wh. modifiedcount() > 0 theninteger li_retli_ret = messagebox(“注意数据已经被修改,是否存盘? ",Question!,YesNoCa ncel!) end if40、如何得到数据窗口鼠标光标下的控件和行建立一个自定义事件,事件号pbm_dwnmousemove,事件有参数row> dwo41、数据窗口循环删除行,必须要从最后一行开始删除,如for ll_row =dw_1 .rowcount() to 1 step -1if删除条件thendw_1 ,deleterow(ll_row)next固然,也可以用do while加之find函数实现。

    注意事项

    本文(PB数据窗口绝对技巧.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开