Показать сообщение отдельно
Старый 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() говорит объект не инициализирован.