13. 属性和代码如下:
1. wroot_dw_query属性:
| X = 9 Y = 1132 Width = 2912 Height = 712 Visible = true Enabled = true TitleBar = true Title = "定位查询" ControlMenu = true Border = true WindowType = response! WindowState = normal! BackColor = 79741120 |
2. 窗口实例变量:
| Boolean ib_changed Long MaxEditRow = 1 String sWhere, oldsql, orisql, is_title, is_section = 'WhereClause' DataWindow dw_result,dw_detail pfc_n_cst_string inv_string string sSyntax |
注释:a.pfc_n_cst_string 为PFC用户对象。
3. 窗口事件代码:
3.1 close 事件:

功能:将用户本次所输入的查询条件记录到文件sIniFile的WhereClause1...n小节中去以备下次启动时置初始查询条件。
3.2 open 事件:
功能:设置初始值,具体请看代码中的注释。
| integer i, row, li_where_row = 10 string tmp str_result_column lstr_1 //结构str_result_column的成员adw_result指查询结果所产生作用的dw // 成员adw_column指在本窗口查询条件所要显示的dw lstr_1 = Message.PowerObjectParm dw_result = lstr_1.adw_result dw_detail = lstr_1.adw_column if isnull(dw_result) or not isvalid(dw_result) then return if isnull(lstr_1.adw_column) or not isvalid(lstr_1.adw_column) then return window act_w act_w=MainWindow.getactivesheet() x = act_w.x + 8 y = act_w.y + act_w.height - height+258 width = act_w.width cb_exec.x=width - cb_exec.width -80 cb_exit.x=width - cb_exec.width -80 dw_where.x=10 dw_where.Width = width - 2 * dw_where.X - cb_exec.width -100 //-----s dw_column.visible = False wf_setcolumn(lstr_1.adw_column, dw_column) //orisql = dw_result.Object.DataWindow.Table.Select //原始语法,close中用. orisql = dw_result.GetSqlSelect() //上句对CrossTab无效 oldsql = lower(orisql) For i = 1 to li_where_row dw_where.InsertRow(0) Next dw_where.setrowfocusindicator(Hand!) dw_where.ScrollToRow(0) dw_where.SetColumn("column1") cb_exec.SetFocus() datawindowchild dwc dw_where.GetChild("column1",dwc) dwc.SetTransObject(sqlca) dwc.Reset() For i = 1 to dw_column.RowCount() tmp = dw_column.GetItemString(i,1) row = dwc.InsertRow(0) dwc.SetItem(row,1,tmp) Next //将用户上次所输入的查询条件从文件sIniFile的WhereClause1...n小节中取出来, //本次启动时置为初始查询条件. window w_parent if dw_result.GetParent().typeof() = window! then w_parent = dw_result.GetParent() is_title = w_parent.title else is_title = dw_result.DataObject end if ib_changed = True row = 0 tmp = '' is_title = gnv_app.is_regkey + '\' + is_title + '\' + scname For i = 1 to li_where_row RegistryGet(is_title, is_section + String(i), RegString!, tmp) //tmp = ProfileString(sinifile,is_title,"WhereClause" + string(i),"") if tmp <> "" and (Not IsNull(tmp)) then //SetProfileString(sinifile,is_title,"WhereClause" + string(i),"") RegistrySet(is_title, is_section + String(i), RegString!, '') row ++ dw_where.object.data[row,1] = inv_string.of_gettoken(tmp, ",") dw_where.object.data[row,2] = inv_string.of_gettoken(tmp, ",") dw_where.object.data[row,3] = inv_string.of_gettoken(tmp, ",") dw_where.object.data[row,4] = inv_string.of_gettoken(tmp, ",") dw_where.object.data[row,5] = inv_string.of_gettoken(tmp, ",") dw_where.object.data[row,6] = inv_string.of_gettoken(tmp, ",") end if Next MaxEditRow = row // MaxEditRow 为dw_where中当前已编辑过的最大行的行号.实例变量. If MaxEditRow = 0 Then MaxEditRow = 1 |
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- SQL Server 索引和查询专题 (3320篇文章)
- 在PB中如何实现数据模糊查询 (1300次浏览)
- 用PB开发多媒体数据库管理系统 (700次浏览)
- PB8.0应用程序编译发布技术研究 (661次浏览)
- 如何发布独立的POWERBUILDER应用 (638次浏览)
- 用Powerbuilder开发WEB数据库 (578次浏览)
- 低级键盘钩子屏蔽Win键、Alt+Tab键的响应 (511次浏览)
- 浅谈PB中动态DataWindow的技术应用 (511次浏览)
- 用PB做一个通用右键菜单 (503次浏览)
- PowerBuilder应用开发系列讲座(9) (489次浏览)
- 怎样在pb中得到存储过程的值 (447次浏览)



