AX 2009 销售订单导入导出
在AX 2009 中EXCEL的导入导出是经常会做的事情,很多客户用习惯了EXCEL,都喜欢直接在EXCEL里面去添加数据,不习惯在AX系统里去录数据,这样的话,我们就需要将EXCEL录入的数据导入到AX系统。
要想没有任何问题的将EXCEL里的数据,准备的录入到AX中,我们需要得先在AX中生成EXCEL的模版,用户将根据AX系统提供的模版进行录入数据。这样达到准确无误的将数据添加到AX系统中,具体的实现代码如下。
1,类,全局变量定义
public class RGD_SalesOrderLead extends runBaseBatch { #Excel dialogfield dialogFilename; dialogTabPage dialogTabPageOut; dialogfield dialogFileNameOut; dialogTabPage dialogTabPageIn; dialogfield ifLeadOut; NoYes leadOut; DialogField dialogShowTemplate; NoYesId showTemplate; FileNameOpen fileName,fileNameAll,fileNameOut,fileNameOutAll; Str callParm; FormStringControl fileNameControl; boolean retLead; LedgerJournalTrans ledgerJournalTrans; SalesId _salesId; Object obj; FormDataSource fds; SalesTable salesTable; Str 20 useridTime; #File #define.CurrentVersion(1) #define.version1(1) #localmacro.CurrentList //filename fileNameOut #endmacro }
2,画出操作界面
protected Object dialog() { DialogRunbase dialog = super(); Str filenameStr; Str TxtName; container Con; ; dialogTabPageIn = dialog.addTabPage("销售订单导入"); dialogFilename = dialog.addFieldValue(typeid(FileNameOpen),fileName); dialogTabPageOut = dialog.addTabPage("销售订单模板生成"); dialogFileNameOut = dialog.addFieldValue(typeid(FileNameSave),fileNameOut); dialogShowTemplate = dialog.addFieldValue(typeid(NoYesId),showTemplate,"@INT3","@INT4"); //filenameStr = WinAPI::getSaveFileName(infolog.hWnd(), ["文本文件","*.xsl"],dialogFileNameOut.value() , "文件保存","",TxtName); dialog.addMenuItemButton(MenuItemType::Action,identifierstr(Templates),DialogMenuItemGroup::CurrentGrp); this.dialogSetFilenameLookup(dialog); dialog.filenameLookupFilter(); //ifLeadOut = dialog.addFieldValue(typeid(noyes),leadOut,"确认生成模板"); return dialog; } public boolean getFromDialog() { int position; int positionOut; ; filename = dialogFilename.value(); fileNameOut = dialogFileNameOut.value(); //leadOut = ifLeadOut.value(); filenameAll = filename; fileNameOutAll = fileNameOut; position = strfind(filenameAll,"\\",1,strlen(filenameAll)); positionOut = strfind(fileNameOutAll,"\\",1,strlen(fileNameOutAll)); showTemplate = dialogShowTemplate.value(); if(filenameAll && position) { do { filenameAll = strins(filenameAll,"\\",position+1); position = strfind(filenameAll,"\\",position + 2,strlen(filenameAll)); } while (position); } if(fileNameOutAll && positionOut) { do { fileNameOutAll = strins(fileNameOutAll,"\\",positionOut+1); positionOut = strfind(fileNameOutAll,"\\",positionOut + 2,strlen(fileNameOutAll)); } while (positionOut); } return true; }
public void dialogPostRun(DialogRunbase dialog) { super(dialog); dialog.dialogForm().formRun().controlMethodOverload(true); dialog.formRun().controlMethodOverloadObject(this); } void dialogSetFilenameLookup(DialogRunbase dialog) { FilePath filePath; //fileNameOut.lookupButton(FormLookupButton::Always); dialogFileNameOut.lookupButton(FormLookupButton::Always); dialog.filenameLookupFileName(this.parmFileName()); dialog.filenameLookupFilter(this.filenameLookupFilter()); [filePath] = fileNameSplit(this.parmFileName()); dialog.filenameLookupInitialPath(filePath); } container filenameLookupFilter() { return ["@SYS28576",#AllFilesName+#XLS+';'+#XLSM+';'+#XLSX]; } private container fileNameLookupFilterCon() { ; return ["SXL文件", #AllFilesName + #AllFilesExt]; }
3,值的类型验证判断
str 1024 getValue(COMVariant _comVariant) { str 1024 value; str tmpSubStr; ; //info(enum2str(_comVariant.variantType())); switch(_comVariant.variantType()) { case COMVariantType::VT_BSTR : value=_comVariant.bStr(); break; case COMVariantType::VT_EMPTY: value=''; break; case COMVariantType::VT_I1: value=num2char(_comVariant.char()); break; case COMVariantType::VT_I2: value=int2str(_comVariant.short()); break; case COMVariantType::VT_I4: value= int2str(_comvariant.int()); if (!value) value = int2str(_comVariant.long()); break; case COMVariantType::VT_UI1: value = int2str(_comvariant.byte()); break; case COMVariantType::VT_UI2: value = int2str(_comvariant.uShort()); break; case COMVariantType::VT_UI4: value= int2str(_comVariant.uInt()); if (!value) value = int2str(_comVariant.uLong()); break; case COMVariantType::VT_R4 : value = num2str(_comVariant.float(),20,6,1,0); tmpSubStr=substr(value,strfind(value,'.',1,strlen(value))+1,strLen(value)); if(str2int(tmpSubStr)==0) value=num2str(_comVariant.float(),20,0,1,0); break; case COMVariantType::VT_R8 : value = num2str(_comVariant.double(),20,6,1,0); tmpSubStr=substr(value,strfind(value,'.',1,strlen(value))+1,strLen(value)); if(str2int(tmpSubStr)==0) value=num2str(_comVariant.double(),20,0,1,0); break; case COMVariantType::VT_DECIMAL : value = num2str(_comVariant.decimal(),20,6,1,0); tmpSubStr=substr(value,strfind(value,'.',1,strlen(value))+1,strLen(value)); if(str2int(tmpSubStr)==0) value=num2str(_comVariant.decimal(),20,0,1,0); break; case COMVariantType::VT_DATE : value = strfmt('%1',_comVariant.date()); break; case COMVariantType::VT_CY : value = num2str(_comVariant.currency(),20,6,1,0); tmpSubStr=substr(value,strfind(value,'.',1,strlen(value))+1,strLen(value)); if(str2int(tmpSubStr)==0) value=num2str(_comVariant.currency(),20,0,1,0); } return strLtrim(strRtrim(value)); }
4,缓存上次输入的路径
public container pack() { return [#CurrentVersion,#CurrentList]; } public boolean unpack(container packedClass) { Version version = runbase::getVersion(packedClass); ; switch (version) { case #CurrentVersion: [version,#CurrentList] = packedClass; break; default: return false; } return true; }
5,属性的定义
Str parmCallParm(Str _parm = callParm) { ; callParm = _parm; return callParm; } FormDataSource parmfds(FormDataSource _fds = fds) { ; fds = _fds; return fds; } FileName parmFileName(Filename _filename = filename) { ; filename = _filename; return filename; } Object parmobj(Object _obj = obj) { ; obj = _obj; return obj; } SalesTable parmSalesTable(SalesTable _salesTable = salesTable) { ; salesTable = _salesTable; return salesTable; }
6,类构造
static client public RGD_SalesOrderLead construct()
{
return new RGD_SalesOrderLead();
}
7,按钮事件
void mnuItm_1_Clicked()
{
retlead = true;
//this.getFromDialog();
this.run();
}
8,逻辑调用
static void main(Args _args) { RGD_SalesOrderLead import; ; import = RGD_SalesOrderLead::construct(); import.parmCallParm(_args.parm()); if(_args.parm() == "SalesTable" && _args.record()) import.parmSalesTable(_args.record()); import.parmobj(_args.caller()); if(_args.record()) { import.parmfds(_args.caller().dataSource()); } if (import && import.prompt()) { import.run(); } } void run() { salesLine _salesLine; ; startLengthyOperation(); if(callParm == "SalesTable") { if(retlead) { this.runTmpSalesTable(); info("@RGD420"); } else { if(filename == "") { info("@RGD421"); return; } this.runImportSalesTable(); info("@HFM229"); } } endLengthyOperation(); }
void runImportSalesTable() { SysExcelApplication excelApp; SysExcelWorkbooks sysExcelWorkbooks; SysExcelWorkbook sysExcelWorkbook; SysExcelWorksheets sysExcelWorksheets; SysExcelWorksheet sysExcelWorksheet; SysExcelWorksheet sysExcelWorksheetLine; SysExcelCells sysExcelCells; SysExcelCells sysExcelCellsLine; SysExcelCell sysExcelCell; SysExcelCell sysExcelCellLine; SalesLine salesline; SalesTable _stl; SalesLine _sl; SalesLine salesUpd; InventDim inventDim; InventTable inventTable; CustTable tcustTable; real salesPriceDiscCustAccount; RGD_ImportBatchId importBatchId; PriceDiscTable priceDiscTable; Address taddress; SalesId _sid; SalesId _sidLine; RGD_SalesorderNum _excelOrderNum; AccountNum _accountNum; RGD_SalesTableHelper _salesTableHelper; SalesTable _sth; str 100 sheetname; int _count = 1; int _countLine = 1; //str itemid; Str unitid; Str InventLocationId; boolean canInsertflag; SalesPrice _SalesPrice; TaxItemGroup _taxItemGroup; boolean ifemptyBreak; boolean insertFlg; name shipTo; NumberSeq num; NumberSeq numBatchCode; boolean insertSalesTableFlg = true; boolean insertSalesLineFlg = true; Str 30 custSearchName; CustTable _custTable; DirPartyTable dirPartTable; str test; boolean retRun; ; useridTime = curuserid()+int2str(timenow()); insertFlg = true; sheetname = "Header"; if( filename == "" ) return; excelApp = SysExcelApplication::construct(); excelApp.displayAlerts(false); if (excelApp.workbooks().count()) { excelApp.workbooks().close(); } sysExcelWorkbooks = excelApp.workbooks(); sysExcelWorkbooks.open(filenameAll); excelApp.displayAlerts(true); sysExcelWorkbook = sysExcelWorkbooks.item(1); sysExcelWorksheets = sysExcelWorkbook.worksheets(); sysExcelWorksheet = sysExcelWorksheets.itemFromName(sheetname); sysExcelWorksheetLine = sysExcelWorksheets.itemFromName("Line"); if (!sysExcelWorksheet) { throw error("@RGD116"); } sysExcelCells = sysExcelWorksheet.cells(); sysExcelCellsLine = sysExcelWorksheetLine.cells(); retRun = false; numBatchCode = NumberSeq::newGetNum(SalesParameters::RGD_ImportBatchId()); importBatchId = numBatchCode.num(); try { ttsbegin; _salesTableHelper.clear(); do { _count++; _salesTableHelper.RGD_SalesorderNum = this.getValue(sysExcelCells.item(_count,1).value()); if(!_salesTableHelper.RGD_SalesorderNum) { insertSalesTableFlg = false; continue; } select firstonly * from _custTable where _custTable.AccountNum == this.getValue(sysExcelCells.item(_count,3).value()); if(!_custTable) { info(strfmt("@RGD171",this.getValue(sysExcelCells.item(_count,3).value()),int2str(_count))); retRun = true; continue; } num = NumberSeq::newGetNum(SalesParameters::numRefSalesIdNRR()); _stl.SalesId = num.num(); _stl.RGD_SalesorderSourse = RGD_SalesorderSourse::NRR; _stl.CustAccount = this.getValue(sysExcelCells.item(_count,3).value()); _stl.InvoiceAccount = this.getValue(sysExcelCells.item(_count,3).value()); _stl.RGD_SalesRemark = this.getValue(sysExcelCells.item(_count,5).value());//Ryan Add 20110823 begin _stl.RGD_ImportBatchId = importBatchId; //Ryan Add 20110823 end _stl.CurrencyCode = companyinfo::find().CurrencyCode; _stl.SalesType = SalesType::Sales; _stl.RGD_OrderDate = str2date(this.getValue(sysExcelCells.item(_count,4).value()),321); _stl.initValue(); _stl.initFromCustTable(); _stl.initInvoiceAccount(); _stl.insert(); _salesTableHelper.UseridTime = useridTime; _salesTableHelper.Salesid = _stl.SalesId; _salesTableHelper.insert(); } while(insertSalesTableFlg); do { _countLine++; _excelOrderNum = this.getValue(sysExcelCellsLine.item(_countLine,1).value()); if(!_excelOrderNum) { insertSalesLineFlg = false; continue; } select firstonly * from _salesTableHelper where _salesTableHelper.RGD_SalesorderNum == _excelOrderNum && _salesTableHelper.UseridTime == useridTime; if(!_salesTableHelper.RGD_SalesorderNum) { info(strfmt("@RGD169",this.getValue(sysExcelCellsLine.item(_countLine,1).value()),int2str(_countLine))); retRun = true; continue; } select firstonly * from inventTable where inventTable.ItemId == this.getValue(sysExcelCellsLine.item(_countLine,2).value()); if(!inventTable) { info(strfmt("@RGD170",this.getValue(sysExcelCellsLine.item(_countLine,2).value()),int2str(_countLine))); retRun = true; continue; } _sl.clear(); _sl.SalesId = _salesTableHelper.Salesid; _sl.ItemId = this.getValue(sysExcelCellsLine.item(_countLine,2).value()); _sl.initValue(); _sl.SalesPrice = inventTable.RGD_CoverPrice; _sl.initFromSalesTable(SalesTable::find(_salesTableHelper.Salesid)); _sl.initFromInventTable(inventTable::find(_sl.ItemId)); _sl.SalesQty = str2num(this.getValue(sysExcelCellsLine.item(_countLine,3).value())); _sl.RGD_GrossPrice = Str2num(this.getValue(sysExcelCellsLine.item(_countLine,4).value())); // CUS-Add by sherr on 2011-09-08 Begin /* _sl.HD_VendAccount = this.getValue(sysExcelCellsLine.item(_countLine,9).value()) ; _sl.HD_PurchId = this.getValue(sysExcelCellsLine.item(_countLine,10).value()) ; _sl.HD_LinePercent = Str2num(this.getValue(sysExcelCellsLine.item(_countLine,11).value())) ; _sl.HD_PurchVatCode = this.getValue(sysExcelCellsLine.item(_countLine,12).value()) ; _sl.HD_SalesPackingSlipId = this.getValue(sysExcelCellsLine.item(_countLine,13).value()) ; _sl.HD_PurchPackingSlipId = this.getValue(sysExcelCellsLine.item(_countLine,14).value()) ; */ // CUS-Add by sherr on 2011-09-08 End _sth = SalesTable::find(_sl.SalesId); tcustTable = CustTable::find(_sth.CustAccount); if(tcustTable.InventSiteId != "") { inventDim.InventSiteId = tcustTable.InventSiteId; } else { //info(strfmt("@RGD472",tcustTable.AccountNum,int2str(_countLine)));//Ryan modify 20111014 begin info(tcustTable.AccountNum + "客户的站点不存在!"); //Ryan modify 20111014 end retRun = true; continue; } if(tcustTable.InventLocation != "") { inventDim.InventLocationId = tcustTable.InventLocation; } else { //info(strfmt("@RGD475",tcustTable.AccountNum,int2str(_countLine)));//Ryan modify 20111014 begin info(tcustTable.AccountNum+"客户的仓库不存在!"); //Ryan modify 20111014 end retRun = true; continue; } inventDim = InventDim::findOrCreate(inventDim); _sl.InventDimId = inventDim.inventDimId; test = this.getValue(sysExcelCellsLine.item(_countLine,7).value()); if(this.getValue(sysExcelCellsLine.item(_countLine,7).value()) == "1") { _sl.RGD_SalesType = RGD_SalesType::replaceSales;//Ryan modify 1,2 Correspond RGD_SalesType } else { _sl.RGD_SalesType = RGD_SalesType::BagSlaes; } shipTo = this.getValue(sysExcelCellsLine.item(_countLine,8).value()); select firstonly * from taddress where taddress.Name == shipTo && taddress.AddrTableId == tcustTable.TableId && taddress.AddrRecId == tcustTable.RecId && taddress.type == AddressType::Delivery; if(taddress) { _sl.DeliveryName = taddress.Name; } else { info(strfmt("@RGD487",tcustTable.AccountNum,shipTo,int2str(_countLine))); retRun = true; continue; } salesPriceDiscCustAccount = RGD_SalesPriceDiscCalc::CalcSODisc(inventTable.ItemGroupId,tcustTable.AccountNum,SystemDateGet(),tcustTable.CustGroup); _sl.RGD_SalesPriceAct = inventTable.RGD_CoverPrice * ((100- salesPriceDiscCustAccount) / 100); _sl.ShippingDateRequested = str2date(this.getValue(sysExcelCellsLine.item(_countLine,6).value()),321); //_sl.ReceiptDateRequested = datenull(); //Ryan Remark 20110905 _sl.createLine(true, false, false, true, true, _sl.salesPrice ? false : true, _stl.Reservation==ItemReservation::Automatic, true); salesUpd = SalesLine::findRecId(_sl.RecId,true); if(salesUpd.RecId) { salesUpd.ShippingDateRequested = str2date(this.getValue(sysExcelCellsLine.item(_countLine,6).value()),321); //salesUpd.ReceiptDateRequested = datenull(); //Ryan modify 20110905 begin salesUpd.ReceiptDateRequested = salesUpd.ShippingDateRequested;//Ryan modify 20110905 end salesUpd.SalesPrice = inventTable.RGD_CoverPrice; salesUpd.LinePercent = salesPriceDiscCustAccount; salesUpd.LineAmount = _sl.SalesQty * _sl.RGD_SalesPriceAct; salesUpd.DeliveryName = shipTo; salesUpd.RGD_ImportBatchId = importBatchId; salesUpd.Dimension[2] = inventTable.Dimension[2]; salesUpd.Dimension[5] = inventTable.Dimension[5]; salesUpd.doUpdate(); } } while(insertSalesLineFlg); if(retRun) { throw error("@RGD477"); } ttscommit; } catch (Exception::Error) { if(excelApp) excelApp.quit(); } if(excelApp) excelApp.quit(); else { if(excelApp) excelApp.quit(); } if(fds) { fds.reread(); fds.refresh(); } delete_from _salesTableHelper where _salesTableHelper.UseridTime == useridTime; }
void RGD_importHistoryData()//add by sherry { SysExcelApplication excelApp; SysExcelWorkbooks sysExcelWorkbooks; SysExcelWorkbook sysExcelWorkbook; SysExcelWorksheets sysExcelWorksheets; SysExcelWorksheet sysExcelWorksheet; SysExcelWorksheet sysExcelWorksheetLine; SysExcelCells sysExcelCells; SysExcelCells sysExcelCellsLine; SysExcelCell sysExcelCell; SysExcelCell sysExcelCellLine; SalesTable newSalesTable ; //add by sherry SalesLine newSalesLine ; SalesLine salesline; SalesTable _stl; SalesLine _sl; SalesLine salesUpd; InventDim inventDim; InventTable inventTable; CustTable tcustTable; real salesPriceDiscCustAccount; RGD_ImportBatchId importBatchId; PriceDiscTable priceDiscTable; Address taddress; SalesId _sid; SalesId _sidLine; RGD_SalesorderNum _excelOrderNum; AccountNum _accountNum; RGD_SalesTableHelper _salesTableHelper; SalesTable _sth; str 100 sheetname; int _count = 1; int _countLine = 1; Str unitid; Str InventLocationId; boolean canInsertflag; SalesPrice _SalesPrice; TaxItemGroup _taxItemGroup; boolean ifemptyBreak; boolean insertFlg; name shipTo; NumberSeq num; NumberSeq numBatchCode; boolean insertSalesTableFlg = true; boolean insertSalesLineFlg = true; Str 30 custSearchName; CustTable _custTable; DirPartyTable dirPartTable; str test; boolean retRun; ; useridTime = curuserid()+int2str(timenow()); insertFlg = true; sheetname = "Header"; if( filename == "" ) return; excelApp = SysExcelApplication::construct(); excelApp.displayAlerts(false); if (excelApp.workbooks().count()) { excelApp.workbooks().close(); } sysExcelWorkbooks = excelApp.workbooks(); sysExcelWorkbooks.open(filenameAll); excelApp.displayAlerts(true); sysExcelWorkbook = sysExcelWorkbooks.item(1); sysExcelWorksheets = sysExcelWorkbook.worksheets(); sysExcelWorksheet = sysExcelWorksheets.itemFromName(sheetname); sysExcelWorksheetLine = sysExcelWorksheets.itemFromName("Line"); if (!sysExcelWorksheet) { throw error("@RGD116"); } sysExcelCells = sysExcelWorksheet.cells(); sysExcelCellsLine = sysExcelWorksheetLine.cells(); retRun = false; numBatchCode = NumberSeq::newGetNum(SalesParameters::RGD_ImportBatchId()); importBatchId = numBatchCode.num(); try { ttsbegin; _salesTableHelper.clear(); //insert salesTable do { _count++; _salesTableHelper.RGD_SalesorderNum = this.getValue(sysExcelCells.item(_count,1).value()); if(!_salesTableHelper.RGD_SalesorderNum) { insertSalesTableFlg = false; continue; } select firstonly * from _custTable where _custTable.AccountNum == this.getValue(sysExcelCells.item(_count,3).value()); if(!_custTable) { info(strfmt("@RGD171",this.getValue(sysExcelCells.item(_count,3).value()),int2str(_count))); retRun = true; continue; } newSalesTable.SalesId = this.getValue(sysExcelCells.item(_count,1).value()); newSalesTable.RGD_SalesorderSourse = RGD_SalesorderSourse::NRR; newSalesTable.CustAccount = this.getValue(sysExcelCells.item(_count,3).value()); newSalesTable.InvoiceAccount = this.getValue(sysExcelCells.item(_count,3).value()); newSalesTable.RGD_SalesRemark = this.getValue(sysExcelCells.item(_count,5).value()); newSalesTable.RGD_ImportBatchId = importBatchId; newSalesTable.CurrencyCode = companyinfo::find().CurrencyCode; newSalesTable.SalesType = SalesType::Sales; newSalesTable.RGD_OrderDate = str2date(this.getValue(sysExcelCells.item(_count,4).value()),321); newSalesTable.initValue(); newSalesTable.initFromCustTable(); newSalesTable.initInvoiceAccount(); newSalesTable.insert(); } while(insertSalesTableFlg); do { _countLine++; _excelOrderNum = this.getValue(sysExcelCellsLine.item(_countLine,1).value()); if(!_excelOrderNum) { insertSalesLineFlg = false; continue; } select firstonly * from _salesTableHelper where _salesTableHelper.RGD_SalesorderNum == _excelOrderNum && _salesTableHelper.UseridTime == useridTime; if(!_salesTableHelper.RGD_SalesorderNum) { info(strfmt("@RGD169",this.getValue(sysExcelCellsLine.item(_countLine,1).value()),int2str(_countLine))); retRun = true; continue; } newSalesLine.clear(); newSalesLine.SalesId = this.getValue(sysExcelCellsLine.item(_countLine,1).value()) ; newSalesLine.ItemId = this.getValue(sysExcelCellsLine.item(_countLine,2).value()); newSalesLine.initValue(); newSalesLine.SalesPrice = inventTable.RGD_CoverPrice; newSalesLine.initFromSalesTable(SalesTable::find(_salesTableHelper.Salesid)); newSalesLine.initFromInventTable(inventTable::find(_sl.ItemId)); newSalesLine.SalesQty = str2num(this.getValue(sysExcelCellsLine.item(_countLine,3).value())); newSalesLine.RGD_GrossPrice = Str2num(this.getValue(sysExcelCellsLine.item(_countLine,4).value())); // CUS-Add by sherr on 2011-09-08 Begin newSalesLine.HD_VendAccount = this.getValue(sysExcelCellsLine.item(_countLine,9).value()) ; newSalesLine.HD_PurchId = this.getValue(sysExcelCellsLine.item(_countLine,10).value()) ; newSalesLine.HD_LinePercent = Str2num(this.getValue(sysExcelCellsLine.item(_countLine,11).value())) ; newSalesLine.HD_PurchVatCode = this.getValue(sysExcelCellsLine.item(_countLine,12).value()) ; newSalesLine.HD_SalesPackingSlipId = this.getValue(sysExcelCellsLine.item(_countLine,13).value()) ; newSalesLine.HD_PurchPackingSlipId = this.getValue(sysExcelCellsLine.item(_countLine,14).value()) ; // CUS-Add by sherr on 2011-09-08 End newSalesLine.createLine(); test = this.getValue(sysExcelCellsLine.item(_countLine,7).value()); if(this.getValue(sysExcelCellsLine.item(_countLine,7).value()) == "1") { _sl.RGD_SalesType = RGD_SalesType::replaceSales;//Ryan modify 1,2 Correspond RGD_SalesType } else { _sl.RGD_SalesType = RGD_SalesType::BagSlaes; } shipTo = this.getValue(sysExcelCellsLine.item(_countLine,8).value()); select firstonly * from taddress where taddress.Name == shipTo && taddress.AddrTableId == tcustTable.TableId && taddress.AddrRecId == tcustTable.RecId && taddress.type == AddressType::Delivery; if(taddress) { _sl.DeliveryName = taddress.Name; } else { info(strfmt("@RGD487",tcustTable.AccountNum,shipTo,int2str(_countLine))); retRun = true; continue; } salesPriceDiscCustAccount = RGD_SalesPriceDiscCalc::CalcSODisc(inventTable.ItemGroupId,tcustTable.AccountNum,SystemDateGet(),tcustTable.CustGroup); _sl.RGD_SalesPriceAct = inventTable.RGD_CoverPrice * ((100- salesPriceDiscCustAccount) / 100); _sl.ShippingDateRequested = str2date(this.getValue(sysExcelCellsLine.item(_countLine,6).value()),321); //_sl.ReceiptDateRequested = datenull(); //Ryan Remark 20110905 _sl.createLine(true, false, false, true, true, _sl.salesPrice ? false : true, _stl.Reservation==ItemReservation::Automatic, true); salesUpd = SalesLine::findRecId(_sl.RecId,true); if(salesUpd.RecId) { salesUpd.ShippingDateRequested = str2date(this.getValue(sysExcelCellsLine.item(_countLine,6).value()),321); //salesUpd.ReceiptDateRequested = datenull(); //Ryan modify 20110905 begin salesUpd.ReceiptDateRequested = salesUpd.ShippingDateRequested;//Ryan modify 20110905 end salesUpd.SalesPrice = inventTable.RGD_CoverPrice; salesUpd.LinePercent = salesPriceDiscCustAccount; salesUpd.LineAmount = _sl.SalesQty * _sl.RGD_SalesPriceAct; salesUpd.DeliveryName = shipTo; salesUpd.RGD_ImportBatchId = importBatchId; salesUpd.Dimension[2] = inventTable.Dimension[2]; salesUpd.Dimension[5] = inventTable.Dimension[5]; salesUpd.doUpdate(); } } while(insertSalesLineFlg); if(retRun) { throw error("@RGD477"); } ttscommit; } catch (Exception::Error) { if(excelApp) excelApp.quit(); } if(excelApp) excelApp.quit(); else { if(excelApp) excelApp.quit(); } if(fds) { fds.reread(); fds.refresh(); } delete_from _salesTableHelper where _salesTableHelper.UseridTime == useridTime; }
void runTmpSalesTable() { SysExcelApplication excApp; SysExcelWorkbooks excBooks; SysExcelWorkbook excBook; SysExcelWorksheets excSheets; SysExcelWorksheet excSheet; SysExcelWorksheet excSheetLine; SysExcelCells excCells; SysExcelCells excCellsLine; SysExcelCell excCell; SysExcelCell excCellLine; SysExcelStyles excStyles; SysExcelStyle ExcelStyle; SysExcelFont ExcelFont; SysExcelRange excRange; boolean retl; COM cell; com columns; com Rows; COM xslInterior; ; try { excApp = SysExcelApplication::construct(); excBooks = excApp.workbooks(); excBook = excBooks.add(); excStyles = excBook.styles(); ExcelStyle = excStyles.add("bold"); ExcelFont = ExcelStyle.font(); ExcelFont.bold(true); ExcelFont.italic(true); excSheets = excBook.worksheets(); excSheet = excSheets.itemFromNum(1); excSheet.name("Header"); excCells = excSheet.cells(); excCells.item(1,1).value("Sales Order Number"); excCells.item(1,1).comObject().ColumnWidth(25); excCells.item(1,2).value("Sales Order Type"); excCells.item(1,2).comObject().ColumnWidth(25); excCells.item(1,3).value("Wholessalor"); excCells.item(1,3).comObject().ColumnWidth(18); excCells.item(1,4).value("Order Date"); excCells.item(1,4).comObject().ColumnWidth(18); excCells.item(1,5).value("Order Reference"); excCells.item(1,5).comObject().ColumnWidth(25); //excCells.item(1,6).value("Order Remark");//Ryan Add 20110823 begin //excCells.item(1,6).comObject().ColumnWidth(60); excSheet.cells().range('A1:E1').style('bold'); excSheet.cells().range('A1:E1').horizontalAlignment(3);//Ryan Add 20110823 begin excSheetLine = excSheets.itemFromNum(2); excSheetLine.name("Line"); excCellsLine = excSheetLine.cells(); excCellsLine.item(1,1).value("Sales Order Number"); excCellsLine.item(1,1).comObject().ColumnWidth(25); excCellsLine.item(1,2).value("Edition"); excCellsLine.item(1,2).comObject().ColumnWidth(10); excCellsLine.item(1,3).value("QTY"); excCellsLine.item(1,3).comObject().ColumnWidth(8); excCellsLine.item(1,4).value("Gross Price"); excCellsLine.item(1,4).comObject().ColumnWidth(15); excCellsLine.item(1,5).value("Discount"); excCellsLine.item(1,5).comObject().ColumnWidth(15); excCellsLine.item(1,6).value("DELDATE"); excCellsLine.item(1,6).comObject().ColumnWidth(15); excCellsLine.item(1,7).value("SalesType"); excCellsLine.item(1,7).comObject().ColumnWidth(15); excCellsLine.item(1,8).value("Ship-to"); excCellsLine.item(1,8).comObject().ColumnWidth(12); excSheetLine.cells().range('A1:H1').style('bold'); excSheetLine.cells().range('A1:H1').horizontalAlignment(3); retl = this.getFromDialog(); excBook.saveAs(fileNameOut); if(showTemplate) { excApp.visible(true); } else { excApp.visible(false); } } catch(exception::Error) { if(!excApp) excApp.quit(); } }