Skip to main content
Jump to: navigation, search

Difference between revisions of "Scout/Concepts/LookupCall"

Line 7: Line 7:
 
== Description ==
 
== Description ==
  
LookupCalls can be used in smart fields, tree boxes and other Scout widgets. They compute the Smart association: to a key a {{ScoutLink|Concepts|LookupRow|lookup row}} is associated. This allows to provide more than a text to the key (The lookupRow also contains an Icon, Colors, a TooltipText...)
+
LookupCalls can be used in smart fields, tree boxes and other Scout widgets. They compute the Smart association: to a key a {{ScoutLink|Concepts|LookupRow|lookup row}}is associated. This enable to provide more than a text to the key (The lookupRow also contains an Icon, Colors, a TooltipText...)
  
This Shema explain the role of a LookupCall in a SmartField:
+
This schema explains the role of a LookupCall in a SmartField:  
  
 
[[Image:Schema LookupCall.png]]
 
[[Image:Schema LookupCall.png]]
Line 21: Line 21:
 
* <code>getDataByRec()</code>: This can only be used for hierarchical lookup calls. It retrieves all available sub-tree lookup rows for a given parent.  
 
* <code>getDataByRec()</code>: This can only be used for hierarchical lookup calls. It retrieves all available sub-tree lookup rows for a given parent.  
  
== Type of lookup calls ==
+
{{note|TODO|parameters are present to compute the set of rows: Object key, ... Master}}
  
 +
== Type of lookup calls ==
 
===With a Lookup Service===
 
===With a Lookup Service===
 
Delegation to the {{ScoutLink|Concepts|Lookup Service|Lookup Service}} on server side.
 
Delegation to the {{ScoutLink|Concepts|Lookup Service|Lookup Service}} on server side.
Line 43: Line 44:
 
* {{ScoutProp|MasterRequired}}: Defines whether a master value must be set in order to query for multiple lookup rows
 
* {{ScoutProp|MasterRequired}}: Defines whether a master value must be set in order to query for multiple lookup rows
  
== Code ==
+
== Code example ==
{{note|TODO|Code example: accessing a LookupRow by key direcly}}
+
=== Using a LookupCall in a SmartField ===
 +
{{note|TODO|Code example: getConfigured method and mention of execPrepareLookup(call)}}
 +
 
 +
=== Accessing a LookupRow directly ===
 +
It is possible to access a LookupRow direclty. In this example the input is a key (<code>thisKey</code>) and the method <code>getDataByKey()</code> is used.
 +
Before accessing the text, we ensure that a LookupRow has been retrived.
 +
 
 +
<source lang="java">
 +
//Execute the LookupCall (using DataByKey)
 +
LookupCall call = new MyLookupCall();
 +
call.setKey(thisKey);
 +
LookupRow[] rows=call.getDataByKey();
 +
   
 +
//Get the text (with a null check)
 +
String text = null;
 +
if(rows != null && rows.length > 0) {
 +
  text = rows[0].getText();
 +
}
 +
</source>
  
 
== See Also ==
 
== See Also ==
 
* {{ScoutLink|Concepts|LookupRow|Lookup Row}}
 
* {{ScoutLink|Concepts|LookupRow|Lookup Row}}
 
* {{ScoutLink|Concepts|Lookup Service|Lookup Service}}
 
* {{ScoutLink|Concepts|Lookup Service|Lookup Service}}
* {{ScoutLink|Concepts|Local Lookup Call|Local Lookup Calls}}
+
* {{ScoutLink|Concepts|LocalLookupCall|Local Lookup Calls}}
 
* {{ScoutLink|Concepts|Shared Plug-In|Shared Plug-In}}
 
* {{ScoutLink|Concepts|Shared Plug-In|Shared Plug-In}}

Revision as of 13:18, 30 December 2010


Scout
Wiki Home
Website
DownloadGit
Community
ForumsBlogTwitterG+
Bugzilla
Bugzilla


Lookup calls are used by smart fields and columns to look up single or multiple lookup rows.

  • Class: C obj.pngLookupCall

Description

LookupCalls can be used in smart fields, tree boxes and other Scout widgets. They compute the Smart association: to a key a lookup rowis associated. This enable to provide more than a text to the key (The lookupRow also contains an Icon, Colors, a TooltipText...)

This schema explains the role of a LookupCall in a SmartField:

Schema LookupCall.png

Input

Lookup calls provide different method to compute the set of LookupRows :

  • getDataByKey() Retrieve a single lookup row for a specific key value. Used by SmartFields and SmatColumns to get the display text for a given value.
  • getDataByText(): Retrieve multiple lookup rows which match a certain String. Used by SmartFields when the user start to enter some text in the Field.
  • getDataByAll(): Retrieves all available lookup rows. Used by SmartFields when the user clic on the browse icon.
  • getDataByRec(): This can only be used for hierarchical lookup calls. It retrieves all available sub-tree lookup rows for a given parent.
Note.png
TODO
parameters are present to compute the set of rows: Object key, ... Master


Type of lookup calls

With a Lookup Service

Delegation to the Lookup Service on server side.

They are not necessarily restricted to a fix number of records. Instead they should be favoured if the set of records is rather large.

Directy

Principe of the Local Lookup Calls

Note.png
TODO
Explain and mention the execCreateLookupRows method


An example of this approach is when a SmartField or a SmartColumn is configured to be use with a CodeType. A C obj.pngCodeLookupCall is instantiated for the CodeType. It creates the LookupRows corresponding to the codes in the CodeType.

Overview

LookupCall.png

Properties

Defined with getConfiguredXxxxxx() methods.

  • Service: Defines which service is used to retrieve lookup rows
  • MasterRequired: Defines whether a master value must be set in order to query for multiple lookup rows

Code example

Using a LookupCall in a SmartField

Note.png
TODO
Code example: getConfigured method and mention of execPrepareLookup(call)


Accessing a LookupRow directly

It is possible to access a LookupRow direclty. In this example the input is a key (thisKey) and the method getDataByKey() is used. Before accessing the text, we ensure that a LookupRow has been retrived.

//Execute the LookupCall (using DataByKey)
LookupCall call = new MyLookupCall();
call.setKey(thisKey);
LookupRow[] rows=call.getDataByKey();
 
//Get the text (with a null check)
String text = null;
if(rows != null && rows.length > 0) {
  text = rows[0].getText();
}

See Also

Back to the top