Восстановление текущей записи после обновления формы

Автор AlexWorkStream, 21 июня 2024, 10:58

0 Пользователи и 1 гость просматривают эту тему.

AlexWorkStream

Есть макрос обновления формы, прикрепленный к кнопке на форме. При обновлении, строка записи сбрасывается. Что сделать, чтобы форма осталась на той же записи после обновления. Спасибо!
Sub RefreshAllForms
    Dim oForms As Object
    Dim oForm As Object
    Dim oDocument As Object
   
      oDocument = ThisComponent
   
      oForms = oDocument.Drawpage.Forms
   
      For Each oForm In oForms
            oForm.reload()
    Next oForm
End Sub

economist

Надо перед обновлением формы запомнить текущие значения строки и после обновления - присвоить их заново
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

AlexWorkStream

Если, можно, то поподробнее. Про состояние строки, я так понял надо указывать явно название формы и название поля со строкой. Но можно ли сделать универсальный метод, чтобы подходил для разных форм?

economist

А зачем вы делаете релоад? Его задача - сбросить и забыть всё.

Если вам нужно другое - используйте другие методы.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

AlexWorkStream

Цитата: economist от 21 июня 2024, 13:37А зачем вы делаете релоад?
Я в этом не сильно разбираюсь, но задача такая, есть форма "Каталог" которая работает с одноименной таблицей. Там есть поля для внесения данных в таблицу. Также подгружена в данную форму и сама таблица. Некоторые поля заполняются через макрос и сохраняются в саму таблицу "Каталог". Именно после этих действий, в дополнительной таблице данные строки не отображаются пока не сделать обновление, но после данного обновления сбрасываются строка. Надеюсь, что-то понятно.

economist

Тут лишнее звено - макрос. Данные можно вводить в форму без макросов, если форму и табличные контролы XGRID правильно настроить. Кнопки для записи в Base есть готовые, нужно просто настроить их свойства.

Ему, видимо, поручена доп работа (напр исправлять ошибки или переводит штуки в килограммы).

Если макрос неизбежен - нужно его дописать. Например чтобы он без сброса просто прокручивал курсор таблицы (очень важное понятие в формах) к только что сделанной записи.

Можно делать релоад не всей формы, а только XGRID таблицы, или просто делать в ней сортировку. Лечение по фотографии невозможно без самой фотографии...
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...