Skip to main content

How to write lookup for selecting multiple options

Before Writing code we have to create string in form Right click on group and now go to string add

Name it diffrent or we can add lable later

create lookup method override

First set the ReplaceOnLookup property of the control to “NO”

Second set the control Autodeclartion property to “Yes”


[Control("String")]

    class FormStringControl1

    {

        /// <summary>

        ///

        /// </summary>

        public void lookup()

        {

            SysTableLookup sysTableLookup = SysTableLookup::newParameters(tablenum(Food), this);

            Query query = new Query();

            QueryBuildDataSource qbds;

            


            sysTableLookup.addLookupField(fieldnum(Food,FoodName  ), true);

            qbds = query.addDataSource(tablenum(Food));


            this.setSelection(strlen(this.text()),strlen(this.text()));

            FormStringControl1.text(FormStringControl1.valueStr() + ',');


            sysTableLookup.parmQuery(query);


            sysTableLookup.performFormLookup();

            super();


        }


        /// <summary>

        ///

        /// </summary>

        /// <returns></returns>

        public boolean modified()

        {

            boolean ret;

        

            ret = super();

            Box::info(strFmt("%1",FormStringControl1.text()));


            if(FormStringControl1.text() != '') //Check the combo box has value or not


            {


                SysQuery::findOrCreateRange( Food_ds.query().dataSourceTable( tableNum( Food )),


fieldNum( Food,FoodName  ) ).value( SysQuery::value( FormStringControl1.text() ) );


            }


            

            else


            {


                SysQuery::findOrCreateRange( Food_ds.query().dataSourceTable( tableNum( Food )),


fieldNum( Food,FoodName   ) ).value( SysQuery::valueUnlimited() );


            }


        

            Food_ds.executeQuery();

            return ret;

        }


    }


    [Control("String")]

    class FormStringControl2

    {

        /// <summary>

        ///

        /// </summary>

        public void textChange()

        {

            super();

            this.modified();

        }


        /// <summary>

        ///

        /// </summary>

        /// <returns></returns>

        public boolean modified()

        {

            boolean ret;

        

            ret = super();


            str nameFilter;


            nameFilter = '*'+this.text()+'*';

            Food_ds.filter(fieldnum(Food,FoodType  ),nameFilter);

        

            return ret;

        }


        /// <summary>

        ///

        /// </summary>

        public void enter()

        {

            super();


            this.setSelection(

                strlen(this.text()),

                strlen(this.text()));

        }


    }

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

Split Method in X++

Split method is used to split value of a Name or Number using a decimal or comma so that we can separate them and use in fields in report or in form   public static void main (Args args)     {         str _Value,beforeDec,afterDec;         int x;         str str1='Jake,Grey';         Names names;          List strlist=new List(Types::String);         ListIterator iterator;           strlist=strSplit(str1,',');         iterator = new ListIterator(strlist);         while(iterator.more())         {             x= x+1;             if(x==1)             {                 beforeDec =iterator.value();           ...