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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.05.2004, 17:18   #1  
Mechanizm is offline
Mechanizm
Участник
 
54 / 10 (1) +
Регистрация: 01.03.2004
Адрес: Санкт-Петербург
Как присвоить значение edit'у в гриде
Имеется грид, связанный датасорсом с некой таблицей, и наполненный данными из неё, один edit, понятно, одно поле
Необходимо выполнить автоматические перерасчёты значений одних полей в текущей записи в зависимости от других. Т.е. юзер вводит в edit'е A значение 5, в edit'е B меняется по формуле, например, на 7 и, соответственно, сохраняется в таблице. Везде числа формата real.
Проблема в том, что не работает присвоение через свойство edit'а realValue(). Т.е. значение присваивается, в дебаггере видно, что свойство изменилось, но визуально не отображается, и в БД не записывается. Пробовал писать через метод pasteText(), через какое-то время вылетает переполнение буфера, и Аксапта слетает.
Пробовал править непосредственно в таблице, но непонятно, как править именно в текущей записи, её recID не получить. Если выводить recID в отдельный IntEdit, его value читается = 0, видимо, из-за того, что RecID слишком большой.
Что ещё можно попробовать?
Старый 27.05.2004, 18:11   #2  
Vasilenko Alexsandr is offline
Vasilenko Alexsandr
Участник
Дети Юза
 
90 / 16 (1) ++
Регистрация: 05.09.2002
Адрес: Одесса
PHP код:
 public void modified() 
  {            
    
super();            
    
   
Table1.Field5 Table1.Field1*10;      
    
    
ttsbegin;      
     
Table1.update();     
    
ttscommit;            

    
Table1_DS.research();      
    
Table1_DS.refresh();  

Здесь приведен пример метода modified(), который перекрыт на поле field1 Datasource Table1. Поле field1 привязано к RealEdit A (в Вашем случае). При изменении значения в RealEdit A срабатывает modified() поля field1, в котором пересчитывается значение поля field5 , которое соответствует RealEdit В, и update() текущей записи. Затем перечитав данные из БД Вы получаете желаемый результат.
Только есть одно "но": При перечитывании данных из БД курсор в Grid установится на первую запись. Для установки на туже запись в Grid необходимо еще немного порограммировать. Но это уже совсем другая история!
Старый 27.05.2004, 18:22   #3  
Anais is offline
Anais
Участник
Аватар для Anais
 
182 / 10 (1) +
Регистрация: 16.06.2003
Адрес: Москва
Цитата:
Изначально опубликовано Vasilenko Alexsandr
PHP код:
 public void modified() 
  {            
    
super();            
    
   
Table1.Field5 Table1.Field1*10;      
    
    
ttsbegin;      
     
Table1.update();     
    
ttscommit;            

    
Table1_DS.research();      
    
Table1_DS.refresh();  


Здесь приведен пример метода modified(), который перекрыт на поле field1 Datasource Table1. Поле field1 привязано к RealEdit A (в Вашем случае). При изменении значения в RealEdit A срабатывает modified() поля field1, в котором пересчитывается значение поля field5 , которое соответствует RealEdit В, и update() текущей записи. Затем перечитав данные из БД Вы получаете желаемый результат.
Только есть одно "но": При перечитывании данных из БД курсор в Grid установится на первую запись. Для установки на туже запись в Grid необходимо еще немного порограммировать. Но это уже совсем другая история!
Table1_DS.reread();

вместо

Table1_DS.research();
Table1_DS.refresh();

Вам поможет. И ничего больше пОрОграммировать не надо. :Р
__________________
Улыбаемся и машем, парни! Улыбаемся и машем...
Старый 27.05.2004, 18:28   #4  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
To Mechanizm:
Вопрос: а зачем писать в поле формы, сответствующее edit-методу? Пускай значение сначала сохранится в таблице, а потом выведется в edit`е B.
__________________
Андрей.
Старый 27.05.2004, 18:34   #5  
Mechanizm is offline
Mechanizm
Участник
 
54 / 10 (1) +
Регистрация: 01.03.2004
Адрес: Санкт-Петербург
грид, в нём editcontrol'ы, RealEdit'ы
юзер может редактировать таблицу, добавлять записи и т.д.
Старый 27.05.2004, 19:01   #6  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
ОК, но зачем программно-то запихивать в edit`ы? Ручками ввели - хорошо, обработаем, запишем в таблицу; ввели в другой edit - само обновится из таблицы. Или я чего-то не понимаю?
__________________
Андрей.
Старый 27.05.2004, 19:05   #7  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Так, все, понял наконец
Почему-то я думал об edit-методах и контролах с ними в гриде.
Выше написанное мной считать недействительным
__________________
Андрей.
Старый 28.05.2004, 07:34   #8  
Mechanizm is offline
Mechanizm
Участник
 
54 / 10 (1) +
Регистрация: 01.03.2004
Адрес: Санкт-Петербург
ну да, не метод edit, а контрол edit (RealEdit, точнее)
Старый 28.05.2004, 07:49   #9  
Mechanizm is offline
Mechanizm
Участник
 
54 / 10 (1) +
Регистрация: 01.03.2004
Адрес: Санкт-Петербург
вроде как работает, сенькс
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Edit-метод и Relation - баг или фича ? TasmanianDevil DAX: Программирование 9 20.11.2008 10:16
Значение на гриде IT-specialist DAX: Программирование 4 09.08.2005 17:50
Подскажите как использовать метод Edit vasiliy DAX: Программирование 1 30.03.2005 09:45
Как присвоить realEdit-контролу значение? soin DAX: Программирование 5 16.09.2004 15:02
edit и display методы Maxim Gorbunov DAX: База знаний и проекты 4 15.01.2002 12:58

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:10.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.