资源描述:
《pb中很实用的小技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1.RGB函数计算公式:颜色值=(65536*Blue)+(256*Green)+(Red)2.控件可拖动:send(handle(this),274,61458,0)3.如何用程序控制下拉子数据窗口的下拉和收起用modify或者直接用dw_1.object.col1.dddw.showlist=true4.检索参数有些不需要传入则传%.5.如何屏蔽鼠标滚轮触发在控件的other事件写ifmessage.number=522thenreturn16.得到数据窗口的语法:stringls_dwsyntaxls_dwsyntax=dw_1.describe("datawindow.syntax"
2、)7.得到数据窗口中各列及标题:longll_count,istringls_value,ls_colnamell_colnum=Long(dw_1.object.datawindow.column.count)fori=1toll_colnum//得到标题头的名字ls_colname=dw_1.describe('#'+string(i)+".name")+"_t"ls_value=dw_1.describe(ls_colname+".text")next8.在程序中动态设置初始值:ex:dw_contro.object.columnName.initial='xxxx'9.如何在Data
3、Window的SQL语法中不使用SELECTDISTINCT实现删除重复的行----起先对你要显示唯一值的列进行排序:"cityA",然后增加如下过滤字符串:"city<>city[-1]orGetRow()=1"10.如何改变列的字体颜色,提醒用户此列已做修改----在列的Color属性中,输入如下表达式IF(column_name<>column_name.Original,RGB(255,0,0),RGB(0,0,0))。在这个条件中,如果此列已改变,则显示红色字体,否则显示黑色字体。这个表达式主要用column_name<>column_name.Original比较当前列的值和原始
4、列的值是否相同来达到判断的目的。11.在数据窗口的clicked或doubleclicked事件中写上注释//可解决一些意外的bug!12.如何屏蔽上下鍵触发新建一个事件:id为pbm_dwnkeyIFKeyDown(KeyDownArrow!)ORKeyDown(KeyUpArrow!)ThenReturn1EndIF13.你注意到没有,数据窗口画板里面,在写表达式的时候,试着用一些用户自定义的全局变量和全局函数,你会发现在某些特殊的场合,这个小窍门还是很有用的。14.有些程序员在窗口的右键pop菜单里面写了很多代码,在菜单里面有很多w_windowname.controlname等等引用
5、,如果这个窗口被继承,很容易就会出毛病,别忘了在菜单里面可以引用parentwindow哦,有了它我的pop菜单里面的代码和具体窗口无关,随便继承。当然强烈建议最好还是把所有和窗口相关的逻辑都转移到窗口的函数和事件中去,在pop菜单中触发调用。15.whichdw.describe("evaluate('lookupdisplay("+colname+")',"+string(row)+")")这个表达式可以得到指定列的显示值。(这个知识点有滥竽充数之嫌,但是一时间我真是想不起来太多的东西)16.在数据窗口画板里面我们如果想要比较当前行和上一行或者下一行的值,怎么比较呢,哈哈,看这个就知道了
6、if(yw_bc_circuit_dlcode=yw_bc_circuit_dlcode[-1]andyw_bc_circuit_dlname=yw_bc_circuit_dlname[-1]andyw_bc_circuit_xtno=yw_bc_circuit_xtno[-1],0,1)这个表达式就是比较当前行和上一行是否相同的。其他的依此类推就行了。17.两个结构相同的数据窗口之间快速复制数据dw_1.object.data=dw_2.object.data18.根据条件改变记录颜色if(Mod(getrow(),2)=0,rgb(0,255,255),rgb(255,255,255))
7、//奇偶行不同色if(currentRow()=getrow(),rgb(0,255,255),rgb(255,255,255))//当前行不同色19.使窗口总位于所有打开窗口的最上面w_main.SetPosition(Topmost!)20.取数据窗口中列的总数stringls_countls_count=dw_1.describe("datawindow.column.count")21.取数据窗口中可