Vasanth Arivali's Blog

Archive for August 2010

Here i post code for Import Excel Data into Dynamics using X++ code.

Here the code written in Command Button clicked event, and also i  added the Excel format below of this post which i used.

void clicked()
{
SysExcelApplication             application;
SysExcelWorkbooks               workbooks;
SysExcelWorkbook                workbook;
SysExcelWorksheets              worksheets;
SysExcelWorksheet               worksheet;
SysExcelCells                   cells;
COMVariantType                  type;
System.DateTime                 ShlefDate;

FilenameOpen                    filename;
dialogField                     dialogFilename;

Dialog                          dialog;

//Table Declarations Starts

InventSize                      _InventSize;
InventBatch                     _InventBatch;
InventSerial                    _InventSerial;
InventTable                     _InventTable;
VendParameters                  _vendParameters;

//Table Declartions Ends

InventBatchId                   batchNumber;
InventBatchExpDate              expdate;
itemId                          itemid;
TransDate                       poddate;
CertificatesofSterilization  Certs;
CertificatesofAnalysis       CertiAnalysis;
InventSizeId                    InventSize;
ConfigId                        _ConfigId;
InventColorId                   _InventColorId;
InventSiteId                    _InventSiteId;
WMSLocationId                   _WMSLocationId;
InventLocationId                _InventLocationId;
WMSPalletId                     _WMSPalletId;
NoYesId                         ClosedTransactions;
NoYesId                         ClosedTransQty;
str                             pONo;
str                             srNo;
real                            quantity;
int                             row;
InventBatchExpDate              ShelfLifeDate;

#Excel

// 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_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 “”;
}

;

dialog              =   new Dialog(“Excel Upoad”);
dialogFilename      =   dialog.addField(typeId(FilenameOpen));

dialog.filenameLookupFilter([“@SYS28576″,#XLSX,”@SYS28576”,#XLS]);
dialog.filenameLookupTitle(“Upload from Excel”);
dialog.caption(“Excel Upload”);

dialogFilename.value(filename);

if(!dialog.run())
return;

filename            =   dialogFilename.value();

application         =   SysExcelApplication::construct();
workbooks           =   application.workbooks();

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();

try
{
ttsbegin;

do
{
row++;

pONo                    =   COMVariant2Str(cells.item(row, 1).value());
itemid                  =   COMVariant2Str(cells.item(row,2).value());
InventSize         =   COMVariant2Str(cells.item(row, 3).value());
batchNumber             =   COMVariant2Str(cells.item(row, 4).value());
poddate                 =   cells.item(row, 5).value().date();
expdate                 =   cells.item(row, 6).value().date();
srNo                    =   COMVariant2Str(cells.item(row, 7).value());
Certs                =   str2enum(Certs,cells.item(row, 8).value().bStr());
CertiAnalysis        =   str2enum(CertiAnalysis,cells.item(row, 9).value().bStr());
quantity                =   cells.item(row, 10).value().double();
_ConfigId               =   COMVariant2Str(cells.item(row, 12).value());
_InventColorId          =   COMVariant2Str(cells.item(row, 13).value());
_InventSiteId           =   COMVariant2Str(cells.item(row, 14).value());
_WMSLocationId          =   COMVariant2Str(cells.item(row, 15).value());
_InventLocationId       =   COMVariant2Str(cells.item(row, 16).value());
_WMSPalletId            =   COMVariant2Str(cells.item(row, 17).value());
ClosedTransactions      =   str2enum(ClosedTransactions,cells.item(row, 18).value().bStr());
ClosedTransQty          =   str2enum(ClosedTransQty,cells.item(row, 19).value().bStr());

if(row > 1)
{

//Insert into InventSize Table

select firstonly _InventSize where _InventSize.ItemId == itemid && _InventSize.InventSizeId == InventSize;

if(!_InventSize)
{
_InventSize.InventSizeId     =      InventSize;
_InventSize.ItemId           =      itemid;
_InventSize.insert();
}
else
{
warning(strfmt(“Item Id and InventSize (%1   –   %2) already exists”,itemid,InventSize));
}

// Insert into InventBatch Table

_InventBatch.inventBatchId      =       batchNumber;
_InventBatch.itemId             =       itemid;
_InventBatch.prodDate           =       poddate;
_InventBatch.expDate            =       expdate;
_InventBatch.insert();

// Insert into InventSerial Table

_InventSerial.InventSerialId    = srNo;
_InventSerial.ItemId            = itemid;
_InventSerial.ProdDate          = poddate;
_InventSerial.insert();

info(strfmt(“Item(%1) uploaded successfully”,itemid));

}

type = cells.item(row+1, 1).value().variantType();

}while (type != COMVariantType::VT_EMPTY);

application.quit();

ttscommit;
}
catch
{
Error(“Upload Failed”);
}

}

 

Excel Format Image for My Import

My Excel Format

These are the details i used to import from Excel.

Advertisements

Welcome

What’s happening?

  • RT @HAJAMYDEENNKS: விஜய்யோட வாக்காளர் அடையாள அட்டையை அவர் அனுமதி இல்லாமல் H.ராஜா ட்விட்டரில் பதிவிட்டது சரியா ? ஒரு பிரபலத்துக்கே இப்படின்… 7 hours ago
  • RT @Enfielderstweet: பேருந்துகளிலே பஞ்சமர்கள் ஏறக்கூடாது என்பதை ஒழித்தவர் டபிள்யூ பி.ஏ. சவுந்திரபாண்டியன். அவர் பெயரால் ஆனது பாண்டி பஜார்.… 7 hours ago
  • RT @toptamilnews: அதிமுகவையும், இரட்டை இலையையும் மோடி காப்பாற்றுவார் எனில் எங்களை யார் காப்பாற்றுவார்கள்? : இயக்குநர் ராஜுமுருகன் #RajuMuru15 hours ago
  • RT @MersalSuganya: சரி முகலாய வரலாற்ற தூக்கிடுவோம், ஆரியன் வறலாற்றை போற்றிடுவோம். ஆமாம் ஆரியனுக்கு என்ன வரலாறு இருக்கு மணி ஆட்டுனத தவிர்த்… 15 hours ago
  • RT @PTTVOnlineNews: கொசுக்கள் உற்பத்தியாகும் வகையில் அரசு இடங்கள் இருந்தால் யாருக்கு அபராதம் விதிக்கப்படும்?: சீமான் #Seeman 19 hours ago
  • RT @maharaja_2020: எங்கன போனாலும் விடமாட்டேங்கிறாங்களே.!!!! சுத்தி சுத்தி அடிக்கிறாங்களே.,,!! ## பக்தாள் வாய்ஸ் ## https://t.co/ttNvF5YH… 22 hours ago
  • RT @Sukrancool: உண்மையான மெர்சல் அரசன் #INDIANSVsModi @RajasekarASho7 @maharaja_2020 @madhavaeshwaran @leochordia @viswarajantweet @anusya122 hours ago
  • RT @Mark2kali: பிஜேபியை கண்மூடித்தனமாக ஆதரிக்கும் பக்தர்களுக்கும் இது ஒருநாள் நடந்தே தீரும். #TamiliansVsModi #Mersal https://t.co/WbBMPbZ… 23 hours ago
  • RT @MSRajRules: தமிழ்பாலில் கலக்கப்பட்ட தண்ணீர். வடமொழி : சத்தம் தமிழ் : ஓசை, ஒலி #தமிழ்அன்னம் 23 hours ago
  • RT @firebirdborn: தமிழன் இந்தியனுக்கு முன்னோடி..... இனி ஹிந்தி மெல்லச் சாகும் twitter.com/ShakkrPara/sta… 23 hours ago

Categories

Join 13 other followers