PowerBuilder总结(一)
- 向DataWindow窗口dw_1和dw_2载入页面(FreeForm类型和Grid类型的)
int row_cnt dw_2.dataobject ='freeform_name' dw_1.dataobject ='grid_name' dw_1.settransobject(sqlca) dw_2.settransobject(sqlca) dw_2.sharedata(dw_1) row_cnt =dw_1.Retrieve() dw_1.setsort("system_idasc, domain_code asc") dw_1.sort() dw_1.SetRow(row_cnt) dw_1.ScrollToRow(row_cnt) dw_1.setfocus()
- 设置DataWindow的可编辑性和背景色(modify()方法)
dw_2.modify("datawindow.color= 16777215") dw_2.modify("DataWindow.ReadOnly=yes") dw_2.modify ("question_picture_status.TabSequence=0") dw_2.modify ("data_status.TabSequence=0")
- 设置Window对象的可见性或可编辑性
button_name.visible= true/false dropdownlistbox_name.enabled= true/false
- 设置DropDownListBox控件的item项(下拉列表值)
ddlb_name.reset() stringv_policecode declarepolicecodecur cursor for select policecode from biz_ code; openpolicecodecur; fetchpolicecodecur into :v_policecode; if sqlca.sqlcode=-1 then Messagebox("","获取列表失败") end if DO WHILE(sqlca.sqlcode=0 ) ddlb_name.additem(v_policecode) fetch policecodecur into :v_policecode; LOOP closepolicecodecur;
- 一个保存按钮功能的实现代码
long ll_row dwItemStatus l_mod dw_2.accepttext() ll_row =dw_2.getrow() dw_2.object.update_time[ll_row]= string(now(), 'yyyy-MM-dd hh:mm:ss') if ll_row <= 0then return l_mod =dw_2.GetItemStatus (ll_row, 0, primary!) if l_mod =DataModified! or l_mod = NewModified! then if (dw_2.Update(true) = 1) then commit; //获取编辑页面的区域编码等信息 v_ code = dw_2.object.d_code[ll_row] v_ time = string(now(),'yyyy-MM-dd hh:mm:ss') delete biz_d_domain_class_r wheredomain_code = :v_domain_code; commit; //判断区域分类选项的选中状态,并向区域分类关系表插入有效数据 for v_cnt = 1 todw_domain_class_name.rowcount() step 1 v_check_flag = dw_name.getitemnumber(v_cnt,"check_flag") if v_check_flag = 1 then v_class_code = dw_name.getitemstring(v_cnt,"class_code") insert into tname(d_code,cr_time) values(:v_ code,:v_ time); commit; end if next messagebox("","保存成功") else rollback; end if end if dw_1.setrow(ll_row) dw_1.scrolltorow(ll_row)
- 两个数据窗口同步数据(写在dw_1的rbuttondown事件中)
dw_1.selectrow(0,false) dw_1.selectrow(row,true) dw_2.scrolltorow(row)
- 创建动态DataWindow
string str_err_sql,str_err_create,str_sql,str_syntax,str_style str_sql="select name,class from biz_class where id = " + gv_id; str_style= "style(type = Grid)" //生成SELECT语句对应的自由风格的数据窗口语法 str_syntax=sqlca.SyntaxFromSQL(str_sql,str_style,str_err_sql) messagebox("str_sql",str_sql) messagebox("str_syntax",str_syntax) if len(str_err_sql)>0 then messagebox("错误","取得SQL语法时出错" + str_err_sql) return else dw_1.create(str_syntax,str_err_create) if len(str_err_create)>0 then messagebox("错误","创建数据窗口时出错!") return end if end if dw_1.settransobject(sqlca) dw_1.retrieve()
- 其他
window_name.dw_2.setitem(row,"d_code","0") //设置dw_2某字段的值 ddlb_1.selectitem(0) //设置DropDownListBox的默认选项 //截取字符串v_ret_code的末两位,并转换成integer类型 v_sub_num = integer(mid(v_ret_code,2,2))+ 1 //弹出确认窗口 int v_ret v_ret =MessageBox("","确定删除这条区域信息?",Question!,YesNo!) if v_ret = 1 then delete from biz_d_domain where and domain_code=”111”; commit; end if //设置焦点 dw_d_name.setfocus()