Оптимизировать метод отображения

В форме, подобной 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 в параметре атрибута кэша, потому что номер журнала не изменяется для транзакций в большинстве случаев.

Другие вопросы по тегам