Цитата:
Сообщение от
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 строки