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

Erorr CS1963 - An expression tree may not contain a dynamic operation.

Kali ini saya mendapatkan erorr dengan code CS1963, padahal sebelumnya saya sudah mendefinisikan 'var item in Model' di @foreach(var...