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)
我是 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)