Power Builder 10.5 массив пользовательских объектов в таблицу datawindow
Я новичок в Power Builder, и я хотел бы спросить, как я могу представить свои объекты в виде таблицы. Например, учитывая ArrayList в Java, я реализовал код следующим образом:
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 без подключения к базе данных и выбрать данные оттуда, что совершенно не так.
Данные поступают из массива User Object [] и имеют точно такую же форму, как и в примере Java выше.
2 ответа
Не зная, чего вы пытаетесь достичь, мне кажется, что вы могли бы использовать "обычное" окно данных 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)
Прошло много времени с тех пор, как я использовал PowerBuilder, но IIRC вы сможете использовать DataStore без подключения к базе данных.