Archive for Aralık, 2015

AutoRefreshData property on buttons AX2012

Merhaba,

Ax gerçekten bir çok ayrıntıya sahip. Özellikle nesnelerin özelliklerinde aktif olarak kullanmadığımız bir çok yenilik mevcut. AutoRefreshData özelliği de bunlardan biri.

Yaptığım bir geliştirmede ListePage formunda durum değiştiren bir sınıf yaptım. Bildiğiniz gibi ListPage formlara kod yazamıyoruz. Bu sınıf ListePage’teki satırın durum alanını değiştiriyor. Bu değişikliği yaptıktan sonra formu yenilemem gerekiyordu. Bunu yapmak için args üzerinde DateSource alıp üzerinden Refresh çalıştırmak gerekiyor ama güzel bir yöntem değil. Bunun daha kolay bir çözümü olmalı derken buton üzerindeki AutoRefreshData özelliğini gördüm. Bu özelliği true olarak ayarlağınızda aslında Table_DS.Research(True) metodunun yaptığı işi yapıyor. Bu sayede kod yazmadan griddeki veriyi güncelleniyor.

Selamlar.

How to get table field properties from X++

Hi,

Sometimes while development process you need to get table field properties. One of my customer i need to setup a structure which i have to get all the LedgerJournalTrans table fields names and properties .

In this example i loop all the fields except some system fields and  show names and some properties.


//Dmr Fatih Demirci
static void Dmr_FD_GetTableField(Args _args)
{
    SysDictTable    dictTable = new SysDictTable(tableNum(LedgerJournalTrans));
    SysDictField    dictField;
    TreeNode        treeNode;
    FieldId         fieldId   = dictTable.fieldNext(0);
    ;

    while (fieldId)
    {
        dictField = dictTable.fieldObject(fieldId);

        //Except Sql, System, visible fields
        if (   dictField.isSql()      && !dictField.isSystem()
            && dictField.allowEdit()  && dictField.allowEditOnCreate()
            && dictField.visible()    && !dictField.getCountryRegionCodes( ) )
        {
            treeNode = dictField.treeNode();

            info(strFmt("%1-%2-%3-%4",  dictField.id(),
                                        dictField.name() ,
                                        dictField.label(),
                                        dictField.baseType()  ));
        }

        fieldId = dictTable.fieldNext(fieldId);
    }
}

Info:

Happy Daxing.