record etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
record etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

26 Ocak 2021 Salı

AX 2012 - Args ile filtre göndermek

Args ile filtreniz sadece bir kayıttan ibaretse args.record() kullanarak filtreleyebilirsiniz, record metodu ile birden fazla kayıt gönderemezsiniz. Bunun için InitialQueryParameter sınıfını kullanabilirsiniz: 

            Args                 args = new Args();
            MenuFunction         MenuFunction = new MenuFunction('LedgerJournalTable', MenuItemType::Display);
            Query                q = new Query();
            QueryBuildDataSource QBDS = q.addDataSource(tableNum(LedgerJournalTable));

            if (ABCRCreditTable.AccualJournalNum != "")
                QBDS.addRange(fieldNum(LedgerJournalTable,JournalNum)).value(ABCRCreditTable.AccualJournalNum);
            if (ABCRCreditTable.AccualJournalNum2 != "")
                QBDS.addRange(fieldNum(LedgerJournalTable,JournalNum)).value(ABCRCreditTable.AccualJournalNum2);

            args.initialQuery(InitialQueryParameter::createByQuery(q));
            args.caller(this);

            MenuFunction.run(args);  


20 Ekim 2011 Perşembe

AXAPTA Yeni kaydı başka bir formda yapıp asıl forma geri dönmek

Bazı durumlarda Yeni kaydı başka bir formda yapmak isteyebilirsiniz veya bunu yapmak zorunda kalabilirsiniz. Axapta orjinal formlarında bunun örnekleri var ancak doğrusu bana çok karışık geldi. Ben basitçe şöyle yaptım:
Ana formun Create methodu:

public void create(boolean _append = false)
{
    Args                args;
    FormRun             formCreate;
    ;

        args = new Args();
        args.name(formstr(B_ExpressServiceNew));
        args.caller(element);

        formCreate = classfactory.formRunClass(args);
        formCreate.init();
        formCreate.run();
        formCreate.wait();
}

Buradaki B_ExpressServiceNew, bizim kayıt açan formumuz oluyor.
Kayıt açan formdaki kayıt methodunun bizi ilgilendiren parçası :


    if (element.args() && element.args().caller() && element.args().caller().name() == formstr(B_ExpressService))

    {
     mainForm = element.args().caller();
     mainForm.SetRecord(oTable);
    }


B_ExpressService ana formumuz, oTable da kaydımız.
Bu da yeni oluşturduğumuz kayda konumlanabilmek için ana formda açtığımız setrecord methodu:

void SetRecord(SMAServiceOrderTable _order)
{
    ;
    SMAServiceOrderTable.reread();
    SMAServiceOrderTable.data(_order);
    SMAServiceOrderTable_DS.setCurrent();

} 

30 Eylül 2011 Cuma

AXAPTA Kayıtları Tazeleme

    repairjournal_ds.research();
    repairjournal_ds.refresh();

eğer cursor aynı kayıtta kalsın isteniyorsa:

    repairjournal_ds.research(true);
    repairjournal_ds.refresh();