26.05.2005, 18:47 | #1 |
1C
|
Проблемка с лукапом
Добрый день! прошу помочь...
Ради быстрого поиска в справочнике номенклатуры и заполнения закупок необходимо создать такую фишку: в закупке кнопка "подбор" при нажатии на кнопку 1. открывается лукап 2. пользователь выбирает нужную номенклатуру, жмет ентер 3. система выдает окошко для ввода количества 4. пользователь вводит, жмет ентер 5. снова к п.1 ... и так пока в п.4 не нажмем отмену... делается примерно следующее PurchLine_ds.create(); FR = New FormRun(New Args("InventTableLookup")); FR.Init(); PurchLine_ItemId.PerformFormLookup(FR); (цикла пока нет - просто для проверки) так вот - лукап открывается и сразу же закрывается с выбором первой же строки... еще желательно чтобы форма лукапа при этом не закрывалась совсем для последующего выбора, например, нескольких строк подряд... альтернативой могла бы быть форма в которой возможен поиск прямым набором (без лукапа). Но как это сделать без зверских ухищрений? |
|
26.05.2005, 19:01 | #2 |
Участник
|
Re: Проблемка с лукапом
Цитата:
Изначально опубликовано andy239
Ради быстрого поиска в справочнике номенклатуры и заполнения закупок необходимо создать такую фишку: Скорее всего, программировать не надо. |
|
26.05.2005, 19:02 | #3 |
Участник
|
а если попробовать вместо performFormLookup сделать FR.wait() и закрывать форму уже при каких-то действиях на форме лукапа?
|
|
26.05.2005, 19:04 | #4 |
Участник
|
Уважаемые, погодите советовать программирование.
Потом andy239 будет спрашивать про выбор склада, гтд, цвета и прочей складской аналитике. Потом он будет спрашивать как получить остатки и затолкать их в лукап... Давайте попробуем использовать стандартный функционал... |
|
26.05.2005, 19:06 | #5 |
Участник
|
да, возможно поспешил с ответом.
просто был конкретный вопрос по коду. Но, конечно, лучше использовать стандартный функционал |
|
27.05.2005, 09:58 | #6 |
1C
|
зачем это нужно + возможное решение
всем спасибо
стандартный функционал не подходит из-за того что не обеспечивает должной скорость ввода закупок... слишком много лишних нажатий. нужно обеспечить минимум нажатий: первые буквы наименования - ентер - количество - ентер и т.д. по циклу похоже в этом деле помогает свойство SearchMode - именно оно обеспечивает поиск при наборе, который может помочь в ентом деле. Лукап тогда просто не нужен остатки в лукап не нужны, это же закупки...да и проблем с тем как их запихать у меня нет а вот почему все-таки лукап закрывается - непонятно... |
|
08.08.2007, 14:21 | #7 |
Участник
|
Сталкнулся с такой же проблемой. Лукап сам закрывается. Причём если перезайду, то он снова работает как надо до поры до времени. Причём это пора наступает очень скоро. Перекрываю метод close на форме, являющейся лукапом.
Вижу. \Forms\InventSumForSerial\Methods\close - line 3 \Classes\FormRun\closeOk \Classes\FormRun\closeSelect Мож кто-то сталкивался. |
|
08.08.2007, 14:26 | #8 |
Участник
|
Вот так вызываю
X++: public void lookup(FormControl _formControl, str _filterStr) { InventSum inventSum; InventDim inventDim; FormRun fr; ; fr = new FormRun(new Args(formStr(InventSumForSerial))); fr.init(); this.performFormLookup(fr, _formControl); fr.wait(); inventSum = fr.dataSource(1).cursor(); moveJournalLine.ItemId = inventSum.ItemId; inventDim = inventSum.inventDim(); moveJournalLine.InventSerialId = inventDim.inventSerialId; moveJournalLine_ds.refresh(); } X++: public void lookup(FormControl _formControl, str _filterStr) { InventSum inventSum; InventDim inventDim; FormRun fr; ; fr = new FormRun(new Args(formStr(InventSumForSerial))); fr.init(); this.performFormLookup(fr, _formControl); } Последний раз редактировалось miklenew; 08.08.2007 в 14:30. |
|
08.08.2007, 16:29 | #9 |
Участник
|
Нашёл. Свойство WindowsType на design-е надо ставить popup, а не Standart.
|
|
08.08.2007, 16:31 | #10 |
Banned
|
Весь этот код какой-то абсолютно кривой. По крайней мере, параметры из lookup формы так никогда не извлекаются. Рекомендую взять одну готовую форму (AssetDepBookConsumptionLookup, например) и перестоить ее под ваши нужды. Есть еще мой собственный (довольно сложный) пример формы, которая по моим ощущениям делат что-то похожее на ваш проект. Могу выложить.
|
|
08.08.2007, 16:33 | #11 |
Участник
|
Выкладывай конечно, зачем спрашивать.
|
|
08.08.2007, 16:51 | #12 |
Banned
|
Как скажете. Идея такова:
одно складское измерение в группе скл. аналитики объявляется как "уникальное" (максимально селективное, полностью описывающее партию товара на складе). Для одного материала это может быть серийный номер, для другого - палета или номер партии. Форма показывает наличные запасы по нескольким материалам из производственной спецификации. Из-за того, что номенклатура и "уникальная" аналитика меняется от группе к группе, строится временная таблица в методе SPPJmgMountParmTable.lookupUniqueDimBuffer(). Значение выбранной уникальной аналитики по выходе из лукапа вновь пропускается через этот метод, который на этот раз восстанавливает все остальные аналитики и номер номенклатуры.Все это делается для того, чтобы сканером заполнить все поля производственного журнала по одному номеру - серийному номеру с этикетки. SharedProject_InventOnhandLookupWithAUniqueInventDim.xpo Код написан для 4.0 и компилироваться не будет. |
|
08.08.2007, 17:24 | #13 |
Участник
|
Цитата:
Сообщение от EVGL
Весь этот код какой-то абсолютно кривой. По крайней мере, параметры из lookup формы так никогда не извлекаются. Рекомендую взять одну готовую форму (AssetDepBookConsumptionLookup, например) и перестоить ее под ваши нужды. Есть еще мой собственный (довольно сложный) пример формы, которая по моим ощущениям делат что-то похожее на ваш проект. Могу выложить.
|
|
08.08.2007, 18:32 | #14 |
SAP
|
Цитата:
стандартный функционал не подходит из-за того что не обеспечивает должной скорость ввода закупок... слишком много лишних нажатий.
|
|
08.08.2007, 19:30 | #15 |
Участник
|
Цитата:
Но если я правильно понял описание, то Вы заполняете много полей, выбирая в лукапе одно (строку). так вот я с другой стороны шел. обращениями к вызывающей форме заполнял требуемые поля из метода closeSelect. (в нем я знаю конкретную строку, выбранную в лукап-форме). Таким образом работает у нас лукап склада для транзита. Выбираем 1 склад, а заполняются 3. Хотя может и изврат |
|