Friday 23 October 2015

UI Builder class overwrite Build method for group wise parameters

if you are using UI builder class then in contract class what ever you added parameters  group by
it will not show group by for that we need to overwrite build method with this things

we need to add

DialogGroup    groupDate, groupType, groupWarehouse;


Section group by Date
    groupDate = dialog.addGroup("@SYS80056");
    groupDate.columns(1);
    groupDate.caption("@SYS80056");



Example:


/// <summary>
/// to build the parameters
/// </summary>

public void build()
{
    DialogGroup    groupDate, groupType, groupWarehouse;
    Dialog         dialogLocal = this.dialog();

    MSMasteringRejectsContract = this.dataContractObject();

    //Section group by Date
    groupDate = dialog.addGroup("@SYS80056");
    groupDate.columns(1);
    groupDate.caption("@SYS80056");
    this.addDialogField(methodStr(MSMasteringRejectsContract,parmInventJournalType), MSMasteringRejectsContract);
    this.addDialogField(methodStr(MSMasteringRejectsContract,parmmprBaseItemType), MSMasteringRejectsContract);

    //Section group by Type
    groupType = dialog.addGroup("@PSA1497");
    groupType.columns(1);
    groupType.caption("@PSA1497");
    this.addDialogField(methodStr(MSMasteringRejectsContract,parmFromDate),MSMasteringRejectsContract);
    this.addDialogField(methodStr(MSMasteringRejectsContract,parmToDate),MSMasteringRejectsContract);

    //Section group by Warehouse
    groupWarehouse = dialog.addGroup("@SYS6437");
    groupWarehouse.columns(1);
    groupWarehouse.caption("@SYS6437");
    this.addDialogField(methodStr(MSMasteringRejectsContract,parminventLocationIdOutBound),MSMasteringRejectsContract);
    this.addDialogField(methodStr(MSMasteringRejectsContract,parminventLocationIdInBound),MSMasteringRejectsContract);

}

Sunday 18 October 2015

Multi selection records in form level

when we select multiple record in form it will select 
if not selected means it will take active record 

put button property set as multiple select is yes


void clicked()
{
    MSSpindleLabelView  MSSpindleLabelViewlocal;
    MSSpindleLabelViewlocal = MSSpindleLabelView_ds.getFirst(1);
    if (MSSpindleLabelViewlocal)
    {
    while (MSSpindleLabelViewlocal.InventTransTableRecId != 0)
    {
        info(strFmt("%1 ",MSSpindleLabelViewlocal.InventTransTableRecId));
        MSSpindleLabelViewlocal = MSSpindleLabelView_ds.getNext();
    }
    }
    else
    {
        while select MSSpindleLabelViewlocal where MSSpindleLabelViewlocal.InventTransTableRecId == MSSpindleLabelView.InventTransTableRecId
        {
            info(strFmt("%1 ",MSSpindleLabelViewlocal.InventTransTableRecId));
        }
    }

    super();
}



example:


void clicked()
{
    InventTrans  InventTranslocal;
    InventTranslocal = InventTrans_ds.getFirst(1);
    if (InventTranslocal)
    {
    while (InventTranslocal.RecId != 0)
    {
        InventTrans_ds.AutoTmpCreate(true, InventTranslocal, NoYes::Yes);
        InventTranslocal = InventTrans_ds.getNext();
    }
    }
    else
    {
        while select InventTranslocal where InventTranslocal.InventTransOrigin == InventTrans.InventTransOrigin
        {
            InventTrans_ds.AutoTmpCreate(true, InventTranslocal, NoYes::Yes);
        }
        InventTransOriginMovement_ds.research(true); // for refersh the datasource
    }

    super();

}



Wednesday 7 October 2015

create financial dimension combination:

create financial dimension combination:
job:



static void FindorcreatefinancialDimesion(Args _args)
{

    DimensionAttributeValue             dimCostcenterVal,dimDepartmentVal,dimCountryVal;
    DimensionAttribute                  dimAttrCostcenter,dimAttrDepartment, dimCountry;
    DimensionAttributeValueSetStorage   davss;
    boolean                             isValidDimension = true;
    DimensionDefault   DefaultDimension;


    davss = DimensionAttributeValueSetStorage::find(DefaultDimension);
    dimAttrCostcenter           =   DimensionAttribute::findByName('CostCenter');
    dimAttrDepartment           =   DimensionAttribute::findByName('Department');
    //dimCountry              =   DimensionAttribute::findByName('Country');

    dimCostcenterVal      =   DimensionAttributeValue::findByDimensionAttributeAndValueNoError(dimAttrCostcenter, "00000021", false , true);
    dimDepartmentVal      =   DimensionAttributeValue::findByDimensionAttributeAndValueNoError(dimAttrDepartment, "00000042" , false, true);
    //dimCountryVal         =   DimensionAttributeValue::findByDimensionAttributeAndValueNoError(dimCountry, _mSSalesTable.CountryRegionCode , false, true);



    if(dimCostcenterVal )
    {
        davss.addItem(dimCostcenterVal);
    }
    if (dimDepartmentVal)
    {
        davss.addItem(dimDepartmentVal);
    }
        //davss.addItem(dimCountryVal);
    if(dimCostcenterVal || dimDepartmentVal)
       {
           DefaultDimension =   davss.save();
           //return DefaultDimension;
           info(strFmt("%1",DefaultDimension));
       }
    //else
        // return "";

    //}

}




sales table:


/// <summary>
/// Set the financial dimension based on customer details
/// </summary>
/// <param name="_mSSalesTable">
/// _mSSalesTable
/// </param>
/// <returns>
/// defaultDimension
/// </returns>
/// <remarks>
/// SO order manangement
/// </remarks>
/// <exception cref="Exception::Error">
/// exception
/// </exception>
private static DimensionDefault setFinancialDimension(MSSalesTable _mSSalesTable, SalesTable salesTable)
{
    DimensionAttributeValue             dimAttrRegionVal,dimAtrrSubProgramVal,dimCountryVal;
    DimensionAttribute                  dimAttrRegion,dimAtrrSubProgram, dimCountry;
    DimensionAttributeValueSetStorage   davss;
    boolean                             isValidDimension = true;


    davss = DimensionAttributeValueSetStorage::find(salesTable.DefaultDimension);
    dimAttrRegion           =   DimensionAttribute::findByName('Region');
    dimAtrrSubProgram       =   DimensionAttribute::findByName('SubProgram');
    dimCountry              =   DimensionAttribute::findByName('Country');

    dimAttrRegionVal      =   DimensionAttributeValue::findByDimensionAttributeAndValueNoError(dimAttrRegion, _mSSalesTable.Region, false , true);
    dimAtrrSubProgramVal  =   DimensionAttributeValue::findByDimensionAttributeAndValueNoError(dimAtrrSubProgram, _mSSalesTable.SubRegion , false, true);
    dimCountryVal         =   DimensionAttributeValue::findByDimensionAttributeAndValueNoError(dimCountry, _mSSalesTable.CountryRegionCode , false, true);

    if (!dimAttrRegionVal)
    {
        isValidDimension = false;
        _mSSalesTable.Comments = strFmt("@MPR4954", _mSSalesTable.Region);
    }
    if (!dimAtrrSubProgramVal)
    {
        isValidDimension = false;
        _mSSalesTable.Comments =  _mSSalesTable.Comments + '\n' + strFmt("@MPR4955", _mSSalesTable.SubRegion);
    }

    if (!dimCountryVal)
    {
        isValidDimension = false;
        _mSSalesTable.Comments =  _mSSalesTable.Comments + '\n' + strFmt("@MPR4956", _mSSalesTable.CountryRegionCode);
    }
    if (!isValidDimension)
    {
        ttsBegin;
        _mSSalesTable.selectForUpdate(true);
        _mSSalesTable.update();
        ttsCommit;
        throw error("@MPR4959");
    }


    if(dimAttrRegionVal && dimAtrrSubProgramVal && dimCountryVal )
    {
        davss.addItem(dimAttrRegionVal);
        davss.addItem(dimAtrrSubProgramVal);
        davss.addItem(dimCountryVal);

        return  davss.save();
    }

    return 0;
}


my code in class:

/// <summary>
/// for getting dimension id 
/// </summary>
/// <param name="_dataRecord">
/// 2009 data record
/// </param>
/// <returns>
/// returns financial dimension
/// </returns>
/// <remarks>
/// added by v-irsha for get dimension id
/// </remarks>

public DimensionDefault findDefaultDimId(AxeDataRecord _dataRecord)
{

    DimensionAttributeValue             dimCostcenterVal,dimDepartmentVal;
    DimensionAttribute                  dimAttrCostcenter,dimAttrDepartment;
    DimensionAttributeValueSetStorage   davss;
    boolean                             isValidDimension = true;
    DimensionDefault                    DefaultDimension;


    davss = DimensionAttributeValueSetStorage::find(DefaultDimension);
    dimAttrCostcenter           =   DimensionAttribute::findByName('CostCenter');
    dimAttrDepartment           =   DimensionAttribute::findByName('Department');

    dimCostcenterVal      =   DimensionAttributeValue::findByDimensionAttributeAndValueNoError(dimAttrCostcenter, _dataRecord.value('Dimension2_'), false , true);
    dimDepartmentVal      =   DimensionAttributeValue::findByDimensionAttributeAndValueNoError(dimAttrDepartment, _dataRecord.value('Dimension') , false, true);



    if(dimCostcenterVal )
    {
        davss.addItem(dimCostcenterVal);
    }
    if (dimDepartmentVal)
    {
        davss.addItem(dimDepartmentVal);
    }
    
    if(dimCostcenterVal || dimDepartmentVal)
    {
        DefaultDimension =   davss.save();
        return DefaultDimension;
    }
    else
        return 0;

}








Tuesday 6 October 2015

Need to refresh the datasource from one form to another form:

Need to refresh the datasource from one form to another form:


We need to refresh the data from one form to another form

FormB is opening from formA if I did any changes in formB and close that formB then what ever the field exist in formB is same exist in FormA after changing without I clicked refresh(F5) in formA it needs to get refresh
So I write like below


I written formB close method as like

void close()
{
    FormDataSource   msProdCaller;
    ;
   
    super();

    if (element.args().caller().name() == formStr(FormA))
    {

        msProdCaller = element.args().record().dataSource();
        if (msProdCaller)
        msProdCaller.research();

    }


}