I have to create a dialogue for a report with three fields:
for selection of customer the next field that is contractId should display the contract’s of the particular customer and the contract year field should display the contract year for that customer’s contract id which we have selected…how to do that in dialogue.a customer can have multiple contractId’s which can have different contract year…I mean suppose contract is from 2008 to 2010 then contract year should be CY1-2008,CY2-2009,CY3-2010 like that
We can do this both two ways either.
- Create form with OK button (set form design property → Frame = dialog & Window Type = popup) and create a temporary table for these 3 fields with Lookup methods as per your requirement; then whenever you try to apply OK button, just call OUTPUT menuitem for your Report.
(Ex: CRM → Reports → Display Menu Item for newly created form.)
- In your Report, over ride dialog() method with the following code:
public Object dialog(Object _dialog)
SysReportRun sysReportRun = this;
_dialog = Dialog::newFormnameRunbase(formstr(NewlyCreatedFormName), sysReportRun.runbaseReport());
// ret = super(_dialog);
and in your Form,
in Init() method :
public void init()
FormRun callerForm = element.args().caller();
runBaseReport = element.args().caller().runbase();
sysReportRun = runBaseReport.reportRun();
finally, selection of Customer, contractId, contract year from your temporary table and get those temporary table cursor record in your report fetch() method.
(Ex: CRM → Reports → Output Menu Item for your Report and Report itself will automatically calls your newly created form.)
Thanks for help,but I cant change in the form.kindly help me with code in dialog only so that i ccan get lookup for contractyear and contractId for selected customer.
Can you plz give me an example like this from standard reports available in axapta…the kind of report for which i was asking?
You need to override the lookup method on dialog.Please refer the following link: