vendredi 6 avril 2012

Adding Progress bar in form or report in axapta

Adding Progress bar in form or report in axapta is not so tough I just try this code.
SysOperationProgress progress,progressexcel;
str tmpb,tmpogroup,tmpo,tmpb;
;

progressexcel = new SysOperationProgress();
progressexcel.setCaption('Progress');
progressexcel.setText('Printing To Excel..Please Wait');

super();

startLengthyOperation();
element.oQuery();

element.close();
progressexcel.setTotal(8000);
excelApplication = new COM("excel.application");
excelWorkBooks = excelApplication.workBooks();
excelWorkBook = excelWorkBooks.add();
excelWorkSheets = excelWorkBook.worksheets();
excelApplication.visible(false);
excelWorkSheet = excelApplication.activeSheet();

styles = excelWorkBook.styles();
style = styles.add('MyStyle');
font = style.font();
font.bold(true);

range = excelWorkSheet.Range("A1:C1");
range.style('MyStyle');
range.MergeCells(true);
range.value2(CompanyInfo::find().Name);

range = excelWorkSheet.Range("A2:C2");
range.style('MyStyle');
range.MergeCells(true);
range.value2("Stock Existing Report");

range = excelWorkSheet.Range("D2");
range.style('MyStyle');
range.value2(strfmt("Created Date :%1 Created Time :%2",today(),time2str(timenow(),1,1)));

linenum = 3;
i = 1;

range = excelWorkSheet.Range(strfmt("B%1",lineNum));
range.style('MyStyle');
range.value2(strfmt("LIST OF oS - %1",b.valueStr()));
lineNum++;
progressexcel.incCount();


QRN=new QueryRun(Q);
while(QRN.next())
{
intltems = QRN.get(tablenum(ViewBacobActive));


if (tmpb != intltems.b)
{
range = excelWorkSheet.Range(strfmt("B%1",lineNum));
range.style('MyStyle');
range.value2(strfmt("%1",BacbMaster::find(intltems.b).Description));
lineNum++;
progressexcel.incCount();
}
range = excelWorkSheet.Range(strfmt("A%1",lineNum));
range.value2(strfmt("%1",i));
range = excelWorkSheet.Range(strfmt("B%1",lineNum));
range.value2(strfmt("%1 - %2",intltems.oGroup,intltems.o));

lineNum++;
progressexcel.incCount();
i++;
tmpb=intltems.b;
}
excelApplication.visible(true);
excelApplication.finalize();

endLengthyOperation();

Aucun commentaire:

Enregistrer un commentaire