RSS

Kategori arşivi: Genel

Genel

Ax 2012 çoklu veri kaynağına sahip formlarda Excele aktar fonksiyonu

Merhaba

AX 2009 ile hayatımıza giren Excele Aktar butonu AX 2012 de değişen form yapısı ile neredeyse her formda standart bir buton olarak artık karşımız çıkıyor.

Butonun olmadığı formlarda da Gridte kayıtları seçip CTRL+T kombinasyonu ile verileri excele aktarabiliyoruz.

CommandButon olan Excele aktar fonksiyonu AX içinde Classes ->SysGridExportToExcel -> performPushAndFormatting metoduyla yönetiliyor.

Buraya kadar güzel. Ama birden çok gride sahip bir formunuz varsa (örn:SalesTable) ve her bir grid üzerindeki ilgili buton grubuna Excele aktar butonunu çoklayıp eklerseniz ve butonun, üste doğru button grup, tab vs hepsinin de Veri kaynağı(Datasource) değerlerini gridin bağlı olduğu veri kaynağı olarakta atasanız karşılacağınız manzara sistemin her zaman formun ilk veri kaynağının değerlerini excele atması olacaktır.

Yani SalesTable formunda Sipariş satırları excele atmak için koyacağının buton, butonla ilgili tüm veri kaynaklarını SalesLine bile yapsanız gidip SalesTable gridi içindeki değerleri Excele atacaktır.

Bunu çözmeniz için yapılması gereken ise oldukça basittir.

1- İlgili Gridin AutoDeclaration değerini YES olarak belirleyin.

2-Excele aktar butonunuzun altına aşağıdaki metodu ekleyin.

void clicked()
{
    element.selectControl(GridName); // The "GridName" değeri sizin grid
                                     // için 1.adımda belirtiğiniz değer olacaktır
 
    super();
}
 
Yorum yapın

Yazan: 05/01/2016 in Geliştirme, Genel

 

Etiketler: , ,

Merhaba

Tablonuzdaki bazı alanaları ilişkiler kurarak kendi ana tablolarından filtreliyorsanız kurduğunuz ilişki yapısından alan sıralamasının çok büyük önemi olduğunu bugün farkettim 🙂

Eğer tablosunda ülke – il – ilçe alanlarınız varsa ve illerin seçtiğiniz ülkeye göre; ilçelerinden seçtiğiniz ülke ve il kombinasyonuna göre filtreli gelmesini istiyorsanız tablo ilişkilerinden il ve ilçe tablolarını bağlarken ilk değerin il veya ilçeden farklı olması gerektiğini unutmayın.

Örneğin ilçe tablosuyla kurulan ilişki ülke-il-ilçe sırasında olmazsa tüm ilçeler gelmekte; olursa ilçeler istediğimiz gibi gelmektedir.

Aşağıdaki resimde görsel olarakta açıkladım..

iliski-dogru-yanlıs

 
 

Etiketler:

CSV dosyalarından kodla Dynamics AX tablolarına veri ithali yapmak

Merhaba,

Bu makalemde Dynamics Ax içindeki bir tabloya, csv türündeki bir dosyadan verileri  kodla aktarmak için gerekli adımları anlatacağım.

1- Aktarım yapmak istediğimiz tablo InventDim olsun.

2- Boş bir excelde 1.sütuna Tesis; 2.sütuna Boyut değerlerini giriniz.

3- Exceli farklı kaydet seçeneği ile CSV formatında kaydediniz.

4- Aşağıdaki kod öbeğini AOT–>Jobs kısmında yeni bir job oluşturarak yapıştırın.

4- Kaydettiğiniz dosya yolunu kopyalayıp, aşağıdaki kodu uygun şekilde güncelleyip, kodu çalıştırınız.

5- Kayıtlar istediğiniz tabloya aktarılacaktır. Hepsi bu kadar!

// Changed on 21 Şub 2011 at 17:01:47 by mesut
static void insertFromCsvToInventDimTable(Args _args)
{
 InventDim                       dim;
 //Exceldeki alanlar
 InventSiteId                    InventSiteId;
 InventSizeId                    InventSizeId;

 Container   cntbuf;
 int         i;

 AsciiIo     fileHandle = new AsciiIo("C:\\Mesut\\mm.csv","R");

 ;
 fileHandle.inRecordDelimiter('\r\n');//Kayıt ayıracı
 fileHandle.inFieldDelimiter(';'); // Alan ayıracı

 ttsbegin;
 while (fileHandle.status() == IO_Status::Ok)
 {
 cntbuf = fileHandle.read();

 if (conlen(cntbuf) <= 9) // Sutun sayısı kontorolü
 {

 InventSiteId = ConPeek(cntbuf, 1); // birinci sütundaki değer
 InventSizeId = ConPeek(cntbuf, 2); // ikinci sütundaki değer

 dim.clear();
 dim.InventSizeId = InventSizeId;
 dim.InventSiteId = InventSiteId;

 dim.inventDimId = InventDim::findOrCreate(dim).inventDimId;
 dim.insert();
 }
 }

info(strfmt("%1 kayıt eklendi",i));

ttscommit;

}

NOT: Yazıda belirtilen kodun, değiştirilmeden veya değiştirilerek, development/test/canlı ortamlarında kullanılması sonucu oluşabilecek olumlu/olumsuz durumlarda tüm sorumluluk kodu kullanan kişiye aittir.

 

Mesut BOZTAŞ

Dynamics AX ERP Danışmanı ve
İstanbul Ticaret Üni. Y.Lisans öğrencisi

İstanbul 2011

http://www.etg-it.com

 
1 Yorum

Yazan: 21/02/2011 in Geliştirme, Genel

 

Etiketler: , , , ,

Tesise özgü varsayılan ambarın bulunması

Stok kartları üzerinde “tesise özgü sipariş ayalarında” tanımlı olan ambar bilgisini bulmaya yarayan bir kodtur.

// Changed on 19 Oca 2011 at 14:25:31 by mesut
//Ambar bazında takip edilen fakat satış sipariş satırında ambar kısmı boş olan
//Satırlar için tesise özgü varsayılan satış ambarının getirilmesi
static void findSalesLineInventLocationDim(Args _args)
{

 Inventdim           dim,newDim;
 Salesline           salesline;
 InventTable         inventTable;
 ;
 ttsbegin;
 while select forupdate salesline
 join dim
 where salesline.InventDimId  == dim.inventDimId
 &&    dim.InventLocationId == " "
 {

 inventTable = InventTable::find(salesline.ItemId);
 newDim.data(dim);

 newDim.InventLocationId      =  inventTable.inventItemOrderSetupMap(InventItemOrderSetupType::Sales,
                                 InventDim::findOrCreate(newDim).InventDimId).inventLocationId( newDim.InventLocationId,
                                                                                                inventTable,
                                                                                                newDim.InventSiteId);

     info(newDim.InventLocationId);
 }
 ttscommit;

}

NOT: Yazıda belirtilen kodun, değiştirilmeden veya değiştirilerek, development/test/canlı ortamlarında kullanılması sonucu oluşabilecek olumlu/olumsuz durumlarda tüm sorumluluk kodu kullanan kişiye aittir.

Mesut BOZTAŞ

Dynamics AX ERP Danışmanı ve
İstanbul Ticaret Üni. Y.Lisans öğrencisi

İstanbul

http://www.etg-it.com

 
Yorum yapın

Yazan: 19/01/2011 in 3S, Geliştirme, Genel

 

Etiketler: , ,

Microsoft Dynamics AX Zirvede!

Microsoft Dynamics AX Ürün Odaklı orta ölçekli firmalarda ERP için son Gartner Raporunda Lider olarak konumlandırılmış!

http://www.gartner.com/technology/media-products/reprints/microsoft/vol10/article22/article22.html

Mesut BOZTAŞ
Dynamics AX ERP Danışmanı ve
İstanbul Ticaret Üni. Y.Lisans öğrencisi

http://www.etg-it.com

 
1 Yorum

Yazan: 24/12/2010 in Genel

 

Etiketler:

Genel Adres defterinde mükerrer kayıtları listelemek

Genel adres defteri ile ilgili yeni bir yazı ile karşınızdayım. Bir önceki yazıda genel adres defteride mükerrer olan kayıtları gösteren bir kod örneği vermiştim. Fakat tekrar eden herbir kaydın hangi kayıtlar ilişkili olduğunu o kodda yakalayamıyorduk. Sadece ABC ltd. şirketi kaydı tekerrür etmişse bana (Adres defter kodu- adı[ABC ltd.]) formatında bir bilgi dönüyordu. Eğer bu bilgiye ek olarak ABC ltd. değerine sahip olan adres defteri kayıtları hangisidir sorunun cevabını arıyorsanız aşağıdaki kodu kullanabilirsiniz. Böylece mükerrer olan tüm kayıtları bir çırpıda elde edip daha sonra istediğim işlemi (silme, güncelleme, birleştirme) kolayca yapabilirim…

// Changed on 01 Ara 2010 at 12:11:36 by mesut
static void findDuplicateDirPartyRecordsByName(Args _args)
{
    DirpartyTable   party;

    name            firstName,lastName;
    dirPartyId      firstPartyId, lastPartyId;
    int             i= 1;
    container       c;
    ;

    while select party
                order by name
    {
        firstName    = party.Name;
        firstPartyId = party.PartyId;

        if(!lastName)
            {
              lastName    = party.Name;
              lastPartyId = party.PartyId;
            }
        else
        if(firstName == lastName)
        {
            //To prevent adding first record every cycle
            // If second record, goes else....
            if(i == 1)
                {
                    c   = conins(c,i,firstPartyId);
                    c   = conins(c,i+1,firstName);
                    c   = conins(c,i+2,lastPartyId);
                    c   = conins(c,i+3,lastName);
                    i   = 5;
                }
            else
                {
                    c   = conins(c,i,firstPartyId);
                    c   = conins(c,i+1,firstName);
                    i   = i + 2;
                }

            lastName      = party.Name;
            lastPartyId   = party.PartyId;

        }
        //Records changed.Add to info anymore
        else
        {
            //Add a blank record in container
            c = conins(c,conlen(c)+1,"");

            i = conlen(c);

            //Only add duplicate records to info
            if(conlen(c) > 1)
              {
                 info(any2str(conpeek(c,1 < i ? 1 : i))   + " " + any2str(conpeek(c,3 < i ? 3 : i))  + " " + any2str(conpeek(c,5 < i ? 5 : i ))  +
                " " + any2str(conpeek(c,7 < i ? 7 : i ))  + " " + any2str(conpeek(c,9 < i ? 9 : i))  + " " + any2str(conpeek(c,11 < i ? 11 : i)) +
                " " + any2str(conpeek(c,13 < i ? 13 : i)) + " " + any2str(conpeek(c,15 < i ? 15 :i)) + " " + any2str(conpeek(c,2)) );
              }
              //clear container
              c = condel(c,1,conlen(c));

            lastName    = party.Name;
            lastPartyId = party.PartyId;
            i = 1;
        }

    }

}

Bu durum nasıl oluyor peki?
1- Genel adres defteri bir çok tablo ile ortak kullanımda olduğu için kullanıcıların farkında olmadan aynı isimle kayıt girmeleri ya da mevcut kaydı kabul etmeyip aynı isimde tekrar kayıt açmaları sonucu oluşabilmektedir.
2- Özellikle ilk veri aktarımı sırasından farklı şirketlere aynı Müşteri, satıcı, iş ilişkisi kodları atılırken her şirkette farklı adres defter koduna sahip oluyorlar. Bu şirketlerde Sanal şirket bünyesinde ise kaydın her güncellenmesinde sistem güncelleme hatası vermektedir.

NOT: Yazıda belirtilen kodun, değiştirilmeden veya değiştirilerek, development/test/canlı ortamlarında kullanılması sonucu oluşabilecek olumlu/olumsuz durumlarda tüm sorumluluk kodu kullanan kişiye aittir.

Mesut BOZTAŞ
Dynamics AX ERP Danışmanı ve
İstanbul Ticaret Üni. Y.Lisans öğrencisi

İstanbul

http://www.etg-it.com

 
 

Etiketler: , , , , , ,

CEE şirketi yok hatası ve çözümü

Kaynak:  Sanal şirket eğer genel adres defter tablolarını kullanıyorsa her kullanıcı sanal şirket hesaplarındaki şirketlerin genel adres defteri tablolarını en az görme yetkisine sahip olmalıdır.

hata

hata2

Note: Users must have access to the company which the master number sequence is being used. If a user has access to CEU but not CEE, the system will not be able to retrieve the next party ID when creating new parties and the user will receive an error.

Çözüm: Kullanıcılar sanal şirket kapsamındaki tüm şirketlerde en azından Genel Adreses defteri görme yetkisine sahip olmalıdır.

Mesut BOZTAŞ
Dynamics AX ERP Danışmanı ve
İstanbul Ticaret Üni. Y.Lisans öğrencisi

İstanbul

http://www.etg-it.com

 
 

Etiketler: ,

 
%d blogcu bunu beğendi: