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 | |
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 | no | Where to get the values for a listbox. | ||
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 |
| no |
| How should the list of values be sorted: 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 |
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 | ||
---|---|---|
| ||
<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 | ||
---|---|---|
| ||
<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> |
...