Merhaba
Rapor yaparken diyalog alanından aldığınız başlangıç ve bitiş tarihlerini nasıl query’e range olarak ekleneceğini anlatacağım .
Öncelikle classdecleretaion da değişkenlerimizi tanımlayalım.
public class ReportRun extends ObjectRun
{
DialogField dfStartDate;
DialogField dfEndDate;
TransDate startDate;
TransDate endDate;
}
Daha sonra dialog metodunda şunları yazalım
public Object dialog(Object _dialog)
{
DialogRunBase dialog;
;
dialog = _dialog;
dfStartDate = dialog.addField(typeid(TransDate),”Başlangıç Tarihi”);
dfEndDate = dialog.addField(typeid(TransDate),”Bitiş Tarihi”);
return dialog;
}
Şimdi de dialogdaki değerleri değişkenlerimize atayalım.
public boolean getFromDialog()
{
;
startDate = dfStartDate.value();
endDate = dfEndDate.value();
return true;
}
eğer değerleri kontrol etmek isterseniz şunu yapabilirsiniz
if(!endDate)
endDate = DateTimeUtil::date(datetimeutil::maxValue()); // Maksimum değeri atar
if(!startDate)
startDate =DateTimeUtil::date(datetimeutil::minValue()); // Minimum değeri atar
Son olarak fatch metoduna nasıl range olarak ekleyebiliriz onu görelim. örnek olarak purchline tablosunu seçtim.
public boolean fetch()
{
boolean ret;
Query q;
QueryRun qRun;
QuerybuildDataSource qbd;
QuerybuildRange qbr;
PurchLine tmpPurchLine;
;
q = element.query();
qbd = element.query().dataSourceNo(1);
qbr = qbd.addRange(fieldnum(PurchLine,CreatedDate));// kriteri vereceğim tablonun tarih alanı
qbr.value(sysquery::range(startDate,endDate));
qRun = new QueryRun(q);
while(qRun.next())
{
tmpPurchLine = qrun.get(tablenum(PurchLine));
// buraya diğer işlemlerinizi yazabilirsiniz
element.send(tmpPurchLine);
}