「已注销」 2024-05-19 16:50 采纳率: 0%
浏览 39
已结题

powerbuilder中的datawindow数据整合到新的DataWindow

请问在powerbuilder中创建了若干个datawindow,也插入了语句,可以生成数据。现在可以把datawindow中的某些值提取出来,形成一个新的datawindow吗?就类比于,我有很多个小的datawindow,现在需要把小datawindow的值提取出来整合到大的datawindow里面。有友友可以帮忙解答吗?

  • 写回答

17条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-19 16:50
    关注

    引自免费微信小程序:皆我百晓生

    在PowerBuilder中,要将多个DataWindows的数据整合到一个新DataWindow中,可以通过以下步骤实现:

    1. 创建一个新的DataWindow对象,用于存储整合后的数据。
    2. 通过循环遍历每个源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查询或者在数据库层面进行数据整合。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月20日
  • 创建了问题 5月19日

悬赏问题

  • ¥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局部变量对蓝图不可见