Показать сообщение отдельно
Старый 15.01.2002, 13:30   #1  
sguryev is offline
sguryev
Участник
 
24 / 13 (1) ++
Регистрация: 07.12.2001
Адрес: Сергиев Посад
О фильтрации корр. счетов в кассовых ордерах.
При вводе ПКО корр. счет может быть указан любым из всего списка счетов. Понятно, что это может быть источником ошибок. Корр. счет надо выбрать из совокупности кассовых счетов.

Информацию о кассовых счетах можно брать из таблицы RCashAccounts, к сожалению там не указано название счета, поэтому понадобится еще таблица LedgerTable.

Теперь проблема, как сделать lookup форму с нужной информацией. Для этого переопределяем метод lookup в дизайне формы для соответствующего элемента (LedgerJournalTrans_OffsetAccount). Используем для вывода lookup формы класс SysTableLookup. Информацию берем из LedgerTable, ограничивая ее вывод с помощью Query создав иерархическую связь с RCashAccounts по номеру счета.

Вот код метода:
<pre>
<font color= blue>Void</font> lookup()
{
<font color= green>// {{ ----------------------------------------------------------------------- []
// HB, Гурьев Сергей, 04.01.2002

// Было до изменения все остальное добавлено
// ledgerJournalEngine.offsetAccountNumLookUp(this,ledgerJournalTrans);
</font>
Query query = <font color= blue>new</font> Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildDataSource queryBuildDataSource2;
SysTableLookup sysTableLookup;

;

<font color= green>// инициализируем sysTableLookup</font>
sysTableLookup = <font color= blue>new</font> SysTableLookup(<font color= blue>TableNum</font>(LedgerTable));
sysTableLookup.parmTableId(<font color= blue>TableNum</font>(LedgerTable));

sysTableLookup.addLookupfield(<font color= blue>fieldNum</font>(LedgerTable, AccountNum));
sysTableLookup.addLookupfield(<font color= blue>fieldNum</font>(LedgerTable, AccountName));

<font color= green>// создаем Query (ограничиваем счета счетами из RCashAccounts)</font>
queryBuildDataSource = query.addDataSource(<font color= blue>TableNum</font>(LedgerTable));
queryBuildDataSource.addSortField(<font color= blue>fieldNum</font>(LedgerTable, AccountNum));

queryBuildDataSource2 =
queryBuildDataSource.addDataSource(<font color= blue>TableNum</font>(RCashAccounts));

queryBuildDataSource2.addLink(<font color= blue>fieldNum</font>(LedgerTable, AccountNum),
<font color= blue>fieldNum</font>(RCashAccounts, AccountNum));

<font color= green>// подсоединяем созданый запрос к sysTableLookup</font>
sysTableLookup.parmQuery(query);

<font color= green>// вызываем lookup форму</font>
this.performFormLookup(sysTableLookup.formRun());

<font color= green>// }} ----------------------------------------------------------------------- []</font>
}
</pre>
__________________
Гурьев Сергей