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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.10.2004, 16:22   #1  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
? Как заполняется Control (остаток на начало дня)?
День добрый!

Необходимо узнать каким образом заполняется Control -- остаток на начало дня!

Денежные средства / Журналы банковских выписок / Строки / Остаток на начало дня

DataSource указан, однако поля нет, нет и метода для заполнения, нет и упоминания имени поля в коде формы!

Это глюк? Или я чего не догоняю?
Старый 14.10.2004, 16:56   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Что-то не вижу у себя такого

Уточните весь путь по пунктам.
И еще - чудес не бывает. Где-то он заполняется.

С Уважением,
Георгий
Старый 14.10.2004, 17:07   #3  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
Извиняюсь пропустил Журналы:

Денежные средства / Журанлы /Журналы банковских выписок / Строки / Остаток на начало дня


Строки -- это кнопка
Остаток на начало дня -- это контрол наверху!!
Старый 14.10.2004, 17:35   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Ничем не могу помочь, Александр - у мнея такого журнала нет
Только журнал ордеров. Хотя, вроде, все основные модули куплены.
Axapta 3.0 Sp0, Sp1, Sp3.

А он у Вас часом не самописный?
Старый 14.10.2004, 17:39   #5  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
Axapta Retail!

И на том спасибо!
Старый 14.10.2004, 17:45   #6  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
А выложите в виде проектика?

Очень интерестно глянуть на чудо-контрол. Возможно, он заполняется классом. Посмотрите, не ли где в ClassDeclaration переменной - класса?

С Уважением,
Георгий
Старый 14.10.2004, 17:52   #7  
Lazy_Tiger is offline
Lazy_Tiger
NavAx
Axapta Retail User
1C
NavAx Club
 
610 / 31 (3) +++
Регистрация: 17.12.2001
Адрес: Красноярск
Цитата:
Изначально опубликовано Александр Костоусов
Axapta Retail!
пока не за что
у меня тоже аксапта ретейл от коруса. с утра приду - гляну что там за чудо контрол

P.S. и лучше всего в аську... номер 7968885
__________________
И все они создания природы...
Старый 14.10.2004, 18:12   #8  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
Разобрался!

У поля был DataSourcе,не было DataField, не было DataMethod.

Однако AutoDeclaration - Yes, и в результате оказалось что Control заполняется одноименным дисплейным методом!

Думаю, ситуация стандартная, а для меня маленькое открытие!

Спасибо Георгий!
Lazy_Tiger -- привет Красноярску!
Старый 14.10.2004, 18:22   #9  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Не за что!

Сам писал такое, грешен...

Однако, по прошествии времени, считаю, что это - не очень хорошо, если не совсем плохо
В моем случае это было оправдано тем, что 5 контролов пересчитывались на основании одного тяжелого запроса. Поэтому так и сделал. Хотя, я думаю, можно было бы и по-другому.

С Уважением,
Георгий.
Старый 14.10.2004, 18:24   #10  
Lazy_Tiger is offline
Lazy_Tiger
NavAx
Axapta Retail User
1C
NavAx Club
 
610 / 31 (3) +++
Регистрация: 17.12.2001
Адрес: Красноярск
кстати... промазал однако... дисплей метод был бы тогда прописан в св-вах контрола.
правильный ответ смотрим и находим в методе init() формы.

...
IB.realValue(IncomingBalance);
...

P.S. u are welcome
__________________
И все они создания природы...
Старый 14.10.2004, 18:28   #11  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
Хотелось еще ва слова сказать про этот метод

PHP код:

      display real IB
()
      {
          
LedgerAccount           ledgerAccount LedgerJournalName::bankAccountTable(LedgerJournalTable.JournalName).LedgerAccount;
          
date                    DateFromDateTo;
          
LedgerTotals            LedgerTotals;
          
TmpLedgerTableTotals    tmpTable;
      ;
          
DateFrom      LedgerJournalTrans::getDateFrom(LedgerJournalTable.JournalNum);
      
//    DateTo        = LedgerJournalTrans::getDateFrom(LedgerJournalTable.JournalNum);
      
          
DateFrom      =  DateFrom DateFrom LedgerJournalTable.JournalDate;
      
          
LedgerTotals  = new LedgerTotals(DateFromDateFrom);
          return 
ledgerTotals.IB(ledgerAccount);
      } 
Я так и не поня для чего служит tmpTable, DateTo.
Интересная конструкция с DateFrom!

Хочу сказать что часть кода нефункциональна.
Старый 14.10.2004, 18:31   #12  
Lazy_Tiger is offline
Lazy_Tiger
NavAx
Axapta Retail User
1C
NavAx Club
 
610 / 31 (3) +++
Регистрация: 17.12.2001
Адрес: Красноярск
нууу... как бы сказать... все это остатки былых мыслей я думаю.
не подчищенные за ненадобностью, все равно не работает этот код

а вообще там в комментариях есть автор, можно спросит его
__________________
И все они создания природы...
Старый 15.10.2004, 10:53   #13  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
В продолжении..

Остаток на конец дня (тоже контрол) вычисляется по следующей формуле

PHP код:
  incomingBalance receivedPayments sentPayments
Думается мне что incomingBalance соотвествует остатку на начало дня (IB), хотя явно в коде я связи не нашел (Забыли? Глюк? )

Единственное действие с incomingBalance такое:

PHP код:
        //+ vit 27.11.2003 AX3-200310_06 KC
         
IB.realValue(IncomingBalance);
        
//- vit 27.11.2003 AX3-200310_06 KC 
Подскажите, что делаетсся в этом коде! (По мне так это свойство, где incomingBalance обнуляется -- но ведь это остаток на конец дня, как он может обнуляться?)

Заранее благодарен!
Старый 15.10.2004, 11:05   #14  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
control'y IB (IncomingBalnce) присваивается значение переменной IncomingBalance.
Старый 15.10.2004, 11:13   #15  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
А если переменная IncomingBalnce до этого (и вообще никак) не инициализировалась -- это говорит о том, что передо мной бага -- контролу присваивается неинициализированная переменная!
Старый 15.10.2004, 11:24   #16  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
КАК не инициализировалась??
Это Вам не С! Как только переменная объявлена, ей присваивается значение "" или 0. или 0,0

К тому же, Вы сами говорили, что
incomingBalance = incomingBalance + receivedPayments - sentPayments.

Или я что-то не допонял?

С Уважением,
Георгий.
Старый 15.10.2004, 11:34   #17  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
Это остаток на конец дня вычисляется по этой формуле,
в которую входит incomingBalance!

А вот incomingBalance просто объявлена и

PHP код:
  IB.realValue(IncomingBalance); 
И после всего этого, я думаю -- как можно использовать переменную (IncomingBalance) которой ничего не присваивалось (ее просто объявили)!

Для себя мне нао решить -- это глюк или все так и задумывалось!
Старый 15.10.2004, 11:48   #18  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Этот глюк так и задумывался.

Александр! У меня, к сожелению, не AX Retail, а я, к сожелению, не яновидящий
1)Где объявлена переменная IncomingBalance?
2)Посмотрите по коду, где она еще исспользуется.

Нормальная ситуация:
PHP код:
classDeclaration MyForm extends RunBase
{
.........
.........
IncomingBalance
}

void ReCalcBalance
{
    
newAmount 100;
    
receivedPayments 1000;
    
sentPayments 500;
    
incomingBalance += receivedPayments sentPayments;
}

display Amount showNewAmount
{
.........
 
IB.realValue(IncomingBalance); //плохо, конечно. Но вполне реально. В этом методе заполняются еще и другие контролы.
return newAmount;

Старый 15.10.2004, 12:48   #19  
Rokhay is offline
Rokhay
Участник
 
154 / 15 (1) ++
Регистрация: 02.10.2003
Адрес: Ебург
Цитата:
Изначально опубликовано George Nordic


IB.realValue(IncomingBalance); //плохо, конечно. Но вполне реально. В этом методе заполняются еще и другие контролы.

А можно по-подробней плз, в чем минусы такого подхода?
Старый 15.10.2004, 13:00   #20  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
В идеологии

Так, конечно, можно, только делает это обычно класс.
Дело в том, что диспей метод ОЧЕНЬ часто вызывается для перерисовывания. Попробуйте поставить брэкпоинт и оддебажить этот код - Вас ждут сюрпризы

Таким образом, надо:
1) Или хранить все в пременных, а display - методами их отображать.
2) Или по изменению данных вызывать метод класса, который установит контролы. Часто применяется, когда надо изменить доступность кнопок.
3) Надо стараться как можно больше кода, осбенно рессурсоемкого, выносить на таблицы. К display - методам это тоже относиться. И кэшировать их не помешает....

С Уважением,
Георгий.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
mfp: Dynamics AX 2009 Version Control Interview Blog bot DAX Blogs 0 28.01.2009 12:05
axStart: Microsoft Dynamics AX 2009 White Paper: Team Foundation Server Version Control Setup Blog bot DAX Blogs 0 27.07.2008 13:06
Khue Trinh: AX 2009 Quality Management - Quality Control Blog bot DAX Blogs 1 04.07.2008 16:01
Channel9: Version control in MorphX Blog bot DAX Blogs 8 25.12.2007 10:37
Остаток на начало mallard DAX: Программирование 5 26.02.2007 11:57

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

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

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