10.05.2011, 15:29 | #1 |
Участник
|
Доброго времени суток товарищи!
Прошу прощения за столь глупый вопрос, но никак не могу разобраться в элементарной вещи. Кратко суть проблемы: На форме (назовём её Form1) есть поле, значение которого нужно выбрать из другой таблицы. Ну т.е. нажать стрелочку, откроется другая форма (назовём её Form2), там я выбираю строку, жму ОК, или 2 раза кликаю на строчку и вуаля, выбранное значение в поле. Но вот никак не могу разобраться как это сделать. Я в Наве совсем новичок. Пытаясь самостоятельно разобраться с проблемой нашёл 2 вещи: TableRelation и DrillDown, причём одна из них рисует стрелочку вверх, а другая стрелочку вниз. В чём в итоге разница, понять не могу, но пробую разобраться с DrillDown, делаю так, в поле на тригере OnDrillDown пишу следующее: Form2.LOOKUPMODE(TRUE); IF Form2.RUNMODAL = Action::LookupOK THEN //а вот тут-то и затык, что дальше, то? Как обратиться к выбранной строке? И ещё, если не трудно. В чём принципиальная разница в подходе через DrillDown и TableRelation и какой когда лучше использовать? Спасибо большое! |
|
10.05.2011, 15:40 | #2 |
Участник
|
Найдите документацию (раньше эта дока называлась Объекты Navision) и все станет ясно. Доку можно освоить самому дня за 3. Это позволит избежать похожих проблем в дальнейшем
|
|
10.05.2011, 15:43 | #3 |
Участник
|
Цитата:
P.S. Только что сделал через TableRelation, без документации и 3 дней. Спасибо за помощь. |
|
11.05.2011, 06:41 | #4 |
Участник
|
Обратиться к выбранной записи макросом GETRECORD, т.е.
Form2.GETRECORD(Rec2); Далее заполняем поле, из которого делали вызов лукапа: Field := Rec2.Field2; PS : если нет времени, то можно почитать встроенный хелп по C/SIDE, тоже очень полезная штука. |
|
11.05.2011, 10:05 | #5 |
Участник
|
Цитата:
А ради любопытсва, в книжке наверное есть эта инфа, но всё же, в чём принципиальная разница между DrillDown и TableRelation? Рискну предположить, что при TableRelation, если изменится таблица из которой выбирается поле, то изменения отразятся и в поле. А при DrillDown поле останется неизменным. |
|
11.05.2011, 22:15 | #6 |
Участник
|
Цитата:
Цитата:
Сообщение от Predatore
А ради любопытсва, в книжке наверное есть эта инфа, но всё же, в чём принципиальная разница между DrillDown и TableRelation? Рискну предположить, что при TableRelation, если изменится таблица из которой выбирается поле, то изменения отразятся и в поле. А при DrillDown поле останется неизменным.
Tablerelation это из области проверки целостности базы данных, т.е. соблюдения связей между таблицами. Таким образом, если указана валидация этих связей, то система не допустит чтобы пользователь выбрал отсутствующее в справочнике значение, а при переименовании первичного ключа справочника автоматически произойдет обновление на новое значение в связанных таблицах. |
|