Minggu, 09 November 2014

Melempar value dari form ke report

2 Cara berikut bisa dipakai untuk melempar nilai dari form ke report.
Cara 1 :
Dengan membuat object Query di AOT.

Pastikan kita mempunyai form dengan datasource yang sama dengan report.

Misalkan :
Form Employee, Datasource : EmplTable.
Report Employee, Datasource : EmplTable.

buat object Query dengan nama ex: Emplquery
Definisikan DataSource = EmplTable.
Definisikan Range = field2 yang akan menjadi parameter.
Save

Di Reportnya,
Buat Report dengan EmplReport.
Datasource EmplTable tadi delete dan ganti dengan object query EmplQuery.
di Method init
tambahkan code berikut

public void init()
{
    EmplTable empltable;
    super();

     if (element.args().dataset() == tablenum(EmplTable))
    {
        empltable = element.args().record();
    
        this.query().dataSourceName("[nama query kamu di report]").addRange(fieldnum(EmplTable , EmplId)).value(queryValue(empltable.emplid));
    }
}

Done untuk cara satu.

Cara 2 :

Kita bisa menambahkan method initfromcaller atau kamu bisa pakai nama method kamu sendiri.
(cara ini kita tidak perlu membuat object Query)
tambahkan code berikut di method initfromcaller
public void initFromCaller(Args _args)

{
EmplTable empltable;

QueryBuildDataSource qbds;

;

if (_args.caller())

{

    if (! _args.record().recId)

    throw error(strfmt("@SYS22338",funcname()));

    switch (_args.dataset())

    {

        case tablenum(EmplTable ):

        empltable= _args.record();

        //if (projmtotable.MTODocumentNo != ProjMTOTableAXS.MTODocumentNo)

        //throw error(strfmt("@SYS23396",funcname()));

        //break;

        //default:

        //throw error(strfmt("@SYS23396",funcname()));

    }

}



if (true || empltable.emplid)

{

qbds = element.query().dataSourceTable(tablenum(EmplTable));
SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable, emplid)).value(empltable.emplid);
SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable, Name)).value(empltable.name);
}

}

Done cara 2
bisa lihat lebih lengkap disini http://theaxapta.blogspot.com/2013/01/how-to-pass-values-from-form-to-report.html

Tidak ada komentar:

Posting Komentar

Cloud hosted environment di D365

Biasanya kita menginginkan sebuah environment yang sama dengan LIVE/PROD untuk mengtest sebuah proses. Maka kita bisa menggunakan fitur Clou...