AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 29.11.2007, 14:33   #1  
gefr ist offline
gefr
Участник
Benutzerbild von gefr
MCBMSS
 
147 / 17 (1) ++
Registriert seit: 01.11.2004
Ort: МО, Котельники
предвычисление полей (не кеширование методов)
Есть форма, есть набор долговычисляемых полей, которые используют значения друг друга.
Соответственно, возникает хотелка: предвычислить все значения при смене записи, в грид выводить уже готовые значения. Вопрос: в каком методе вызывать вычисление?
Если cursorNotify - он тогда для всех строк вычисляет значения для текущей строки.
Active и linkActive - нули всегда отдает...
Alt 29.11.2007, 14:42   #2  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
postLoad вызывается после считывания каждой записи.
Alt 29.11.2007, 15:09   #3  
konopello ist offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Registriert seit: 08.11.2005
Ort: Минск
а может попробовать слаживать расчитаные значения во временную таблицу, и display методом их выводить. Если запись во временной таблице существует брать расчитаные значения из нее, если нет то рассчитать значения и вставить во временную таблицу, связь между обычной таблицей и временной можно сделать по recid.

Zitat:
Вопрос: в каком методе вызывать вычисление?
следовательно и нужда в этом вопросе отпадает.
Alt 29.11.2007, 16:04   #4  
gefr ist offline
gefr
Участник
Benutzerbild von gefr
MCBMSS
 
147 / 17 (1) ++
Registriert seit: 01.11.2004
Ort: МО, Котельники
2konopello: какая разница, где хранить. главное, когда рассчитать. Мой метод хранения мне нравится больше - он однозначно быстрее
2kashperuk - postLoad - это чей метод? я его найти не могу среди методов формы
Alt 29.11.2007, 16:06   #5  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
Zitat:
Zitat von george040875 Beitrag anzeigen
2konopello: какая разница, где хранить. главное, когда рассчитать. Мой метод хранения мне нравится больше - он однозначно быстрее
2kashperuk - postLoad - это чей метод? я его найти не могу среди методов формы
это на таблице.
см для примера LedgerTrans

но быстрым такой подход не назовешь
Alt 29.11.2007, 16:10   #6  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Я бы сделал так:

1. Есть кеш (ннапример, MAP) recID --> (набор вычисляемых полей)
2. При попытке получить значение одного из дисплей методов, вычисляются они все, если их нет в кеше или берутся из кеша, если есть.
Alt 29.11.2007, 16:13   #7  
konopello ist offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Registriert seit: 08.11.2005
Ort: Минск
Zitat:
2konopello: какая разница, где хранить. главное, когда рассчитать. Мой метод хранения мне нравится больше - он однозначно быстрее
к сожалению я не видел ваш метод, а просто предложил вариант решения

не вижу смысла рассчитывать все предварительно, мой метод производил бы расчет по мере необходимости, т.е. при поподании данных в grid.

Geändert von konopello (29.11.2007 um 16:14 Uhr) Grund: ошибки......
Alt 29.11.2007, 16:16   #8  
konopello ist offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Registriert seit: 08.11.2005
Ort: Минск
Zitat:
Я бы сделал так:

1. Есть кеш (ннапример, MAP) recID --> (набор вычисляемых полей)
2. При попытке получить значение одного из дисплей методов, вычисляются они все, если их нет в кеше или берутся из кеша, если есть.
ну вот фактически мой вариант только с помощью MAP
Alt 29.11.2007, 17:37   #9  
gefr ist offline
gefr
Участник
Benutzerbild von gefr
MCBMSS
 
147 / 17 (1) ++
Registriert seit: 01.11.2004
Ort: МО, Котельники
2konopello - я просто сразу не понял сути предложения. В принципе, действительно интересный вариант.
2belugin - имеющиюся готовую реализацию в системе не подскажете?
Alt 29.11.2007, 17:43   #10  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
не. не знаю.
Alt 29.11.2007, 17:49   #11  
konopello ist offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Registriert seit: 08.11.2005
Ort: Минск
Zitat:
2belugin - имеющиюся готовую реализацию в системе не подскажете?
\Forms\EmplBalance_RU

только тут слегка по калечному сделано
Alt 29.11.2007, 18:23   #12  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
Еще можно сделать так, как на форме Закупок, к примеру.
закладка Разноска или История разноски (там где последний документ и его дата)
Alt 29.11.2007, 18:32   #13  
gefr ist offline
gefr
Участник
Benutzerbild von gefr
MCBMSS
 
147 / 17 (1) ++
Registriert seit: 01.11.2004
Ort: МО, Котельники
Zitat:
Zitat von kashperuk Beitrag anzeigen
Еще можно сделать так, как на форме Закупок, к примеру.
закладка Разноска или История разноски (там где последний документ и его дата)
Фактически именно так я и сделал. только для отображения в гриде - как выяснилось не годится
Alt 29.11.2007, 19:10   #14  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
Zitat:
Zitat von george040875 Beitrag anzeigen
2belugin - имеющиюся готовую реализацию в системе не подскажете?
Главная книга \ План счетов.
Сальдо "предвычисленное" поле
__________________
полезное на axForum, github, vk, coub.
Alt 29.11.2007, 20:18   #15  
Logger ist offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3.996 / 3293 (117) ++++++++++
Registriert seit: 12.10.2004
Ort: Москва
Blog-Einträge: 2
Zitat:
Zitat von kashperuk Beitrag anzeigen
это на таблице.
см для примера LedgerTrans

но быстрым такой подход не назовешь
У меня он почему то 2 раза вызывается
Alt 30.11.2007, 10:08   #16  
konopello ist offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Registriert seit: 08.11.2005
Ort: Минск
Zitat:
Главная книга \ План счетов.
Сальдо "предвычисленное" поле
точно, хороший пример как я его сразу не вспомнил
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
оптимальное кол-во полей в таблице SHiSHok DAX: Программирование 9 30.04.2008 18:31
Кеширование средствами аксапты Logger DAX: Программирование 27 11.10.2007 14:40
Как получить значения полей (modifiedDate, modifiedTime, modifiedBy и др.) при работе с объектами AOT типа Map? LRA DAX: База знаний и проекты 15 02.04.2007 13:37
Как перекрыть lookup для поля входящего в группу полей ATimTim DAX: Программирование 2 05.10.2005 11:26
очистка полей. простой вопрос Антон Солдатов DAX: Программирование 4 04.04.2003 10:28

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 19:38 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.