Search Like Sales order  Topic is solved

Discussions relating to plugin development, and the Jiwa API.

Re: Search Like Sales order

Postby nsbandara » Wed Jun 02, 2021 2:25 pm

Please find full example that enables multi select for warehouse transfer inventory search.

Code: Select all
using System;
using Microsoft.VisualBasic.CompilerServices;

#region "FormPlugin"
public class FormPlugin : System.MarshalByRefObject, JiwaFinancials.Jiwa.JiwaApplication.IJiwaFormPlugin
{

    public override object InitializeLifetimeService()
    {
        // returning null here will prevent the lease manager
        // from deleting the Object.
        return null;
    }

    public void SetupBeforeHandlers(JiwaFinancials.Jiwa.JiwaApplication.IJiwaForm JiwaForm, JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin Plugin)
    {
        if (JiwaForm is JiwaFinancials.Jiwa.JiwaWhouseTransferUI.frmWarehouseTransfer)
        {
            JiwaFinancials.Jiwa.JiwaWhouseTransferUI.frmWarehouseTransfer frmWarehouseTransfer = JiwaForm as JiwaFinancials.Jiwa.JiwaWhouseTransferUI.frmWarehouseTransfer;

            frmWarehouseTransfer.LinesJiwaGrid.ButtonClicked += LinesJiwaGrid_ButtonClicked;
        }
    }

    private void LinesJiwaGrid_ButtonClicked(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e)
    {
        JiwaFinancials.Jiwa.JiwaApplication.Controls.JiwaGrid linesGrid = sender as JiwaFinancials.Jiwa.JiwaApplication.Controls.JiwaGrid;

        JiwaFinancials.Jiwa.JiwaWhouseTransferUI.frmWarehouseTransfer frmWarehouseTransfer = linesGrid.FindForm() as JiwaFinancials.Jiwa.JiwaWhouseTransferUI.frmWarehouseTransfer;

        if (frmWarehouseTransfer.IsDisplaying == false)
        {
            string columnTag = Conversions.ToString(linesGrid.ActiveSheet.Columns[e.Column].Tag);
            if (Operators.CompareString(columnTag, "PartNoLookup", false) == 0)
            {
                try
                {
                    frmWarehouseTransfer.Manager.Search.Showing += Search_Showing;
                    string inventoryID = string.Empty;
                    string linePartNo = Conversions.ToString(linesGrid.get_GridText("PartNo", e.Row));
                    bool partsSelected = frmWarehouseTransfer.SearchInventory(ref inventoryID, ref linePartNo, null);
                    if (partsSelected)
                    {
                        int searchResultCount = frmWarehouseTransfer.Manager.Search.Results.Count;
                        for (int i = 1; i <= searchResultCount; i = checked(i + 1)) //iterate through results
                        {
                            inventoryID = Conversions.ToString(frmWarehouseTransfer.Manager.Search.Results[i].Fields[1].FieldValue);

                            frmWarehouseTransfer.WarehouseTransfer.Lines.AddLine(inventoryID, decimal.Zero);
                        }
                    }

                    throw new JiwaFinancials.Jiwa.JiwaApplication.Exceptions.ClientCancelledException();
                }
                finally
                {
                    frmWarehouseTransfer.Manager.Search.Showing -= Search_Showing;
                }
            }
        }
    }

    private void Search_Showing(object sender, EventArgs e)
    {
        JiwaFinancials.Jiwa.JiwaApplication.JiwaSearch.clsSearch clsSearch = sender as JiwaFinancials.Jiwa.JiwaApplication.JiwaSearch.clsSearch;
        if (clsSearch.CurrentSearchMode == JiwaFinancials.Jiwa.JiwaApplication.JiwaSearch.clsSearch.SearchModes.jswInventory)
        {
            clsSearch.UsePinBoard = true; //enable multi select
        }
    }

    public void Setup(JiwaFinancials.Jiwa.JiwaApplication.IJiwaForm JiwaForm, JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin Plugin)
    {
    }
}
#endregion
Attachments
Plugin Test Multi Select.xml
(27.61 KiB) Downloaded 28 times
User avatar
nsbandara
Occasional Contributor
Occasional Contributor
 
Posts: 43
Joined: Tue Jul 16, 2013 5:02 pm
Location: Sri Lanka
Topics Solved: 11

Re: Search Like Sales order

Postby SBarnes » Wed Jun 02, 2021 2:45 pm

You could also use a delegate and hand the form into the button clicked function rather than needing the find form call given you already have the form.
Regards
Stuart Barnes
SBarnes
Shihan
Shihan
 
Posts: 1619
Joined: Fri Aug 15, 2008 3:27 pm
Topics Solved: 175

Re: Search Like Sales order

Postby DannyC » Thu Jun 03, 2021 1:05 pm

That's awesome Nish. Thanks heaps.
User avatar
DannyC
Senpai
Senpai
 
Posts: 636
Joined: Fri Mar 22, 2013 12:23 pm
Topics Solved: 30

Previous

Return to Technical and or Programming

Who is online

Users browsing this forum: No registered users and 4 guests