26 Ekim 2017 Perşembe

Range verme | Daynamics Ax

Farklı tiplere range verme örneklerini aşağıdaki koddan görebilirsiniz.
Formun datasource'una ekliyorsunuz.

 this.query().dataSourceTable(tablenum(PurchLineTotals)).addSortField(fieldnum(PurchLineTotals, PurchId), SortOrder::Descending); // Büyükten küçüğe sıralama yapar.
    this.query().dataSourceTable(tablenum(PurchLineTotals)).addRange(fieldnum(PurchLineTotals, Dimension3)).value("IHR*"); // IHR ile başlayan kayıtları getirir.

this.query().dataSourceTable(tablenum(ExImpExpense_View)).addRange(fieldnum(ExImpExpense_View, MarkupCode)).value(queryvalue("D-Navlun"));  // MarkupCode'u D-Navlun olanları getir
this.query().dataSourceTable(tablenum(ETGChequeHistoryByDates)).addRange(fieldnum(ETGChequeHistoryByDates, LastTransACType)).value(enum2str(LedgerJournalACType::Cust));// Enum tipi için range

25 Ekim 2017 Çarşamba

Formdaki alanın genişliği

Ax'ta aşağıdaki gibi formun içinde bir alandaki veri hücreye sığmıyorsa;


Formda sağ tık > kurulum'dan Genişlik(lkarakter olarak) alanını kendinize göre ayarlayabilirsiniz.





Faturalanan Satış Siparişinde Değişiklik İstenirse Bakılacak Tablolar

Dynamics Ax'ta faturalanan sipariş ekstrem durumlarda değiştirilmesi istenir.
Genellikle sıkıntılı durumlardır. Böyle bir talep gelirse güncellenecek tablolar:
  1. CustInvoiceJour
  2. CustInvoiceTrans
  3. CustTrans
  4. LedgerTrans
  5. TaxTrans

Satınalma için;

Faturalanan Satınalma Siparişinde Değişiklik İstenirse Bakılacak Tablolar

Dynamics Ax'ta faturalanan sipariş ekstrem durumlarda değiştirilmesi istenir.
Genellikle sıkıntılı durumlardır. Böyle bir talep gelirse güncellenecek tablolar:
  1. VendInvoiceJour
  2. VendInvoiceTrans
  3. VendTrans
  4. LedgerTrans
  5. TaxTrans
Satış siparişi için;

23 Ekim 2017 Pazartesi

Farklı tabloyla ilişki kurma



if(inventTable::find(CustPackingSlipTrans.ItemId).WayControl == NoYes::Yes)
  {
    info("Var");
  }

19 Ekim 2017 Perşembe

Dynamics Ax iş akışındaki saat sorunu

İş akışındaki saat sorunu 
Ax'ta iş akışlarında saat sistemin saatiyle uyuşmuyorsa, güncellemeniz gereken alanlardan birisi,
İş akışı konfigürasyonlarında bulunan saat dilimi olacaktır. Burayı GMT+03:00 şeklinde güncellerseniz problem kalkacaktır.






Kullanıcıların saat dilimlerini toplu şekilde güncellemek için;

10 Ekim 2017 Salı

Ax'ta Tablodaki verileri diğer tabloya ekleme

Örneğin; DRT_SuggestionTable tablosunda istediğiniz alanların verilerini DRT_FarmerSuggestionTable tablosuna aktarmak istediğinizde aşağıdaki kod işinize yarayacaktır.
static void MAA_FarmerSuggestionTable(Args _args)
{
    DRT_FarmerSuggestionTable  FarmerSuggestionTable;
    DRT_SuggestionTable             SuggestionTable;

    ttsBegin;

      while select forUpdate SuggestionTable

        if(SuggestionTable.RecId)
            {
               FarmerSuggestionTable.FarmerID      =   SuggestionTable.FarmerID;
               FarmerSuggestionTable.VisitId           =   SuggestionTable.VisitId;
               FarmerSuggestionTable.Quantity         =   SuggestionTable.Quantity;
               FarmerSuggestionTable.CustAccount  =   SuggestionTable.CustAccount;
               FarmerSuggestionTable.CustName      =   SuggestionTable.CustName;
               FarmerSuggestionTable.ItemId             =   SuggestionTable.ItemId;
               FarmerSuggestionTable.insert();
            }

    info("bitti");

    ttsCommit;
}

5 Ekim 2017 Perşembe

Formun çalışması

Formun direk açılmasını önlemek için aşağıdaki methodu kullanabilirsiniz.
Formun methodunda initini ezerek çalıştırabilirsiniz.

public void init()
{
    if (!element.args().caller())
    {
        throw error("@SYS22996");
    }
    super();

    if (element.args() && element.args().record())
    {
        DRT_LegalEntity = element.args().record();
    }
}

22 Ağustos 2017 Salı

Tarih metodları (Date methods)


static void date_Functions(Args _args)
{
    Transdate    d;
    ;

    d = today();

    info(strfmt("Date – %1",d));

    //Gets the month for the given date…
    info(strfmt("Month – %1",mthofYr(d)));

    //Gets the month name from the given date…
    info(strfmt("Month Name – %1",mthname(mthofYr(d))));

    //Gets the day for the given date…
    info(strfmt("Day – %1",dayOfMth(d)));

    //Gets the day name from the given date…
    info(strfmt("Day Name – %1",dayname(dayOfMth(d))));

    //Gets the year for the given date…
    info(strfmt("Year – %1",year(d)));

    //Gets the current weekday number from the date…
    info(strfmt("Weekday number – %1",dayOfwk(d)));

    //Gets the day of the year from the given date…
    info(strfmt("Day of year – %1",dayOfyr(d)));

    //Gets the week of the year from the given date…
    info(strfmt("Week of the year – %1",wkofyr(d)));

    //Gets the start of the month from the given date…
    info(strfmt("Start of the month – %1", DateStartMth(d)));

    //Gets the end of the month from the given date…
    info(strfmt("Enf of the month – %1", endMth(dateMthFwd(d, 0))));

    //Gets the previous month from the given date…
    info(strfmt("The previous month – %1",prevMth(d)));

    info(strfmt("The previous month – %1",maxDate()));

    info(strfmt("current system time %1", DateTimeUtil::utcNow()));

    info(strfmt("current system time %1", DateTimeUtil::applyTimeZoneOffset(DateTimeUtil::utcNow(), DateTimeUtil::getUserPreferredTimeZone())));
}

17 Ağustos 2017 Perşembe

Display Bir Alanda Form İçinde Arama Yapma

Bir formun içerisinde display olan bir alanda arama yapılması isteniyorsa;

Forma arama ve sıfırlama yapmak için iki buton ve arama alanı için bir adet string tipinde alan ekleyip butonların click'ına aşağıdaki kodları ekleyerek çözebilirsiniz.



Forma eklediğimiz alanlar aşağıdaki gibi görünecek. Burada madde adını aratarak filtre koymak istiyoruz.



Eklemiş olduğum OK butonunun Click methoduna şu kodu yazıyoruz;

void clicked() { TRSShipmentReport ShipmentReport; InventTable inventTable; Query q; QueryBuildDataSource qbdShipmentReport; ; super(); if(name.valueStr()) { q = TRSShipmentReport_ds.query(); qbdShipmentReport = q.dataSourceTable(tablenum(TRSShipmentReport)); qbdShipmentReport.clearRanges(); while select inventTable where inventTable.ItemName like "*" + name.valueStr() + "*" { qbdShipmentReport.addRange(FieldNum(TRSShipmentReport, ItemId)).value(SySQuery::value(InventTable.ItemId)); } TRSShipmentReport_DS.query(Q); TRSShipmentReport_DS.executeQuery(); } }
Filtreyi sıfırlamak için de Cancel butonunun Click methoduna aşağıdaki kodu yazıyoruz;
void clicked() { Query q; QueryBuildDataSource qbdTRSShipmentReport; ; super(); q = TRSShipmentReport_ds.query(); qbdTRSShipmentReport = q.dataSourceTable(tablenum(TRSShipmentReport)); qbdTRSShipmentReport.clearRanges(); TRSShipmentReport_ds.query(Q); TRSShipmentReport_ds.executeQuery(); name.text(""); }

11 Ağustos 2017 Cuma

Bizi Unutmayın! | Web

Web sitelerini dolaşırken title'lların farklı sekmeye geçip değiştiğini görünce ilgimi çekti.
Ax'la ilgili değil ama web'le de uğraşanlar için paylaşıyorum.

Bulunduğunuz sekmeden farklı bir sekmedeyken web sitenizin title'ının "Bizi Unutmayın!"
şeklinde değişmesini istiyorsanız, ASP.net ile yaptıyanız web sitenizin master page'ine eklemeniz yeterli olacak.

script> 
var newtitle = ‘ Bizi Unutmayın!’;
var oldtitle = document.title;
window.onblur = function () { document.title =newtitle; }
window.onfocus = function () { document.title = oldtitle; }
 /script>

Total ciro

static void MAA_SalesTableTotal(Args _args) { SalesTable SalesTable; utcDateTime dateTime; dateTime ...