Skip to main content

Ui Builder Class

Below code is example for UI Builder Class 


 final class ReportGSTForSettlementPeriodReportUiBuilder  extends SrsReportDataContractUIBuilder


{

        DialogField                            EntityIdField;//SubProjIdField;

    TaxReportInclAdjustmentContractCopy               contract;

        //ProjTable                              projtable;

        TaxReportInclAdjustmentTmpCopy  taxReportInclAdjustmentTmpCopy;

        public void Postbuild()

        {

            super();

            //get reference to custAccount dialog field

        EntityIdField = this.bindInfo().getDialogField(this.dataContractObject(), methodStr(TaxReportInclAdjustmentContractCopy, parmEntityId));


            //override the lookup method

        EntityIdField.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(ReportGSTForSettlementPeriodReportUiBuilder, lookupEntityName), this);

        }


        //this method provies lookup for subproject parameter

        public void lookupEntityName(FormStringControl _formStringControl)

        {

            Query query = new Query();

            QueryBuildDataSource qbds;

            SysTableLookup       sysTableLookup;


        sysTableLookup = SysTableLookup::newParameters(tableNum(CompanyInfo), _formStringControl);

            

        qbds = query.addDataSource(tableNum(CompanyInfo));


        sysTablelookup.addLookupfield(fieldNum(CompanyInfo, DataArea)); //lookup for Entity Name

        sysTablelookup.addLookupfield(fieldNum(CompanyInfo, Name));   //lookup for Entity ID

        //sysTablelookup.addLookupfield(fieldNum(CompanyInfo, ));   // lookup for project type

            //sysTablelookup.addLookupfield(fieldNum(CompanyInfo,CustAccount));

            //sysTablelookup.addLookupfield(fieldNum(ProjTable,));


        qbds.addRange(fieldNum(CompanyInfo, DataArea ));//.value(strFmt('(%1 != "")',fieldStr(CompanyInfo, PartyNumber))); //this line is for adding range in sub project parameter to show only sub projects

            sysTableLookup.parmQuery(query);

            sysTableLookup.performFormLookup();

        }


}

Comments

Popular posts from this blog

Total Amount of Purchase Order in X++

Method 1:  public AmountCur totalAmount()        // PurchLine       purchLine;         AmountCur       amountCur = 0;         while select crosscompany purchLine             index hint PurchLineIdx             where purchLine.PurchId         == purchtables.PurchId               && !purchLine.IsDeleted         {            // amountCur += purchLine.calcLineAmountExclTax(purchLine.PurchQty );                             amountCur += purchLine.calcLineAmount(purchLine.PurchQty + purchLine.ConfirmedTaxAmount );                          }         return amo...

Change Company

change company helps to chnage the value of our field on the mark of the entity value  suppose you are overding a value in 3005 when you change to 1005 and click button the value changes in 1005 too   class LegalEntityRestriction_FYCDeleteExistingEntries     {         /// <summary>         ///         /// </summary>         /// <returns></returns>         public boolean modified()         {             boolean ret;                      //ret = super();             LedgerParameters ledgerparameter;                  ret = super();             if(LegalEntityRestriction_FYCDeleteExistingEntries.valueStr( ) == enum2Str(NoYes::Yes))   ...

Chain of Command

Chain of command is used to write extension of code for a standard Table or Form which we need to be overwrite and make changes according to ours   Chain of command can be used in the following objects 1.Classes 2.Tables 3.Forms 4.Data source on a form. 5.Data field on a form. 6.Control of a form. 7.Data entities Steps to Follow in COC Step1: Name of the chain of command class we create must end with the _Extension. Step2: The keyword ‘final’ must be used in the class definition line. Step3: The class needs to have the attribute        [ExtensionOf(classStr(<NameOfBaseObject>))]    The “ classStr ” text above will change depending on the type of base objecting you are extending. -> Below are the extensions used based on where we are using chain of commands.  -> When extending a class, use classStr(<NameofBaseClass>) -> When extending a table, use tableStr(<NameOfBaseTable>) -> In the case of a form, use formStr(...