2012-06-29 20 views
6

Axapta'daki bir form arasındaki tek bir parametreyi nasıl geçebilirim? Form A'da tıklatılan düğme olayından Form B çalıştırmak ve örneğin müşteri kimliğini geçmek istiyorum ...? Hedef formda, belki de init yönteminde nasıl okuyabilirim? TeşekkürAxapta'da iki form arasında parametre nasıl geçilir?

cevap

12

1 Yöntem

kolay yolu geçerli kaydı geçmektir. Sadece CustTable mevcut Form veri kaynaklarında ise, CustTable için Örnek için düğme denetiminin DataSource değerini değiştirin. Ardından hedef formu init yöntemi: Hala tam olarak bir değer .parm (geçmesine gerekiyorsa

public void init() 
{ 
    CustTable cTable; 
    ; 
    super(); 

    // Check for passed arguments 
    if(element.args()) 
    { 
     // get record parameter 
     if(element.args().record() && element.args().record().TableId == TableNum(CustTable)) 
     { 
      cTable = element.args().record();    
     } 
    } 
} 

2 Yöntem

) (veya daha karmaşık nesne .parmObject()) kaynak formu en overiding yapabilirsiniz düğme kontrolü tıklandığında yöntemi:

hedef form birimi içinde Sonra
void clicked() 
{ 
    // Args class is usually used in Axapta for passing parameters between forms 
    Args   args; 
    FormRun   formRun; 
    ; 

    args = new args(); 

    // Our values which we want to pass to FormB 
    // If we want pass just simple string we can use 'parm' method of 'Args' class 
    args.parm("anyStringValue"); 

    // Run FormB 
    args.name(formstr(FormB)); 
    formRun = classFactory.formRunClass(Args); 
    formRun.init(); 
    formrun.run(); 
    formrun.wait(); 

    super(); 
} 

:

public void init() 
{ 
    str    anyStringValueFromCaller; 
    ; 
    super(); 

    // Check for passed arguments 
    if(element.args()) 
    { 
     // get string parameter 
     anyStringValueFromCaller = element.args().parm(); 

    } 
} 

Kesinlikle ilk yöntemi kullanmalı ve yalnızca özel durumlarda buton tıklatma yöntemini geçersiz kılarak # 2 yöntemini kullanmam gerekir çünkü bu formlar arasındaki değerleri aktarmak için varsayılan modellerden biridir. Daha karmaşık bir örnek AxaptaPedia.com Passing values between forms

adresinde bulunabilir.
İlgili konular