X++ Code to import data from excel and getting path of uploaded file by clicking a button
Create button and over ride clicked method :-
Using System.IO;
Using OfficeOpenXml;
Using OfficeOpenXml.ExcelPackage;
Using OfficeOpenXml.ExcelRange;
class BASUploadButton
{
/// <summary>
/// Runs the class with the specified arguments.
/// </summary>main(Args _args)
/// <param name = "_args">The specified arguments.</param>
///
public static void main(Args _args)
{
System.IO.Stream stream;
ExcelSpreadsheetName sheet;
FileUploadBuild fileUpload,fileUploadBuild;
DialogGroup dialogUploadGroup;
FormBuildControl formBuildControl;
BAS_ImportPurchaseOrder selectedRecord = _args.record();
BAS_ImportPurchaseOrder importPurchaseOrder;
BASPurchaseOrderEntity purch;
Dialog dialog=new Dialog("Excel Import File");
dialogUploadGroup = dialog.addGroup("@SYS54759");
formBuildControl = dialog.formBuildDesign().control(dialogUploadGroup.name());
fileUploadBuild = formBuildControl.addControlEx(classStr(fileUpload),"UploadExcel");
fileUploadBuild.style(FileUploadStyle::MinimalWithFilename);
fileUploadBuild.fileTypesAccepted(".xlsx");
//if(dialog.run() && dialog.closedOk())
//{
//FileUpload fileUploadControl=dialog.formRun().control(dialog.formRun().controlId("Upload"));
FileUploadTemporaryStorageResult fileUploadResult=file::GetFileFromUser(classStr(FileUploadTemporaryStorageStrategy));
// Updating URL
select * from importPurchaseOrder
where importPurchaseOrder.BAS_SINo == selectedRecord.BAS_SINo;
if(importPurchaseOrder)
ttsbegin;
importPurchaseOrder.selectForUpdate(true);
//Getting URL/path of code
importPurchaseOrder.BASUploadFileLocation = fileUploadResult.getDownloadUrl();
importPurchaseOrder.update();
ttscommit;
//fileUploadResult=fileUploadControl.getFileUploadResult();
/*------------------part 1 end---------------------*/
/*------------------part 2---------------------*/
if(fileUploadResult!= null && fileUploadResult.getUploadStatus())
{
stream=fileUploadResult.openResult();
using(ExcelPackage package= new ExcelPackage(stream))
{
int rowCount, iterator;
package.Load(stream);
ExcelWorksheet worksheet= package.get_workbook().get_worksheets().get_Item(1);
OfficeOpenXml.ExcelRange range=worksheet.Cells;
rowCount = worksheet.Dimension.End.Row - worksheet.Dimension.Start.Row + 1;
for(iterator=2;iterator<=rowCount;iterator++)
{
//purch.ve(range.get_Item(iterator,1).Value);
purch.VendorAccount = any2Str(range.get_Item(iterator,2).Value);
purch.ItemNumber = any2Str(range.get_Item(iterator,3).Value);
purch.Qty = any2Real(range.get_Item(iterator,4).Value);
purch.Site = any2str(range.get_Item(iterator,5).Value);
purch.Warehouse = any2str(range.get_Item(iterator,6).Value);
purch.UnitPrice = any2Real(range.get_Item(iterator,7).Value);
purch.ProductReceiptNumber = any2Str(range.get_Item(iterator,8).Value);
purch.InvoiceNumber = any2Str(range.get_Item(iterator,9).Value);
purch.InvoiceDate = any2Date(range.get_Item(iterator,10).Value);
purch.BASFileName = any2Str(range.get_Item(iterator,11).Value);
purch.insert();
}
}
}
/*------------------part 2 end---------------------*/
//}
else
{
Error("error occured.");
}
}
}
Comments
Post a Comment