27 May 2011

Multi selected Records getting in grid

// IN form Gird select some records and click button. in button properties MultiSelect: YES
void clicked()
{
CustTable _CustTable;
;

super();

if(CustTable_ds.anyMarked())
{
_CustTable = CustTable_Ds.getFirst(1,false);
while(_CustTable)
{
info(_CustTable.AccountNum);
_CustTable = CustTable_Ds.getNext();

}
}
}

DictTable and DictField

static void SystemClassesFields(Args _args)
{
SysDictTable dictTable;
DictField dictField;
Common common;
Counter counter;

;

dictTable = new SysDictTable(tableNum(CustTable));

for (counter=1; counter<=dictTable.fieldCnt(); counter++)
{
dictField = new DictField(dictTable.id(), dictTable.fieldCnt2Id(counter));

if (dictField.isSystem())
{

info(strfmt("System field: %1", dictField.label()));
info(strfmt("System field: %1", dictField.name()));
}
else
info(strfmt("User field: %1", dictField.label()));
}
}

Common

static void Common(Args _args)
{
Common common;
CustTable custTable;
;

common = custTable;

if (common.tableId == tablenum(custTable))
{
while select common
{
info(common.(fieldnum(custTable, name)));
}
}
}

working with table buffers

static void OneCursor(Args _args)
{
CustTable custTable, newCustTable;
;
select firstonly custTable;

newCustTable = custTable;
}
--
static void TwoCursors(Args _args)
{
CustTable custTable, newCustTable;
;
select firstonly custTable;

newCustTable.data(custTable);
}
--
static void DataDic_MultipleCursors(Args _args)
{
CustTable custTable, newCustTable;
;
while select custTable
{
newCustTable.data(custTable);
//info(newCustTable.AccountNum);
}

}

20 May 2011

Time Field Comparison

// This is a job to understand about time values comparison and time field values comparison //using dialog
static void TimeComparison(Args _args)
{
TimeofDay fromTime,toTime; // Time variables
//TimeDate tbTime; // Table Buffer
Dialog dlg = new Dialog("TimeComparision");// object created for Dialog
dialogField dlgField,dlgField2;// Dialog Fields
TimeofDay fTime,tTime; // Time variables
;


dlgField = dlg.addFieldValue(typeid(TimeofDay),"","FromTime");
dlgField2 = dlg.addFieldValue(typeid(TimeofDay),"ToTime","ToTime");

if(dlg.run())
{
fromTime = dlgField.value();
toTime = dlgField2.value();
}

// fromTime = str2time("03:00:00 am");// we can change the time into string format
// toTime = str2time("04:00:00 am");


if(fromTime < toTime) { info("This is the small time"); info(time2str(fromTime,1,1)); } else if(fromTime > toTime)
{

info("From Time should be less than To time ");
info(time2str(toTime,1,1));
}
else
info("Enter the time");
//-----------------------------
// To compare we can use this function: str2time("11:00:00 am")

//while select tbTime where tbTime.FromTime == str2time("11:00:00 am")
//{
//print tbTime.FromTime;
//info(time2str(tbTime.FromTime,1,1));

//}

//print time;
//pause;

tTime = str2time("03:00:00 am");
tTime = str2time("04:00:00 am");

if(tTime == str2time("3:00:00:am"))
{
print tTime;
}
pause;

}

16 May 2011

Crosscompany to get data from other companies / Get the data from other companies

CrossCompany is the Keyword to get the data from other companies..

static void CrossCompany_test(Args _args)
{
CustTable custTable;
container conCompanies = [ 'USMF', 'USRT', 'USSI' ]; // you can assign the selected company
str comp;
;

while select crossCompany : conCompanies * from custTable
{
info( custTable.AccountNum + " : " + custTable.name() + " : " + custTable.dataAreaId);
}


}

Create virtual company accounts

Virtual company accounts contain data that is shared across company accounts. This type of account enables users to post information in one company that is available to another company.

Prerequisites

Requirements to create or modify a virtual company accountare as follows:

Must be running a single instance of the Application Object Server (AOS). All other AOS computers must be shut down.

Must be logged in as an administrator.

Only one active client connection is allowed.

Create a virtual company account
Click Administration > Setup > Virtual company accounts.

Enter the company identification in the Company accounts field.

Enter the name of the virtual company in the Name of company accounts field.

Click the Company accounts tab.

Select the company accounts to participate in the virtual company.

To add a virtual company account, select the company name under Remaining company accounts and then click the left arrow (<) to move it to the Selected company accounts list. To remove a virtual company account, select the company name under Selected company accounts and then click right arrow (>) to move it to the Remaining company accounts.

Click the Table collections tab and select the table collections that contain the specific tables that you want to share in the virtual company.

To add a table collection, select the table collection name under Remaining table collections and then click the left arrow (<) to move it to the Selected table collections list. To remove a table collection, select the table collection name under Selected table collections and then click the left arrow (>) to move it to the Remaining table collections list.

Table collections are groups of tables. They can be created by developers through drag-and-drop functionality in the Application Object Tree (AOT).

Shut down and restart the Microsoft Dynamics AX client.

You must restart the Microsoft Dynamics AX client to update the client with the new virtual company account information.

09 May 2011

Query Filter in form

In new form->write a method in DS->

void filterOnVendTable()
{
QueryBuildRange vendorAccountFilter;
;
vendorAccountFilter = this.query().dataSourceNo(1).addRange(fieldnum(VendTable, AccountNum));
vendorAccountFilter.value("3000..3010");
}

____
Call this method in DS->Init()
public void init()
{
super();
this.filterOnVendTable();
}

05 May 2011

Close AXAPTA with X++ , shut down AX with X++ code

public static void shutdownAxapta()
{
SysGlobalCache cache = appl.globalCache();
info info;
;
cache.set(classstr(info), identifierstr(Autologoff), true);
info=new info();
info.shutDown(true);
}

02 May 2011

Dialog Field Validation

In Report this if for to check the null values.
boolean getFromDialog()
{
boolean ret;
;
_CustAccount = dlgField.value();

if(_CustAccount == "")
{
checkfailed("Enter the value");
}
else
ret = true;

return ret;
}
______
This is to validate based on the condition.
boolean getFromDialog()
{
boolean ret;
;
_CustAccount = dlgField.value();

if(_CustAccount >= "4000" && _CustAccount <="4010")
{
ret = true;
}
else
checkfailed("Enter the values bet ween 4000 to 4010");

return ret;
}

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->...