Оптимизировать метод отображения
В форме, подобной LedgerJournalTransDaily, есть поле Txt, импортированное из LedgerJournalTrans. Используя JournalNum, мне нужно перейти к LedgerJournalTable и получить поле имени.
Я написал метод отображения следующим образом:
[SysClientCacheDataMethodAttribute(true)]
public display Name GetLedgerJournalTableName()
{
LedgerJournalTable ledgerJournalTable;
Name ret;
select firstFast firstOnly ledgerJournalTable
where ledgerJournalTable.JournalNum == this.JournalNum;
ret = ledgerJournalTable.Name;
return ret;
}
Если честно, я не уверен, достаточно ли это быстро или есть другой способ сделать это. Пожалуйста, дайте мне подсказку.
2 ответа
Если производительность является проблемой, вы можете попробовать добавить LedgerJournalTable
как источник данных только для чтения в форме с OnlyFetchActive = Yes
присоединяйся к LedgerJournalTrans
источник данных и добавить Name
поле нового источника данных для дизайна формы.
Но если в журналах нет сотен строк и проблем с производительностью пока нет, я бы выбрал метод отображения. Вы всегда можете изменить его позже, если это станет проблемой, и метод отображения менее инвазивен, чем новый источник данных.
Для дальнейшего чтения, посмотрите на Учебник: Методы отображения кэширования Ивана Кашперука.
Вы можете оптимизировать его, переместив выбранную деталь в метод статического сервера в таблице и когда вы выбираете определение полей, которые вам действительно нужны.
публичное статическое имя сервера getJourName... ... выберите имя из ledgerJournalTabel ...
А также вы можете установить false в параметре атрибута кэша, потому что номер журнала не изменяется для транзакций в большинстве случаев.