|
![]() |
#1 |
Участник
|
Цитата:
![]() |
|
![]() |
#2 |
Ищущий знания...
|
Читал, читал ветку, и решил сюда же запостить пожелание о том, что бы была возможность перейти к основной таблице из поля диалога, который был создан с помощью класса Dialog. Это конечно мелочь, но иногда очень этого не хватает.
![]() Ну конечно проверять на основе какого EDT (и вообще на его ли основе) создано поле в диалоге, и если у этого EDT есть Relation (ну или заполнено свойство HelpForm), то дать возможность перейти к основной таблице.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#3 |
Участник
|
Цитата:
![]() Цитата:
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
![]() |
#4 |
Administrator
|
Цитата:
Цитата:
Сообщение от lev
![]() Читал, читал ветку, и решил сюда же запостить пожелание о том, что бы была возможность перейти к основной таблице из поля диалога, который был создан с помощью класса Dialog. Это конечно мелочь, но иногда очень этого не хватает.
![]() Ну конечно проверять на основе какого EDT (и вообще на его ли основе) создано поле в диалоге, и если у этого EDT есть Relation (ну или заполнено свойство HelpForm), то дать возможность перейти к основной таблице. ![]() Цитата:
![]() Цитата:
Сообщение от Pustik
![]() А чего тут думать-то у display-метода есть EDT, который он возвращает.У EDT relation.Определили таблицу.Смотрим свойство FormRef у соответствующей таблицы, если FormRef пустой тогда вот-так Работа с Lookup.Определили форму.Итак нашли и таблицу и форму - все нужные нам объекты. Дальше определяем права у этих объектов в таблице настройки прав стандартным образом. Думаю если найдены объекты с правами не должно быть проблем.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
![]() |
#5 |
Участник
|
Одним словом, feedback taken - я обсужу, создам баг, а как будут новости, расскажу
|
|
|
За это сообщение автора поблагодарили: macklakov (2), sukhanchik (5), lev (2), S.Kuskov (3), imir (2). |
![]() |
#6 |
Мрачный тип
|
Мы пользуем дописанную функцию в классе Global - и для display/edit - методов, и для контролов, передавая в нее расширенный тип и значение
X++: static void makeJump(int _typeId, Anytype _id) { SysDictType dictType; SysDictRelation typeRelation; TableId relationTable; FieldId relationField; SysDictTable dictTable; Common record; str formRef; FormRun fr; Args args; ; dictType = new SysDictType(typeid2extendedTypeId(_typeId)); if(dictType) { typeRelation = dictType.relationObject(); relationTable = typeRelation.table(); relationField = typeRelation.lineExternTableValue(1); if(relationTable != 0) { dictTable = new SysDictTable(relationTable); if(dictTable) { formRef = dictTable.formRef(); if(formRef) { record = dictTable.makeRecord(); select record where record.(relationField) == _id; if(record) { args = new Args(formRef); args.record(record); fr = new FormRun(args); fr.init(); fr.run(); fr.wait(); } else throw error(strfmt('Для таблицы %1 не найдено значение поля %2 равное "%3"', tableid2name(relationTable), fieldid2name(relationTable, relationField), _id)); } else throw error(strfmt('Таблица %1 не имеет определенной в АОТ формы отображения', tableid2name(relationTable))); } else throw error(strfmt('У расширенного типа %1 в АОТ указана в качестве связанной несуществующая таблица с кодом %2', dictType.name(), relationTable)); } else throw error(strfmt('Расширенный тип %1 не имеет в АОТ указания на связанныую с ним таблицу', dictType.name())); } else throw error(strfmt('В системе отсуствует расширенный тип данных с кодом %1', _typeId)); }
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
|
За это сообщение автора поблагодарили: macklakov (5), Logger (5), lev (4), Krasher (1), S.Kuskov (5). |
![]() |
#7 |
Британский учённый
|
Все же обычно display\edit методы отображают неключевые данные, чаще расчетные. И привязать их наверняка просто невозможно. Но если нужно добавить переход к форме, то можно так:
Пример перехода к форме наменклатуры по значению из дисплейного метода. X++: public int showContextMenu(int _menuHandle) { Args args; FormRun formRun; int goto; int selection; PopupMenu popupMenu = PopupMenu::create(_menuHandle, this.hWnd()); ; popupMenu.insertBreak(); goto = popupMenu.insertItem("Go to form"); selection = popupMenu.draw(); switch (selection) { case goto: args = new Args(); args.name(formstr(InventTable)); args.record(InventTable::find(this.valueStr())); formRun = classFactory.formRunClass(args); formRun.init(); formRun.run(); return 0; default: return selection; } return selection; }
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (5). |
![]() |
#8 |
Участник
|
Уже обсуждалось на первой странице. В случае, когда данные не могут быть привязаны к какой-либо "основной таблице", то и расширенный тип даных для отображения/ввода таких данных логично использовать без relation'а. По поводу таких случаев вопросов нет. Вопрос, поднятый в этой теме, касается других случаев, когда для создания display/edit методов программист осознано выбирает расширенный тип данных связанный relation'ом с определённой "осовной таблицей". В таких случаях можно было бы и реализовать возможность перехода к основной таблице. И совсем не нужно анализировать содержащееся в контроле значение, для определения направления перехода. Направление перехода изначально предопределено relation'ом на ExtendedDataType.
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|