请问在powerbuilder中创建了若干个datawindow,也插入了语句,可以生成数据。现在可以把datawindow中的某些值提取出来,形成一个新的datawindow吗?就类比于,我有很多个小的datawindow,现在需要把小datawindow的值提取出来整合到大的datawindow里面。有友友可以帮忙解答吗?
17条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在PowerBuilder中,要将多个DataWindows的数据整合到一个新DataWindow中,可以通过以下步骤实现:
- 创建一个新的DataWindow对象,用于存储整合后的数据。
- 通过循环遍历每个源DataWindow,逐行读取数据并添加到目标DataWindow中。
下面是一个简单的示例,展示了如何在PowerBuilder中完成这个任务。由于PowerBuilder是一种图形化编程工具,没有直接的代码编辑环境,我将以伪代码的形式展示关键步骤,并提供一些关键的PowerBuilder语句作为参考。
首先,确保你已经创建了多个DataWindow(例如:dw_SmallDW1, dw_SmallDW2, ...)并且它们都有相同的结构(列名和类型相同)。然后,创建一个新的DataWindow(例如:dw_LargeDW),具有与源DataWindows相同的结构。
伪代码如下:
// 假设dw_SmallDW1, dw_SmallDW2,...是已存在的DataWindows // 假设dw_LargeDW是新建的目标DataWindow // 初始化目标DataWindow dw_LargeDW.Create() // 设置目标DataWindow的列定义与源DataWindows相同 dw_LargeDW.SetTransObject(OpenQuery("SELECT * FROM dw_SmallDW1")) // 遍历源DataWindows并复制数据 For i = 1 to CountOf(DataWindows) ' 或者具体数量 If DataWindows[i] .Name Like "dw_SmallDW%" Then // 打开源DataWindow DataWindows[i].Restore() // 循环读取源DataWindow的每一行 For j = 1 to DataWindows[i].GetRecordCount() // 复制当前行数据到目标DataWindow dw_LargeDW.Append() dw_LargeDW.SetItemText(j+1, "Column1", DataWindows[i].GetItemText(j, "Column1")) dw_LargeDW.SetItemText(j+1, "Column2", DataWindows[i].GetItemText(j, "Column2")) // 更改 Column1 和 Column2 为实际列名 // 继续复制其他列... Next j // 关闭源DataWindow DataWindows[i].Close() End If Next i // 清理内存 For i = 1 to CountOf(DataWindows) DataWindows[i].DeleteObject() Next i // 显示目标DataWindow dw_LargeDW.Show()
这段伪代码展示了如何从多个源DataWindows中提取数据并将其合并到一个新创建的目标DataWindow中。你需要根据实际情况替换
dw_SmallDW1, dw_SmallDW2,...
、dw_LargeDW
以及列名。注意:PowerBuilder 的语法可能因版本不同而略有差异,因此在实际应用时可能需要进行调整。此外,如果你的数据量非常大,这种方法可能会导致性能问题。在这种情况下,你可能需要考虑使用SQL查询或者在数据库层面进行数据整合。
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 35114 SVAC视频验签的问题
- ¥15 impedancepy
- ¥15 在虚拟机环境下完成以下,要求截图!
- ¥15 求往届大挑得奖作品(ppt…)
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见