AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.02.2007, 12:40   #1  
Yermek is offline
Yermek
Участник
 
29 / 10 (1) +
Регистрация: 06.06.2006
Доброе время суток.
У меня следующая проблема: На лукапе текстового поля таблицы, нужное значение из другой таблице подтягивается правильно, но в данном поле значение не сохранятся Что может быть не так?
Заранее спасибо.
Старый 16.02.2007, 12:54   #2  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от Yermek Посмотреть сообщение
Доброе время суток.
У меня следующая проблема: На лукапе текстового поля таблицы, нужное значение из другой таблице подтягивается правильно, но в данном поле значение не сохранятся Что может быть не так?
Заранее спасибо.


А lookup случайно не прописан кодом на тригере вашего поля? Если прописан, то напишите код
Старый 16.02.2007, 13:04   #3  
kas1 is offline
kas1
Участник
 
51 / 10 (1) +
Регистрация: 13.02.2007
А сам код можно посмотреть?
Старый 16.02.2007, 13:28   #4  
Yermek is offline
Yermek
Участник
 
29 / 10 (1) +
Регистрация: 06.06.2006
2 randrews да прописан. Не совсем понял что вы имели ввиду.
вот код
Name DataType Subtype Length
Qualification1 Record Qualification
Qualification_Form1 Form Qualifications

testfield - OnLookup()
Qualification1.RESET;
Qualification1.SETRANGE("Record Type",Qualification1."Record Type"::"Educational Institution");
Qualification_Form1.EDITABLE := FALSE;
Qualification_Form1.SETTABLEVIEW(Qualification1);
Qualification_Form1.LOOKUPMODE := TRUE;
IF Qualification_Form1.RUNMODAL = ACTION::LookupOK THEN BEGIN
Qualification_Form1.GETRECORD(Qualification1);
testfield := Qualification1.Description;
END;
Старый 16.02.2007, 13:37   #5  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
а modify?
Старый 16.02.2007, 13:39   #6  
Yermek is offline
Yermek
Участник
 
29 / 10 (1) +
Регистрация: 06.06.2006
Цитата:
Сообщение от grif Посмотреть сообщение
а modify?
Ставил, не помогает
Старый 16.02.2007, 13:43   #7  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
а приведи код в том виде, как когда modify ставил

а так это в таблице
Старый 16.02.2007, 13:50   #8  
kas1 is offline
kas1
Участник
 
51 / 10 (1) +
Регистрация: 13.02.2007
Да, а зачем это на таблице делать я не совсем понял?
Можно на форме сделать, все должно без поблем работать.
Старый 16.02.2007, 13:51   #9  
NeNavision_imported is offline
NeNavision_imported
Участник
Аватар для NeNavision_imported
 
241 / 10 (1) +
Регистрация: 12.08.2005
Цитата:
testfield - OnLookup()
Qualification1.RESET;
Qualification1.SETRANGE("Record Type",Qualification1."Record Type"::"Educational Institution");
Qualification_Form1.EDITABLE := FALSE;
Qualification_Form1.SETTABLEVIEW(Qualification1);
Qualification_Form1.LOOKUPMODE := TRUE;
IF Qualification_Form1.RUNMODAL = ACTION::LookupOK THEN BEGIN
Qualification_Form1.GETRECORD(Qualification1);
testfield := Qualification1.Description;
END;
Сотрите эту ботву.

напишите
Код:
Qualification1.RESET;
Qualification1.SETRANGE("Record Type",Qualification1."Record Type"::"Educational Institution");
IF FORM.RUNMODAL(0,Qualification1) = Action::LookUpOk THEN
   testfield := Qualification1.Description;
__________________
Должен остаться только один.
Старый 16.02.2007, 13:56   #10  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от grif Посмотреть сообщение
а приведи код в том виде, как когда modify ставил

а так это в таблице
Правильно , в таблице в OnLookUp такой, и вообще любой код, напрямую обращающийся к текущей записи не сработает... Никогда не разбирался почему, хотя представляю, но чтобы этот код заработал, его надо просто перенести в OnLookUp формы данной таблицы.
Старый 16.02.2007, 14:01   #11  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Вобще кажется это будет работать если сделать в конце
MODIFY;
COMMIT;

Правда после этого придётся шагнуть на другую запись и вренуться обратно чтоб перерисовалось

ИМХО это изврат. Нужно либо делать лукап без прописывания руками кода, либо переность код на форму. По сути тулить какой-то подобный код в триггера таблицы это не есть правильно. Либо сделать TableRelation на ту другую таблицу, либо седалть код лукапа на форме
Старый 16.02.2007, 14:03   #12  
NeNavision_imported is offline
NeNavision_imported
Участник
Аватар для NeNavision_imported
 
241 / 10 (1) +
Регистрация: 12.08.2005
Цитата:
Правильно , в таблице в OnLookUp такой, и вообще любой код, напрямую обращающийся к текущей записи не сработает... Никогда не разбирался почему, хотя представляю, но чтобы этот код заработал, его надо просто перенести в OnLookUp формы данной таблицы
Все работает!
Никакие модифаи и коммиты тем более не нужны.
Код лукапа пишем на таблице, а работать ест-но он будет только на форме. (Но на форме его писать не надо).
__________________
Должен остаться только один.
Старый 16.02.2007, 14:04   #13  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Возможно - я проверял только через обжект десигнер таблиц, но вот я всё ранво считаю, что подобный код нельзя лепить в триггера таблиц, т.к. эти 2 таблицы никак друг с другом не связаны
Старый 16.02.2007, 14:31   #15  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Не знаю как с перерисовкой в этмо примере
<div class='CALtop'>C/AL</div><div class='CAL'>
CLEAR(FieldList); // не забываем очищать по указателю
FieldList.LOOKUPMODE := TRUE;
IF FieldList.RUNMODAL = ACTION::LookupOK THEN
BEGIN
FieldList.GETRECORD(Fields);
loca_rec_current.LOCKTABLE; // это переменная той же записи что и //REC, лочим таблицу
loca_rec_current.GET(line); //выставляем нужную запись
loca_rec_current.Fieldno:= Fields."No.";//дальше понятно.
loca_rec_current.MODIFY;
COMMIT;
END;
</div>
Но можно сделать проще - присвоить в rec и также сделать modify + commit и будет работать. Только что проверил
Старый 16.02.2007, 15:59   #16  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от grif Посмотреть сообщение
Не знаю как с перерисовкой в этмо примере
<div class='CALtop'>C/AL</div><div class='CAL'>
CLEAR(FieldList); // не забываем очищать по указателю
FieldList.LOOKUPMODE := TRUE;
IF FieldList.RUNMODAL = ACTION::LookupOK THEN
BEGIN
FieldList.GETRECORD(Fields);
loca_rec_current.LOCKTABLE; // это переменная той же записи что и //REC, лочим таблицу
loca_rec_current.GET(line); //выставляем нужную запись
loca_rec_current.Fieldno:= Fields."No.";//дальше понятно.
loca_rec_current.MODIFY;
COMMIT;
END;
</div>
Но можно сделать проще - присвоить в rec и также сделать modify + commit и будет работать. Только что проверил
Ой, мама ... ((
Старый 16.02.2007, 16:24   #17  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Что значит "Ой, мама"?
Старый 16.02.2007, 16:54   #18  
NeNavision_imported is offline
NeNavision_imported
Участник
Аватар для NeNavision_imported
 
241 / 10 (1) +
Регистрация: 12.08.2005
То, что за это можно "респект на стол положить"
__________________
Должен остаться только один.
Старый 16.02.2007, 17:05   #19  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от Yermek Посмотреть сообщение
2 randrews да прописан. Не совсем понял что вы имели ввиду.
вот код
Это и имел ввиду Так как lookup мог вызывтаься кодом, а могла lookup форма вызваться из-за сво-ва TableRelation.



Стер пока не увидели
???



Или ваш код работает, как сказал NeNavision





Цитата:
Сообщение от NeNavision Посмотреть сообщение
Все работает!
Никакие модифаи и коммиты тем более не нужны.
Код лукапа пишем на таблице, а работать ест-но он будет только на форме. (Но на форме его писать не надо).
Старый 16.02.2007, 17:10   #20  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Цитата:
Сообщение от NeNavision Посмотреть сообщение
То, что за это можно "респект на стол положить"
за что именно? я кажется выше насписал своё мнение относительно этого метода, но всё же интереса ради накопал решение, если вдруг кому-то приспичило именно так. или я не о том?
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:31.