好吧,我花了一些時間來嘗試一下,我有兩種可能的解決方案給你。
- 您可以通過使用綁定控件做到這一點,通過在選定的記錄
- 或者你可以使用一個數據源上選定的值嚮導的形式和過濾器上
首先,讓我們嘗試做它通過使用簡單的未綁定控件。首先向你的嚮導類添加一個CustTable成員變量和參數方法。
public class MyTestWizardWizard extends SysWizard
{
CustTable mySelectedCustomer;
}
public CustTable parmMySelectedCustomer(CustTable _mySelectedCustomer = mySelectedCustomer)
{
;
mySelectedCustomer = _mySelectedCustomer;
return mySelectedCustomer;
}
然後在您的形式,可以覆蓋init方法並執行以下操作:
void init()
{
int controlid;
FormStringControl fsControl;
;
super();
if (element.Args().caller())
{
sysWizard = element.Args().caller();
// Get the control id of the CustomerId control
controlid = element.controlId(formControlStr(MyTestWizardWizard, CustomerId));
// Check if we actually have a form string control
if(element.control(controlid) is FormStringControl)
{
// Cast to the FormStringControl type
fsControl = element.control(controlid) as FormStringControl;
// Now fill in the field value
fsControl.text(sysWizard.parmMySelectedCustomer().AccountNum);
}
}
else
{
MyTestWizardWizard::main(new args());
element.closeCancel();
}
}
那麼你實際上在這裏做的只是獲取存儲在你所選擇的記錄嚮導類。然後我們檢查我們想要賦值的控件是否實際上是將該值放入的正確控件。
雖然這是行得通的,但我更喜歡第二種方法。這將是在表單上使用一個數據源,並將這個範圍放在選定的記錄上。只需將CustTable作爲數據源放置在窗體上,並按照通常的方式放置控件即可。
然後,確保在init方法進行底部的超()調用,以確保初始化完成後調用數據源方法之前:
void init()
{
;
// make sure the sysWizard is already initialized before the super to make sure the init on the datasource has an instance of sysWizard
if (element.Args().caller())
{
sysWizard = element.Args().caller();
}
else
{
MyTestWizardWizard::main(new args());
element.closeCancel();
}
super();
}
然後覆蓋上的數據源init方法把custTable的recId字段的範圍。 請注意,您可以在ExecuteQuery方法中指定範圍的值,但對於這種情況,我只是在這裏執行。
public void init()
{
;
super();
SysQuery::findOrCreateRange(this.query().dataSourceTable(tableNum(CustTable)), fieldNum(CustTable, RecId)).value(queryValue(SysWizard.parmMySelectedCustomer().RecId));
}
現在正在運行嚮導時,該ARGS通過記錄你的精靈類,形式把它撿起對數據源的初始化,並提出了一系列對您所選擇的記錄。所有其他的魔法都是綁定數據控件的正常Ax行爲。
所以我希望這是你所需要的。如果您還有其他問題,請告訴我。
我們可以看到您的代碼示例嗎? – SShaheen
[http://www.axaptapedia.com/Passing_values_between_forms]代碼類似於上面提到的鏈接...並且代碼在將所選記錄從custtablelistpage傳遞給正常表單時工作正常,但傳遞記錄或參數時不會到精靈....請創建一個嚮導,並將其用作custtablelistpage上的menuitembutton並自己嘗試,並讓我知道如果你找出問題..我會感激你.... –
@SShaheen。你有沒有得到任何解決方案.. –