9 Aralık 2013 Pazartesi

AXAPTA - Varsayılan para birimi ve dil

    custTable.Currency   = CompanyInfo::standardCurrency();
    custTable.LanguageId = Companyinfo::languageId();

AXAPTA - Şirket Değiştir

        Header.parmShippingDateRequested(this.ShippingDateRequested);
    changecompany(TargetCompanyId)
    {
        Header.parmQuotationId();
        Header.parmCurrencyCode(CompanyInfo::standardCurrency());

        ...
        Header.save();
    }

28 Kasım 2013 Perşembe

AXAPTA - Formdaki container tablo fieldına resmi sürükle-bırak yapmak

public void dropFile(str _FileName)
{
    BinData p = new BinData();
    ;
    super(_FileName);
    p.loadFile(_FileName);
    PRTSecondHandTractorStock.Picture = p.getData();
    element.redraw();
}

21 Kasım 2013 Perşembe

AXAPTA - Bir tablo alanını cross-company çalışacak hale getirmek


Bir forumdan öğrendiğim bu yöntemle tüm yapmanız gereken yukarıdaki gibi bir relation ve extended data tipine dikkat etmek. Bundan sonra formlarda lookup veya validation method yazmadan ilgili alanınız cross-company çalışacak. Bu özellik AX 2009 ile çalışıyor, 2012 ile deneme şansım olmadı.

AXAP - Cross company lookup

public void lookup(FormControl _formControl, str _filterStr)
{

      CustTable   custTable;    
      Query                   Query  = new Query();
      QueryBuildDataSource    qbds;
      SysTableLookup          SysTableLookup  =      
            SysTableLookup::newParameters(TableNum(CustTable), _formControl);
    ;
    super(_formcontrol,_filterstr);

    Query.allowCrossCompany(true);      
    Query.addCompanyRange(myTable.Company);
    qbds           = Query.addDataSource(TableNum(CustTable));
    SysTableLookup.addLookupfield(FieldNum(CustTable, AccountNum), true);      

    SysTableLookup.addLookupfield(FieldNum(CustTable, Name));
    SysTableLookup.parmQuery(Query)

    SysTableLookup.performFormLookup();
}


Kontrolün validate metodunu ezmeyi unutmayın!..

18 Kasım 2013 Pazartesi

AXAPTA - Combobox enum kullanırken bazı elementleri atlamak

Çözümünü bir forumda buldum:

Form kontrolünün Enter metodunun super sonrasına yazılacak:

    this.delete(enum2str(DTSSHOperationLineType::Part));
    this.delete(enum2str(DTSSHOperationLineType::ExternalPart));


Eğer kontrol bir grup altındaysa AutoDataGroup = No yapmayı unutmayın.

14 Kasım 2013 Perşembe

AXAPTA - Gridde hızlı kayıt bulma

Bu işi için sakın find metodunu kullanmayın, büyük tablolarda çok yavaş çalışır. Axapta'nın kendi formlarında kullandığı yöntem bu:

element.args().lookupField(fieldnum(SMAServiceOrderTable, ServiceOrderId));
element.args().lookupValue(_myServiceOrderId);
SMAServiceOrderTable_ds.executeQuery();