Skip links

Axaptada txt dosya okuyup SalesLine’ a kayıt atmak


Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 117

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 118

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 117

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 118
Axaptada txt dosya okuyup SalesLine’ a kayıt atmak

Merhaba
Daha  önce txt formatında bir dosyayı okumakla ilgili bir makale yazmıştım. Buradan okuyabilirsiniz.
Aynı örneği biraz geliştirdim. Öncelikle dosyayı diyalogtan alıyoruz ve tab ile ayrılmış halini pars edip container a atıyoruz. Daha sonra burdaki satırlardan SalesLine oluşturuyoruz.
Örnek text dosyamız böyle olsun boşluklar tab. Editorden dolayı burada net anlaşılamıyor.
NameAlias  Name                         Vergi  Adet   Fiyat
40306445    DAVIDOFF GOLD      0     2.00     14.00
40318523     KENT WHITE              0    1.00       7.00
40329055    CAMEL KISA BOX     8    7.00      18.00
Örenğimiz şöye :
void TxtTransfer()
{
FileName            fileName  ;
container           c;
FileIOPermission    permission;
TextBuffer          textBuffer;
str                 readText;
str                 readLine , strlineamount;
int                 etgline  ;
int                 i = 0;
Dialog              dialog = new Dialog(“Dosya seçiniz.”);
DialogField         dfFileName;
SalesLine           txtSalesLine;
InventTable         inventTable;
InventItemSalesSetup InventItemSalesSetup;
InventDim           txtinventDim;
Amount              lAmount,KDV;
;
#File
dfFileName = dialog.addField(typeId(FileNameOpen));
dialog.filenameLookupFilter([“All files”, #AllFiles]);

if (dialog.run())
{
fileName = dfFileName.value();
permission = new FileIOPermission(fileName, ‘r’);
permission.assert();
textBuffer = new TextBuffer();
textBuffer.fromFile(fileName);
readText = textBuffer.getText();
etgline = textBuffer.numLines();
while(i < etgline)
{
readLine    = strLine(readText, i); // bir satırı  okuyoruz
c = str2con(readLine,”\t”); // tab a göre ayırıp container a atiyoruz
//   info(strFmt(“%1  %2 %3 %4  %5”, conPeek(c, 1), conPeek(c, 2),conPeek(c, 3),conPeek(c, 4) ,conPeek(c, 5)));
inventTable = InventTable::findbyNameAlias(conPeek(c, 1));
// text dosyasındaki ilk alan InventTableNameAlias alanına denk geliyor bu yüzden  findbyNameAlias adında bir metod yazdım sizinde bunu yazmanız gerekmekte
if(inventTable.RecId)
{
txtSalesLine.clear();
txtSalesLine.SalesId            =SalesTable.SalesId;
txtSalesLine.initFromInventTable(inventTable);
txtSalesLine.initFromSalesTable(salesTable);
txtSalesLine.ItemId             = inventTable.ItemId;
InventItemSalesSetup            = InventItemSalesSetup::findNotDefault(inventTable.ItemId);
txtinventDim.clear(); // inventdim oluşturacağız
txtinventDim.InventSiteId       = inventDim::find(InventItemSalesSetup.InventDimId).InventSiteId;
txtinventDim.InventLocationId   = inventDim::find(InventItemSalesSetup.InventDimIdDefault).InventLocationId;
txtinventDim = InventDim::findOrCreate(txtinventDim);
txtSalesLine.InventDimId = txtinventDim.inventDimId;
if(conPeek(c, 3) ==  8 )  // vergi grubunu elle girmek zorunda kaldık siz kendi kodunuza göre değiştirmelisiniz
txtSalesLine.TaxItemGroup   = “% 8”;
else if(conPeek(c, 3) == 18)
txtSalesLine.TaxItemGroup   = “% 18”;
else
txtSalesLine.TaxItemGroup   = “”;
lAmount         = conPeek(c, 5);
KDV             = conPeek(c, 3);
strlineamount   =  conPeek(c, 5);
strReplace(strlineamount, “.”, “,”);
if(KDV != 0)
lAmount = any2real(strlineamount) /((KDV / 100) + 1 ) ;
// txt dosyasındaki fiyatar kdv li olduğu için kdv siz fiyatı bulup onu yazıyoruz
else
lAmount = any2real(strlineamount);
txtSalesLine.QtyOrdered         = conPeek(c, 4) ;
txtSalesLine.LineAmount         = lAmount ;
txtSalesLine.createLine();
}
i++;
}
info(“Aktarım tamamlanmıştır.”);
salesLine_ds.executeQuery();
}
}
Selamlar.

Join the Discussion