образец разведчика затмения

1

Я изучаю Eclipse Scout... Я подключился к серверу Sql, извлекая данные с помощью Object [] []... теперь, я хочу получать данные с помощью beanarray-держателей... Я не знаю процесса...

Я создал bean-пользователей!
Я заполнил bean-компонент, используя сервис, используя этот пример: http://www.eclipse.org/forums/index.php/t/310526/

Так может кто-нибудь объяснить, как использовать бобы в разведке, заполнить таблицу или форму...

  1. Создайте пример компонента: пользователи
  2. Заполните компонент в примере: получите данные пользователя из таблицы пользователей
  3. заполнить таблицу, используя этот компонент...

Тпх

Теги:
eclipse-scout

1 ответ

0

Java POJO (bean)

Если вы работаете с простым старым java-объектом (POJO) следующим образом:

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);
}

Также возможна сторона сервера сопоставления. Но в этом случае вы должны окончательно рассмотреть использование табличных данных (см. Следующий раздел)


Данные таблицы

Вы должны убедиться, что используете TableData на основе bean. Прочитайте этот ответ, чтобы узнать, как вы можете различать таблицы TableData и таблицы 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> Напишите первую страницу> Загрузить данные на сервере

  • 0
    Большое спасибо! попробую это :)
  • 0
    Привет, я попробовал! Но не повезло! Не знаю, где вызывать bean-компонент, я добавил @FormData (sdkCommand = FormData.SdkCommand.USE, значение = AbstractTableFieldBeanData.class, defaultSubtypeSdkCommand = FormData.DefaultSubtypeSdkCommand.CREATE) в класс UsersTableData, созданный с указанием типа удачи!
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню