PB常见基本问题初步总结
lmby 2003-11-01 09:54:41 版内有一些问题被问过n遍了,可是还是有人在问题,现在做如下的总结,不足的地方兄弟们请给予修正,给予填充,使这个贴更充实些。
在提问前一定要先搜索一下,查看一下各分版的faq及精华区,看是否有同类的问题
1.怎么得到Group的count?
A.cumulativeSum( if( 分组列名[-1] = 分组列名[0],0,1) for all )
B.GetRow() - First(GetRow() for Group 1) + 1
C.count(分组的字段 for all distinct)
2.怎么得到Group的行号?
cumulativeSum( 1 for group 1 )
3.如何给一个子数据窗口传参数?
datawindowchild ldwc_name
ldwc_name = dw_name.getchild( 'column', ldwc_name )
//如果开始不知道dddw的检索参数是什么,可以欺骗dddw,让他认为已有了数据:
ldwc_name.insertrow( 0 )
dw_name.retrieve()
//如果你知道检索参数了:
ldwc_name.settransobject( sqlca )
ldwc_name.retrieve( arguments )
dw_name.settransobject( sqlca )
dw_name.retrieve()
4.如何比较两个时间(date)类型的数据之间的相差的天数?
date ld_date1, ld_date2
long ll_diff
ll_diff = daysafter( ld_date1, ld_date2 )
5.DW中,各行数据用不同颜色来显示
background.color express:
if( mod(getrow(),2)=0, rgb(0,255,0), rgb(255,255,255) )
6.窗口中控件visible属性的操作问题
way1: 在窗口画板的design菜单里选option,点上show invisible复选框。
way2:在edit菜单里选control list,选择你要找的按钮,然后在property里点 上visible复选框。
7.怎样在dw中加计算列
在summary带放计算域,如sum( column for all )
8.如何取服务器时间,更改本地时间?
FUNCTION ulong SetLocalTime(any lpSystemTime) LIBRARY "kernel32.dll"
结构str_systime(unsignedinteger: year,month,day,hour,minute,second)
datetime dt_server
str_systime lstr_tmp
select getdate() into :dt_server from sysfiles;
lstr_tmp.year=year(date(dt_server))
lstr_tmp.month=month(date(dt_server))
lstr_tmp.week=daynumber(date(dt_server)) - 1
lstr_tmp.day=day(date(dt_server))
lstr_tmp.hour=hour(time(dt_server))
lstr_tmp.minute=minute(time(dt_server))
lstr_tmp.second=second(time(dt_server))
SetLocalTime(lstr_tmp)
9.怎么屏蔽datewindow中的回车按键?
pbm_dwnprocessenter:return 1
10.dddw的增量查询?
datawindowchild ldwc_name
dw_name.getchild( "column", ldwc_name )
//dw_name:editchanged
ldwc_name.setfilter( "column Like '%" + upper( data ) + "%'" )
ldwc_name.filter()
11.如何动态改变dw的sql?
string ls_sql, ls_new_sql
ls_sql = dw_name.getsqlselect()
ls_new_sql = ls_sql + 'statement'
dw_name.setsqlselect( ls_new_sql )
dw_name.settransobject( sqlca )
dw_name.retrieve()
12.怎么知道数据窗口中哪些行修改了?
long i
dwitemstatus lds_status
for i = 1 to dw_name.rowcount()
lds_status = dw_name.getitemstatus( i, 0, primary! )
if lds_status <> notmodified! then
//本行修改了
end if
next
13.如何动态修改数据窗口列的风格?
dw_name.object.columnname.edit.style = 'dddw'//or other style
dw_name.object.columnname.edit.case = 'any'//change back to edit