Custom Lookup Field

Custom Lookup Field

For a custom lookup style column FX_Currency_RecID (for example on the Sales Order form).

The field will be populated by clicking the lookup button and selecting from currencies on the existing FX_Currency table. The existing form under System Settings > Foreign Exchange > Currencies will be used to maintain the list of foreign currencies for the sales order form.

The end result will look like this on the sales order form:

To create the lookup column, complete the following steps:

  1. Create a new C# Plugin called Demo FX Lookup on sales order





  2. Select custom fields tab and select Sales order row under the Modules grid. In the fields grid, enter the Name as  FX_Currency_RecID and choose cell type of Lookup. Press Save.





  3.  Select the Code tab and double click on CustomFieldPlugin to expand the code block.  Paste the following code into the ButtonClicked event:

if(CustomField.PluginCustomField.Name == "FX_Currency_RecID") { JiwaFinancials.Jiwa.JiwaApplication.Entities.ForeignExchange.Currency currency = BusinessLogicHost.Manager.EntityFactory.CreateEntity<JiwaFinancials.Jiwa.JiwaApplication.Entities.ForeignExchange.Currency>(); currency.Search(FormObject.Form); CustomFieldValue.DisplayContents = currency.ShortName; CustomFieldValue.Contents = currency.RecID; }
If CustomField.PluginCustomField.Name = "FX_Currency_RecID" Then Dim currency As JiwaFinancials.Jiwa.JiwaApplication.Entities.ForeignExchange.Currency = BusinessLogicHost.Manager.EntityFactory.CreateEntity(Of JiwaFinancials.Jiwa.JiwaApplication.Entities.ForeignExchange.Currency)() currency.Search(FormObject.Form) CustomFieldValue.DisplayContents = currency.ShortName CustomFieldValue.Contents = currency.RecID End If

Note that after JiwaFinancials.Jiwa.JiwaApplication.Entities.<select any existing Jiwa entity>    it is possible to refer to other Jiwa entities instead of Foreign Exchange.  In this example we are using the ForeignExchange.Currency entity.


  1. Paste the following code into the ReadData event:

if(CustomField.PluginCustomField.Name == "FX_Currency_RecID") { if(string.IsNullOrWhiteSpace(CustomFieldValue.Contents) == false) { JiwaFinancials.Jiwa.JiwaApplication.Entities.ForeignExchange.Currency currency = BusinessLogicHost.Manager.EntityFactory.CreateEntity<JiwaFinancials.Jiwa.JiwaApplication.Entities.ForeignExchange.Currency>(); try { currency.ReadRecord(CustomFieldValue.Contents); CustomFieldValue.DisplayContents = currency.ShortName; } catch (System.Exception ex) { CustomFieldValue.DisplayContents = ""; } } else { CustomFieldValue.DisplayContents = ""; } }
If CustomField.PluginCustomField.Name = "FX_Currency_RecID" Then If String.IsNullOrWhiteSpace(CustomFieldValue.Contents) = False Then Dim currency As JiwaFinancials.Jiwa.JiwaApplication.Entities.ForeignExchange.Currency = BusinessLogicHost.Manager.EntityFactory.CreateEntity(Of JiwaFinancials.Jiwa.JiwaApplication.Entities.ForeignExchange.Currency)() Try currency.ReadRecord(CustomFieldValue.Contents) CustomFieldValue.DisplayContents = currency.ShortName Catch ex As System.Exception CustomFieldValue.DisplayContents = "" End Try Else CustomFieldValue.DisplayContents = "" End If End If

Note that the "FX_Currency_RecID" in the first line is the same as the custom column created in this plugin. 

  1. Press 

     and you should receive a success message

  2. Check the

    checkbox

  3. Save the plugin

  4. Exit Jiwa and re-open

  5. Test the plugin by creating a new sales order and selecting a currency in the Custom tab > This Sales Order tab > FX_Currency_RecID lookup