簡體   English   中英

Bean數組Eclipse Scout示例

[英]bean array eclipse scout sample

我正在學習Eclipse Scout ...我已經連接到Sql服務器,使用Object [] []來獲取數據...現在,我想使用bean,beanarray持有者來獲取數據...我不知道該過程...

我已經創建了bean用戶!
我使用以下示例使用服務填充了bean: http : //www.eclipse.org/forums/index.php/t/310526/

有人可以解釋一下如何在偵察中使用bean,填充表或表格...

  1. 舉例說明:用戶
  2. 填寫服務示例中的bean:從用戶表獲取用戶數據
  3. 使用該bean填充表...

TNX

Java POJO(bean)

如果您正在使用普通的老式Java對象(PO​​JO),如下所示:

public class User {
    private String firstName;
    private String lastName;

    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}

您可以像這樣填充這些POJO的數組:

public User[] loadAll() throws ProcessingException {
  BeanArrayHolder<User> beansArray = new BeanArrayHolder<User>(User.class);

  SQL.selectInto(" select first_name, last_name " +
      " from users " +
      " into :{FirstName}, :{LastName} ", beansArray);

  return beansArray.getBeans();
}

要填充表格,您需要手工完成。 例如在客戶端:

for (User user : beansArray.getBeans()) {
  ITableRow row = getTable().createRow();
  getTable().getNameColumn().setValue(row, user.getLastName());
  getTable().getFirstNameColumn().setValue(row, user.getFirstName());
  getTable().addRow(row, true);
}

映射服務器端也是可能的。 但是在這種情況下,您應該明確考慮使用表數據(請參閱下一節)


表數據

您應該確保使用的是基於bean的TableData。 閱讀此答案,以了解如何區分基於表的TableData和基於bean的TableData

假設您的窗體中有一個像這樣的UserTableField:

@Order(10.0)
@FormData(sdkCommand = FormData.SdkCommand.USE, value = AbstractTableFieldBeanData.class, defaultSubtypeSdkCommand = FormData.DefaultSubtypeSdkCommand.CREATE)
public class UserTableField extends AbstractTableField<UserTableField.Table> {

  @Order(10.0)
  public class Table extends AbstractExtensibleTable {

    public LastNameColumn getLastNameColumn() {
      return getColumnSet().getColumnByClass(LastNameColumn.class);
    }

    public FirstNameColumn getFirstNameColumn() {
      return getColumnSet().getColumnByClass(FirstNameColumn.class);
    }

    @Order(10.0)
    public class FirstNameColumn extends AbstractStringColumn {

      @Override
      protected String getConfiguredHeaderText() {
        return TEXTS.get("FirstName");
      }
    }

    @Order(20.0)
    public class LastNameColumn extends AbstractStringColumn {

      @Override
      protected String getConfiguredHeaderText() {
        return TEXTS.get("LastName");
      }
    }
  }
}

您應該能夠在服務中執行類似的操作:

UserTableRowData rowData = formData.getUserTable().addRow();
rowData.setFirstName("John");
rowData.setLastName("Smith");

如果您要使用SQL查詢來填充表,而不是手動添加行,則可以執行以下操作:

BeanArrayHolder<User> beansArray = new BeanArrayHolder<User>(User.class);

SQL.selectInto(" select first_name, last_name " +
      " from users " +
      " into :{UserTable.FirstName}, :{UserTable.LastName} ", formData);

它對TablePageData的工作方式相同,請參見本教程中的示例:

MiniCrm教程>編寫第一頁>在服務器上加載數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM