PB 各种小技巧(二)

1.如何让存储文件目录的列,显示图片? 答:选择对应的column的display as picture属性为true 

2、如何复制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风格改成自由格式?在DW的editsource中将processing=1的1改为0

6、要新建一个表A但风格和现有表格B风格一样,怎么将A表快速设置成表B风格?复制B表C,在C表的DW中的editsource中将表名和字段名改成A表的,即可

7、如何实现gird风格的datawindow的多栏表头?答:添加 text到header带区,并设置band属性为foreground保存,edit source 修改text的x和width属性表达式如下:x="100~t integer(describe('firstcol.x')" width="100~tinteger(describe('lastcol.x')) - integer(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_temp

10、如何设置datawindow的单双行不同颜色间隔?答:在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("t_1",FALSE)//t_1为datawindow中text对象的名称

12、如何使用datawindow的查询模式?答:dw_1.Object.DataWindow.QueryMode='yes'将datawindow改变为查询模式后,接收用户的输入,再使用一下代码获取结果: dw_1.accepttext() dw_1.retrieve()

13、如何缩放datawindow的打印大小?答:dw_1. O B J E C T.datawindow.zoom=150 or dw_1. O B J E C T.datawindow.zoom=75

14、如何在已过滤后的数据基础上对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月dd日 hh点mm分ss秒'),同时设置datawindow的属性dw_1.Object.DataWindow.Timer_Interval=500

16、如何让带用title bar的datawindow控件的标题栏诚活动窗口的颜色?答:外部函数定义:funcation logn SetActiveWindow(long hwnd ) Library "user32.dll"datawindow控件的clicked事件代码:setactivewindow(handle(this))

17、如何设置datawindow的当前行指示图标?答:在datawindow中建立一个计算列,expression为'',并将该计算列移动为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_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_value"

21、如何只显示不同的数据?答:dw_1.filter("isnull(columnname[-1]) and columnname<>columnname[-1]") dw_1.filter()

22、如何让带有title bar的datawindow不可以移动?答:在datawindow的自定义事件ue_nchittest(pbm_nchittest)中写入如下代码: return 1

23、如何在N-UP显示风格中建立基于第N栏中的列的计算列?答:如column有两列,number和price ,并显示为两栏,则第一栏的cost计算列的expression为number*price,第二栏的cost_1计算列的expression为number[1]*price[1]

24、如何清空ddlb或edit.codetable中项目?答:dw_1.Object.columnname.Values=""

25、如何实现指定的column的字体旋转90度?答:dw_1. O B J E C T.columnname.font.Escapement ="900"

26、如何获取datawindow的sql代码?答: 可以通过以下四种方法获取sql代码: string szselect szselect=dw_1.describe("datawindow.table.select") szselect=dw_1.describe("datawindow.table.sqlselect") 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 lstorage>50000 then dbcancel()

28、如何控制打印横向:dw_control. O B J E C T.datawindow.print.orientation= 1

29、如何进行预览:dw_control. O B J E C T.datawindow.print.preview = "yes"

30、如何连续在同一张纸打印两个数据窗口?答: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()

展开阅读全文

没有更多推荐了,返回首页