![]() |
#1 |
Участник
|
Подскажите, пожалуйста, как мне быть.
На форме у меня Check Box, у которого SourceExpr - поле в таблице (тип - boolean), Name - spavto. При изменеии состояния check box, мне нужно прописать в табл. изменившееся значение. Делаю: Vehicle.avto := CurrForm.spavto; пишет что преобразование типов невозможно Boolean := Control |
|
![]() |
#2 |
Участник
|
если Check Box - привязан к полю таблицы, то при изменении состояния компонента Check Box, меняется состояние поля в таблице.
|
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
То есть на форме состояние чекбокса меняется. Вы переходите на след запись и возвращаетесь на текущую и оно вновь сбрасывается к тому значению, которое было до модификации? Так?
|
|
![]() |
#5 |
Участник
|
Цитата:
![]() |
|
![]() |
#6 |
Участник
|
А SourceExpr = Vehicle.avto ?
Если да, то посмотрите, что за код стоит на триггерах OnAfterGetRecord таблицы Vehicle и вашей формы. Нигде ли нет присвоения Vehicle.avto того или иного значения? |
|
![]() |
#7 |
Участник
|
Цитата:
Присвоения никакого нет, я сам добавил это поле. Может как-то можно принудительно записать в базу значение checkbox? |
|
![]() |
#8 |
Участник
|
|
|
![]() |
#9 |
Участник
|
Все таки мы вас дожмем и вы нам расскажете где же вы ошиблись
![]() А не заведена ли глобальная переменная типа Record на эту таблицу? Другими словами: в SourceExpr стоит "Vehicle.avto" или все таки "avto" . Потому что строка Код: Vehicle.avto := CurrForm.spavto; |
|
![]() |
#10 |
Участник
|
Цитата:
Сообщение от Fordewind
![]() Все таки мы вас дожмем и вы нам расскажете где же вы ошиблись
![]() А не заведена ли глобальная переменная типа Record на эту таблицу? Другими словами: в SourceExpr стоит "Vehicle.avto" или все таки "avto" . Потому что строка Код: Vehicle.avto := CurrForm.spavto; |
|
![]() |
#11 |
Участник
|
Vehicle это же ведь не та таблица по ктороый SourceExpr формы? Да?
|
|
![]() |
#12 |
Участник
|
zemur, не слушай никого эти злые дядьки только запутают тебя, слушай меня
![]() Вот что тебе надо сделать: 1. Создать в таблице Vehicle новое поле spavto (кстати, какой его смысл?); 2. Вывести это поле в форму; Все ![]() |
|
![]() |
#13 |
Участник
|
Цитата:
Цитата:
Сообщение от romeo
![]() Цитата:
Сообщение от Fordewind
![]() Все таки мы вас дожмем и вы нам расскажете где же вы ошиблись
![]() А не заведена ли глобальная переменная типа Record на эту таблицу? Другими словами: в SourceExpr стоит "Vehicle.avto" или все таки "avto" . Потому что строка Код: Vehicle.avto := CurrForm.spavto; и похоже в sourceExpr я сослался на нее Цитата:
Сообщение от zemur
Цитата:
Цитата:
Сообщение от romeo
![]() Цитата:
Сообщение от Fordewind
![]() Все таки мы вас дожмем и вы нам расскажете где же вы ошиблись
![]() А не заведена ли глобальная переменная типа Record на эту таблицу? Другими словами: в SourceExpr стоит "Vehicle.avto" или все таки "avto" . Потому что строка Код: Vehicle.avto := CurrForm.spavto; и похоже в sourceExpr я сослался на нее. А как мне непосредственно сослаться на это поле в табл., если SourceExpr формы не на табл. Vehicle Так что же я делаю неправильно? ![]() |
|
![]() |
#14 |
Участник
|
|
|
![]() |
#15 |
Участник
|
Цитата:
Сообщение от zemur
![]() Подскажите, пожалуйста, как мне быть.
На форме у меня Check Box, у которого SourceExpr - поле в таблице (тип - boolean), Name - spavto. При изменеии состояния check box, мне нужно прописать в табл. изменившееся значение. Делаю: Vehicle.avto := CurrForm.spavto; пишет что преобразование типов невозможно Boolean := Control Поле CheckBox - OnValidate. Vehicle.MODIFY(); // FALSE или TRUE решайте сами. Поле CheckBox - OnAfterValidate. CurrForm.UPDATE(FALSE); |
|
![]() |
#16 |
Участник
|
Еще раз все по порядку.
Я создал поле avto в табл. Vehicle. (тип boolean) На форме поставил checkbox (sourceExpr формы, другая таблица). В sourceExpr checkboxа прописал Vehicle.avto. Vehicle(название совпадает с названием табл.) это у меня глобальная переменная, которая ссылается на табл. Vehicle. При изменении состояния checkbox, изменение в поле avto в табл. Vehicle не прописывается. Что я сделал не так? Заранее спасибо. |
|
![]() |
#17 |
Участник
|
Тебе же Ромео все отлично расписал
![]() у тебя в глоб. переменной Vehicle курсор не установлен, плюс нужен MODIFY. В OnAfterGetRecord напиши Vehicle.GET(КодКлючевогоПоля) Дальше как у Ромео заполни два триггера у чекбокса: Цитата:
Поле CheckBox - OnValidate.
Vehicle.MODIFY(FALSE); Поле CheckBox - OnAfterValidate. CurrForm.UPDATE(FALSE); |
|
![]() |
#18 |
Участник
|
Цитата:
Сообщение от zemur
![]() Еще раз все по порядку.
Я создал поле avto в табл. Vehicle. (тип boolean) На форме поставил checkbox (sourceExpr формы, другая таблица). В sourceExpr checkboxа прописал Vehicle.avto. Vehicle(название совпадает с названием табл.) это у меня глобальная переменная, которая ссылается на табл. Vehicle. При изменении состояния checkbox, изменение в поле avto в табл. Vehicle не прописывается. Что я сделал не так? Заранее спасибо. Поймите. Vehicle - переменная. Это только область памяти на вашем компьютере. Чтоб сделать изменение - вам надо послать запрос на сервер. Что и делает MODIFY |
|
![]() |
#19 |
Участник
|
Всем спасибо.
Я сделал через переменную, т.е. создал переменную Test типа boolean. В sorceexpr checkboxa прописал Test. По кнопке на форме, по которой нужно запомнить введенные данные , нашел запись в табл Vehicle: Vehicle.GET(); присвоил этому полю переменную Test: Vehicle.avto:=Test; Затем записал: Vehicle.Modify; И все заработало, почему не захотело работать когда SourceExpr checkbox Vehicle.avto, наверно потому что не была найдена строка при изменении checkbox, Vehicle.GET(). |
|