Одна browse много update form
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 1702
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Одна browse много update form
Таблица с таб-ами, в зависимости от таб-а и нажатии клавиши Update должна вызваться "нужная" Update Form.
В стандартной Browse нет возможности вклинится в execute для подстановки своих Update Form, решение только с помощью OMIT ?
В стандартной Browse нет возможности вклинится в execute для подстановки своих Update Form, решение только с помощью OMIT ?
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Одна browse много update form
1 вариант. Напиши Update-процедуру типа Source, которая вызывает ту или иную форму, в зависимости от...
2 вариант - создать совсем пустую процедуру Dummy, которая вообще ничего не делает, поставить её в качестве формы обновления, а потом взглянуть в код и до/после вызова Dummy вставить выбор той или иной формы.
Вот, нашёл в работающем коде, нужно было вызвать процедуру testeditor или ScreenEditor в зависимости от типа записи
2 вариант - создать совсем пустую процедуру Dummy, которая вообще ничего не делает, поставить её в качестве формы обновления, а потом взглянуть в код и до/после вызова Dummy вставить выбор той или иной формы.
Вот, нашёл в работающем коде, нужно было вызвать процедуру testeditor или ScreenEditor в зависимости от типа записи
Код: Выделить всё
ThisWindow.Run PROCEDURE(USHORT Number,BYTE Request)
ReturnValue BYTE,AUTO
CODE
ReturnValue = PARENT.Run(Number,Request)
!-- Это я вставил
IF SELF.Request = ViewRecord
ReturnValue = RequestCancelled ! Always return RequestCancelled if the form was opened in ViewRecord mode
ELSE
GlobalRequest = Request
IF Loc:ScreenType = 'T'
TestEditor(1)
ELSE
ScreenEditor(1)
END
ReturnValue = GlobalResponse
END
RETURN ReturnValue
!--- А это сгенерировано
IF SELF.Request = ViewRecord
ReturnValue = RequestCancelled ! Always return RequestCancelled if the form was opened in ViewRecord mode
ELSE
GlobalRequest = Request
Dummy
ReturnValue = GlobalResponse
END
RETURN ReturnValue
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Одна browse много update form
А зачем разные Update Form? Разные таблицы/файлы редактируются? Временное решение какое-то?
Было дело, я форму рисовал с несколькими закладками (активные/не активные в зависимости от условий).
А вообще метод Run для разных хитрых штук с Update Form.
А в десятке ещё заложена возможность по условию делать Update Form или EIP.
Было дело, я форму рисовал с несколькими закладками (активные/не активные в зависимости от условий).
А вообще метод Run для разных хитрых штук с Update Form.
А в десятке ещё заложена возможность по условию делать Update Form или EIP.
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 1702
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Одна browse много update form
Спасибо Yufil, я так и вставляю с помощью OMIT , думал еще есть решение кроме этого
В зависимости от условий, наличие и скрытие дополнительных таб-ов в форме не выход, одна Update форма на два поля, другая на пол-экрана и потом использовать раздельные Update формы в зависимости от условий проще.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Одна browse много update form
Как вариант, два поля можно в EIP редактировать. Это в шаблонах предусмотрено. Как раз, может, для таких случаев. И логика вроде бы в этом есть - зачем открывать тяжёлую форму для редактирования пары-тройки полей.
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 1702
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Одна browse много update form
я два поля для примера привел , а например форма для перемещения и форма для розничной продажи, + форму для продажи через штрих код, + форму для планшета и т.д....
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Одна browse много update form
Тогда самый простой вариант - сделать Update Procedure типа Source и передать ей параметр каким-то образом (если шаблон допускает, то напрямую, если нет - через какую-то глобальную переменную)
И никаких игрищ с OMIT
Код: Выделить всё
UpdateSourceProcedure PROCEDURE(...)
Code
CASE UpdateType
OF 1
UpdateProcedure1()
OF 2
UpdateProcedure2()
....
RETURN
-
- ✯ Ветеран ✯
- Сообщения: 1702
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Одна browse много update form
Спасибо Yufil, попробую для сравнения
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Одна browse много update form
Я тоже через source процедуру делаю. В данном случае, без параметра, анализируется тип документа и вызывается соответствующая форма. А EIP вообще никогда не использую. Формы всякими шаблонами автоматически распознаются и навешивается разный функционал (логические блокировки, логирование, распределение прав доступа и т.п.). С EIP, наверно, тоже можно что-то придумать, но для единообразия не стал заморачиваться... Когда некоторые клиенты переходили с 1С, думал, будут роптать, там при редактировании документов раньше был только EIP. Нет, не роптали, быстро привыкли, им даже удобнее показалось. Единственная хитрость, когда жмыкают по колонке в броузе, форма открывается с автоматическим позиционированием на нужное поле. Это шаблоном соответствующим обеспечивается.
C6/C11, ШВС, tps/btrieve.