27.09.2006, 14:43 | #1 |
Участник
|
вычисляемое поле
подскажите где (в таблице или форме лучше) и какие методы нужно перекрывать, или вообще как сделать следующее:
есть таблица RHRMVirtualNetwordViolation (взыскание), в эту таблицу будем вносить не только взыскания, а так же и приказы снятия взысканий, т.е. в этой таблице создаю поле hrmViolationId, это есть ссылка на recid записи в этой же таблице которая является взысканием и то что hrmViolationId!=0 => означает что это документ снятия взыскания. Теперь хочу в форме взыскания RHRMVirtualNetwordViolation (по-моемУ форма взыскания/снятия) добавить поле-ссылку, но которая отображала бы не id записи а текст (типа rHRMVirtualNetworkViolation.violationOrder + ' от ' +date2str(rHRMVirtualNetworkViolation.OrderDate,123,2,4,2,4,4)), а также для ввода нужного значения в данное поле нужно чтоб вываливался выпадающий список который отображался так же в таком же формате (rHRMVirtualNetworkViolation.violationOrder + ' от ' +date2str(rHRMVirtualNetworkViolation.OrderDate,123,2,4,2,4,4)), а в поле таблицы нужно хранить recid. |
|
27.09.2006, 14:47 | #2 |
Moderator
|
display - метод?
|
|
27.09.2006, 14:48 | #3 |
Участник
|
Посмотрите на реализацию Контанктных лиц.
\Data Dictionary\Tables\CustTable\Methods\editContactPersonName и на форма соответственно CustTable |
|
27.09.2006, 14:52 | #4 |
Участник
|
да, забыл дописать, в выпадающем списке, который отображается при вводе значения в поле, данные фильтруются, выдаются не все записи из RHRMVirtualNetwordViolation, а только те у которых hrmViolationId==0 && RHRMVirtualNetwordViolation.hrmVirtualNetworkId == this.hrmVirtualNetworkId (т..е нужен только текущий юзер), ну еще наврена нада будет смотреть чтобы не брались те записи которые уже использовались, т.е. &&RHRMVirtualNetwordViolation.recid!=this.hrmViolationId.
|
|
27.09.2006, 14:57 | #5 |
Участник
|
+, помимо самого написания edit-метода, необходимо будет еще писать лукап форму к нему (форму в АОТ, если не хотите заморачиваться с выводимым полем)
или же использовать SysTableLookup_RU или что-то такое (это улучшенная версия SysTableLookup, которая позволяет в лукапе выводить помимо полей таблицы еще и display методы) - была где-то в проектах, но ссылку не нашел. |
|
27.09.2006, 17:14 | #6 |
Участник
|
Цитата:
|
|
27.09.2006, 17:24 | #7 |
Участник
|
Оно самое
|
|
28.09.2006, 08:53 | #8 |
Участник
|
чета никак не могу допереть как в перекрываемом методе лукап мне получить значения текущей записи (записи датасорса на форме), т..е лукап должен вываливать ту же таблицу которая на датасорсе формы, но отфильтрованная, отображатся должны взыскания которые касаются текущего сотрудника (текущее значение hrmVirtualNetworkId). Какой функцией могу получить значения датасорса?
Спасибо. |
|
28.09.2006, 10:25 | #9 |
Moderator
|
Текущую запись получать как обычно, через курсор (через ссылку <имя_источника_данных> или <имя_источника_данных>_DS.cursor() ). А потом уже использовать данные для наложения фильтра, модифицируя запрос (SysTableLookup.parmQuery))
__________________
Андрей. |
|