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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.03.2013, 15:04   #7  
Pat4kord is offline
Pat4kord
Участник
 
23 / 10 (1) +
Регистрация: 13.01.2013
Адрес: Россия
Попробую привести полный пример кода
Код кнопки
X++:
void clicked()
{
    Args args;
    SysReportRun reportRun;
    ;
    
    args = new Args();
    args.record(CreditTable);
    args.name(reportstr(ReportGraphLoan));
    
    reportRun = ClassFactory.reportRunClass(args);
    reportRun.query().interactive(false);
    reportRun.report().interactive(false);
    reportRun.setTarget(PrintMedium::Screen);
    
    reportRun.run();
}
Класс создающий таблицу и возвращающий таблицу
X++:
public tmpGraphLoanLines buildLines(CreditTable _ct)
{
    tmpGraphLoanLines tmpLoanLines;
    int Months;
    Counter counter;
    TransDate transDate;
    Amount summDebet, sumPercent, summResponsible;
    WW_DateDiff dateDiff = new WW_DateDiff();
    ;

    ct = _ct;
    Months          = (year(ct.DateEnd)*12+mthOfYr(ct.DateEnd)) - (year(ct.DateBegin)*12+mthOfYr(ct.DateBegin));
    summDebet       = ct.SummCredit / Months;
    summResponsible = ct.SummCredit;

    tmpLoanLines.clear();

    for(counter = 1; counter <= Months; counter++)
    {
        transDate       = dateDiff.DateAddMonths(counter, ct.DateBegin);
        if (counter > 1)  summResponsible -= summDebet;
        sumPercent      = summResponsible * ct.Percents / 100 / 12;

        tmpLoanLines.TransDate   = transDate;
        if(counter == Months) tmpLoanLines.TransDate = ct.DateEnd;
        tmpLoanLines.SummPayment         = summDebet;
        tmpLoanLines.SumPaymentPercent   = sumPercent;
        tmpLoanLines.SummPaymentTotal    = tmpLoanLines.SummPayment + tmpLoanLines.SumPaymentPercent;
        tmpLoanLines.insert();
    }

    return tmpLoanLines;
}
Метод init() отчета
X++:
public void init()
{
    ;

    buildGraphLoan = new G_BuildGraphLoan();

    ct = element.args().record();
    element.query().dataSourceTable(tablenum(CreditTable)).addRange(fieldnum(CreditTable, Cash_CreditId)).value(strfmt('%1', ct.Cash_CreditId));
    
    super();
}
Метод отчета fetch()
X++:
public boolean fetch()
{
    boolean ret;

    this.queryRun().setRecord(buildGraphLoan.buildLines(ct));

    ret = super();

    return ret;
}
Вот как- то так, сори до этого писал по памяти, решил прям из проекта скопировать, на методе fetch() говорит объект не инициализирован.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
tmpTable mandatory field Kent DAX: Программирование 2 01.10.2009 15:11
Проблема с LedgerJournalTrans Alexanderrrr DAX: Программирование 14 23.09.2009 13:42
Отчеты,fetch CRASH_505 DAX: Программирование 14 19.09.2008 17:16
tmpTable+Cursor= Error.... bucken DAX: Программирование 18 10.12.2004 22:06
tmpTable Novice DAX: Программирование 2 26.09.2003 11:26
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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