Difference between revisions of "Autosuggestions"

From Lianjapedia
Jump to: navigation, search
(SQL Select Lists)
Line 147: Line 147:
  
 
<br clear=all>
 
<br clear=all>
 +
 +
===Web Client===
 +
[[{{ns:file}}:web_autosuggestions2.png|450px|thumb|left|link={{filepath:web_autosuggestions2.png}}|Autosuggestions in the Web Client]]
 +
 +
 +
 +
 +
 +
From Lianja v4.1, SQL Select based autosuggestions are also supported in the Web client provided that they are set in the data dictionary and the section has the [[Data_Attributes#Inherit_dictionary_rules|Inherit dictionary rules]] Attribute set to True.
 +
<br clear=all>
 +
 +
<pre>Autosuggestions: select distinct contacttitle,contactname from customers</pre>
 +
<pre>Autosuggestion headers: Title,Name</pre>
 +
 +
Note: 'Autosuggestion column to search' is not currently supported in the data dictionary and Web Client.
 +
 +
[[{{ns:file}}:web_autosuggestions1.png|450px|thumb|left|link={{filepath:web_autosuggestions1.png}}|Field attributes and Inherit dictionary rules]]
 +
 +
 +
 +
 +
Setting the [[Data_Attributes#Inherit_dictionary_rules|Inherit dictionary rules]] Section Attribute for the Grid Section to True causes the data dictionary settings to be applied to the Grid Column Attributes automatically.
 +
 +
Remember the database needs to be deployed after making any data dictionary changes, before these will be available in the desktop App Center or Web/Mobile client.
 +
<br clear=all>
 +
 +
<div style="height:100px;margin-bottom:5px;padding:5px;border:0px solid orange;border-left:5px solid orange;background:#fff8dc;vertical-align:middle;position:relative;">
 +
[[File:bm-noteicon.png|top|40px|link=]]<div style="position:absolute;top:3px;margin-bottom;bottom:5px;margin-left:50px;"><b> Inherit dictionary rules</b>
 +
With the Section [[Data_Attributes#Inherit_dictionary_rules|Inherit dictionary rules]] Attribute set to True, changes you make to Formitem Attributes in Form or Canvas Sections<br>
 +
(or Grid Column Attributes in a Grid Section) will be overwritten by their data dictionary equivalents,<br>
 +
if set, when the App is saved and reloaded.
 +
</div>
 +
<span style="height:6px;"> </span>
 +
</div>
  
 
==User Defined Function==
 
==User Defined Function==

Revision as of 06:51, 27 March 2018

See Also

Advanced Canvas Control Attributes, Choices, Data Attributes, Data Mapping, Field Attributes, Help Attributes, SQL SELECT, SQLVALUES(), Working with the Lianja Object Model

Overview

Autosuggestions provide filtered choices as the user types in a Form or Canvas Section field.

The choices are displayed in a dropdown under the control. Clicking on a choice loads its value into the field.

Autosuggestions can be:

  • Static list with or without a dropdown (autocomplete)
  • Dynamic table-based list
  • SQL Select based list
  • User defined function based list

Autosuggestions are defined by the following field attributes found in the Data sub-section of the attributes dialog:

Attribute Description
Autosuggestions The list of Autosuggestions values to display as the user types
Autosuggestion headers A comma separated list of column headers to display for the Autosuggestions
Autosuggestion column to search The column to search for Autosuggestions

Static Lists

Static lists are based on a comma-separated list of choices specified in the Autosuggestions attribute.

Autosuggestions: Buchanan,Callahan,Davolio,Dodsworth,Fuller,King,Leverling,Peacock,Suyama
Static list



With a standard static list, the dropdown is displayed as the user types, showing filtered values based on the input.

Typing 'd' displays all the values from the list starting with 'd' or 'D'.


Prefixing the list with '-' does not display the dropdown. Instead, it operates as an autocomplete.

Autosuggestions: -Buchanan,Callahan,Davolio,Dodsworth,Fuller,King,Leverling,Peacock,Suyama
Static list: autocomplete



Typing 'd' autocompletes with the first value in the list starting with 'd' or 'D'.


Dynamic List

A dynamic list is based on the evaluation of an expression from a specified table.

@<table-name>,<expression>

Here the list is based on the current values of the lastname field from the employees table.

Autosuggestions: @employees,lastname
Dynamic list



The dropdown displays filtered values from the table.


SQL Select Lists

SQL Select lists are generated by the resultset from a SQL Select statement.

Here the list is based on the current values of the lastname field from the employees table.

Autosuggestions: select lastname from employees
SQL Select



The dropdown displays filtered values from the resultset.


The SQL Select statement can reference more than one column.

Autosuggestions: select lastname, firstname from employees
Multi-column SQL Select



By default, the first column, lastname, is the search column.


Clicking on a choice will load the value of the search column into the field.


For multi-column SQL Select lists, the Autosuggestion headers attribute can be used to specify a comma separated list of column headers for the dropdown.

Autosuggestions: select lastname, firstname from employees
Autosuggestion headers: Surname,Firstname
Multi-column SQL Select with headers



The dropdown is displayed with column headers.


For multi-column SQL Select lists, the Autosuggestion column to search attribute can be used to specify the column to search.

Columns are numbered from 0. Here the lastname column is the search column.

Autosuggestions: select firstname, lastname from employees
Autosuggestion headers: Firstname,Surname
Autosuggestion column to search: 1
Multi-column SQL Select with headers and specified search column



The second column is the search column.


Clicking on a choice will load the value of the search column into the field.


Web Client

Autosuggestions in the Web Client



From Lianja v4.1, SQL Select based autosuggestions are also supported in the Web client provided that they are set in the data dictionary and the section has the Inherit dictionary rules Attribute set to True.

Autosuggestions: select distinct contacttitle,contactname from customers
Autosuggestion headers: Title,Name

Note: 'Autosuggestion column to search' is not currently supported in the data dictionary and Web Client.

Field attributes and Inherit dictionary rules



Setting the Inherit dictionary rules Section Attribute for the Grid Section to True causes the data dictionary settings to be applied to the Grid Column Attributes automatically.

Remember the database needs to be deployed after making any data dictionary changes, before these will be available in the desktop App Center or Web/Mobile client.

Bm-noteicon.png
Inherit dictionary rules

With the Section Inherit dictionary rules Attribute set to True, changes you make to Formitem Attributes in Form or Canvas Sections
(or Grid Column Attributes in a Grid Section) will be overwritten by their data dictionary equivalents,
if set, when the App is saved and reloaded.

User Defined Function

The Autosuggestions list can be based on the return value from a user defined function or procedure (Lianja/VFP scripting).

"{UserDefinedFunction()}"

The return value should be a comma-separated list. Here the list is based on the return value from the 'getempname' procedure defined in the App's custom library.

Autosuggestions: "{getempname()}"

As in the other examples, it returns the lastname field values from the employees table.

proc getempname()
	sqlvalues("select lastname from employees order by lastname")
	creturn = astring(_sqlvalues)
	return creturn
endproc
User defined function



The dropdown displays filtered values from the list returned by the procedure.



Notes on Client Support

Autosuggestions functionality is currently supported on the Desktop client only.

Attribute Notes
Autosuggestions Currently supported on the Desktop client only.
Autosuggestion headers Currently supported on the Desktop client only.
Autosuggestion column to search Currently supported on the Desktop client only.

Notes on Scripting Support