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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.04.2009, 19:04   #1  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Ок, посмотрим на этот код по другому. Ваш код возвращает какой CustAccount ? Т.е. если метод представить в виде функции, то должно быть что-то вроде:

CustAсcount = F(x,y,...), где х,у - входные параметры, в зависимости от которых вычисляется CustAсcount.
Глядя на этот код, можно сказать, что входные параметры отсутствуют, и естественно, результат выполнения метода будет статичен. И как результат - во всех строках одно и то же. Ну в зависимости от чего метод долженг выбрать нужный CustAсcount?

В дисплэй\эдит методах входным параметром является курсор, которые в сию секунду отрисовывается на форме. Если метод написан на датасорсе формы, то этот курсор приходит в метод параметром. Если на таблице, то этим курсором служит this. Если в отчете, то этим курсором служит имя датасорса квери.
За это сообщение автора поблагодарили: Dima_Dima (1).
Старый 23.04.2009, 19:39   #2  
Dima_Dima is offline
Dima_Dima
Участник
 
144 / 11 (1) +
Регистрация: 09.10.2008
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Если в отчете, то этим курсором служит имя датасорса квери.
ProjInvoice --> DataSource --> Query --> DataSource --> ProjInvoiceJour

X++:
display AccountNum customerId()
{
    SMAserviceOrderTable        smaserviceordertableloc;
    SMAServiceOrderLine         smaserviceorderlineloc;
    Name                             _patID;
    ProjInvoiceEmpl             projinvoiceemplloc;
    ;


    select firstonly CustAccount, ServiceOrderId from smaserviceordertableloc
        exists join serviceOrderId from smaserviceorderlineloc
            where smaserviceordertableloc.serviceorderid        == smaserviceorderlineloc.ServiceOrderId &&
                     smaserviceordertableloc.AgreementId        == smaserviceorderlineloc.AgreementId
        exists join TransId    from projInvoiceEmplloc
            where projinvoiceemplloc.TransId                    == smaserviceorderlineloc.ProjTransId
        exists join ProjinvoiceID from projInvoiceJour
            where    projInvoiceEmplloc.ProjInvoiceId           == projInvoiceJour.ProjInvoiceId;
                     
             

    _patID   = smaserviceordertableloc.CustAccount;
    

    return _patID;
так тоже никакого эффекта...
Старый 23.04.2009, 21:10   #3  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Dima_Dima Посмотреть сообщение
ProjInvoice --> DataSource --> Query --> DataSource --> ProjInvoiceJour

X++:
display AccountNum customerId()
{
    SMAserviceOrderTable        smaserviceordertableloc;
    SMAServiceOrderLine         smaserviceorderlineloc;
    Name                             _patID;
    ProjInvoiceEmpl             projinvoiceemplloc;
    ;


    select firstonly CustAccount, ServiceOrderId from smaserviceordertableloc
        exists join serviceOrderId from smaserviceorderlineloc
            where smaserviceordertableloc.serviceorderid        == smaserviceorderlineloc.ServiceOrderId &&
                     smaserviceordertableloc.AgreementId        == smaserviceorderlineloc.AgreementId
        exists join TransId    from projInvoiceEmplloc
            where projinvoiceemplloc.TransId                    == smaserviceorderlineloc.ProjTransId
        exists join ProjinvoiceID from projInvoiceJour
            where    projInvoiceEmplloc.ProjInvoiceId           == projInvoiceJour.ProjInvoiceId;
                     
             

    _patID   = smaserviceordertableloc.CustAccount;
    

    return _patID;
так тоже никакого эффекта...
А не попробовать ли вам добавить параметр в ваш дисплей-метод?
X++:
display AccountNum customerId(ProjInvoiceJour _projInvoiceJour)
и использовать его...
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: Dima_Dima (1).
Старый 23.04.2009, 22:03   #4  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от ZVV Посмотреть сообщение
А не попробовать ли вам добавить параметр в ваш дисплей-метод?
X++:
display AccountNum customerId(ProjInvoiceJour _projInvoiceJour)
и использовать его...
Тут речь про отчет, а эта конструкция только[?] для датасорса формы применима.

2 Dima_Dima: У вас, как я понимаю, DAX2009? У меня, к сожалению, её нет под рукой. Но глядя на этот отчет в 4-ке, можно увидеть, что секция
\Reports\ProjInvoice\Designs\Standard\Generated Design\Section Group: ProjInvoiceJour\Body:ProjectInvoiceJour\Section Group: ProjInvoiceEmpl
может выполняться несколько раз для одного и того же projInvoiceJour, от которого зависит получаемый Вами _patID. Посмотрите строки отчета, где изменяется projInvoiceJour. Логичнее было бы разместить ваше поле на уровне секции
"\Reports\ProjInvoice\Designs\Standard\Generated Design\Section Group: ProjInvoiceJour\Body:ProjectInvoiceJour"
, но тут уже вопросы дизайна.

P.S. Могу ошибаться.

Последний раз редактировалось DSPIC; 23.04.2009 в 22:09.
За это сообщение автора поблагодарили: Dima_Dima (1).
Старый 27.04.2009, 12:44   #5  
Dima_Dima is offline
Dima_Dima
Участник
 
144 / 11 (1) +
Регистрация: 09.10.2008
Цитата:
Сообщение от DSPIC Посмотреть сообщение
CustAсcount = F(x,y,...), где х,у - входные параметры, в зависимости от которых вычисляется CustAсcount.
Глядя на этот код, можно сказать, что входные параметры отсутствуют, и естественно, результат выполнения метода будет статичен. И как результат - во всех строках одно и то же. Ну в зависимости от чего метод долженг выбрать нужный CustAсcount?
Благодарю за ответ, если вы не AX-тренер, то советую им стать. Очень простое и доходчивое объяснение.

Всё заработало!

Последний раз редактировалось Dima_Dima; 27.04.2009 в 13:21.
Теги
отчет, axapta

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Значение по умолчанию при добавлении нового поля zYmosi3 DAX: Программирование 4 08.04.2008 12:03
Добавление нового поля в старую таблицу PavelSR DAX: Программирование 3 14.06.2006 08:22
Как заставить отчет группироваться по части поля ahtoh DAX: Функционал 1 12.01.2006 11:00
Добавление полей в стандартный отчет tolstjak DAX: Программирование 10 06.04.2004 17:50
Проблема при добавлении в таблицу нового поля Maxim Gorbunov DAX: База знаний и проекты 2 09.08.2002 15:30

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

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

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