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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.11.2010, 16:44   #1  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от Gustav Посмотреть сообщение
Мне кажется, это не совсем тот случай, когда надо экономить на коде. ..... Зато два поля вы можете поместить в разные поля отчета, сделав его гораздо гибче, чем всё в одном "флаконе", к тому же с избыточным словом "Номенклатура"...
Возможно Вы правы, но взгляните на подсказку на форме проводок номенклатурного справочника, там такого кода без использования tool..... будет значительно больше. И разумеется я никому не навязываю свое мнение.
__________________
Александр
За это сообщение автора поблагодарили: Gustav (2).
Старый 24.11.2010, 20:11   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от tolstjak Посмотреть сообщение
Посмотрите на подсказку на форме проводок номенклатурного справочника, когда курсор подводите с полю в столбце Код.
Цитата:
Сообщение от tolstjak Посмотреть сообщение
...там такого кода без использования tool..... будет значительно больше
Взглянул. Интересно, спасибо. Не понял, как делается - в super toolTip'а не пустили, а также как этим можно просто воспользоваться, например, в отчете? Не из формы же читать всякий раз... Хотя чисто технически возможно:
X++:
static void Job_ToolTipViaFormControl(Args _args)
{
    Args            args;
    FormRun         formRun;
    InventTrans     inventTrans;
    ;

    inventTrans.clear();

    // последовательно раскомментируем записи по одной и позапускаем
    select firstonly inventTrans where inventTrans.TransType == InventTransType::Purch;
    //select firstonly inventTrans where inventTrans.TransType == InventTransType::InventTransaction;
    //select firstonly inventTrans where inventTrans.TransType == InventTransType::InventTransfer;

    args = new Args(formstr(InventTrans));
    args.record(inventTrans);

    formRun = classFactory.formRunClass(args);
    formRun.init();
    //formRun.design().visible(false);  // раскомментируй для невидимости формы
    formRun.run();

    box::info(formRun.design().controlName('InventTrans_TransRefId').toolTip());

    formRun.wait();     // ЗАкомментируй для невидимости формы
    //formRun.close();  // раскомментируй для невидимости формы
}
Попробовал исполнить по аналогии - что-то получилось, привожу ниже. В switch прописал только те типы движения, которые встречаются у нас в системе. При желании список легко расширяется.
X++:
static void Job_ToolTipImitation(Args _args)
{
    // имитация текста всплывающей подсказки на поле Код в форме складских проводок

    InventTrans inventTrans;
    Common      common;
    str         ourToolTipText;
    DictTable   dictTable;
    ;

    // последовательно раскомментируем записи по одной и позапускаем
    select firstonly inventTrans where inventTrans.TransType == InventTransType::Purch;
    //select firstonly inventTrans where inventTrans.TransType == InventTransType::InventTransaction;
    //select firstonly inventTrans where inventTrans.TransType == InventTransType::InventTransfer;

    switch (inventTrans.TransType)
    {
        case InventTransType::Purch : // Закупка
            common = PurchTable::find(inventTrans.TransRefId);
            break;

        case InventTransType::InventTransaction : // Проводка
        case InventTransType::InventTransfer    : // Перенос
            common = InventJournalTable::find(inventTrans.TransRefId);
            break;

        default:
            box::stop('Непредусмотренный случай.');
            return;
    }

    // создадим через strFmt нашу собственную подсказку
    dictTable = new DictTable(common.TableId);
    ourToolTipText = strFmt('%1: %2, %3',
                        new DictField(common.TableId, dictTable.titleField1()).label(), // Закупка   // Журнал
                        common.(dictTable.titleField1()),                               // PurchId   // JournalId
                        common.(dictTable.titleField2()));                              // PurchName // Description

    // для сравнения отобразим обе версии подсказки друг под другом
    box::info(strFmt('%1\n%2', common.toolTipRecord(),  // фирменная
                               ourToolTipText ));       // самопальная
В общем, кода - не смертельное количество. Хотя и не 2 строки
Старый 24.11.2010, 20:46   #3  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от Gustav Посмотреть сообщение
Взглянул. Интересно, спасибо. Не понял, как делается - в super toolTip'а не пустили, а также как этим можно просто воспользоваться, например, в отчете? Не из формы же читать всякий раз... Хотя чисто технически возможно:
Не надо так сложно
Есть метод ToolTipField()
X++:
...
select firstonly inventTrans where inventTrans.TransType == InventTransType::Purch;
info(inventTrans.ToolTipField(fieldNum(InventTrans, TransRefId)));
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Gustav (6).
Старый 24.11.2010, 21:06   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от AndyD Посмотреть сообщение
Не надо так сложно
Есть метод ToolTipField()
X++:
...
select firstonly inventTrans where inventTrans.TransType == InventTransType::Purch;
info(inventTrans.ToolTipField(fieldNum(InventTrans, TransRefId)));
Да уж...И в этом случае tolstjak абсолютно прав, и проще разобрать на две колонки текст столь легко полученного toolTip'а, чем сначала определять, из какой же таблицы надо получить 2 поля...
В общем, I'm impressed!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Планирование номенклатуры с типом Основное средство AlexeyBP DAX: Функционал 19 29.01.2009 07:42
класс InventSumDateValueReportDim Физические запасы? Poleax DAX: Программирование 12 01.07.2008 15:27
Проблема с передачей контролов из формы в класс matew DAX: Программирование 0 28.04.2008 17:37
Не могу изменить название номенклатуры slava09 DAX: Функционал 14 21.03.2007 18:01
Конфигуратор продуции - создание новой номенклатуры против создания новой конфигураци OliaM DAX: Функционал 6 15.04.2005 20:11
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:49.