Author Archive

Script menusune otomatik query oluşturan bir kod eklemek

Merhaba

Daha önce ax editörunda bulunan script menusune nasıl ekleme yapılacağından bahsetmiştik. Ben kendi işlerimde kullanmak üzere bir çok ekleme yaptım bir tanesini sizinle paylaşacağım.

İki tablo ismi  ve join tipini soran ve bu bilgilere göre query hazırlayan kod örneğimiz şöyle:

Öncelikle EditorScripts sınıfımıza şu metodu ekliyoruz.


public void FD_Query(Editor editor)
{
    xppSource       xppSource       = new xppSource();
    Dialog          dialog          = new Dialog("Query oluştur");

    DialogField     dlgTablename    = dialog.addField(typeid(TableName));
    DialogField     dlgTablename2   = dialog.addField(typeid(TableName));
    DialogField     dlgExtTypeName  = dialog.addField(typeid(joinMode));
    Source          template;
;
    if (dialog.run())
    {
        template = xppSource.Query2Method(dlgTablename.value() ,
        dlgTablename2.value(),dlgExtTypeName.value() );

        editor.insertLines(template);
    }
}

Sonra xppSource sınıfımıza şu metodu ekliyoruz.

Read more

MS Dynamics AX 2009 İş Zekası (I)

 Tarih: 16-17 Aralık 2011

Süre: 2 gün

 

Kurs Hakkında:

2 günlük bu eğitim ile katılımcılar, Microsoft Dynamics AX 2009 ile birlikte gelen İş Zekası bileşenlerinin neler olduğu ve bunların nasıl efektif bir şekilde kullanılabileceğini öğrenecektir.

Katılımcı Profili: Bu eğitim Temel/Orta/İleri Düzey Dynamics AX 2009 bilgisi olan uygulama geliştiriciler,danışmanlar ve raporlama sorumluları için uygundur.

 

Eğitim İçeriği:

               1.Gün

-      İş Zekasına Genel Bakış

-      İş Zekası Kavramları

-      Dynamics AX ve İş Zekası

-      Dynamics AX İş Zekası Geliştirme Araçları

-      Dynamics AX Application Object Tree

-      BIDS (Business Intelligence Development Studio)

-      Dynamics Reporting Tools ile Rapor Geliştirme

-      AOT içinden Mevcut Raporlar Üzerinde Güncelleme

-      SQL Server Reporting Services ve Özellikleri

-      Report Builder ve Report Model kullanımı

               2.Gün

-      OLAP Küp’lerine Genel Bakış

-      Measures (Ölçüm) ve Dimensions (Boyutlar)

-      Measures (Ölçüm) ve Dimensions (Boyutlar) grup ilişkisi

-      Dynamics AX Varsayılan Küpleri (Genel Muhasebe, İnsan Kaynakları, Satış, Satınalma, Proje, Üretim, Müşteri İlişkileri, Borç / Alacak)

-      SQL Server Analysis Server

-      Excel ile OLAP Küplerine erişim ve Analiz

-      Reporting Service ile OLAP Küplerini kullanarak raporların geliştirilmesi

-      Rol Merkezleri , KPI ve Trend Raporları

Eğitim Bedeli:  350 USD / Kişi + KDV

Yer: Datatraining (ETG), İnönü cad. Çetinkaya İş Merkezi No: 92 Kat:5 Kozyatağı / İstanbul

Tel: 0216 380 60 00

Dil: Oturum Türkçe olarak sunulacaktır

Eğitmen: Erkan ÇİFTÇİ

Kayıt için: Handan Yazıcıoğlu (handan@datatraining.net)

Kayıt için son tarih: 8 Aralık 2011

Not: Son kayıt tarihinde yeterli katılım sayısı sağlanamazsa eğitim iptal edilecektir.

Microsoft İş Zekası Eğitimi

Tarih: 19-20-21/26-27-28 Aralık 2011

Süre: 6 gün

Hakkında;

Microsoft’un Uçtan Uca İş Zekası Çözümlerinin anlatıldığı toplam 6 günlük bu eğitimde, katılımcılara Microsoft SQL Server Integration Services (ETL SSIS), Datawarehouse/Datamart, SQL Server Analysis Services (SSAS-OLAP), SQL Server Reporting Services (SSRS) araçlarının iş zekası projelerinde etkin bir şekilde kullanımını anlatmaktadır.

Katılımcı Profili:

Bu eğitim Temel/Orta Seviyede Microsoft SQL Server (RDBMS) bilgisi olan uygulama geliştiriciler ve danışmanlar için uygun olup, Microsoft’un Uçtan-Uca İş Zekası çözümleriyle projeler geliştirmek isteyenler içindir.

Eğitim İçeriği:

Modul 1     :  Microsoft İş Zekası Çözümlerine Giriş

Modul 2     :  SQL Server 2008 R2 Integration Services ile ETL Geliştirme ve Yönetimi

Modul 3     :  Datawarehouse/Datamart Yaklaşımı ve Tasarım Metodolojileri

Modul 4     :  SQL Server 2008 R2 Analysis Services ile OLAP Küpleri Geliştirme ve Yönetimi

Modul 5     :  SQL Server 2008 R2 Reporting Services ile Rapor Geliştirme ve Yönetimi

Modul 6     :  SharePoint BI’a Giriş

Kapsam içindeki  tüm konular uygulamalı olarak katılımcılara aktarılacaktır.

Ücret:  950 USD / Kişi + KDV 

Yer: Datatraining (ETG), İnönü cad. Çetinkaya İş Merkezi No: 92 Kat:5 Kozyatağı / İstanbul

Tel: 0(216) 380 60 00

Dil: Oturum Türkçe olarak sunulacaktır

Eğitmen: Erkan ÇİFTÇİ

Kapasite: Başvuru sırasına göre 12 kişi

Kayıt ve Ödeme İçin: Handan Yazıcıoğlu (handan@datatraining.net)

Kayıt için son tarih:   12 Aralık 2011

Not: Son kayıt tarihinde yeterli katılım sayısı sağlanamazsa eğitim iptal edilecektir.

Raporda sayfa numarasını ve toplam sayfa ededini göstermek

Merhaba

Herhangi bir raporda  sayfa numarasını ve toplam sayfa ededini göstermek için ReportRun sınıfında bulunan iki metodu kullanabiliriz. Bunlar  page() ve pagesTotal() metodlarıdır.  Yaptığımız  raporlarda  Int tipinde tasarım elemanları ekleyip DataMethod özelliğine page ve pagesTotal yazmak  yeterlidir. Örnek olarak salesInvoice raporunun pageHeader:Invoice kısmındaki Page vePagesTotal elmanlarına bakılabilir.

Kendi yaptığım bir örnek :

Programmers and Users

Parm metod ile nesneler arasında parametre göndermek

Merhaba

Ax’ta iki nesne arasında iletişimi args sınıfıyla sağladığımızdan bahsetmiştik. Bu makelede Args().Celler() metodunun bir kullanımını anlatacağım.

Şöyel bir istek olsun: Bir formum var içerisinde ItemId ve TransDate seçebildiğim iki alanım var. Bu alanlar herhangi bir tablodan gelmiyor. Direk form üzerinde oluştrulmuş alanlar. Ben bu iki alanı doldurduktan sonra bir butonla başka bir form açtırıyorum ve bu iki alanın değerini açtırdığım forma göndermek istiyorum.

Alan isimlerimiz  ItemIdField ve TransDateField  olsun.

Bunlar için birinci forma parm metodlar yazalım.

ItemId parmItemId()
{
    ;
    return ItemIdField.valueStr();
}
TransDate parmTransDate()
{
    ;
    return TransDateField.valueStr();
}

Buton ile açtırdığım ikinci formun init metoduna şöyle bir kod yazarsam bu iki değeri almış olurum.

Read more

Müşteri cirosunu hesaplayan bir query örneği

Merhaba

Müşteri adatandırma adıyla yaptığım bir raporda kullandığım müşterinin belli kriterlere göre cirosunu hesaplayan query’ i paylaşıyorum. Burda Query kullanmamın asıl  sebebi range olarak verilecek olan değerlerin bazen boşta gelebiliyor olması. Boş olma durumununda hesaplanması için query de if le kontroller yapmak zorunda kaldım. 

Metodu çağıran kod şöyle:


 element.sumCiro(CustTrans.AccountNum, CustTrans.OrderAccount,
                         CustTrans.ETGSalesResponsible , CustTrans.ETGSalesUnitId);

Metodumuz şöyle:


void sumCiro(AccountNum _accountNum , CustAccount _custAccount , EmplId _emplId , smmSalesUnitId _unitId)
{
    CustTrans   custTrans;

    Query                   q;
    QueryRun                qRun;
    QueryBuildDataSource    qbdsCustTrans;
    QueryBuildRange         qbrEmplID;
    QueryBuildRange         qbrCustAccount;
    QueryBuildRange         qbrAccountNum;
    QueryBuildRange         qbrUnitId;

    ;
    Ciro = 0;

    q   = new query();
    qbdsCustTrans = q.addDataSource(tableNum(CustTrans));
    qbdsCustTrans.addSelectionField(fieldNum(CustTrans, AmountMst), SelectionField::Sum);

    if(printAccountNum)
    {
        qbrAccountNum = qbdsCustTrans.addRange(fieldNum(CustTrans, AccountNum));
        qbrAccountNum.value(sysQuery::value(_accountNum));
    }
    if(printOrderAccount)
    {
        qbrCustAccount = qbdsCustTrans.addRange(fieldNum(CustTrans, OrderAccount));
        qbrCustAccount.value(sysQuery::value(_custAccount));
    }
    if(printSalesRes)
    {
        qbrEmplID = qbdsCustTrans.addRange(fieldNum(CustTrans, ETGSalesResponsible));
        qbrEmplID.value(sysQuery::value(_emplId));
    }
    if(printUnitID)
    {
        qbrUnitId = qbdsCustTrans.addRange(fieldNum(CustTrans, ETGSalesUnitId));
        qbrUnitId.value(sysQuery::value(_unitId));
    }

    qbdsCustTrans.addRange(fieldNum(CustTrans, ETGReversed)).value(sysQuery::value( ETGReverseType::No));
    qbdsCustTrans.addRange(fieldNum(CustTrans,
               TransType)).value(sysQuery::valueNot( LedgerTransType::Settlement));

    qbdsCustTrans.addRange(fieldnum(CustTrans, TransDate)).value(sysquery::range(startDate , endDate));
    qbdsCustTrans.addRange(fieldnum(CustTrans, AmountMST)).value('( AmountMST > 0 )');

    qRun = new QueryRun(q);
    while(qRun.next())
    {
       custTrans = qRun.get(tableNum(CustTrans));

       Ciro = CustTrans.AmountMST;

    }
}

Selamlar.

Microsoft Dynamics AX 2009 – Development Academy Eğitimi

Tarih: 16,17, 23, 24, 30 Eylül – 1,7,8, 14, 15, 21, 22, 28 Ekim – 4 Kasım 2011

Süre: 15  gün

Eğitmen: Fatih Demirci

Eğitim Hakkında: Bu eğitim, katılımcıları en temel düzeyden başlayarak Dynamics Ax içinde geliştirme yapabilecek seviyeye getirmeyi amaçlamaktadır. Eğitim süresince Dynamics AX geliştirici adayının gerçek ortamda karşılaşabileceği örnekler incelenerek hedefe yönelik çalışmalar yapılmaktadır.

Katılımcı Profili: Dynamics AX geliştirici adayları

Bu kursu bitirdiğinizde: Katılımcılar eğitim sonunda, Dynamics AX 2009 ile temel düzeyde kod geliştirme özelliklerini ve geliştirme ortamı yeteneklerini öğrenmiş olacaklardır. Bu seviye, katılımcıların geliştirmelerin büyük kısmının yapılabilmesi için yeterlidir.

Ön Gereksinimler:

  • Temel Microsoft Windows kullanım bilgisi
  • Programlama metodolojisi ve entegre geliştirme ortamları ile ilgili temel bilgiler (.net platformuna aşinalık)
  • Genel Microsoft Dynamics AX bilgi birikimi faydalı olmakla birlikte şart değildir.

Ek olarak, tavsiye edilen ancak şart olmayan 280020 – Introduction to Microsoft Dynamics AX 2009 eğitimi faydalı olabilir.

Eğitim İçeriği:

  • MorphX’e giriş
  • Dynamics AX’ın mimarisi ve temel kavramları
  • Kullanıcı yetkilendirme, Kullanıcı ara yüzleri (Formlar)
  • DataDictionary, Rapor düzenlemeleri
  • X++’a giriş, X++ kontrol cümlecikleri
  • Sınıflar ve nesneler
  • Veri tabanına erişim, İstisna yönetimi
  • Geliştirme araçları
  • Veri işleme (IO, FileIO, XML, ODBC, Microsoft® Excel® )
  • Sınıflar, raporlar ve formlar, Numara serileri

Ücrete dahil olanlar:

  • Eğitimin son günü (15.gün) her bir kişi için bir defalık sınav hakkı
  • Eğitime katılacak her bir katılımcı için 10 TL değerinde yemek kuponu
  • Her bir katılımcı için (pdf formatında) kitap.

 

Eğitim Bedeli:  1800 USD + KDV / Kişi

Yer: Datatraining (ETG), İnönü cad. Çetinkaya İş Merkezi No: 92 Kat:5 Kozyatağı / İstanbul

Tel: 0(216) 380 60 00

Dil: Oturum Türkçe olarak sunulacaktır.

Kayıt için: Handan Yazıcıoğlu (handan@datatraining.net)

Label kodunun dile göre içeriğine kod ekranından ulaşmak

Merhaba

Label kodunun metnine ulaşmak için bu job örneğini kullanabilirsiniz.

static void retrieveLabel(Args args)
{
    Syslabel  label = new label("TR" ); //”En-us”
    Str     someTxt;
    ;
    someTxt = strFmt( label.extractString( literalStr("@SYS92165") ) );
    info(someTxt);
}

Ax’ta formun verikaynağındaki kayıtları kodla seçmek

Merhaba

Örneğin muşteriler formunda CTRL veya Shift tuşlarıyla birden çok kayıt seçebilirsiniz. Bazı durumlarda belli kritere uyan kayıtları seçili hale getirmek isteyebilirsiniz. Mesala para birimi dolardan farklı olan müşterileri seçip onların Id lerini görelim. CustTable formuna bir buton ekleyip click(); metoduna şu kodu yazalim.


void clicked()
{
    CustTable   custTableMark;
    CustTable   buffer;
    ;
    while select custTableMark
        where custTableMark.Currency != "USD" // herhangi bir kriter verebilirsiniz
    {
    // datasource taki kayıtları işaretliyoruz
    // CTRL veya Shift ile seçmişiz gibi davranır
        custTable_ds.markRecord(custTableMark,1); // 0 ve 1  işaretlemeyi belirler
    }

// DataSource'ta seçtiğimiz kayıtları dolanmak için bu kodu kullanabiliriz.
    for (buffer = custTable_ds.getFirst(true) ? custTable_ds.getFirst(true) : custTable_ds.cursor();
                  buffer;
                  buffer = custTable_ds.getnext())
    {
        info(buffer.AccountNum);
    }
}

Selamlar.

Page 10 of 24« First...8910111220...Last »