Power Builder 10.5用户对象数组到datawindow表

时间:2016-02-17 21:03:39

标签: arraylist powerbuilder datawindow user-object

我是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示例中完全相同的形式。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

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