Import data from excel with autogenerated number sequence by using x++ AX2012
Import data from excel
public void ExcelImportwithAllDataTypes()
{
SysExcelApplication application;
SysExcelWorkbooks workbooks;
SysExcelWorkbook workbook;
SysExcelWorksheets worksheets;
SysExcelWorksheet worksheet;
SysExcelCells cells;
COMVariantType type;
Name name;
FileName filename;
int row =2;
int i =0 ;
Wre_CreditsDebitsTable creditsdebitsTable;
Wre_Gender gender;
Wre_PersonGender person;
Wre_Clearance invoice;
Dialog dialog;
DialogField dialogField;
NumberSeq numberSeq;
;
application = SysExcelApplication::construct();
workbooks = application.workbooks();
dialog = new Dialog("FileOpen");
dialogfield = dialog.addField(extendedTypeStr(Filenameopen), "File Name");
dialog.run();
if (dialog.run())
{
filename = (dialogfield.value());
}
try
{
workbooks.open(filename);
}
catch (Exception::Error)
{
throw error("File cannot be opened.");
}
workbook = workbooks.item(1);
worksheets = workbook.worksheets();
worksheet = worksheets.itemFromNum(1);
cells = worksheet.cells();
numberSeq = NumberSeq::newGetNum(NumberSeqReference::findReference(extendedTypeNum(Wre_SrNumber)),true);
numberSeq.used();
do
{
ttsBegin;
row++;
creditsdebitsTable.clear();
creditsdebitsTable.Wre_SrNumber = numberSeq.num();
creditsdebitsTable.Wre_Name = cells.item(row,2).value().bStr();
creditsdebitsTable.Wre_Gender = str2enum(gender,cells.item(row,3).value().bStr());
creditsdebitsTable.Wre_DOB = cells.item(row,4).value().date();
creditsdebitsTable.Wre_Person = cells.item(row,5).value().bStr();
creditsdebitsTable.Wre_PersonGender = str2enum(person,cells.item(row,6).value().bStr());
creditsdebitsTable.Wre_Contact = any2int64(cells.item(row,7).value().double());
creditsdebitsTable.Wre_Amount = cells.item(row,8).value().double();
creditsdebitsTable.Wre_LoanDate = cells.item(row,9).value().date();
creditsdebitsTable.Wre_Reason = cells.item(row,10).value().bStr();
creditsdebitsTable.Wre_Clearance = str2enum(invoice,cells.item(row,11).value().bStr());
creditsdebitsTable.insert();
type = cells.item(row+1, 1).value().variantType();
ttsCommit;
}
while (type != COMVariantType::VT_EMPTY);
application.quit();
info("Done");
info(strFmt("%1", i));
}
Comments
Post a Comment