Peoplesoft CreateRowset с соответствующей записью

Согласно этой книге, функция CreateRowset имеет параметры {FIELD.fieldname, RECORD.recname}, которые используются для указания соответствующей отображаемой записи.

Я пытался использовать его следующим образом (только для примера):

&rs1 = CreateRowset(Record.User, Field.UserId, Record.UserName);
&rs1.Fill();

For &k = 1 To &rs1.ActiveRowCount
MessageBox(0, "", 999999, 99999, &rs1(&k).UserName.Name.Value);
End-for;

(Record.User содержит только UserId(ключ), пароль.
Record.UserName содержит идентификатор пользователя (ключ), имя.)

Я не могу получить значение UserName.Name. Не понимаю ли я, как использовать этот параметр?

1 ответ

Решение

Заполните это проблема. Из документа:

Примечание: Fill читает только основную запись базы данных. Он не читает ни связанных записей, ни подчиненных записей набора строк.

При этом я знаю, что это единственный способ массового заполнения автономного набора строк из базы данных, поэтому я не могу легко увидеть использование этого поля в наборе строк.

Самое простое решение - просто создать представление, но оно очень скоро устареет, если вам придется много делать. Альтернативой является просто цикл по набору строк, самостоятельно загружая соответствующие поля. Что-то вроде:

For &k = 1 To &rs1.ActiveRowCount
  &rs1(&k).UserName.UserId.value = &rs1(&k).User.UserId.value;
  &rs1(&k).UserName.SelectByKey();
End-for;
Другие вопросы по тегам