23.11.2005, 10:43 | #1 |
program-ёр
|
Значения по умолчанию
При добавлениии нового элемента номенклатуры есть необходимость в предварительной форме заполнить несколько полей (на основании выбранных значений потом генерируется код нового элемента). Хочется, чтобы значения некоторых полей формы уже стояли по умолчению.
Есть два варианта: 1. Использовании шаблона, но не все выбранные поля сохраняются в шаблоне. Какое свойство поля нужно включить? 2. Подставить значения полей при инициализации формы. Не получается. |
|
|
За это сообщение автора поблагодарили: Hidden (1). |
23.11.2005, 10:54 | #2 |
Участник
|
Мне кажется только программно, при создании сразу заполнять необходимые поля., по условию.
|
|
23.11.2005, 11:22 | #3 |
Moderator
|
Честно говоря не точно понял вопрос, понял что перед созданием новой номенклатуры должна появляться форма с возможностью выбора параметров, на основании которых будет та или иная инициализация записи номенклатуры.
Думаю, красивым решением будет использование потомка класса RunBase, в нем есть свой диалог в котором можно оперировать с параметрами -- инициализировать + использовать механизм упаковки/распаковки. Для удобства к диалогу можно прицепить свою форму. Пример: Класс и форма Tutorial_RunBaseForm |
|
23.11.2005, 11:40 | #4 |
Участник
|
можно на датасорсе формы перекрыть метод create(), в котором будет вызываться диалог с нужным набором. дальше, думаю, понятно
|
|
23.11.2005, 11:52 | #5 |
Модератор
|
Делал по-разному.
1) Вариант: сделайте таблицу первичных настроек (не прошивать же в код! ) и на методе initValue InventTable делаете инициализацию из этой таблицы. 2) Делайте мастер по созданию номенклатуры, с настройками. С Уважением, Георгий |
|
23.11.2005, 12:22 | #6 |
----------------
|
В 2.5 был хороший мастер по созданию номенклатуры. И был специальный флажок в карточке номенклатур Template, для того чтобы этот товар можно было использовать как шаблон... Но в 3.0 перешли к "универсальному" механизму шаблонов и отказались от мастера
|
|
23.11.2005, 17:12 | #7 |
program-ёр
|
Дело в том, что указанная форма уже создана сторонними программистами и мы ее теперь дорабатываем.
|
|
23.11.2005, 17:19 | #8 |
Участник
|
kvg6 главное, описать задачу как можно загадочнее, тогда отвечать на Ваш вопрос станет многократо интереснее. Это Вы правильно выдаете информацию маленькими порциями.
|
|
24.11.2005, 10:21 | #9 |
program-ёр
|
Критика - животное полезное.
Таким образом, есть некая форма. Заполнение полей на ней помогает сгенерировать код номенклатурной единицы. Хочется иметь значения по умолчанию для некоторых полей на этой форме. Для этого использовали шаблон. Однако в нем не сохранились все выбранные значения. Какое свойство поля таблицы номенклатуры нужно включить? |
|
24.11.2005, 16:58 | #10 |
Участник
|
Давайте с самого начала:
У вас есть 2 таблицы InventTable в которой хранится справочник номенклатуры и Ваша, с данными для шаблона. Когда происходит создание новой записи, открывается диалоговое окно, которое уже частично заполнено. Остальное Вы заполняете сами, и то что Вы заполняете не сожнаняется во второй Вашей таблице. Так? |
|
24.04.2006, 13:12 | #11 |
Участник
|
У меня похожая задача. Есть форма, на которой сотавляется код номенклатуры. На этой форме есть кнопочка "Создать". По задумке, после нажатия на эту кнопку вызывается форма InventTable и ей в качестве параментров передаются ItemId, itemName, NameAlias.
В init InventTable добавил: PHP код:
PHP код:
"Невозможно создать запись в 'Параметры модуля "Запасы"' ('InventTableModule') Номенклатура: Дж 111 арт. 02010, Склад. Запись уже существует. Невозможно считать запись из 'Параметры модуля "Запасы"' ('InventTableModule'). Запись удалена другим пользователем." Как реализовать задумку правильно? |
|
24.04.2006, 13:44 | #12 |
Участник
|
Все. Получилось. InventTable_ds.create() нельзя было вызывать из init формы, так как в super создается источник данных формы. Нужно было поместить это все в run после super.
|
|
25.05.2006, 17:35 | #13 |
program-ёр
|
Цитата:
Сообщение от Petruccio
У меня похожая задача
Речь о возможности первоначального заполнения (при инициализации) этих-самых полей значениями по-умолчанию. Т.е. при попытке пользователя добавить номенклатуру сначала появляется экранная форма, где значения некоторых полей InventTable уже заданы. Пользователь может перевыбрать эти значения и нажать ту-самую кнопку "Создать". На выходе имеем - сгенерированный ItemId
__________________
Становись лучше Последний раз редактировалось kvg6; 25.05.2006 в 18:16. |
|
25.05.2006, 17:57 | #14 |
SAP
|
Ну так задача тогда становится, еще проще, вставляем в метод insert() функцию котороя генирит имя и все дела.
|
|
25.05.2006, 18:17 | #15 |
program-ёр
|
Цитата:
Сообщение от konopello
Ну так задача тогда становится, еще проще, вставляем в метод insert() функцию котороя генирит имя и все дела.
Впрочем, я уже разобрался. Как подсказывал George Nordic, назначаем значения желаемых полей в методе initValue таблицы InventTable
__________________
Становись лучше Последний раз редактировалось kvg6; 26.05.2006 в 09:37. |
|
25.05.2006, 19:39 | #16 |
Участник
|
мне кажется проще пользовать шаблоны.
|
|
25.05.2006, 22:38 | #17 |
program-ёр
|
Цитата:
Сообщение от mit
мне кажется проще пользовать шаблоны.
__________________
Становись лучше |
|
26.05.2006, 11:26 | #18 |
Moderator
|
Цитата:
Сообщение от kvg6
1. Использовании шаблона, но не все выбранные поля сохраняются в шаблоне. Какое свойство поля нужно включить?
__________________
Андрей. |
|
26.05.2006, 12:42 | #19 |
program-ёр
|
Цитата:
Сообщение от Dron AKA andy
Какие именно поля из InventTable у вас не сохраняются?
__________________
Становись лучше |
|
26.05.2006, 14:32 | #20 |
Moderator
|
У нас прекрасно сохраняются добавленные нами поля, никаких свойств специально не ставилось. Может, у вас есть какие-то доработки классов SysRecordTemplate* ?
Посмотрите метод SysRecordTemplateStorage::packCommon(), там прекрасно видно, по какому принципу выбираются поля для сохранения в шаблоне.
__________________
Андрей. |
|
Теги |
шаблон |
|
|