2012-06-29 30 views

Trả lời

12

1 Phương pháp

Cách dễ nhất là chuyển hồ sơ hiện tại. Chỉ cần thay đổi giá trị DataSource của nút điều khiển cho Ví dụ thành CustTable nếu CustTable đang ở trong các nguồn dữ liệu Biểu mẫu hiện tại. Sau đó, phương pháp trong đích của biểu mẫu init:

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 Phương pháp

Nếu bạn vẫn cần vượt qua đúng một giá trị .parm() (hoặc đối tượng phức tạp hơn .parmObject()) bạn có thể làm điều này bằng overiding nguồn hình thức của nút điều khiển phương pháp nhấp:

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

Sau đó, trong đích của biểu mẫu init:

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

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

    } 
} 

Tôi chắc chắn sẽ chỉ sử dụng phương pháp đầu tiên và chỉ trong trường hợp đặc biệt sẽ đi với phương pháp # 2 với phương pháp bấm nút ghi đè bởi vì đây là một trong các mẫu mặc định để truyền các giá trị giữa các biểu mẫu. Ví dụ phức tạp hơn có sẵn tại AxaptaPedia.com Passing values between forms

Các vấn đề liên quan