【问题标题】:Power Builder 10.5 user object array to datawindow tablePower Builder 10.5 用户对象数组到数据窗口表
【发布时间】:2016-05-29 19:22:39
【问题描述】:

我是 Power Builder 的新手,我想问一下如何以表格形式表示我的对象。例如,给定一个 java 中的 ArrayList,我已经实现了这样的代码:

    table = new JTable();
    scrollPane.setViewportView(table);


    DefaultTableModel tableModel = 
            new DefaultTableModel(
                        new String[] {
                                "ScheduleNo", 
                                "Start Date", 
                                "End Date", 
                                "No of days", 
                                "Principal Expected", 
                                "Interest Expected", 
                                "EMI amount", 
                                "Factor", 
                                "MeanFactor"}
                        , 0);

    for (Schedule s : pf.getSchedules()){
           Integer schNo  = s.getScheduleNo();
           String startDate = df.format(s.getStartDate());
           String endDate = df.format(s.getEndDate());
           Integer noofdays = s.getNoOfDays();
           String prinExp = String.format("%.2f", s.getPrincipalAmt());
           String intExp = String.format("%.2f", s.getInterestAmt());
           String emi = String.format("%.2f", s.getAmortizedAmount());
           String factor = String.format("%.6f", s.getFactor());
           String mean = String.format("%.6f", s.getProductByFactor());


           Object[]data = {schNo, startDate, endDate, noofdays, prinExp, intExp, 
                   emi, factor, mean};

           tableModel.addRow(data);
        }

    table.setModel(tableModel);

但是我无法在 PowerBuilder 中找到一种方法来执行此操作,而无需连接到数据库并从那里选择数据,而这完全不是这种情况。

数据来自用户对象数组[],与上面的 Java 示例具有完全相同的形式。

【问题讨论】:

    标签: arraylist powerbuilder datawindow user-object


    【解决方案1】:

    在不知道您要完成什么的情况下,在我看来您可以使用“普通”PowerBuilder 数据窗口,但是当您定义它时,您会将其作为外部数据源。这种类型的数据窗口不需要连接到数据库。创建数据源时,您可以将数据源的“字段”定义为字符串、数字等。

    在代码中,您可以创建一个数据窗口(或数据存储)控件,将外部数据源数据窗口对象分配给它,插入一行,然后用相应数据类型的数据填充字段。

    示例用法:

    datawindow ldw
    long llrow
    ldw = CREATE datawindow
    ldw.dataobject = 'myExternalDatawindowObject'
    llrow = ldw.insertrow(0)
    ldw.setitem(llrow,'stringcolumn','my example string')
    ldw.setitem(llrow,'numericcolumn',1234)
    

    【讨论】:

    • 谢谢,正确的方法是 SetItem(row, column, value) 鉴于您在 DataWindow 创建期间已相应地声明了数据类型。
    【解决方案2】:

    自从我使用 PowerBuilder 已经有一段时间了,但是 IIRC 你应该能够在没有数据库连接的情况下使用 DataStore。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多