Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

An attribute search allows the server to locate entities using SQL.

...

Name

Type

Required

Default

Description

id

string

yes


A unique identifier for the parameter. As of Weave 2.6.8 "name" can be used instead of "id"

label

string

yes


The prompt text displayed when user input the parameter value

column

string

no


The name of the column within the table that this parameter references, if this isn't provided then a where sub-tag must be added to this parameter to describe how the parameter should be included in the generated SQL.

displayname

string

no

label

Provides a user-friendly name for the element

helptext

string

no


Additional text to display for the parameter to explain how to use the parameter

hidden

boolean

no

false

Hides the parameter from the parameter UI

alignment

'left', 'center', 'right', 'auto'

no

'auto'

How the items should appear in the UI

controltype

'listbox', 'checkbox', 'radiobutton', 'textbox'

no

'textbox'

The suggested type of UI control to use when displaying the parameter

datatype

'any', 'boolean', 'datetime', 'decimal', 'float', 'integer', 'string'

no

'string'

The data type for the parameter

allownull

boolean

no

false

Whether a null value is allowed for this parameter

allowblank

boolean

no

true

Give the user the choice of an empty value in the listbox (as opposed to a null value)

allownewvalues

boolean

no

false

Allow the user to enter values not in the listbox already. Note that setting this to true will convert the list box into a combo box, also note that the default was true before 2.5.30.

defaultvalue

any

no


The default value of the parameter

displayformat

string

no


the formatting instructions for the parameter value within the parameter UI

dataset

ref urn:com.cohga.server.data.database#1.0:datadefinition

no

Where to get the values for a listbox.
Note the config will also accept “datadefinition” as the name for this attribute for backwards compatibility.

labelcolumn

string

no

Column label

The name of the parameter in the datadefinition specified by the dataset attribute that supplies the label of the value list entry to show the user.

valuecolumn

string

noColumn

value

The name of the parameter in the datadefinition specified by the dataset attribute that supplies the value of the value list entry to use in the SQL

sortcolumn

none, defined, label, value, default

no

label

How should the list of values be sorted:
none - Don’t perform any sorting
defined - As defined in the data definition
label - Based on the label
value - Based on the value
default - Use the default sorting (currently label)

Note this only applied when the control type is list box, and sorting is done in ascending order, if you require descending order you need to do it in the data definition and use defined as the sort column type

uppercase

boolean

no

false

Should the value be converted to upper case in the generated SQL

scalarparametertype

string

no

'simple'

'simple' or 'multi-value' to determine of more than one value can be selected from a list.

matchtype

string

no

'start'

'start', 'middle' or 'end' to determine if list filtering is performed by matching against the start of the list entry, the middle or the end of the label.

width

integer

no


Set the width of the field

pagesize

integer

no

10

Number of items to show on a list page, 0 disables paging

autoselect

boolean

no

true

Should the first value in a list be pre-selected

minvalue

any

no


The minimum value allowed for a field. Available from 2.5.28.

maxvalue

any

no


The maximum value allowed for a field. Available from 2.5.28.

minlength

integer

no


The minimum length allowed for a field. Available from 2.5.28.

maxlength

integer

no


The maximum length allowed for a field. Available from 2.5.28.

increment

integer

no


The increment to use for fields that support it, the units are dependant upon the field type. Available from 2.5.28 and currently only for time fields.

trueValue

any

no


The value that equates to "true" in the underlying table, only suitable for checkboxes

falseValue

any

no


The value that equates to "false" in the underlying table, only suitable for checkboxes

...

Code Block
languagexml
<data:datadefinition id="dd_roadtypes">
	<datasourcedataconnection datasource="datasource.main" table="ROADROADS" prefix="DISTINCT">
		<parameter type="string" name="roadname" column="ROADNAME"/>
		<parameter type="string" name="roadname_code" column="ROADNAME_CODE"/>
		<parameter type="string" name="roadtype" column="ROADTYPE"/>
		<parameter type="string" name="roadtype_code" column="ROADTYPE_CODE"/>
	</datasourcedataconnection>
</data:datadefinition>

<data:datadefinition id="dd_suburbs">
	<datasourcedataconnection datasource="datasource.main" table="SUBURBS" prefix="DISTINCT">
		<parameter name="label" column="PROPER(SUBURB)"/>
		<parameter name="value" column="SUBURB"/>
	</datasourcedataconnection>
</data:datadefinition>

<search:attribute id="property.address.entry">
	<entity>property</entity>
	<label>Address by Entry</label>
	<description>Locate a property or properties by their street address</description>
	<datasource>datasource.main</datasource>
	<table>PID_LINK</table>
	<key>PID</key>
	<from>
		<table>PROPERTY</table>
	</from>
	<where>
		<clause>LINK.ID=PROPERTY.ID</clause>
	</where>
	<parameter id="unit">
		<label>Unit</label>
		<column>UNIT</column>
	</parameter>
	<parameter id="house_from">
		<label>House From</label>
		<datatype>integer</datatype>
		<column>PROP_NO</column>
	</parameter>
	<parameter id="house_to">
		<label>House To</label>
		<datatype>integer</datatype>
		<column>PROP_NO</column>
	</parameter>
	<parameter id="suburb">
		<label>Suburb</label>
		<controltype>listbox</controltype>
		<allownull>true</allownull>
		<column>SUBURB</column>
		<datadefinition>dd<dataset>dd_suburbs</datadefinition>dataset>
	</parameter>
	<parameter id="road">
		<dataset>dd_roadtypes</dataset>
		<parameter id="roadname">
			<label>Road Name</label>
			<controltype>listbox</controltype>
			<column>ROADNAME_CODE</column>
			<valuecolumn>roadname_code</valuecolumn>
			<labelcolumn>roadname</labelcolumn>
		</parameter>
		<parameter id="roadtype">
			<label>Road Type</label>
			<controltype>listbox</controltype>
			<column>ROADTYPE_CODE</column>
			<valuecolumn>roadtype_code</valuecolumn>
			<labelcolumn>roadtype</labelcolumn>
		</parameter>
	</parameter>
	<parameter id="postcode">
		<label>Postcode</label>
		<datatype>integer</datatype>
		<where>
			<clause><![CDATA[POSTCODE=${postcode}]]></clause>
		</where>
	</parameter>
	<combination>
		<where>
			<clause><![CDATA[PROP_NO >= ${house_from} and PROP_NO <= ${house_to}]]></clause>
		</where>
	</combination>
	<cache>
		<maxElementsInMemory>50</maxElementsInMemory>
		<eternal>false</eternal>
		<timeToIdleSeconds>0</timeToIdleSeconds>
		<timeToLiveSeconds>300</timeToLiveSeconds>
		<overflowToDisk>true</overflowToDisk>
		<maxElementsOnDisk>2000</maxElementsOnDisk>
		<diskPersistent>false</diskPersistent>
		<diskExpiryThreadIntervalSeconds>120</diskExpiryThreadIntervalSeconds>
		<memoryStoreEvictionPolicy>LRU</memoryStoreEvictionPolicy>
	</cache>
	<options>
		<limit>2000</limit>
	</options>
</search:attribute>

...

The date being passed from the client to the server is in the following format yyyy-mm-ddThh:mi:ss.mmm (no spaces).  If you are overriding the where clause of a parameter you will need to convert the date string from the client into a SQL Server date.  To do this use the CONVERT function using style 126.  For more information see the following page 

https://msdn.microsoft.com/en-AU/library/ms187928.aspx

As an example here are two date parameters in a single search that override the where clause.

Code Block
languagexml
<parameter id="dp_appdatefrom" promptText="Application Date From:" dataType="date">
	<where>
		<clause><![CDATA[APPLICATION_DATE>=CONVERT(DATE,'$dp_appdatefrom$',126)]]></clause>
	</where>
</parameter>
<parameter id="dp_appdateto" promptText="Application Date To:" dataType="date">
	<where>
		<clause><![CDATA[APPLICATION_DATE<=CONVERT(DATE,'$dp_appdateto$',126)]]></clause>
	</where>
</parameter>

...