wcaval (Waine Custom Attribute-VAlue) es un componente complejo que proporciona tablas, formularios y widgets. El objeto de este paquete es dotar de campos configurables, definibles por el administrador, a las entidades que se desee en una aplicación. Estos campos permiten ciertas validaciones basadas en expresiones regulares y código javascript.
El paquete wcaval
ofrece las siguientes funcionalidades:
wcaval_RegExp
: Tipos y sus expresiones regulares.<Entity_type>_wcaval_attr
: Atributos definidos para los distintos tipos de entidades. Existirá una tabla de nombre Entity_type_wcaval_attr vinculada a las tablas que recogen los distintos tipos de entidades.<Entity>_wcaval_value
: Valores asociados a la entidad entity. Existirá una tabla de nombre Entity_wcaval_value vinculada a cada tabla que almacena entidades.<Entity>_wcaval_atval
: Vista que devuelve pares campo-valor para cada objeto. Existe una vista por cada tabla que almacena entidades con campos personalizados.<Entity>_wcaval_linear(pk integer, sep boolean, begs varchar, ends varchar, br varchar, er varchar, bas varchar, eas varchar, aq varchar, bvs varchar, evs varchar, vq varchar)
: funcion que lineariza las tuplas campo-valor de una entidad. Los parámetros necesarios para invocar a la función son:pk
: identificador del objeto cuyos campos se desean linearizarsep
: Indica si el último campo lleva o no finalizadorbegs
: cadena de inicioends
: cadena de finalizaciónbr
: cadena de inicio de filaer
: cadena de fin de filabas
: cadena de inicio de atributoeas
: cadena de fin de atributoaq
: comillas a emplear en el atributobvs
: cadena de inicio de valorevs
: vadena de fin de valorvq
: comillas a usar con el valorwcaval.form.value
para la validación de los valores de los campos introducidos:wcaval.Attr
wcaval.Value
<struct id="s_objtypes" type="relation"> <param name="form_split" value="rows=33%,*"/> <param ord="1" name="formid" value="fdescr.form.descr"/> <param ord="1" name="form_source" value="Entity_type"/> <param ord="1" name="form_type" value="form"/> <param ord="1" name="form_caption" value="Tipos de Objetos"/> <param ord="1" name="navigator_position" value="W"/> <param ord="1" name="navigator_fields" value="1"/> <param ord="1" name="button_data" value="1"/> <param ord="2" name="formid" value="wcaval.form.attr"/> <param ord="2" name="form_source" value="Entity_type_wcaval_attr"/> <param ord="2" name="form_type" value="table"/> <param ord="2" name="button_data" value="1"/> <param ord="2" name="source_filter_field" value="fk"/> </struct>
<struct id="s_objects" type="relation"> <param name="form_split" value="rows=33%,*"/> <param ord="1" name="formid" value="f_object"/> <param ord="1" name="form_type" value="form"/> <param ord="1" name="navigator_position" value="W"/> <param ord="1" name="navigator_fields" value="descr"/> <param ord="1" name="button_data" value="1"/> <param ord="2" name="formid" value="wcaval.form.value"/> <param ord="2" name="form_source" value="Entity_wcaval_value"/> <param ord="2" name="form_type" value="table"/> <param ord="2" name="form_theme" value="wcaval_0.1/buttons.cfg"/> <param ord="2" name="button_update" value="1"/> <param ord="2" name="source_filter_field" value="fk"/> </struct>
Entity_wcaval_linear
SELECT Entity_wcaval_linear(1,f,'<table>','</table>','<tr>','</tr>','<td><b>','</b></td>','','<td>','</td>',''); <table><tr><td><b>Brand</b></td><td>HP</td></tr><tr><td><b>Model</b></td><td>Pavilion 15-BC450</td></tr><tr><td><b>Price</b></td><td>645.23</td></tr><tr><td><b>CPU</b></td><td>Intel Core i5 8300H / 2.3 GHz</td></tr><tr><td><b>RAM size</b></td><td>8</td></tr><tr><td><b>RAM type</b></td><td>DDR4</td></tr><tr><td><b>Hard Disk</b></td><td>SDD</td></tr><tr><td><b>HD size</b></td><td>1024</td></tr></table>
SELECT Entity_wcaval_linear(1,f,'<fields>','</fields>','<field>','</field>','<attr>','</attr>','','<value>','</value>',''); <fields><field><attr>Brand</attr><value>HP</value></field><field><attr>Model</attr><value>Pavilion 15-BC450</value></field><field><attr>Price</attr><value>645.23</value></field><field><attr>CPU</attr><value>Intel Core i5 8300H / 2.3 GHz</value></field><field><attr>RAM size</attr><value>8</value></field><field><attr>RAM type</attr><value>DDR4</value></field><field><attr>Hard Disk</attr><value>SDD</value></field><field><attr>HD size</attr><value>1024</value></field></fields>
SELECT Entity_wcaval_linear(1,t,'','','','','',';','\'','',';','\''); 'Brand';'HP';'Model';'Pavilion 15-BC450';'Price';'645.23';'CPU';'Intel Core i5 8300H / 2.3 GHz';'RAM size';'8';'RAM type';'DDR4';'Hard Disk';'SDD';'HD size';'1024'
SELECT Entity_wcaval_linear(1,t,'{','}','','','',':','"','',',','"'); {"Brand":"HP","Model":"Pavilion 15-BC450","Price":"645.23","CPU":"Intel Core i5 8300H / 2.3 GHz","RAM size":"8","RAM type":"DDR4","Hard Disk":"SDD","HD size":"1024"}
SELECT Entity_wcaval_linear(1,f,'','','',E'\n','- ',': ','','','',''); - Brand: HP - Model: Pavilion 15-BC450 - Price: 645.23 - CPU: Intel Core i5 8300H / 2.3 GHz - RAM size: 8 - RAM type: DDR4 - Hard Disk: SDD - HD size: 1024