60个数据窗口技巧+其它
根据给定的信息,我们可以整理出一系列与PowerBuilder中的数据窗口(DataWindow)相关的技巧和技术要点。以下是对这些技巧的详细解析: ### 1. 使用图片显示列数据 在PowerBuilder的数据窗口控件中,可以通过设置 `columndisplayaspicture` 属性为 `true` 来实现将指定列的数据作为图片显示。 ### 2. 获取选中行的数据 为了获取数据窗口中选中行的具体数据,可以使用如下代码: ```powerbuilder string ls_selected ls_selected = dw_1.Object.DataWindow.Selected.Data clipboard(ls_selected) ``` 这里通过 `DataWindow.Selected.Data` 属性来访问当前选中行的数据,并将其存储到变量 `ls_selected` 中,最后使用 `clipboard()` 函数将数据复制到剪贴板上。 ### 3. 复制图表数据 如果想将数据窗口中的图表复制到剪贴板上,可以通过以下方式实现: ```powerbuilder dw_1.clipboard("gr_1") ``` 这里的 `"gr_1"` 是图表对象的名称。 ### 4. 更改数据窗口颜色 可以通过更改编辑源 (Edit Source) 的 `color` 属性来改变数据窗口的颜色: ```powerbuilder DWeditsource.color = 指定的颜色值 ``` ### 5. 禁用网格滚动 禁用数据窗口中的网格滚动可以通过设置编辑源的 `processing` 属性为特定值来实现: ```powerbuilder DWeditsource.processing = 11 ``` ### 6. 隐藏列 若要隐藏数据窗口中的某个列,可以通过将该列的编辑源属性设置为另一个不存在的列: ```powerbuilder BCDDW.editsource.hidden = '不存在的列名' ``` ### 7. 设置数据窗口表头宽度 为了调整数据窗口表头的宽度,可以修改表头编辑源的 `textxwidth` 属性: ```powerbuilder textheaderband.foreground = 编辑源属性 editsource.textxwidth = "100~tinteger(describe('firstcol.x'))" + "width=" + "100~tinteger(describe('lastcol.x')) - integer(describe('firstcol.x')) + integer(describe('lastcol.width'))" ``` ### 8. 设置数据窗口过滤条件 可以使用以下方法来设置数据窗口的过滤条件: ```powerbuilder dw_1.setfilter("lookupdisplay('column_name')='" + ls_display_value_your + "'") dw_1.filter() ``` 其中 `ls_display_value_your` 是具体的过滤条件值。 ### 9. 清空数据窗口字段 清空数据窗口中的字段可以通过如下方式实现: ```powerbuilder string ls_temp[] setnull(ls_temp) dw_1.OBJECT.columnname.primary.current = ls_temp ``` ### 10. 设置不同行颜色 为了使数据窗口中不同行显示不同的颜色,可以通过设置 `detailcolor` 属性为动态计算的颜色值: ```powerbuilder detailcolor = if(mod(getrow(),2)=1,rgb(255,0,0),rgb(0,255,0)) ``` 此表达式会根据行号的奇偶性来设置不同的颜色。 ### 11. 获取数据窗口对象 获取数据窗口对象可以通过以下方式: ```powerbuilder DWObject ldwo_use, ldwo_abc ldwo_use = dw_1.Object ldwo_abc = ldwo_use.__get_attribute("t_1", FALSE) ``` ### 12. 使用查询模式 要让数据窗口处于查询模式,可以设置 `QueryMode` 属性并调用 `accepttext()` 和 `retrieve()` 方法: ```powerbuilder dw_1.Object.DataWindow.QueryMode = 'yes' dw_1.accepttext() dw_1.retrieve() ``` ### 13. 调整数据窗口缩放比例 可以通过修改 `zoom` 属性来调整数据窗口的缩放比例: ```powerbuilder dw_1.OBJECT.datawindow.zoom = 150 // 或者 75 ``` ### 14. 修改数据窗口关联表的连接条件 如果需要修改数据窗口与关联表之间的连接条件,可以使用以下方法: ```powerbuilder dw_1.setfilter(dw_1.describe("datawindow.table.filter") + your_join + your_new_filter) dw_1.filter() ``` ### 15. 实现定时刷新 可以通过设置定时器间隔来实现实时刷新数据窗口: ```powerbuilder string time_str time_str = string(datetime(today(), now()), 'yyyymmddhhmmss') dw_1.Object.DataWindow.Timer_Interval = 500 ``` ### 16. 设置活动窗口 为了在点击数据窗口时将其设为活动窗口,可以使用 Windows API 函数 `SetActiveWindow`: ```powerbuilder function lognSetActiveWindow(long hwnd) library "user32.dll" datawindow对象 clicked event: setactivewindow(handle(this)) ``` ### 17. 显示行焦点指示符 为了在数据窗口中显示行焦点指示符,可以在 `rowfocuschanged` 事件中设置: ```powerbuilder SetRowFocusIndicator(hand!) setrowfucsindicator(p_1) // p_1 为图片对象 ``` ### 18. 模拟按键操作 可以通过调用 Windows API 函数 `keybd_event` 来模拟按键操作: ```powerbuilder subroutine keybd_event(int bVk, int bScan, int dwFlags, int dwExtraInfo) library "user32.dll" dw_1.SetFocus() dw_1.SetColumn("dept_head_id") // 设置当前 DDDW keybd_event(VK_F4, 0, 0, 0) // 模拟 F4 键按下 keybd_event(VK_F4, 0, 2, 0) // 模拟 F4 键释放 ``` 以上是关于PowerBuilder数据窗口的一些高级技巧和技术点的详细介绍,希望能帮助您更好地理解和运用数据窗口的各种功能。
- a389120032013-10-17不错,可以好好看看 学习
- 粉丝: 1
- 资源: 49
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助