09.03.2006, 22:40 | #1 |
Участник
|
Здравствуйте!
1. Объясните, пожалуйста, функциональность, назначение объктов, относящихся к "Должностные лица"; 2. как на форме выводить, по-умолчанию, две строки, как на вкладке "Разное"... |
|
10.03.2006, 12:30 | #2 |
Участник
|
Быстрый пример: В отчете "Накладная" по заказу поля "Груз принял", "Груз получил" будут заполнены соответствующими значениями формы "Должностные лица" (если вы, конечно, не поменяли их в момент обработка в форме "Разноска накладной", закладка "Должностные лица"). Данная информация на момент обработки документов запоминается и хранится, давая возможность распечатать документ за любую дату в прошлом с корректными на тот момент данными. (Ведь человек, ответственный за приемку груза год назад мог уволиться, сменить должность, и т.д.).
На счет "двух строк" не совсем понятно. При переключении между закладками в верхней части формы OfficialsTable_RU обновляется Query, в связи с этим в Grid'е появляется то или иное количество строк. Обратите внимание на метод "executeQuery". |
|
15.03.2006, 11:57 | #3 |
Участник
|
Помогите разобраться:
* Построила отношение на таблице OfficialsTable_RU OfficialsTable_RU.ReportType==0; OfficialsTable_RU.CustVendCode==1; OfficialsTable_RU.CustVendRelation==MyTable.AccountNum; * В класс OfficialsServ_RU добавила новый метод: public void initMyTable() { if (! OfficialsServ_RU::isFeatureEnabled()) return; reportType = OffReportType_RU::General; this.insertOrUpdate(OffPosition_RU:irector, reportType, _account); this.insertOrUpdate(OffPosition_RU::Accountant, reportType, _account, OffTableAll_RU::All); }; * Добавляю метод формы: void initOfficialsDefault() { if (OfficialsServ_RU::isFeatureEnabled()) { offServ = new OfficialsServ_RU(); OfficialsTrans_RU::deleteWithoutUpdate(offSessionID); select count(RecId) from officialTrans where officialTrans.OffSessionId == offSessionId; if ( ! officialTrans.RecId) offServ.initTableWarrant(); offSessionId = offSessionId ? offSessionId : offServ.newId(); OfficialsTable_ds.executeQuery(); } } * Перекрываю методы DS OfficialsTable_RU: public void init() { super(); element.initOfficialsDefault(); } public void executeQuery() { if (offServ) element.searchAccountIdx(OfficialsTable, OffReportType_RU::General); super(); } В результате в форме должно выводиться две строки, но этого не происходит. В чем ошибка? |
|
16.03.2006, 08:02 | #4 |
Участник
|
Разберитесь с тем, что все-таки хотите сделать. Сейчас из Вашего сообщения это понять сложно. Давайте задачу в общем виде.
Вам необходимо в _своей_ форме иметь возможность редактировать должностных лиц? Тогда нужно работать с OfficialsTrans_RU - ваш метод initMyTable занимается именно этим. Дальше. Relation построен неправильно: создайте новый элемент в Enum OffReportType_RU (пишу по памяти), его код укажите в relation OfficialsTable_RU.ReportType = x (сейчас на месте x у вас ноль). Построение Relations имеет смысл только в том случае, если есть небходимость в форме "Должностные лица" указывать людей, отличных от тех, что находятся на закладке "разное" (какие-то специфические должности, необходимые только в рамках вашей таблицы/сущности MyTable). Дальше... в общем, ройте в сторону класса OfficialsPositionLookupEngine_RU. |
|