Jumat, 22 Juli 2011

Report dengan Dialog dan Method LookUp


OOOoooiII spAXrtan ... mau posting lagi nih ..

Inget dengan postingan saya yang tentang LookUp dengan parameter kan?
ya ... itu nempelnya di sebuah Form.
Dan sekarang aku menghadapi suatu report yang harus ada lookup seperti itunya.
so .. ada yang bisa Bantu ga?
Report tersebut Running dengan DialogForm dan juga extends ke RunBasebatch. DialogField yang ditampilkan
untuk parameter adalah ItemGroupId dan ItemId. Dimana ItemId meLookup berdasarkan Value dari ItemGroup.
...
Untuk disebuah fOrm aku sudah tahu bagaimana caranya tapi bagaimana jika hal ini terjadi disebuah Dialog RunBaseBatch

Akhirnya demi mengimplementasikan permintaan parameter untuk report yang menggunakan Lookup berdasarkan inputan
aku menggunakan Form untuk dialog Reportnya.
pertama aku membuat form dengan 3 buah object didalamnya
yaitu FieldString ItemGroupId
FieldString ItemId
dan terkahir Button
setelah itu di class Declaration Form itu aku tambahkan variable berupa array

dan aku buat sebuah method di form tersebut ... sebut saja namanya lemparvalue().
void lemparvalue()
{
args args;
Menufunction mnu;
;
data = new array(types::String);
data.value(1,itemgroupid.valueStr());
data.value(2,itemid.valueStr());

args = new args();
args.parmObject(data);
mnu = new Menufunction(menuitemoutputstr(Itemdeliveryreport),menuitemtype::Output);
mnu.run(args);
}

sebelumnya aku sudah membuat report dengan nama Itemdeliveryreport.

tak lupa di FieldString ItemId aku tambahkan method LookUp
public void lookup()
{

Query query = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;

SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(InventTable), This);
;

sysTableLookup.addLookupField(fieldNum(InventTable, ItemId));
sysTableLookup.addLookupField(fieldNum(InventTable, ItemGroupId));


queryBuildDataSource = query.addDataSource(tableNum(InventTable));
queryBuildRange = queryBuildDataSource.addRange(fieldNum(InventTable, ItemGroupId));

queryBuildRange.value(ItemGroupId.valueStr());
sysTableLookup.parmQuery(query);

sysTableLookup.performFormLookup();
}

terakhir di Button-method Cliked
void clicked()
{
;
super();

element.lemparvalue();
element.close();
}

Di Report ItemDeliveryreport yang sudah aku buat aku deklarasikan sebuah Variable array

public class ReportRun extends ObjectRun
{
....
....
....
Array datadata;

}
dan juga sebuah method init()
public void init()
{


;
super();

datadata = this.args().parmObject();


}

terakhir ..tentu saja di Fetch()
karena nilai yang dilempar itu ada 2 nilai pertama ItemGroupId dan ItemId, dan sudah dimasukan ke variable data yang ada di form maka aku harus memecahnya kembali dengan cara
public boolean fetch(){
boolean ret;
ItemGroupId _itemGroup;
ItemId _itemId;

//ret = super();
ret = true;

_itemgroup = datadata.value(1);
_itemId = datadata.value(2);

///selanjutnya silahkan anda manfaatkan atau daya gunakan kedua variable yang sudah berisi nilai-nilai yang diambil dari form inputan tadi.
..........
........
.........
..........
}

say thanks to dulu sebelum pamit ...thanks yak om Atus

Okay SpAXrtan ... mangga di cobian ... :)

Tidak ada komentar:

Posting Komentar