In inventtableinventsetup i have to read two fields Lowest qty and maximum qty which is of REAL type.I dono how to use Realtype in my code.Can You please help me on that
static void ReadExcelfile(Args _args)
{
SysExcelApplication application;
SysExcelWorkbooks workbooks;
SysExcelWorkbook workbook;
SysExcelWorksheets worksheets;
SysExcelWorksheet worksheet;
SysExcelCells cells;
Filename filename;
COMVariantType type;
int rowNo;
InventTable HarmonizedMainAccount;
InventItemInventSetup inventsetup;
EcoResDistinctProduct DISTINCTPRODUCTS;
InventDim inventdim;
real comvariant2real;
str COMVariant2Str(COMVariant _cv, int _decimals = 0, int _characters = 0, int _separator1 = 0, int _separator2 = 0)
{
switch (_cv.variantType())
{
case (COMVariantType::VT_BSTR):
return _cv.bStr();
case (COMVariantType::VT_R4):
return num2str(_cv.float(),_characters,_decimals,_separator1,_separator2);
case (COMVariantType::VT_R8):
return num2str(_cv.double(),_characters,_decimals,_separator1,_separator2);
case (COMVariantType::VT_DECIMAL):
return num2str(_cv.decimal(),_characters,_decimals,_separator1,_separator2);
case (COMVariantType::VT_DATE):
return date2str(_cv.date(),123,2,1,2,1,4);
case (COMVariantType::VT_INT):
return num2str( _cv.int(),_characters,_decimals,_separator1,_separator2);
case (COMVariantType::VT_EMPTY):
return "";
default: throw error(strfmt("@SYS26908", _cv.variantType())); } return "";
}
rowNo = 2;//If the excel file having header.
application = SysExcelApplication::construct();
workbooks = application.workbooks();
filename = @"C:\STEVENEXCEL";//Excel file path.
try
{
workbooks.open(filename);
}
catch (Exception::Error)
{
throw error("File cannot be opened.");
}
workbook = workbooks.item(1);
worksheets = workbook.worksheets();
worksheet = worksheets.itemFromNum(1);//which shows excel sheet number.
cells = worksheet.cells();
type = cells.item(rowNo, 1).value().variantType();
while (type != COMVariantType::VT_EMPTY)//loop through given excel column.
{
type = cells.item(rowNo+1, 1).value().variantType();//It will find variant type of column from given Excel sheet(ReadIntegerFile.xlsx) tiil it get empty.
HarmonizedMainAccount.clear();
HarmonizedMainAccount.ItemId = COMVariant2Str(cells.item(rowNo, 1).value());
// HarmonizedMainAccount.NameAlias = COMVariant2Str(cells.item(rowNo, 2).value());//nome conta plano atual
inventdim.InventSiteId = COMVariant2Str(cells.item(rowNo, 2).value());
inventsetup.LowestQty =
inventsetup.HighestQty =
info(strFmt("ItemID %1", HarmonizedMainAccount.ItemId));
info(strFmt("Inventsiteid %1",inventdim.InventSiteId));
// DISTINCTPRODUCTS.ProductType = EcoResProductType::Item;
// HarmonizedMainAccount.initFromEcoResProduct(DISTINCTPRODUCTS);
//Conta plano harmonizado
// HarmonizedMainAccount.HarmonizedName = COMVariant2Str(cells.item(rowNo, 4).value());//nome conta valor harmonizado
//HarmonizedMainAccount.insert();
rowNo++;//To get next column number in the loop.
}
// info('fim');
application.quit();
}