08.11.2013, 08:47 | #1 |
Участник
|
Можно ли в string-контроле с выпадающим списком настроить множественность выбора?
Добрый день!
Вопрос, в принципе, в заголовке. Нужно, чтобы у стрингового поля, имеющего через EDT relation с какой-либо таблицей, можно было из выпадающего списка выбирать значение и прибавлять к уже ранее выбранным через запятую/точку с запятой. К примеру, есть CustTable - таблица контрагентов MyCustAccount - мой EDT, связанный с CustTable.CustAccount CustAccountControl - контрол на форме. Вот. Нужно чтобы, в CustAccountControl содержалось что-то типа Cust1, Cust2, Cust3 MS DAX 2009 |
|
08.11.2013, 09:12 | #2 |
Возьми свет!!!
|
Смотря где - разные методы. На форме проще, в диалоге сложнее.
Надо lookup перекрывать и там и там и у поля ставить опр. свойства.
__________________
Axapta 3.0 sp 5 Oracle Я могу взорвать вам мозг!!! |
|
08.11.2013, 09:12 | #3 |
Участник
|
Можно попробовать свойство ReplaceOnLookup на контроле формы установить в No.
Тогда можно добавлять выбранные значения из лукапа. Последний раз редактировалось andrewK; 08.11.2013 в 09:15. |
|
|
За это сообщение автора поблагодарили: Vasiliusis (1). |
08.11.2013, 09:15 | #4 |
Программатор
|
Меня тоже интересует, но Dialog
|
|
08.11.2013, 09:18 | #5 |
NavAx
|
Более сложный вариант, со своим лукапом.
Ваша проблема в fscInventLocationRange.replaceOnLookup(false); X++: public class myRunBase extends RunBase { DialogRunBase dialogRunBase; Range inventLocationRange; FormStringControl fscInventLocationRange; .... } DialogRunbase dialog(DialogRunbase dialog, boolean forceOnClient) { FormGroupControl fgc; dialogRunbase = super(dialog, forceOnClient); fgc = dialogRunBase.curFormGroup(); fscInventLocationRange = fgc.addControl(FormControlType::String, @"InventLocationRange"); fscInventLocationRange.extendedDataType(extendedTypeNum(InventLocationId)); fscInventLocationRange.text(inventLocationRange); fscInventLocationRange.replaceOnLookup(false); fscInventLocationRange.displayLength(50); fscInventLocationRange.limitText(250); ... } public void dialogPostRun(DialogRunbase _dialog) { if (_dialog.formRun()) { _dialog.formRun().controlMethodOverloadObject(this); _dialog.formRun().controlMethodOverload(true); fscInventLocationRange = _dialog.formRun().design().control(fscInventLocationRange.id()); } super(_dialog); } private void InventLocationRange_lookup() { SysTableLookup sysTableLookup; EmplTable emplTable = EmplTable::findByUserId_W(curuserid()); Query query = new Query(); QueryBuildDataSource queryBuildDataSource; ; if (!dialogRunbase) return; if (fscInventLocationRange) { sysTableLookup = SysTableLookup::newParameters(tableNum(InventLocation), fscInventLocationRange); queryBuildDataSource = query.addDataSource(tableNum(InventLocation)); if (emplTable.myInventSite) { queryBuildDataSource.addRange(fieldNum(InventLocation, InventSiteId)).value(queryValue(emplTable.myInventSite)); } sysTableLookup.addLookupfield(fieldNum(InventLocation, InventLocationId)); sysTableLookup.addLookupfield(fieldNum(InventLocation, Name)); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); } } |
|
|
За это сообщение автора поблагодарили: Sada (4), G.Menshikh (1), arhat (1), SuperStar88 (1). |
08.11.2013, 10:52 | #6 |
Участник
|
Еще такой вопрос: как получить значение, которое было выбрано с помощью лукапа?
|
|
08.11.2013, 11:03 | #7 |
Участник
|
И еще один: как в контроле переместить курсор ввода на конец введенной строки?
пока кроме X++: this.setSelection(strlen(this.text()), strlen(this.text())) |
|
10.02.2014, 13:34 | #8 |
program-ёр
|
X++: protected DialogRunBase dialog() { Dialog dlg; FormStringControl fsc; ; dlg = super(); dlgCustAccount = dlg.addFieldValue(typeId(CustAccount), custAccount); fsc = dlgCustAccount.control(); fsc.replaceOnLookup(false); return dlg; }
__________________
Становись лучше |
|
|
За это сообщение автора поблагодарили: MerkurievV (0). |
21.12.2015, 17:50 | #9 |
Участник
|
Добрый день. А кто-нибудь делал подобный пример, только на основе BaseEnum, т.е. надо в dialog получить например список Типов операций InventTransType?
|
|
21.12.2015, 19:42 | #10 |
Участник
|
Для энума логичнее использовать группу чекбоксов.
Если принципиально нужно поле с раскрывающимся списком, то я бы смотрел в сторону лукапа по временной таблице. |
|
21.12.2015, 20:52 | #11 |
Дмитрий Ерин
|
Или ListView со свойством CheckBox = Yes
|
|
21.12.2015, 22:39 | #12 |
Боец
|
AX2012: \Classes\SysLookupMultiSelect
e.g. http://www.dynamics101.com/2014/11/u...amics-ax-2012/ Последний раз редактировалось DSPIC; 21.12.2015 в 22:42. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|