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();

} 

Hiç yorum yok:

Yorum Gönder