18.11.2005, 17:56 | #1 |
Участник
|
Ситуация следующая. Сдела формочку для Таблицы Field.
В созданной табличке необходимо указывать номера полей таблиц. Для выбора полей вставил такой вот код в LookUp FieldList.LOOKUPMODE := TRUE; IF FieldList.RUNMODAL = ACTION::LookupOK THEN BEGIN FieldList.GETRECORD(Fields); "Value Field No." := Fields."No."; // Modify,Validate или еще че. END; При работе непосредственно из таблички (без формы). Окошко выпадает значение присваивается но почему то незаписывается. Не помагают ни Modify, ни Validate. При работе из формы для такой таблички если поставить CurrForm.UPDATE в OnAfterValidate то все хорошо. Дак вот вопрос можно ли как сделать чтоб при работе непосредственно с табличкой поле обновлялось.
__________________
Want to believe... |
|
18.11.2005, 18:04 | #2 |
Участник
|
Это глюк навижена. Не обращай внимания. Из формы будет работать.
|
|
21.11.2005, 20:51 | #3 |
Участник
|
Ну почему же сразу "глюк"...просто нужно сообразить.
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; |
|
22.11.2005, 10:04 | #4 |
Участник
|
2Beetlejuice:
Это конечно круто .. Это может даже работает. Но пожалуй лучше написать обычный лукап без Локтейблов и Коммитов и работать из формы без проблем. Чем нагружать код подобными вещами. Вообще коммитами не надо разбрасываться. |
|
22.11.2005, 10:18 | #5 |
Участник
|
Думаю такой код выдаст юзеру "другой пользователь изменил запись после того как она была прочитана из базы".
|
|
22.11.2005, 10:26 | #6 |
Участник
|
Цитата:
Сообщение от Beetlejuice
Ну почему же сразу "глюк"...просто нужно сообразить.
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;
__________________
Want to believe... |
|
22.11.2005, 10:29 | #7 |
Участник
|
Цитата:
Сообщение от SVG
Думаю такой код выдаст юзеру "другой пользователь изменил запись после того как она была прочитана из базы".
__________________
Want to believe... |
|
22.11.2005, 10:55 | #8 |
Участник
|
не поле, а всю строку надо закрыть
|
|
22.11.2005, 11:35 | #9 |
Участник
|
согласен
__________________
Want to believe... |
|