AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.11.2013, 08:47   #1  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Можно ли в string-контроле с выпадающим списком настроить множественность выбора?
Добрый день!
Вопрос, в принципе, в заголовке. Нужно, чтобы у стрингового поля, имеющего через EDT relation с какой-либо таблицей, можно было из выпадающего списка выбирать значение и прибавлять к уже ранее выбранным через запятую/точку с запятой. К примеру, есть

CustTable - таблица контрагентов
MyCustAccount - мой EDT, связанный с CustTable.CustAccount
CustAccountControl - контрол на форме.

Вот. Нужно чтобы, в CustAccountControl содержалось что-то типа
Cust1, Cust2, Cust3

MS DAX 2009
Старый 08.11.2013, 09:12   #2  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Смотря где - разные методы. На форме проще, в диалоге сложнее.
Надо lookup перекрывать и там и там и у поля ставить опр. свойства.
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!
Старый 08.11.2013, 09:12   #3  
andrewK is offline
andrewK
Участник
 
45 / 22 (1) +++
Регистрация: 03.11.2005
Можно попробовать свойство ReplaceOnLookup на контроле формы установить в No.
Тогда можно добавлять выбранные значения из лукапа.

Последний раз редактировалось andrewK; 08.11.2013 в 09:15.
За это сообщение автора поблагодарили: Vasiliusis (1).
Старый 08.11.2013, 09:15   #4  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Меня тоже интересует, но Dialog
Старый 08.11.2013, 09:18   #5  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Более сложный вариант, со своим лукапом.
Ваша проблема в 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  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Еще такой вопрос: как получить значение, которое было выбрано с помощью лукапа?
Старый 08.11.2013, 11:03   #7  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
И еще один: как в контроле переместить курсор ввода на конец введенной строки?
пока кроме
X++:
this.setSelection(strlen(this.text()), strlen(this.text()))
ничего не нашел...
Старый 10.02.2014, 13:34   #8  
kvg6 is offline
kvg6
program-ёр
Аватар для kvg6
1C
 
160 / 81 (3) ++++
Регистрация: 27.09.2005
Адрес: Moscow forever
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  
AvrDen is offline
AvrDen
Участник
 
134 / 26 (1) +++
Регистрация: 04.08.2005
Адрес: Усть-Каменогорск
Добрый день. А кто-нибудь делал подобный пример, только на основе BaseEnum, т.е. надо в dialog получить например список Типов операций InventTransType?
Старый 21.12.2015, 19:42   #10  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Для энума логичнее использовать группу чекбоксов.

Если принципиально нужно поле с раскрывающимся списком, то я бы смотрел в сторону лукапа по временной таблице.
Старый 21.12.2015, 20:52   #11  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Или ListView со свойством CheckBox = Yes
Старый 21.12.2015, 22:39   #12  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
AX2012: \Classes\SysLookupMultiSelect
e.g. http://www.dynamics101.com/2014/11/u...amics-ax-2012/

Последний раз редактировалось DSPIC; 21.12.2015 в 22:42.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как выгрузить конфигурацию ВСЕГО сервера АХ. Чтобы потом можно было ее использовать на другом сервере(другой компанией) bogdan737 DAX: Администрирование 2 20.05.2013 11:06
Неужели в AX 2009 можно отключить для Оракла функциональные индексы? gl00mie DAX: Администрирование 18 24.11.2011 09:46
axforum blogs: Можно ли снизить стоимость внедрения ERP-системы? Blog bot DAX Blogs 0 11.02.2011 15:11
Как настроить НДС Sergioso DAX: Функционал 8 18.01.2005 16:10
Можно ли настроить доступ по складам? Rafael DAX: Функционал 4 12.02.2002 16:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:15.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.