|
16.02.2007, 12:40 | #1 |
Участник
|
Доброе время суток.
У меня следующая проблема: На лукапе текстового поля таблицы, нужное значение из другой таблице подтягивается правильно, но в данном поле значение не сохранятся Что может быть не так? Заранее спасибо. |
|
16.02.2007, 12:54 | #2 |
Участник
|
Цитата:
А lookup случайно не прописан кодом на тригере вашего поля? Если прописан, то напишите код |
|
16.02.2007, 13:04 | #3 |
Участник
|
А сам код можно посмотреть?
|
|
16.02.2007, 13:28 | #4 |
Участник
|
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 |
Участник
|
а modify?
|
|
16.02.2007, 13:39 | #6 |
Участник
|
|
|
16.02.2007, 13:43 | #7 |
Участник
|
а приведи код в том виде, как когда modify ставил
а так это в таблице |
|
16.02.2007, 13:56 | #8 |
Участник
|
Правильно , в таблице в OnLookUp такой, и вообще любой код, напрямую обращающийся к текущей записи не сработает... Никогда не разбирался почему, хотя представляю, но чтобы этот код заработал, его надо просто перенести в OnLookUp формы данной таблицы.
|
|
16.02.2007, 13:50 | #9 |
Участник
|
Да, а зачем это на таблице делать я не совсем понял?
Можно на форме сделать, все должно без поблем работать. |
|
16.02.2007, 13:51 | #10 |
Участник
|
Цитата:
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, 14:01 | #11 |
Участник
|
Вобще кажется это будет работать если сделать в конце
MODIFY; COMMIT; Правда после этого придётся шагнуть на другую запись и вренуться обратно чтоб перерисовалось ИМХО это изврат. Нужно либо делать лукап без прописывания руками кода, либо переность код на форму. По сути тулить какой-то подобный код в триггера таблицы это не есть правильно. Либо сделать TableRelation на ту другую таблицу, либо седалть код лукапа на форме |
|
16.02.2007, 14:03 | #12 |
Участник
|
Цитата:
Правильно , в таблице в OnLookUp такой, и вообще любой код, напрямую обращающийся к текущей записи не сработает... Никогда не разбирался почему, хотя представляю, но чтобы этот код заработал, его надо просто перенести в OnLookUp формы данной таблицы
Никакие модифаи и коммиты тем более не нужны. Код лукапа пишем на таблице, а работать ест-но он будет только на форме. (Но на форме его писать не надо).
__________________
Должен остаться только один. |
|
16.02.2007, 14:04 | #13 |
Участник
|
Возможно - я проверял только через обжект десигнер таблиц, но вот я всё ранво считаю, что подобный код нельзя лепить в триггера таблиц, т.к. эти 2 таблицы никак друг с другом не связаны
|
|
16.02.2007, 14:17 | #14 |
MCTS
|
См. также тему
LookUp из поля таблицы |
|
16.02.2007, 14:31 | #15 |
Участник
|
Не знаю как с перерисовкой в этмо примере
<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 |
Участник
|
Цитата:
Сообщение от 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 |
Участник
|
Что значит "Ой, мама"?
|
|
16.02.2007, 16:54 | #18 |
Участник
|
То, что за это можно "респект на стол положить"
__________________
Должен остаться только один. |
|
16.02.2007, 17:10 | #19 |
Участник
|
|
|
16.02.2007, 17:05 | #20 |
Участник
|
Это и имел ввиду Так как lookup мог вызывтаься кодом, а могла lookup форма вызваться из-за сво-ва TableRelation.
Стер пока не увидели ??? Или ваш код работает, как сказал NeNavision |
|