Thursday, May 12, 2016

CAll METHODS IN TUNNEL PAGE BASED ON THE BUTTON CLICKED NEXT AND CANCEL FINISH.X++ CODE ENTERPRISE PORTAL : ITEMUPDATE ITEMCOMMAND

 CAll METHODS IN TUNNEL PAGE BASED ON THE BUTTON CLICKED NEXT AND CANCEL FINISH.X++ CODE ENTERPRISE PORTAL


protected void Page_Init(object sender, EventArgs e)
    {
        wizDetailsCreateTunnel.NextButtonClick += new WizardNavigationEventHandler(wizCreateTunnel_NextButtonClick);
        wizDetailsCreateTunnel.FinishButtonClick += new WizardNavigationEventHandler(wizCreateTunnel_FinishButtonClick);
        wizDetailsCreateTunnel.CancelButtonClick += new EventHandler(wizDetailsCreateTunnel_CancelButtonClick);
        this.Employee1Form.ItemCommand += new DetailsViewCommandEventHandler(EMP_ItemCommand);
        this.Employee1Form.ItemUpdated += new DetailsViewUpdatedEventHandler(Employee1Form_ItemUpdated);
        this.SetupMode();
       
    }

protected void EMP_ItemCommand(object sender, DetailsViewCommandEventArgs e)
    {
        if (e.CommandName == "Cancel")
        {
            this.EmpDataSourceView.CancelEdit();
            Boolean fetchEMP1Check;
            fetchEMP1Check = (Boolean)this.AxDataSource2.GetDataSet().DataSetRun.AxaptaObjectAdapter.Call("validateEMP1WInfo");
            //Proxy.Info obj = new Proxy.Info(this.AxSession.AxaptaAdapter);
            //obj.add(Proxy.Exception.Info, fetchEMP1Check.ToString());
            if (fetchEMP1Check == false)
            {
                this.AxDataSource2.GetDataSet().DataSetRun.AxaptaObjectAdapter.Call("deleteEMP");
            }
            //this.RedirectToPreviousPage();
        }
    }


    protected void Employee1Form_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
    {

        try
        {
            if (AxGridView4.Rows.Count > 0 && AxGridView4.EditIndex != -1)
            {
                this.AxGridView4.UpdateRow(AxGridView4.EditIndex, true);
                // Check the RowUpdating functionality threw any error.
                if (!rowUpdateSuccess) return;
            }            
        }
        catch (System.Exception ex)
        {
            AxExceptionCategory exceptionCategory;

            if (!AxControlExceptionHandler.TryHandleException(this, ex, out exceptionCategory))
            {
                // Throw the fatal exception
                throw;
            }
        }
        if (e.Exception == null)
        {
            Boolean fetchEMP1;
            fetchEMP1 = (Boolean)this.AxDataSource2.GetDataSet().DataSetRun.AxaptaObjectAdapter.Call("validateEMP1");

            /*if(fetchEMP1 == true)
                this.RedirectToPreviousPage();*/
        }

    }


Code to call validate method in AX from .net dataset in Enterprise portal X++ :CALL AX METHOD FROM VISUAL STUDIO X++

Code to call validate method in AX from .net dataset in Enterprise portal X++

  #region Employee
        if (e.CurrentStepIndex == 2)//
        {          
            try
            {
                if (AxGridViewNameName4.Rows.Count > 0 && AxGridViewNameName4.EditIndex != -1)
                {
                    this.AxGridViewNameName4.UpdateRow(AxGridViewNameName4.EditIndex, true);
                }
                this.AxDataSource22.GetDataSourceView(this.AxGridViewNameName4.DataMember).DataSetView.AddNew();
                this.AxDataSource22.GetDataSourceView(this.AxGridViewName4.DataMember).DataSetView.Delete();

                if (AxGridViewName5.Rows.Count > 0 && AxGridViewName5.EditIndex != -1)
                {                  
                    this.AxGridViewName5.UpdateRow(AxGridViewName5.EditIndex, true);
                }
                this.AxDataSource22.GetDataSourceView(this.AxGridViewName5.DataMember).DataSetView.AddNew();
                this.AxDataSource22.GetDataSourceView(this.AxGridViewName5.DataMember).DataSetView.Delete();
               
            }
            catch (System.Exception ex)
            {
                AxExceptionCategory exceptionCategory;

                if (!AxControlExceptionHandler.TryHandleException(this, ex, out exceptionCategory))
                {
                    throw;
                }
            }
            //if (e. == null) check employee
            {
                Boolean fetchEMP;
                fetchEMP = (Boolean)this.AxDataSource22.GetDataSet().DataSetRun.AxaptaObjectAdapter.Call("validateEMP");
             

                if (fetchEMP == false)
                    e.Cancel = true;
            }
        }
       
        #endregion

Enterprise Portal DATASET LOOKUP CODE X++

Enterprise Portal DATASET LOOKUP X++

Query to create a dataset lookup in AX Enterrprise portal .

void dataSetLookup(SysDataSetLookup sysDataSetLookup)
{
    List                    _list;
    Query                   query = new Query();
    QueryBuildDataSource    queryBuildDataSource1, queryBuildDataSource2, queryBuildDataSource3 ;
    QueryBuildRange         queryBuildRange,queryBuildRange2,queryBuildRange3;
    DirpartyTable           dirpartyTable;
    ;

    _list = new List(Types::String);
    _list.addEnd(fieldstr(EmplTable, EmplId));
    _list.addEnd(fieldstr(EmplTable, EmplName));


    queryBuildDataSource1 = query.addDataSource(tablenum(EmplTable));
    queryBuildDataSource2 = queryBuildDataSource1.addDataSource(tablenum(Dimensions));
    queryBuildDataSource2.joinMode(JoinMode::InnerJoin);
    queryBuildDataSource2.addLink(fieldnum(EmplTable,EmplId),fieldnum(Dimensions,Num));


    queryBuildRange       = queryBuildDataSource2.addRange (fieldnum (Dimensions, DimensionCode));
    queryBuildRange.value(queryvalue(sysdimension::Purpose));

    sysDataSetLookup.parmLookupFields(_list);
    sysDataSetLookup.parmQuery(query);
}

Monday, April 18, 2016

HOW TO CREATE A DIALOG IN DYNAMICS AX : X++ CODE

CREATE A DIALOG IN AX : X++ CODE 


class CustDialog extends RunBase
{
DialogField fieldAccount;
DialogField fieldName;
DialogField fieldGroup;
DialogField fieldCurrency;
}

pack() and unpack(0 are used to retain the last used values.
public container pack()
{
return conNull();
}
public boolean unpack(container _packedClass)
{
return true;
}
protected Object dialog()
{

Dialog dialog;
DialogGroup groupCustomer;
DialogGroup groupPayment;
dialog = super();
dialog.caption("Customer information"); dialog.allowUpdateOnSelectCtrl(true);
fieldAccount = dialog.addField(
extendedTypeStr(CustAccount), "Customer account");
fieldName = dialog.addField(extendedTypeStr(CustName));
fieldName.enabled(false);
dialog.addTabPage("Details");
groupCustomer = dialog.addGroup("Setup");
fieldGroup = dialog.addField(
extendedTypeStr(CustGroupId)); fieldCurrency = dialog.addField(
extendedTypeStr(CurrencyCode)); fieldGroup.enabled(false);
fieldCurrency.enabled(false);
groupPayment = dialog.addGroup("Payment");
return dialog;
}

Below method is used to dynamically assign the different values of the cust table
public void dialogSelectCtrl()
{
CustTable custTable;
custTable = CustTable::find(fieldAccount.value()); fieldName.value(custTable.name()); fieldGroup.value(custTable.CustGroup); fieldCurrency.value(custTable.Currency);
}
public static void main(Args _args)
CustSelect custSelect = new CustSelect();
if (CustSelect.prompt()) {
CustSelect.run();
}
}

READ COMMA SEPARATED FILES : DYNAMIC AX CODE X++

READ COMMA SEPARATED FILES : DYNAMIC AX CODE X++
PUBLIC VOID READCOMMAFILE()
{
CommaTextIo         file;
container           line;
#define.filename(@'C:\\accounts.csv') #File
file = new CommaTextIo(#filename, #io_read);
if (!file || file.status() != IO_Status::Ok)
{
throw error("File cannot be opened.");
}
line = file.read();
while (file.status() == IO_Status::Ok)
{
info(con2Str(line, ' - '));
line = file.read();
                }


}

CREATE COMMA SEPARATED FILES : DYNAMICS AX X++ CODE

CREATE COMMA SEPARATED FILES : DYNAMICS AX X++ CODE
public void createcommafiles()
{
CommaTextIo         file;
container            line;
MainAccount           mainAccount;
#define.filename(@'C:\accounts.csv') #File
file = new CommaTextIo(#filename, #io_write);
if (!file || file.status() != IO_Status::Ok)
{
throw error("File cannot be opened.");
}
while select MainAccountId, Name from mainAccount
{
line = [
mainAccount.MainAccountId,
mainAccount.Name];
file.writeExp(line);
}
info(strFmt("File %1 created.", #filename));

}

CODE TO ADD A NOTE IN A DOCUMENT REFERENCE FOR A TABLE

CODE TO ADD A NOTE IN A DOCUMENT REFERENCE 
FOR A TABLE

static void TabledocuAdd(Args _args) {
DocuRef      docuRef;
VendTable vendTable;
vendTable = VendTable::find('123');
docuRef.RefCompanyId = vendTable.dataAreaId;
docuRef.RefTableId    = vendTable.TableId;
docuRef.RefRecId        = vendTable.RecId;
docuRef.TypeId        = 'Note';
docuRef.Name            = 'Imported';
docuRef.Notes         = 'This vendor was imported.';
docuRef.insert();

}
Related Posts Plugin for WordPress, Blogger...