14.10.2002, 10:27 | #1 |
Участник
|
Еще раз о связаных датасорсах
Проблема сия обсуждалась уже несколько раз, однако человеческого решения я найти так и не сумел .
Итак, обычная ситуация: В родительской таблмце есть ссылка на номенклатуру (клиента, поставщика и т.д.), хочется на форме родительской таблицы показать еще и название. использовать display-метод не хочется по понятным причинам. Делаю так: добавляю второй датасорс на форму, связываю его с родительским outerjoin'ом, помещаю поля на грид, все, вроде работает нормально. Однаок это обманчивое ощущение исчезает, когда пытаешься добавить запись. Система начинает ругаться, что не сзаполнено поле Номенклатура (клиент, поставщик и т.д.), то есть поле связи в дочерней таблице. Очевидно, при вставке записи Аксапта автоматически вставляет ее в ОБЕ связанные таблицы. Отсюда и проблемы. Пожалуйста, если кто знает, как это исправить, помогите! |
|
14.10.2002, 12:04 | #2 |
----------------
|
Например, можно в метод modified() на поле с кодом (ItemId или др.) добавить после super() какой-дь MyTable_ds.write()
PHP код:
|
|
14.10.2002, 13:07 | #3 |
Участник
|
Работает, но не очень хорошо...
Спасибо, этот способо жейстивтельно работает, однако не очень красиво. При вставке новой записи Аксапта запихтвает ее перед текущей. После выполнения research и findRecord созданная запись перемещается в конец. Хотя это можно и пережить...
Однако этот способ не работает для следующего случая. Для каждой таблицы можно задать необходимость системных полей created... и modified... Значения данных полей генерятся системой автоматически. Меня интересует поле createdBy, хочу отслеживать, кто какие журналы создавал. Но на форме хочу, чтобы выводились не логины, а нормальные имена пользователей. Делаю это стандартным вышеописанным образом (правда, приходиться еще добавлять явный Relation на поле createdBy, но это уже детали). Однако, поскольку поле заполняется системой, метод modified не вызывается. Соответственно получаем ту же самую ситуацию . Есть какие-нибудь мысли по этому поводу? |
|
14.10.2002, 16:21 | #4 |
Administrator
|
Re: Еще раз о связаных датасорсах
Цитата:
Изначально опубликовано Peter Savintsev
использовать display-метод не хочется по понятным причинам.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
15.10.2002, 04:24 | #5 |
Участник
|
Причины...
Невозможность поиска и фильтрации.
|
|
15.10.2002, 10:23 | #6 |
----------------
|
Так бы сразу и сказал
Ну тогда другой вариант.
В UserInfo_DS перекрыть методы PHP код:
|
|
|
За это сообщение автора поблагодарили: Proba (1), samolalex (1). |
15.10.2002, 10:34 | #7 |
Участник
|
О! То, что надо!
А вот этот способ работает как надо. Только еще пришлось в родительском датасорсе переписать метод write (так, как это показывал Wamr), чтобы нужное поле автоматически обновлялось. Вот если бы еще все это не скакало от вызова research...
|
|
15.10.2002, 11:42 | #8 |
----------------
|
вместо reseach()-findRecord() и т.п. можно использовать подобное решение..
PHP код:
|
|
|
За это сообщение автора поблагодарили: Hans (1). |
15.10.2002, 11:50 | #9 |
Участник
|
Класс!
Все! Теперь работает замечательно. Большое всем спасибо.
|
|