Skip to main content
Solved

Enable search in EE client form

  • October 24, 2022
  • 3 replies
  • 107 views

kavinduxo
Hero (Partner)
Forum|alt.badge.img+9

Can we enable the search button of a form according to inner table of it?

 

I need to enable the search and give the facility to search by upper table columns.

Best answer by kavinduxo

Happy to share that I manage to do this requirement. The steps below show the way  I achieve it.

  1. I added the same lu, view and package name for the frm window as i see in tbw window. 
  2. Then added the key columns and few columns(those i need to see in search) to main frm window from uppder tbw window.
  3. Override the vrtDataSourcePopulateIt method in frm window. 
public override SalBoolean vrtDataSourcePopulateIt(SalNumber nParam)
{
    if (Sys.wParam == Ifs.Fnd.ApplicationForms.Const.METHOD_Execute)
    {
        userWhere = this.i_lsUserWhere;
        orderBy = this.i_sUserOrderBy;
    }

    return base.vrtDataSourcePopulateIt(nParam);
}
  1. Override the vrtDataSourcePopulateIt in tbw window.
public override SalBoolean vrtDataSourcePopulateIt(SalNumber nParam)
{
    SalString lsUserWhere = "";
    SalString sOrderby = "";

    if (Sys.wParam == Ifs.Fnd.ApplicationForms.Const.METHOD_Execute)
    {
        if (this.i_lsUserWhere != "")//Sys.STRING_Null)
        {
            lsUserWhere = this.i_lsUserWhere + " AND " + ((frmCmodPartAdmin)this.GetParent()).userWhere;
        }
        else
        {
            lsUserWhere = ((frmCmodPartAdmin)this.GetParent()).userWhere;
        }
        this.i_lsUserWhere = lsUserWhere;

        if (this.i_sUserOrderBy != "")//Sys.STRING_Null)
        {
            sOrderby = this.i_sUserOrderBy;
        }
        else
        {
            sOrderby = ((frmCmodPartAdmin)this.GetParent()).orderBy;
        }
        this.i_sUserOrderBy = sOrderby;

    }
    #region Variables

    return base.vrtDataSourcePopulateIt(nParam);
    //return nRet;
    #endregion
}
  1. This will be enough if the form is a read-only window. If you need to enable save, remove and edit, add the following code on windows action of tbw window. See the code snippet below.
private void tbwCmodPartAdministration_WindowActions(object sender, WindowActionsEventArgs e)
{
    #region Actions
    switch (e.ActionType)
    {
        case Ifs.Fnd.ApplicationForms.Const.PM_DataRecordNew:
            Sal.SendClassMessage(Ifs.Fnd.ApplicationForms.Const.PM_DataRecordNew, Sys.wParam, Sys.lParam);
            if (Sys.wParam == Ifs.Fnd.ApplicationForms.Const.METHOD_Execute)
            {
                frmCmodPartAdmin.FromHandle(i_hWndParent)._DataSourceStateSetDirty(true, 1);
            }
            break;

    }
    #endregion
}

 

Thanks,

Kavindu

View original
Did this topic help you find an answer to your question?

3 replies

Forum|alt.badge.img+4
  • Sidekick (Customer)
  • 5 replies
  • October 24, 2022

Hi Kavin, 

 

Do you mean the below? 

 

You can Right Mouse Button in any form and select the search in context option this will open the search dialogue for the table.  

 

 

 

 


kavinduxo
Hero (Partner)
Forum|alt.badge.img+9
  • Author
  • Hero (Partner)
  • 41 replies
  • October 24, 2022

Hi @CODUGBHW ,

That’s an option I have already suggested. But customer wants to have the search button to work.

 

BR,

@kavinduxo 


kavinduxo
Hero (Partner)
Forum|alt.badge.img+9
  • Author
  • Hero (Partner)
  • 41 replies
  • Answer
  • October 28, 2022

Happy to share that I manage to do this requirement. The steps below show the way  I achieve it.

  1. I added the same lu, view and package name for the frm window as i see in tbw window. 
  2. Then added the key columns and few columns(those i need to see in search) to main frm window from uppder tbw window.
  3. Override the vrtDataSourcePopulateIt method in frm window. 
public override SalBoolean vrtDataSourcePopulateIt(SalNumber nParam)
{
    if (Sys.wParam == Ifs.Fnd.ApplicationForms.Const.METHOD_Execute)
    {
        userWhere = this.i_lsUserWhere;
        orderBy = this.i_sUserOrderBy;
    }

    return base.vrtDataSourcePopulateIt(nParam);
}
  1. Override the vrtDataSourcePopulateIt in tbw window.
public override SalBoolean vrtDataSourcePopulateIt(SalNumber nParam)
{
    SalString lsUserWhere = "";
    SalString sOrderby = "";

    if (Sys.wParam == Ifs.Fnd.ApplicationForms.Const.METHOD_Execute)
    {
        if (this.i_lsUserWhere != "")//Sys.STRING_Null)
        {
            lsUserWhere = this.i_lsUserWhere + " AND " + ((frmCmodPartAdmin)this.GetParent()).userWhere;
        }
        else
        {
            lsUserWhere = ((frmCmodPartAdmin)this.GetParent()).userWhere;
        }
        this.i_lsUserWhere = lsUserWhere;

        if (this.i_sUserOrderBy != "")//Sys.STRING_Null)
        {
            sOrderby = this.i_sUserOrderBy;
        }
        else
        {
            sOrderby = ((frmCmodPartAdmin)this.GetParent()).orderBy;
        }
        this.i_sUserOrderBy = sOrderby;

    }
    #region Variables

    return base.vrtDataSourcePopulateIt(nParam);
    //return nRet;
    #endregion
}
  1. This will be enough if the form is a read-only window. If you need to enable save, remove and edit, add the following code on windows action of tbw window. See the code snippet below.
private void tbwCmodPartAdministration_WindowActions(object sender, WindowActionsEventArgs e)
{
    #region Actions
    switch (e.ActionType)
    {
        case Ifs.Fnd.ApplicationForms.Const.PM_DataRecordNew:
            Sal.SendClassMessage(Ifs.Fnd.ApplicationForms.Const.PM_DataRecordNew, Sys.wParam, Sys.lParam);
            if (Sys.wParam == Ifs.Fnd.ApplicationForms.Const.METHOD_Execute)
            {
                frmCmodPartAdmin.FromHandle(i_hWndParent)._DataSourceStateSetDirty(true, 1);
            }
            break;

    }
    #endregion
}

 

Thanks,

Kavindu


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings