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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.02.2007, 10:13   #1  
zemur is offline
zemur
Участник
 
24 / 10 (1) +
Регистрация: 08.11.2006
Подскажите, пожалуйста, как мне быть.
На форме у меня Check Box, у которого SourceExpr - поле в таблице (тип - boolean), Name - spavto.
При изменеии состояния check box, мне нужно прописать в табл. изменившееся значение.
Делаю:
Vehicle.avto := CurrForm.spavto;
пишет что преобразование типов невозможно Boolean := Control
Старый 13.02.2007, 10:21   #2  
art06 is offline
art06
Участник
Аватар для art06
 
192 / 10 (1) +
Регистрация: 11.08.2006
если Check Box - привязан к полю таблицы, то при изменении состояния компонента Check Box, меняется состояние поля в таблице.
Старый 13.02.2007, 10:28   #3  
zemur is offline
zemur
Участник
 
24 / 10 (1) +
Регистрация: 08.11.2006
Цитата:
Сообщение от art Посмотреть сообщение
если Check Box - привязан к полю таблицы, то при изменении состояния компонента Check Box, меняется состояние поля в таблице.
К сожалению не меняется.
Старый 13.02.2007, 10:33   #4  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от zemur Посмотреть сообщение
Цитата:
Сообщение от art Посмотреть сообщение
если Check Box - привязан к полю таблицы, то при изменении состояния компонента Check Box, меняется состояние поля в таблице.
К сожалению не меняется.
То есть на форме состояние чекбокса меняется. Вы переходите на след запись и возвращаетесь на текущую и оно вновь сбрасывается к тому значению, которое было до модификации? Так?
Старый 13.02.2007, 10:38   #5  
zemur is offline
zemur
Участник
 
24 / 10 (1) +
Регистрация: 08.11.2006
Цитата:
Сообщение от romeo Посмотреть сообщение
Цитата:
Сообщение от zemur Посмотреть сообщение
Цитата:
Сообщение от art Посмотреть сообщение
если Check Box - привязан к полю таблицы, то при изменении состояния компонента Check Box, меняется состояние поля в таблице.
К сожалению не меняется.
То есть на форме состояние чекбокса меняется. Вы переходите на след запись и возвращаетесь на текущую и оно вновь сбрасывается к тому значению, которое было до модификации? Так?
Не совсем так. Я меняю состояние checkbox на форме и закрываю ее, машина приобретает другой статус и эту же форму я уже не смогу увидеть, я контролирую это значение непосредственно в таблице, где хранится поле, к которому привязан checkbox. Оно не меняется
Старый 13.02.2007, 10:40   #6  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
А SourceExpr = Vehicle.avto ?
Если да, то посмотрите, что за код стоит на триггерах OnAfterGetRecord таблицы Vehicle и вашей формы. Нигде ли нет присвоения Vehicle.avto того или иного значения?
Старый 13.02.2007, 11:10   #7  
zemur is offline
zemur
Участник
 
24 / 10 (1) +
Регистрация: 08.11.2006
Цитата:
Сообщение от Fordewind Посмотреть сообщение
А SourceExpr = Vehicle.avto ?
Если да, то посмотрите, что за код стоит на триггерах OnAfterGetRecord таблицы Vehicle и вашей формы. Нигде ли нет присвоения Vehicle.avto того или иного значения?
SourceExpr = Vehicle.avto
Присвоения никакого нет, я сам добавил это поле.
Может как-то можно принудительно записать в базу значение checkbox?
Старый 13.02.2007, 11:17   #8  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от zemur Посмотреть сообщение
Цитата:
Сообщение от Fordewind Посмотреть сообщение
А SourceExpr = Vehicle.avto ?
Если да, то посмотрите, что за код стоит на триггерах OnAfterGetRecord таблицы Vehicle и вашей формы. Нигде ли нет присвоения Vehicle.avto того или иного значения?
SourceExpr = Vehicle.avto
Присвоения никакого нет, я сам добавил это поле.
Может как-то можно принудительно записать в базу значение checkbox?
А форма на какой реке построена? На Vehicle?
Старый 13.02.2007, 11:37   #9  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Все таки мы вас дожмем и вы нам расскажете где же вы ошиблись )

А не заведена ли глобальная переменная типа Record на эту таблицу?

Другими словами: в SourceExpr стоит "Vehicle.avto" или все таки "avto" .

Потому что строка
Код:
Vehicle.avto := CurrForm.spavto;
настораживает уже своим началом кроме всего прочего.
Старый 13.02.2007, 11:40   #10  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Все таки мы вас дожмем и вы нам расскажете где же вы ошиблись )

А не заведена ли глобальная переменная типа Record на эту таблицу?

Другими словами: в SourceExpr стоит "Vehicle.avto" или все таки "avto" .

Потому что строка
Код:
Vehicle.avto := CurrForm.spavto;
настораживает уже своим началом кроме всего прочего.
-)) Настораживает )))
Старый 13.02.2007, 11:48   #11  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Vehicle это же ведь не та таблица по ктороый SourceExpr формы? Да?
Старый 13.02.2007, 11:52   #12  
OntheJump is offline
OntheJump
Участник
 
165 / 10 (1) +
Регистрация: 31.10.2006
zemur, не слушай никого эти злые дядьки только запутают тебя, слушай меня

Вот что тебе надо сделать:

1. Создать в таблице Vehicle новое поле spavto (кстати, какой его смысл?);
2. Вывести это поле в форму;

Все переменные использовать не надо!
Старый 13.02.2007, 13:29   #13  
zemur is offline
zemur
Участник
 
24 / 10 (1) +
Регистрация: 08.11.2006
Цитата:
Сообщение от romeo Посмотреть сообщение
Цитата:
Сообщение от zemur Посмотреть сообщение
Цитата:
Сообщение от Fordewind Посмотреть сообщение
А SourceExpr = Vehicle.avto ?
Если да, то посмотрите, что за код стоит на триггерах OnAfterGetRecord таблицы Vehicle и вашей формы. Нигде ли нет присвоения Vehicle.avto того или иного значения?
SourceExpr = Vehicle.avto
Присвоения никакого нет, я сам добавил это поле.
Может как-то можно принудительно записать в базу значение checkbox?
А форма на какой реке построена? На Vehicle?
нет на другой.

Цитата:
Сообщение от romeo Посмотреть сообщение
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Все таки мы вас дожмем и вы нам расскажете где же вы ошиблись )

А не заведена ли глобальная переменная типа Record на эту таблицу?

Другими словами: в SourceExpr стоит "Vehicle.avto" или все таки "avto" .

Потому что строка
Код:
Vehicle.avto := CurrForm.spavto;
настораживает уже своим началом кроме всего прочего.
-)) Настораживает )))
заведена глобальная переменная на табл. Vehicle, которая имеет тоже название Vehicle.
и похоже в sourceExpr я сослался на нее

Цитата:
Сообщение от zemur
Цитата:
Сообщение от romeo Посмотреть сообщение
Цитата:
Сообщение от zemur Посмотреть сообщение
Цитата:
Сообщение от Fordewind Посмотреть сообщение
А SourceExpr = Vehicle.avto ?
Если да, то посмотрите, что за код стоит на триггерах OnAfterGetRecord таблицы Vehicle и вашей формы. Нигде ли нет присвоения Vehicle.avto того или иного значения?
SourceExpr = Vehicle.avto
Присвоения никакого нет, я сам добавил это поле.
Может как-то можно принудительно записать в базу значение checkbox?
А форма на какой реке построена? На Vehicle?
нет на другой.

Цитата:
Сообщение от romeo Посмотреть сообщение
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Все таки мы вас дожмем и вы нам расскажете где же вы ошиблись )

А не заведена ли глобальная переменная типа Record на эту таблицу?

Другими словами: в SourceExpr стоит "Vehicle.avto" или все таки "avto" .

Потому что строка
Код:
Vehicle.avto := CurrForm.spavto;
настораживает уже своим началом кроме всего прочего.
-)) Настораживает )))
заведена глобальная переменная на табл. Vehicle, которая имеет тоже название Vehicle.
и похоже в sourceExpr я сослался на нее. А как мне непосредственно сослаться на это поле в табл., если SourceExpr формы не на табл. Vehicle

Так что же я делаю неправильно?
Старый 13.02.2007, 13:30   #14  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Цитата:
Сообщение от zemur Посмотреть сообщение
Vehicle.avto := CurrForm.spavto;
пишет что преобразование типов невозможно Boolean := Control
CurrForm.spavto имеет тип Control. Нельзя через Control получить значение выражения в этом контроле. Нужно использовать вместе CurrForm.spavto то что записанов SourceExpr.
Старый 13.02.2007, 13:35   #15  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от zemur Посмотреть сообщение
Подскажите, пожалуйста, как мне быть.
На форме у меня Check Box, у которого SourceExpr - поле в таблице (тип - boolean), Name - spavto.
При изменеии состояния check box, мне нужно прописать в табл. изменившееся значение.
Делаю:
Vehicle.avto := CurrForm.spavto;
пишет что преобразование типов невозможно Boolean := Control
Запись в таблице Vehicle должна быть определена, к моменту простановки галки в поле CheckBox...

Поле CheckBox - OnValidate.
Vehicle.MODIFY(); // FALSE или TRUE решайте сами.

Поле CheckBox - OnAfterValidate.
CurrForm.UPDATE(FALSE);
Старый 13.02.2007, 13:42   #16  
zemur is offline
zemur
Участник
 
24 / 10 (1) +
Регистрация: 08.11.2006
Еще раз все по порядку.
Я создал поле avto в табл. Vehicle. (тип boolean)
На форме поставил checkbox (sourceExpr формы, другая таблица). В sourceExpr checkboxа прописал Vehicle.avto. Vehicle(название совпадает с названием табл.) это у меня глобальная переменная, которая ссылается на табл. Vehicle.
При изменении состояния checkbox, изменение в поле avto в табл. Vehicle не прописывается.
Что я сделал не так?
Заранее спасибо.
Старый 13.02.2007, 13:55   #17  
OntheJump is offline
OntheJump
Участник
 
165 / 10 (1) +
Регистрация: 31.10.2006
Тебе же Ромео все отлично расписал

у тебя в глоб. переменной Vehicle курсор не установлен, плюс нужен MODIFY.

В OnAfterGetRecord напиши Vehicle.GET(КодКлючевогоПоля)

Дальше как у Ромео заполни два триггера у чекбокса:

Цитата:
Поле CheckBox - OnValidate.
Vehicle.MODIFY(FALSE);

Поле CheckBox - OnAfterValidate.
CurrForm.UPDATE(FALSE);
кстати, если в сорсе чекбокса стоит Vehicle.avto, то OnAfterValidate не нужен
Старый 13.02.2007, 13:56   #18  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от zemur Посмотреть сообщение
Еще раз все по порядку.
Я создал поле avto в табл. Vehicle. (тип boolean)
На форме поставил checkbox (sourceExpr формы, другая таблица). В sourceExpr checkboxа прописал Vehicle.avto. Vehicle(название совпадает с названием табл.) это у меня глобальная переменная, которая ссылается на табл. Vehicle.
При изменении состояния checkbox, изменение в поле avto в табл. Vehicle не прописывается.
Что я сделал не так?
Заранее спасибо.
MODIFY не поставил на Vehicle.

Поймите. Vehicle - переменная. Это только область памяти на вашем компьютере. Чтоб сделать изменение - вам надо послать запрос на сервер. Что и делает MODIFY


Цитата:
Сообщение от romeo Посмотреть сообщение
Запись в таблице Vehicle должна быть определена, к моменту простановки галки в поле CheckBox...

Поле CheckBox - OnValidate.
Vehicle.MODIFY(); // FALSE или TRUE решайте сами.

Поле CheckBox - OnAfterValidate.
CurrForm.UPDATE(FALSE);
Старый 13.02.2007, 14:40   #19  
zemur is offline
zemur
Участник
 
24 / 10 (1) +
Регистрация: 08.11.2006
Всем спасибо.
Я сделал через переменную, т.е. создал переменную Test типа boolean. В sorceexpr checkboxa прописал Test. По кнопке на форме, по которой нужно запомнить введенные данные , нашел запись в табл Vehicle: Vehicle.GET(); присвоил этому полю переменную Test: Vehicle.avto:=Test; Затем записал:
Vehicle.Modify; И все заработало, почему не захотело работать когда SourceExpr checkbox Vehicle.avto, наверно потому что не была найдена строка при изменении checkbox, Vehicle.GET().
 


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

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

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