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

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
OVV
Бывалый
Сообщения: 58
Зарегистрирован: 21 Сентябрь 2005, 10:41
Откуда: Московская область

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

Сообщение 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.

И вообще, может есть другой путь?
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16: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 в БД
Ответить