Làm cách nào tôi có thể chuyển một tham số duy nhất giữa một biểu mẫu trong axapta? Tôi muốn chạy Biểu mẫu B từ sự kiện nút được nhấp trong Biểu mẫu A và vượt qua ... ví dụ như id khách hàng? Làm cách nào tôi có thể đọc nó ở dạng đích, có thể trong phương thức init? Cảm ơnLàm thế nào để vượt qua một tham số giữa hai hình thức trong Axapta?
Trả lời
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