ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:27.80KB ,
资源ID:23086574      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23086574.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(60个PB数据窗口技巧.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

60个PB数据窗口技巧.docx

1、60个PB数据窗口技巧60个数据窗口技巧1.如何让存储文件目录的列,显示图片? 答:选择对应的column的display as picture属性为true2、如何复制grid类型的所选择的行的数据到系统剪切板?答:string ls_selectedls_selected=dw_1.Object.DataWindow.Selected.Dataclipboard(ls_selected)3、如何复制graph风格的datawindow中的图形到剪切板?答:dw_1.clipbord(gr_1)4、如何设置的DW底色?在DW的editsource中改变color的值5、如何将Grid风格改成

2、自由格式?在DW的editsource中将processing=1的1改为06、要新建一个表A但风格和现有表格B风格一样,怎么将A表快速设置成表B风格?复制B表C,在C表的DW中的editsource中将表名和字段名改成A表的,即可7、如何实现gird风格的datawindow的多栏表头?答:添加 text到header带区,并设置band属性为foreground保存,edit source 修改text的x和width属性表达式如下:x=100t integer(describe(firstcol.x) width=100tinteger(describe(lastcol.x) - int

3、eger(describe(firstcol.x) +integer(describe(lastcol.width)8、如何过滤dddw编辑风格的显示值为指定值的记录?答:dw_1.setfilter(lookupdisplay(column_name)=+ls_display_value_your+) dw_1.filter()9、如何设置datawindow的某一列为空?答:string ls_temp setnull(ls_temp) dw_1. O B J E C T.columnname.primary.current=ls_temp10、如何设置datawindow的单双行不同颜色

4、间隔?答:在detail带区的color属性表达式中写上if(mod(getrow(),2)=1 ,rgb(255,0,0),rgb(0,255,0),如果是当前行以第三种颜色表示,表达式如下:if(getrow()=current(),rgb(255,0,0),if(mod(getrow(),2)=1 ,rgb(0,0,255),rgb(0,255,0)11、如何获取指定名称的datawindow O B J E C T?答:DWObject ldwo_use,ldwo_abc ldwo_use = dw_1.Object ldwo_abc = ldwo_use._get_attribute

5、(t_1,FALSE)/t_1为datawindow中text对象的名称注不是版本的问题,是你没找对位置。在PB的browser中,展开任意放置了datawindow控件的窗口,然后展开datawindow出现dwobject,右边的函数部分就可以看到这几个函数。因为它的参数从字面上无法猜测出其含义,而帮助上没讲,所以有此一问。你从哪儿找到这些函数的?我只知道_get_attribute()。 pb7.0以前的版本这些函数的形式为get_attribute(),没有前面的两个横线。 dwobject ldwo_object,ldwo_object_item ldwo_object = dw_1

6、.object ldwo_object_item= ldwo_object._get_attribute(objectname,false) 参数中的objectname是datawindow中对象的名字,如列名等。这样可以根据列名得到该列对应的dwo,就跟在datawindow的click事件中的dwo参数一样。12、如何使用datawindow的查询模式?答:dw_1.Object.DataWindow.QueryMode=yes将datawindow改变为查询模式后,接收用户的输入,再使用一下代码获取结果: dw_1.accepttext() dw_1.retrieve()13、如何缩放

7、datawindow的打印大小?答:dw_1. O B J E C T.datawindow.zoom=150 or dw_1. O B J E C T.datawindow.zoom=7514、如何在已过滤后的数据基础上对datawindow进行过滤?答:dw_1.setfilter(dw_1.describe(datawindow.table.filter)+your_join+your_new_filter) dw_1.filter()15、如何在datawindow中显示动态时间?答:建立一个计算域,表达式为string(datetime(today(),now(),yyyy年mm月d

8、d日 hh点mm分ss秒),同时设置datawindow的属性dw_1.Object.DataWindow.Timer_Interval=50016、如何让带用title bar的datawindow控件的标题栏诚活动窗口的颜色?答:外部函数定义:function long SetActiveWindow(long hwnd ) Library user32.dlldatawindow控件的clicked事件代码:setactivewindow(handle(this)17、如何设置datawindow的当前行指示图标?答:在datawindow中建立一个计算列,expression为,并将该

9、计算列移动为datawindow的第一个列,在datawindow控件的rowfocuschanged事件中写入代码:SetRowFocusIndicator(hand!)或setrowfucsindicator(p_1)/p_1为窗口上的picture控件名18、如何通过代码打开dddw?答:定义外部函数引用声明SUBROUTINE keybd_event( int bVk, int bScan, int dwFlags, int dwExtraInfo) LIBRARY user32.dll代码如下:constant integer VK_F4 = 115dw_1.SetFocus()dw

10、_1.SetColumn( dept_head_id ) /设置当前dddwkeybd_event( VK_F4,0,0,0 ) / 按下F4键keybd_event( VK_F4,0,2,0 ) / 释放F4键19、如何打印datawindow的内容到文件中?答: dw_1. O B J E C T.datawindow.print.fileName =c:temp.prn dw_1.print()20、如何设置dddw的初始值?答:dw_1. O B J E C T.columnname.Initial=your_initial_value21、如何只显示不同的数据?答:dw_1.filt

11、er(isnull(columnname-1) and columnnamecolumnname-1) dw_1.filter()22、如何让带有title bar的datawindow不可以移动?答:在datawindow的自定义事件ue_nchittest(pbm_nchittest)中写入如下代码: return 123、如何在N-UP显示风格中建立基于第N栏中的列的计算列?答:如column有两列,number和price ,并显示为两栏,则第一栏的cost计算列的expression为number*price,第二栏的cost_1计算列的expression为number1*pric

12、e124、如何清空ddlb或edit.codetable中项目?答:dw_1.Object.columnname.Values=25、如何实现指定的column的字体旋转90度?答:dw_1. O B J E C T.columnname.font.Escapement =90026、如何获取datawindow的sql代码?答: 可以通过以下四种方法获取sql代码: string szselect szselect=dw_1.describe(datawindow.table.select) szselect=dw_1.describe(datawindow.table.sqlselect)

13、 szselect=dw_1.describe(datawindow.table.select.attribute) szselect=dw_1.getsqlselect() 27、如何获取datawindow对象占有的虚拟存储的容量?答:使用datawindow.storage属性 举例:在datawindow控件的retrieverow事件中,写如如下代码: long lstorage lstorage=long(dw_1. O B J E C T.datawindow.storage) if lstorage50000 then dbcancel()28、如何控制打印横向:dw_cont

14、rol. O B J E C T.datawindow.print.orientation= 129、如何进行预览:dw_control. O B J E C T.datawindow.print.preview = yes30、如何连续在同一张纸打印两个数据窗口?答:dw_1. O B J E C T.datawindow.print.filename=temp.prn dw_2. O B J E C T.datawindow.print.filename=temp.prn dw_1.print() dw_2.print()31、如何将pb9.0 的datawindow转化为pb 8.0版本

15、的datawindow?答:edit source 将release 9;改为release 8; 并删除以下内容: print.printername= print.canusedefaultprinter=yes print.cliptext=no print.overrideprintjob=no hidegrayline=no encodeselflinkargs=1 export.xml(headgroups=1 includewhitespace=0 metadatatype=0 savemetadata=0 ) import.xml() export.pdf(method=0 d

16、istill.custompostscript=0 xslfop.print=0 )32、如何设置datawindow分组后每个分组中的记录号?答:建立一个计算列,expression为 getrow() - first(getrow() for group 1)+133、如何实现在datawindow中只有新增的行,才可以编辑?答:在所有的column的protect属性表达式中写入以下表达式:if(isrownew(),0,1)34、保存datawindow数据到excel中/ . Init docname / . GetFileOpenName or any other method i

17、f dw_1.SaveAs(docname, HTMLTable!, True) = -1 then MessageBox(Warning, Unable to export data. Error writing to file!, Exclamation!) return end if / Convert HTML file to Excel native format OLEObject excel excel = CREATE OLEObject if excel.ConnectToObject(docname) = 0 then excel.application.DisplayAl

18、erts = FALSE excel.application.workbooks(1).Parent.Windows(excel.application.workbooks(1).Name).Visible = True excel.application.workbooks(1).saveas(docname, 39) excel.application.workbooks(1).close() end if DESTROY excel / done 35、除了循环以外,有没有更好的方法统计数据窗口中处于选中状态的行数?一般习惯于使用循环来统计数据窗口中处于选中状态的行数,有没有更好的方法?

19、 其实此问题在应用上用处不大,讨论一下,活跃一下思维还是有好处的。 方法一: long ll_Selected ll_Selected = long(dw_1.describe(evaluate(sum( if(IsSelected(), 1, 0) for all),1) 方法二: long ll_Selected ll_Selected = long(dw_1.describe(evaluate(count(IsSelected() for all),1)方法三:upperbound(dw_1.Object.Data.Selected)36、问:怎么让PB只打印当前记录,是用Free格式制

20、作的数据窗口! 答: DataStore ldt_temp long ll_Row , ll_Rows ll_Rows = dw_XX.Rowcount() If ll_Rows = 0 Then GoTo the_end If ll_Rows = 1 Then dw_XX.Print() GoTo the_end End if dw_XX.SetRedraw(False) ldt_temp = Create DataStore ldt_temp.DataObject = dw_XX.DataObject ll_Row = dw_XX.GetRow() dw_XX.RowsMove(1 , l

21、l_Rows , Primary! , ldt_temp , 1 , Primary!) ldt_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!) ldt_temp.RowsMove(1 , ll_Rows , Primary! , dw_XX , 1 , Primary!) Destroy ldt_temp dw_XX.SetRedraw(True) the_

22、end: /只用将上述脚本拷入到打印部分即可,dw_XX为被打印的free型数据窗口,该方法可保证dw_XX中的数据在打印前后包括sort等属性均不发生任何改变,但效率较低,不宜用在数据量太大的数据窗口中,当然,考虑到打印本身速度就比较慢,所以3000行数据是可以采用这种方法并让用户接受的。若在同一窗口上存在与dw_XX共享的grid数据窗口并且与dw_XX同时显示,则需要与dw_one一起SetRedraw()37、怎样将数据窗口(free格式)中的内容转成word文档答:给你两个函数: (1)、辅助函数 $PBExportHeader$f_cncharnum.srf $PBExportCo

23、mments$得到字符串中汉字或者双字节的个数 global type f_cncharnum from function_ O B J E C T end type forward prototypes global function integer f_cncharnum (string aString) end prototypes global function integer f_cncharnum (string aString); /函数名: f_cncharnum /用途: 返回一个字符串中汉字的个数 /输入: aString - string, 给定的字符串 /返回值: li

24、_num - Integer, 给定的字符串中汉字的个数 /注意: 1. 此方法基于汉字的国标汉字库区位编码的有效性,不符合此编码的系统此函数无效! / 2. 若汉字串含有非汉字字符,如图形符号或ASCII码,则这些非汉字字符将保持不变. /例如: li_ret = f_cncharnum(摆渡人ferryman) li_ret = 3 string ls_ch /临时单元 string ls_SecondSecTable /存放所有国标二级汉字读音 integer li_num = 0 /返回值 integer i,j For i = 1 to Len(aString) ls_ch = Mi

25、d(aString,i,1) If Asc(ls_ch) = 128 then /是汉字 li_num+ i = i+1 End if Next Return li_num end function - (2)、转到WORD $PBExportHeader$f_outputtoword_new.srf global type f_outputtoword_new from function_ O B J E C T end type forward prototypes global function integer f_outputtoword_new (datawindow adw) en

26、d prototypes global function integer f_outputtoword_new (datawindow adw); /函数名:f_outputtoword_new /输入: adw - datawindow,指定的数据窗口 /返回值: Integer constant integer ppLayoutBlank = 12 OLEObject ole_ O B J E C T ole_ O B J E C T = CREATE OLEObject integer li_ret li_ret = ole_ O B J E C T.ConnectToObject(,w

27、ord.application) IF li_ret 0 THEN /如果Word还没有打开,则新建。 li_ret = ole_ O B J E C T.ConnectToNewObject(word.application) if li_ret 0 then MessageBox(OLE错误,OLE无法连接!错误号: + string(li_ret) return 0 end if ole_ O B J E C T.Visible = True END IF long ll_colnum,ll_rownum constant long wdWord9TableBehavior = 1 co

28、nstant long wdAutoFitFixed = 0 constant long wdCell = 12 string ls_value pointer oldpointer oldpointer = SetPointer(HourGlass!) string ls_ O B J E C Ts,ls_obj,ls_objs,ls_objtag long ll_pos,ll_len,ll_num = 0 ls_ O B J E C Ts = trim(adw.Describe(datawindow.Objects) do while (pos(ls_ O B J E C Ts,t) 0)

29、 ll_pos = pos(ls_ O B J E C Ts,t) ll_len = ll_pos - 1 ls_obj = left(ls_ O B J E C Ts,ll_len) if (adw.Describe(ls_obj + .type) = column or & adw.Describe(ls_obj + .type) = compute) and & (adw.Describe(ls_obj + .band) = detail) and (ls_obj asd) then ll_num += 1 ls_objsll_num = ls_obj ls_objtagll_num =

30、 adw.Describe(ls_obj + .tag) end if ls_ O B J E C Ts = right(ls_ O B J E C Ts,len(ls_ O B J E C Ts) - ll_pos) loop /得到数据窗口数据的列数与行数(行数应该是数据行数 + 1) ll_colnum = ll_num ll_rownum = adw.rowcount() + 1 ole_ O B J E C T.Documents.Add() ole_ O B J E C T.ActiveDocument.Tables.Add(ole_ O B J E C T.Selection.Range, ll_rownum, ll_colnum) string ls_colname integer i,j,k for i = 1 to ll_colnum /得到标题头的名字 ls_value = ls_objtag ole_ O B J E C T.Selection.TypeText(ls_value) for k = 1 to f_cncharnum(ls_value) ole_ O B J E C T.Selection.TypeB

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1