Страница 1 из 1

"Глубокое" Save Browse in Form

Добавлено: 13 Апрель 2007, 12:44
OVV
Ситуация:

Главная_Форма. На Главной_Форме есть Брауз_1 редактируемый Формой_1. На Форме_1 Брауз_2 редактируется Формой_2.
Надо, чтоб изменеия в обоих браузах сохранялись по OK на Главной_Форме.
На Браузе_1 стоит Save Browse in Form, на Форме_1 у SaveButton-а стоит Queue - все нормально. Настроив аналогично Брауз_2 и
Форму_2 нужного результата не получается, что вполне естественно.

Решил в очередь Брауза_1 включить класс, который бы хранил информацию Брауза_2.
Но у Брауза_1 несколько условий (Conditional Behavior) и чтобы его не перезагружать установлена галка Bufferin Browse Queue.


Возник вопрос:
Создавать класс вроде логично в методе FillQueue

Код: Выделить всё

BRW1:pMyCilds &= NEW MyCildsClass
А вот где делать DISPOSE ? Так, чтоб быть уверенным, что уничтожатся все созданные классы, а не только те, которые привязаны к записям выведенным на экран по текущему условию? Да и пробежаться при нажатии на ОК надо по всем классам, а не только по тем, которые видны в данный момент в Queue:Browse.

И вообще, может есть другой путь?

Добавлено: 17 Апрель 2007, 13:32
Andrew™
я так понимаю ты в конец List Queue поставил &СвойКласс, и на .FillQueue делаешь NEW - НЕПРПАВИЛЬНО

эту Queue ведёт Browse класс, и делает FREE внутри класса, и .FillQueue может вызываться на одну запись не один раз т к при редактировании записи происходит .FillQueue повторно, тебе надо сделать следующее

т к в ListQueue есть поля первичного ключа, создать свою очередь в Browse классе где будут поля первичного ключа + &Твой класс
тогда ты можешь нормально со своей очередью работать

а то что ситуация Browse-> Form + Browse -> Form + Browse -> From это нештатная ситуация - это да, шаблонных решений таких реализаций нет, хотя в одной задачке было что то похожее

как я решал:

Форма номер 1
создаю Queue типовую LIKE на таблицы Browse из формы номер два

в форму номер два передаю в качестве параметра эту Queue

по Ok я из Browse заливаю - синхронизирую queue из первой формы

по Ok в первой форме в транзакции сливаю эту Queue в БД