AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.03.2011, 14:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,643 / 848 (80) +++++++
Регистрация: 28.10.2006
fatihdemirci: Axaptada txt dosya okuyup SalesLine’ a kayıt atmak
Источник: http://www.fatihdemirci.net/index.ph...a-kayit-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 :
X++:
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 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, );
        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,); // 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   = % ;
                else if(conPeek(c, 3) == 18)
                    txtSalesLine.TaxItemGroup   = % ;
                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(m r.);

      salesLine_ds.executeQuery();
   }
}
Selamlar.

Источник: http://www.fatihdemirci.net/index.ph...a-kayit-atmak/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
fatihdemirci: Axaptada yazıcı ayarlarına müdahale etmek Blog bot DAX Blogs 0 26.01.2011 18:11
fatihdemirci: Axaptada bir formun hangi menuItem ile çağırıldığını bulmak Blog bot DAX Blogs 0 21.01.2011 18:11
fatihdemirci: Axaptada hiyerarşık bir tabloyu ağaç yapısıyla yönetmek Blog bot DAX Blogs 0 11.01.2011 21:11

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:24.