Проблема загрузки сети GeneXus на AS/400

Я использую GeneXus X Evolution 3 — версия 10.3.98441 U5.

Я компилирую RPG для платформы AS/400.

Моя проблема заключается в том, что мне нужно отфильтровать записи с определенным значением статуса, когда я загружаю сетку на рабочей панели. Наконец-то я получил свою программу для фильтрации нежелательных записей, но теперь она отображает только последнюю действительную запись. Это общая проблема? Или что-то, с чем кто-то уже сталкивался?

Вот код события с моей рабочей панели.

Event Load
for each 
    where RecordStatus = 'ACT'
        &nUserId = nullValue(&nUserId) // clear the note author variable
        &nDate   = nullValue(&nDate)   // clear the date the note was created
        if RecordNoteLine = 1 // only put printable values on the first line
            &nDate = DtoC(RecordDate)
            call(Prog0364, RecordWho, &nUserId) // get userID from emp no
        endif
        &noteUserId = &nUserId 
        &noteDate   = &nDate
        &noteText   = RecordNotes
        MyGrid.Load()
endfor
Endevent

Цель обнуления идентификатора пользователя и даты состоит в том, чтобы отображать идентификатор пользователя и дату (в виде символьного поля) только в первой строке отображения записи. Цель этого блока — отображать только активные записи. Требованием проекта является использование обратимого удаления (состояние «DEL») и отображение только активных записей.

Я очень новичок в использовании GeneXus, RPG и разработке на любой платформе мэйнфреймов, поэтому любая помощь будет принята с благодарностью.


person CoMo G-Dawg    schedule 31.05.2018    source источник
comment
Я добавил код загрузки сетки (в редактировании), чтобы посмотреть, помогло ли это. это не так.   -  person CoMo G-Dawg    schedule 31.05.2018
comment
Я провел некоторое тестирование, чтобы точно определить, что происходит. Похоже, что у меня в сетке появляется ОДНА СТРОКА, и все перезаписывает эту единственную строку. Это текстовые записи, поэтому я вижу только последнюю строку последней записи. Все мои предыдущие примеры были длиной в одну строку, так что это выглядело как последняя запись, но это не так.   -  person CoMo G-Dawg    schedule 31.05.2018


Ответы (1)


Немного «поигравшись» и протестировав различные результаты, я пришел к следующему (?) решению моей проблемы:

Event Load
for each 
    where RecordStatus = 'ACT'
        &nUserId = nullValue(&nUserId) // clear the note author variable
        &nDate   = nullValue(&nDate)   // clear the date the note was created
        if RecordNoteLine = 1 // only put printable values on the first line
            &nDate = DtoC(RecordDate)
            call(Prog0364, RecordWho, &nUserId) // get userID from emp no
        endif
        &noteUserId = &nUserId 
        &noteDate   = &nDate
        &noteText   = RecordNotes
        Load  // <--- THIS is key and obviously I misunderstood when told to use a "load"
              // I was ignorant of what that was, so I looked it up and found 
              // the original code that didn't work for me.
endfor
Endevent
person CoMo G-Dawg    schedule 31.05.2018