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