Power Builder 10.5 用户对象数组到数据窗口 table

Power Builder 10.5 user object array to datawindow table

我是 Power Builder 的新手,我想问一下如何以 table 形式表示我的对象。例如,给定 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 示例具有完全相同的形式。

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

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

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

用法示例:

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)