29 March 2010

AOT MAPs in Dynamicis AX with example

mapping different fields with the same EDT from different tables to each other.

Please click here for better example
For example let's that you have an a customer Table and a vendors table and
you want to fill in the fields of a new table from these tables.

If maps did not exist you would have to do this in your new table:

void initFromCustTable(CustTable _custTable)
{
this.AccountNum = _custTable.AccountNum;
this.Name = _custTable.Name;
this.country = _custTable.Country;
this.language = _custTable.Language;
}

AND

void initFromCustTable(VendTable _vendable)
{
this.AccountNum = _vendable.AccountNum;
this.Name = _vendable.Name;
this.country = _vendable.Country;
this.language = _vendable.Language;
}

BUT

if you use a map (mapping newTable, CustTable and Vendor) all you need is
this:

void initFromCustVendMap(CustVendMap _custVendMap)
{
this.AccountNum = _custVendMap.AccountNum;
this.Name = _custVendMap.Name;
this.country = _custVendMap.Country;
this.language = _custVendMap.Language;
}
ONLY once on the map and then you just call the same method with different
buffers:

this.initFromCustVendMap(YourCustTableBuffer);
this.initFromCustVendMap(YOurVendTableBuffer); // NOTE same method but
different buffer.

for more info visit:
http://msdn.microsoft.com/en-us/library/bb278211(AX.10).aspx

23 March 2010

Select Multiple records in Grid ,update and print and read the data source records

//THis Code can use for to select multiple record in Grid and we can updater the status of the field, and in
// to enable while in selection of records, menuitem->properties->multiselect= Yes.

void clicked()
{
HRMApplication hrmApplicationlocal,local;
;
super();
for (hrmApplicationlocal = hrmApplication_ds.getFirst(true) ? hrmApplication_ds.getFirst(true) : hrmApplication; hrmApplicationlocal; hrmApplicationlocal = hrmApplication_ds.getNext())
{
ttsbegin;
select forupdate local where local.hrmApplicationId == hrmApplicationlocal.hrmApplicationId;
local.status = HRMApplicationStatus::Interview;
local.update();
ttscommit;
}
hrmApplication_ds.executeQuery();
}
--------------------
void clicked()
{
Table2 custTransOpenLoc;
Counter c;
;
super();
for (custTransOpenLoc = Table2_ds.getFirst(0,1);
custTransOpenLoc;
custTransOpenLoc=Table2_ds.getNext())
{
c++;
info(strfmt("%1",C));

}
}
------------------
void clicked()
{
FormDataSource fdS = CustTransOpen_ds;
CustTransOpen custTransOpenLoc;
;
breakpoint;
for (custTransOpenLoc = fdS.getFirst(true) ? fdS.getFirst(true) : CustTransOpen;
custTransOpenLoc;
custTransOpenLoc=fdS.getNext())
{
info();

}
super();
}

22 March 2010

TO select multiple Records Using check box field in form and To change the status in field values like Openorder, invoiced, recevied

Table level
Add a field to ur table which is used as data source in ur form ,
for that field use enum type : noyes in field property:

Form level:
-
public void init()
{
super();

ttsbegin;
while select forupdate custTable where custTable.Choose == NOYes::Yes
{
custTable.Choose = NOYes::No;
custTable.update();
}
ttscommit;
}
--
--
void clicked()
{
super();

//if(CustTable.Choose)

ttsbegin;
// while select CustTable
// where CustTable.Choose == noyes::Yes
while select forupdate CustTable
where CustTable.Choose == noyes::Yes
{
CustTable.StatusSag = statussag::OpenStatus;
CustTable.Choose = noyes::No;

CustTable.Update();
}


ttscommit;
CustTable_ds.executeQuery();

}
--
void clicked()
{
super();

//if(CustTable.Choose)

ttsbegin;
while select forupdate CustTable
where CustTable.Choose == noyes::Yes
{
CustTable.StatusSag = statussag::CloseTrans;
CustTable.Choose = noyes::No;
CustTable.Update();
}


ttscommit;
CustTable_ds.executeQuery();

}

Ledger Voucher creation Framework and x++ code to create ledger voucher

 Please click her for MS reference file Below is the out of the box example reference and code. SalesInvoiceJournalPostSubBill_Extension->...