static void GOD_UpdateItemFamily(Args _args)
{
#AviFiles
FilenameOpen filename;
dialogField dialogFilename;
Dialog dialog= new Dialog("Excel Upoad");
Container excelCont[];
str valuestr;
int rowIdx;
Counter linesImported;
int lastRow,dimcount;
boolean ok = true;
NoYes noYes;
str 50 c1,c2,c12;
real c3,c4,c5;
str input;
container accEntryPattern;
InventItemBarcode inventItemBarcodeCreate;
NumberSeq numberSeq;
SysExcelApplication application;
SysExcelWorkBooks workBooks;
SysExcelWorkSheets workSheets;
SysExcelWorkSheet workSheet;
SysExcelCells cells;
SysOperationProgress progress;
InventTable _InventTable,_InventTableupdate;
//GOD_ItemFamilyMaster _GOD_ItemFamilyMaster;
struct struct= new Struct();
DocuRef docuRef;
DocuValue docuValue;
System.String[] fileNames;
int fileCount, i;
str ImagefileName, trimmedFileName, fileNameWithExt;
BinData binData = new BinData();
str extention, path, nameOfFile;
container imageContainer;
str imageFilePathName,FileImageName;
#define.CurrentVersion(1)
#localmacro.CurrentList
filename
#endmacro
#Excel
#define.Star('*')
#define.Space(' ')
// convert into str from excel cell value
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_R4 :
//case COMVariantType::VT_R8 :
//
//if(_cv.double())
//{
//valueStr = strFmt("@SYS311964",
//num2Str0(_cv.double(), 0),
//num2str(_cv.double(),
//0,
//numOfDec(_cv.double()),
//1,
//0));
//}
//return valuestr;
//break;
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_EMPTY):
return "";
default:
throw error(strfmt("@SYS26908", _cv.variantType()));
}
return "";
}
// Find last row from excel
int findLastRow(SysExcelWorkSheet _workSheet)
{
SysExcelRange range;
;
range = _workSheet.cells().range(#ExcelTotalRange);
try
{
// Finds the row where the first contents is found.
range = range.find(#Star, null, #xlFormulas, #xlWhole, #xlByRows, #xlPrevious);
}
catch (Exception::Error)
{
error("@SYS59926");
return 0;
}
if (range)
{
return range.row();
}
else
{
return 0;
}
}
;
dialogFilename = dialog.addField(extendedtypestr(FilenameOpen));
dialog.filenameLookupFilter(["@SYS28576", #XLSX, "@SYS28576", #XLS]);
dialog.filenameLookupTitle("Upload from Excel");
dialogFilename.value(filename);
if(!dialog.run())
return;
filename = dialogFilename.value();
//ttsbegin;
application = SysExcelApplication::construct();
workBooks = application.workbooks();
workBooks.open(filename,0,true);
workSheets = workBooks.item(1).worksheets();
input = "Sheet1";
workSheet = workSheets.itemFromNum(1);
cells = workSheet.cells();
lastRow = findLastRow(workSheet);
rowIdx = 2;
progress = new SysOperationProgress();
progress.setCaption("Excel Importing");
progress.setTotal(lastRow);
progress.setAnimation(#AviTransfer);
setprefix("Excel Import");
try
{
while (rowIdx <= lastRow)
{
setPrefix(strfmt("Excel Row: %1", rowIdx));
c1 = COMVariant2Str(cells.item(rowIdx,1).value());
c2 = COMVariant2Str(cells.item(rowIdx,2).value());
c3 = cells.item(rowIdx,3).value().double();
c4 = cells.item(rowIdx,4).value().double();
c5 = cells.item(rowIdx,5).value().double();
linesImported++;
progress.setText("Importing " + c12);
progress.setCount(linesImported);
rowIdx++;
dimcount =0;
select firstOnly _InventTable where _InventTable.ItemId == c1;
if (_InventTable)
{
ttsBegin;
select forUpdate _InventTableupdate
where _InventTableupdate.ItemId == _InventTable.ItemId;
//if (c2)
// select firstonly _GOD_ItemFamilyMaster where _GOD_ItemFamilyMaster.Code == c2;
//if(_GOD_ItemFamilyMaster)
//_InventTableupdate.GOD_FamilyCode = c2;
if (c3)
_InventTableupdate.grossDepth =c3;
if(c4)
_InventTableupdate.grossWidth = c4;
if(c5)
_InventTableupdate.grossHeight = c5;
_InventTableupdate.update();
ttsCommit;
}
}
}
catch
{
info(strFmt("Error at line %1",rowIdx-1));
}
application.quit();
application = null;
//ttscommit;
info(strFmt("done %1",rowIdx-2));
}
No comments:
Post a Comment