|
17.06.2005, 16:51 | #1 |
Участник
|
Можно сделать lookup по полю типа Base Enum?
Задача заключается в том чтобы уменьшить количество полей в выпадающем списке типа Base Enum. Можно сделать lookup по полю типа Base Enum?
|
|
22.09.2017, 13:51 | #2 |
Участник
|
https://community.dynamics.com/ax/b/...n-time-ax-2012
Извиняюсь, если не увидел повторы. Но этого способа вроде бы нигде в смежных темах не встретил. Если линк умрёт, просто оставлю здесь кусок кода на память... Метод enter() контрола, у которого нужно укоротить лукап, путём скрытия элементов. Работает на гридах и с полями, типа BaseEnum без необходимости подмены поля edit-методом и дальнейшими танцами вокруг перекрытия lookup() .... X++: public void enter() { super(); this.delete(enum2str(BankDocumentType::LetterOfGuarantee)); this.delete(enum2str(BankDocumentType::ImportCollection)); } |
|
|
За это сообщение автора поблагодарили: Jorj (1), olesh (1), trud (5), Weez (2), Ace of Database (3), Zabr (5), miaa (1), Dynamics365Eng (1). |
02.10.2017, 12:47 | #3 |
Участник
|
Цитата:
https://community.dynamics.com/ax/b/...n-time-ax-2012
Извиняюсь, если не увидел повторы. Но этого способа вроде бы нигде в смежных темах не встретил. Если линк умрёт, просто оставлю здесь кусок кода на память... Метод enter() контрола, у которого нужно укоротить лукап, путём скрытия элементов. Работает на гридах и с полями, типа BaseEnum без необходимости подмены поля edit-методом и дальнейшими танцами вокруг перекрытия lookup() .... А вот если выдернуть значение из середины например LetterOfCredit (enumValue = 1), то при выборе значения начинаются чудеса. Происходит сдвиг и при выборе например LetterOfGuarantee (enumValue = 2) на деле выбирается значение 1, а при выборе ImportCollection (3) выбирается значение 2. Имхо, вышеприведенный метод нужно использовать аккуратно, а лучше совсем не использовать |
|
02.10.2017, 14:10 | #4 |
Участник
|
Соглашусь отчасти. Если элементы с конца - всё идеально. и никакой доработки не нужно вообще. Почему бы и не использовать?
Если элемент один (или группа элементов подряд) посреди списка, наверное всё ещё имеет смысл - в gotFocus() подменить this.setEditText() и в modified() записывать в поле всё со сдвигом с нужного элемента. Ну а если писать что-то универсальное на любое количество элементов в любом месте списка - то тут соглашусь - лучше не надо... |
|
02.10.2017, 14:40 | #5 |
Участник
|
Цитата:
Ну а насчет перекрыть и подправить... Оно конечно можно, но это опять же с бубном плясать. |
|
03.10.2017, 07:00 | #6 |
Участник
|
На форме можно сделать стандартными средствами, обсуждалось несколько позже начала данного топика.
Есть класс SysFormEnumComboBox: X++: /// The class facilitates work with a form combobox control, representing an enum, /// when only some of the enum values are allowed. |
|
|
За это сообщение автора поблагодарили: trud (6). |
Теги |
baseenum, lookup filter, шаманство |
|
|