1 Overview
This is an optional brief description of the task list
Date | Module | Title | Description | Status | |
---|---|---|---|---|---|
06-11-2019 | SD | Ventas y distribución | This is a brief description of the task | Approved | |
This is an example with a status="Approved". |
|||||
06-11-2019 | SD | Ventas y distribución | This is a brief description of the task | Approved | |
This is an example with a status="Approved". |
|||||
06-11-2019 | SD | Ventas y distribución | This is a brief description of the task | Approved | |
This is an example with a status="Approved". |
DEPRECATED ITEM
Get the lowdown on the key pieces of Bootstrap's infrastructure, including our approach to better, faster, stronger web development.
Text styles:
bold
deleted
emphasized
inserted
italic
keybord
marked
product
sampleoutput
small
subscript
superscript
DITAA
Todo
FirstSecond
TEST
45
21/08/2024
FIRST LEVEL
1.1 HTML5 doctype
Bootstrap makes use of certain HTML elements and CSS properties that require the use of the HTML5 doctype. Include it at the beginning of all your projects.
<!DOCTYPE html> <html lang="en"> ... </html>
1.2 Graph
You can use graphs
1.3 Mobile first
With Bootstrap 2, we added optional mobile friendly styles for key aspects of the framework. With Bootstrap 3, we've rewritten the project to be mobile friendly from the start. Instead of adding on optional mobile styles, they're baked right into the core. In fact, Bootstrap is mobile first. Mobile first styles can be found throughout the entire library instead of in separate files.
To ensure proper rendering and touch zooming, add the viewport meta tag to your
<head>
.
<meta name="viewport" content="width=device-width, initial-scale=1">
You can disable zooming capabilities on mobile devices by adding
>user-scalable=no
to the viewport meta tag. This disables zooming, meaning users are only able to scroll, and results in your site feeling a bit more like a native application. Overall, we don't recommend this on every site, so use caution!
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
1.4 Typography and links
Bootstrap sets basic global display, typography, and link styles. Specifically, we:
- Set
background-color: #fff
; on thebody
- Use the @font-family-base, @font-size-base, and @line-height-base attributes as our typographic base
- Set the global link color via @link-color and apply link underlines only on :hover
These styles can be found within
scaffolding.less
.
1.5 Callouts
Callout samples
Using the compiled JavaScript
Both
bootstrap.js
and
bootstrap.min.js
contain all plugins in a single file. Include only one.
Using the compiled JavaScript
Both
bootstrap.js
and
bootstrap.min.js
contain all plugins in a single file. Include only one.
Using the compiled JavaScript
Both
bootstrap.js
and
bootstrap.min.js
contain all plugins in a single file. Include only one.
Using the compiled JavaScript
Both
bootstrap.js
and
bootstrap.min.js
contain all plugins in a single file. Include only one.
Using the compiled JavaScript
Both
bootstrap.js
and
bootstrap.min.js
contain all plugins in a single file. Include only one.
Using the compiled JavaScript
Both
bootstrap.js
and
bootstrap.min.js
contain all plugins in a single file. Include only one.
<callout title="Using the compiled JavaScript" type="default"> <p>Both <em>bootstrap.js</em> and <em>bootstrap.min.js</em> contain all plugins in a single file. Include only one.</p> </callout> <callout title="Using the compiled JavaScript" type="primary"> <p>Both <em>bootstrap.js</em> and <em>bootstrap.min.js</em> contain all plugins in a single file. Include only one.</p> </callout> ...
2 Grid sytem
Bootstrap includes a responsive, mobile first fluid grid system that appropriately scales up to 12 columns as the device or viewport size increases. It includes predefined classes for easy layout options, as well as powerful mixins for generating more semantic layouts.
2.1 Introduction
Grid systems are used for creating page layouts through a series of rows and columns that house your content. Here is how the Bootstrap grid system works:
- Rows must be placed within a
.container
(fixed-width) or.container-fluid
(full-width) for proper alignment and padding. - Use rows to create horizontal groups of columns.
2.2 Media queries
We use the following media queries in our Less files to create the key breakpoints in our grid system.
2.3 Grid options
See how aspects of the Bootstrap grid system work across multiple devices with a handy table.
Extra small devices Phones (<768px) | Small devices Tablets (?768px) | Medium devices Desktops (?992px) | Large devices Desktops (?1200px) | |
---|---|---|---|---|
Grid behavior | Horizontal at all times | Collapsed to start, horizontal above breakpoints | ||
Container width | None (auto) | 750px | 970px | 1170px |
Class prefix |
.col-xs-
|
.col-sm-
|
.col-md-
|
.col-lg-
|
# of columns | 12 | |||
Column width | Auto | ~62px | ~81px | ~97px |
Gutter width | 30px (15px on each side of a column) | |||
Nestable | Yes | |||
Offsets | Yes | |||
Column ordering | Yes |
3 Responsive utilities
For faster mobile-friendly development, use these utility classes for showing and hiding content by device via media query. Also included are utility classes for toggling content when printed.
Try to use these on a limited basis and avoid creating entirely different versions of the same site. Instead, use them to complement each device's presentation.
3.1 Available classes
Use a single or combination of the available classes for toggling content across viewport breakpoints.
Extra small devices Phones (<768px) | Small devices Tablets (?768px) | Medium devices Desktops (?992px) | Large devices Desktops (?1200px) | |
---|---|---|---|---|
.visible-xs-*
|
Visible | Hidden | Hidden | Hidden |
.visible-sm-*
|
Hidden | Visible | Hidden | Hidden |
.visible-md-*
|
Hidden | Hidden | Visible | Hidden |
.visible-lg-*
|
Hidden | Hidden | Hidden | Visible |
.hidden-xs
|
Hidden | Visible | Visible | Visible |
.hidden-sm
|
Visible | Hidden | Visible | Visible |
.hidden-md
|
Visible | Visible | Hidden | Visible |
.hidden-lg
|
Visible | Visible | Visible | Hidden |
As of v3.2.0, the
.visible-*-*
classes for each breakpoint come in three variations, one for each CSS
display
property value listed below.
4 Multiple levels
This is a level 1
4.1 Level 2
This is a level 2
4.1.1 Level 3
This is a level 3
Level 4
This is a level 4
5 Tables
Parameter | Value |
---|---|
PDQPRIORITY | 100 |
MAX_PDQPRIORITYY | 100 |
DS_TOTAL_MEMORYY | 90% of SHMVIRTSIZE |
DS_MAX_SCAN | Usually left as default value |
6 Images
6.1 Inline images
Inline images (for example, "Some
Text") can
be added to text with the following syntax:
<img align="inline" src="CrossIcon.png" />
6.2 Responsive images
Images in Bootstrap 3 can be made responsive-friendly via the addition of the .img-responsive class. This applies max-width: 100%;, height: auto; and display: block; to the image so that it scales nicely to the parent element.

6.3 Image shapes
To center images which use the .img-responsive class, use .center-block instead of .text-center. See the helper classes section for more details about .center-block usage.

6.4 Image lightbox
Lightbox for Bootstrap 3. Utilizes Bootstraps modal plugin to implement a lightbox gallery (http://ashleydw.github.io/lightbox/).



7 Videos
7.1 Simple video
Video in the body content: How to download videos from the internet.
7.2 Video in table
Example of how to show video inside a table.
Name | Video |
Downlaoding videos from YouTube |
8 Carousel
A sample carousel
9 Charts
10 SVG
11 Writing math formulas
We use
MathJax
to include mathematical formulas in Axional Docs documents.
LaTeX or
AsciiMath notation can be used,
and the mathematics will be processed using JavaScript to produce HTML for viewing in any modern browser.
For more information visit the reference document.
12 Buttons
For information on how to install and use Bootstrap for Sass, consult the GitHub repository readme. It's the most up to date source and includes information for use with Rails, Compass, and standard Sass projects.
Button defaultButton primary
Button success
Button info
Button warning
Bootstrap danger
13 Tabs
Tab1 content
Tab2 content
14 List groups
14.1 Basic List Groups
- First item
- Second item
- Third item
14.2 List Group With Badges
- First item
- Second item
- Third item
15 Boxes
Box 1
This is adefault
box
Box 2
This is asuccess
box
Box 3
This is adanger
box
16 Checkboxes
17 Treeview
-
TECH
- Company Maintenance
- Employees
- Reports
- Report1
- Report2
- Report3
- Employee Maint.
- Reports
- Human Resources
- XRP
- Company Maintenance
- Employees
- Reports
- Report1
- Report2
- Report3
- Employee Maint.
- Reports
- Human Resources
-
Test
- java
- util
- map
- HashMap
- HashSet
- locale
- map
- lang
18 Horizontal definition list
- User Agent
- An HTML user agent is any device that interprets HTML documents.
- Client-side Scripting
- Client-side scripting generally refers to the category of computer programs on the web that are executed client-side i.e. by the user's web browser.
- Document Tree
- The tree of elements encoded in the source document.
19 Example
This is a simple example
This is a code example with a result
This is the result text
20 Code Syntax
20.1 Using the 'code' tag
20.1.1 Example 1: HTML
...
<code lang="html"> <!DOCTYPE html> <![CDATA[ <html lang="en"> ... </html> ]] > </code>
Result:
<!DOCTYPE html> <html lang="en"> ... </html>
20.1.2 Example 2: CDATA example
- Edit docs and write the <code> tag
- Select the COMPONENTS top drop-down menu
- Select the CDATA embedded option. The system will include the following example text:
Start text <![CDATA[ Text in printed CDATA ]]> Final text
- Replace the start text, text in printed CDATA and the final text with the desired ones.
<call> <![CDATA[ <xsql-script name='bb_sii_f2_noidentificado'> <body> <foreach> <select prefix='m_'> <columns> essii_facturas.* </columns> <from table='essii_facturas'> <join table='cwsi_messages'> <on>essii_facturas.id_ws_request = cwsi_messages.id_ws_request</on> </join> </from> <where> essii_facturas.libro = 'FE' AND essii_facturas.erp_estado = 'E' AND essii_facturas.sii_estado = '3' <!-- los errores relacionados con el NIF son estos códigos --> AND essii_facturas.sii_errnum IN (1101, 1117, 4111) <!-- error haya dado hace mas de 4 dias --> AND DATE(essii_facturas.date_created) BETWEEN TODAY - 10 AND TODAY - 4 AND ABS(essii_facturas.importetotal) <= 400 </where> </select> <do> <!-- Revocar mensaje y modificar tipo factura --> <update table='essii_facturas'> <column name='erp_estado'>P</column> <!-- Pendiente de entrega --> <column name='sii_estado'><null/></column> <column name='sii_errnum'><null/></column> <column name='sii_errmsg'><null/></column> <column name='pro_errmsg'><null/></column> <column name='id_ws_request'><null/></column> <column name='tipocomunicacion' text='true'>(CASE WHEN sii_estado IN ('1', '2', '3') THEN (CASE WHEN tipocomunicacion = 'A5' THEN 'A6' ELSE tipocomunicacion END) ELSE tipocomunicacion END) </column> <column name='tipofactura'><string>F2</string></column> <column name='user_updated'><system.user.getCode/></column> <column name='date_updated'><date.current/></column> <where> essii_facturas.facidx = <m_facidx/> AND abs(essii_facturas.importetotal) <= 400 </where> </update> <update table='cwsi_messages'> <column name='status_message'><string>CA</string></column> <where> id_ws_request = <m_id_ws_request /> </where> </update> </do> </foreach> <delete table='cwsi_messages'> <where> status_message = 'CA' AND NOT EXISTS (SELECT a.id_ws_request FROM essii_facturas a WHERE a.id_ws_request = cwsi_messages.id_ws_request) AND NOT EXISTS (SELECT a.id_ws_request FROM cwsi_messages_single a WHERE a.id_ws_request = cwsi_messages.id_ws_request) AND NOT EXISTS (SELECT a.id_ws_request FROM essii_ageviaje a WHERE a.id_ws_request = cwsi_messages.id_ws_request) AND NOT EXISTS (SELECT a.id_ws_request FROM essii_bieninve a WHERE a.id_ws_request = cwsi_messages.id_ws_request) AND NOT EXISTS (SELECT a.id_ws_request FROM essii_cobmetal a WHERE a.id_ws_request = cwsi_messages.id_ws_request) AND NOT EXISTS (SELECT a.id_ws_request FROM essii_opesegur a WHERE a.id_ws_request = cwsi_messages.id_ws_request) AND NOT EXISTS (SELECT a.id_ws_request FROM essii_pagos a WHERE a.id_ws_request = cwsi_messages.id_ws_request) AND NOT EXISTS (SELECT a.id_ws_request FROM essii_pagos_sii a WHERE a.id_ws_request = cwsi_messages.id_ws_request) </where> </delete> </body> </xsql-script> ]]> </call>
20.1.3 Example 3: Other formats
HTML
<!DOCTYPE html> <html lang="en"> ... </html>
Java
import java.sql.*; public static void main(String[] args) { int a = 0; for (int idx = 0; idx < 100; idx++) a+= idx; }
XML
<data> <node id='10'> <section /> </node> </data>
Other lang types supported: "bsh", "c", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html", "java", "js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh", "xhtml", "xml", "xsl".
https://github.com/googlearchive/code-prettify
20.1.4 Example 4: Long fragments limited in height
Example of a long code fragment and a long result output, both limited in height:
<code height="100px" lang="html"> <!DOCTYPE html> <![CDATA[ <html lang="en"> ... content ... more content ... and more content ... and more content ... and more content ... and more content ... and more content ... and more content ... and more content ... and more content ... and more content ... and more content ... and more content ... and more content ... </html> ]] > </code>
<!DOCTYPE html>
<html lang="en">
...
content
...
more content
...
and more content
...
and more content
...
and more content
...
and more content
...
and more content
...
and more content
...
and more content
...
and more content
...
and more content
...
and more content
...
and more content
...
and more content
...
</html>
20.2 XSQL
20.2.1 Select (DML)
This tag allows queries on tables in the database. It consists of the following attributes and tags:
<select
first='first'
intotemp='intotemp'
log='y|yes'
oracle='ansi'
ansi='yes'
iwa-accelerate='on|off'
iwa-fallback='on|off'
>
<optimizer-directives /> *
<columns> !
<cols> +
</columns>
<from
table='table'
alias='alias'
/> !
<join
table='table'
type='left'
alias='alias'
if-has-security-role='true'
> ?
<on> +
<join_tables_condition> +
</on>
</join>
<where> ?
<condition> !
</where>
<group> ?
<groupby> !
</group>
<having> ?
<having> !
</having>
<order> ?
<orderby> !
</order>
<orderofobject /> ?
</select>
Attributes | |||||
---|---|---|---|---|---|
Name | Type | Required | Default | Description | |
Afirst | integer | indica que información. | |||
Aintotemp | string | Si el resultado de la seleccion se desea enviar a una tabla temporal, se puede indicar en este atributo el nombre deseado para la tabla. | |||
Alog | string | Si esta informado el atributo intotemp que por defecto las tablas temporales se crean sin log ('''WITH NO LOG'''), en caso de que la tabla requiere log se informa este atributo. | |||
Aoracle | string | Se puede indicar si se desea que para Oracle se genere la sintaxis en formato Ansi en vez de en gramatica de Oracle. Se utiliza cuando en gramatica Oracle en un SELECT existe una tabla en un LEFT JOIN que a su vez esta enlazada con otra tabla del FROM, esta circunstancia no esta permita en Oracle con su gramatica. | |||
Aansi | string | Se puede indicar si se desea que se genere la sintaxis en formato Ansi. | |||
Aiwa-accelerate | string | on para indicar que esta sentencia y las siguientes de la sesion se intenten ejecutar en el acelerador IWA. off para desactivar el intento de aceleracion mediante IWA. | |||
Aiwa-fallback | string | off indica que la sentencia select debe ejecutarse obligatoriamente en un acelerador IWA y para ello el parametro iwa-accelerate debe tener el valor on. Si la sentencia no puede acelerarse se devuelve un error. Con este modo, solo se intenta acelerar la sentencia activa, desactivandose la aceleracion para el resto de sentencias siguientes. |
Arguments | |||||
---|---|---|---|---|---|
Name | Type | Required | Unique | Nullable | Description |
Eoptimizer-directives | Permite indicar directivas de optimizacion segun el motor de base de datos. Consulta el apartado Directivas de optimizacion. | ||||
Ecolumns | Lista de las columnas a seleccionar separadas por coma. | ||||
Vcols | string | ||||
Efrom | indica cual es la tabla principal del SELECT. | ||||
Atable | string | Nombre de la tabla. | |||
Aalias | string | Alias de la tabla. | |||
Ejoin | Especifica las tablas relacionados con el join. | ||||
Atable | string | Nombre de la tabla. | |||
Atype | string | Indica el tipo de enlace. Este puede ser, un enlace normal o un enlace tipo LEFT JOIN, si no se indica nada, por defecto el enlace es de tipo INNER JOIN, asi que este atributo solo sera necesario para indicar que el enlace es de tipo LEFT JOIN (OUTER en Informix, LEFT JOIN en DB2, (+) en Oracle).. | |||
Aalias | string | Alias de la tabla. | |||
Aif-has-security-role | boolean | Indica que este join solo se realiza en caso de que para el usuario hay establecida una restriccion SQL sobre la base datos en la cual se ejecuta.Si se utiliza en un programa XSQL-Script es necesario que el select tenga el atributo secure='true' o de lo contrario siempre se realiza el join. | |||
Eon | |||||
Vjoin_tables_condition | string | ||||
Ewhere | Indicar condiciones que no sean de enlace entre tablas. | ||||
Vcondition | string | ||||
Egroup | |||||
Vgroupby | string | ||||
Ehaving | |||||
Vhaving | string | ||||
Eorder | |||||
Vorderby | string | ||||
Eorderofobject | Es util en sqltables para indicar que el orden de los registros es igual al establecido para la select principal del objeto. |
XML
<select> <columns> gcom_presupm.codnac, gcom_presupm.delega, gcom_presupm.tercer, gcom_presupm.codfam </columns> <from table='gcom_presupt'> <join table='gcom_presupm'> <on>gcom_presupt.codigo = gcom_presupm.tippre</on> </join> </from> <where> gcom_presupm.preid = <p_preid /> AND gcom_presupm.numrev <= <p_numrev /> </where> </select>
20.2.2 Procedure/Function (SPL)
<procedure/function name='name'>
<test id='id' /> *
<args> *
<arg
name='name'
like='like'
type='smallint|int|integer|float|smallfloat|decimal|char|varchar|date|datetime|interval'
size='size'
mode='in|out'
dict='dict'
/> +
</args>
<returns
type='smallint|int|integer|float|smallfloat|decimal|char|varchar|date|datetime|interval'
size='size'
like='like'
dict='dict'
/> *
<define> *
<variable
name='name'
like='like'
type='smallint|int|integer|float|smallfloat|decimal|char|varchar|date|datetime|interval'
size='size'
dict='dict'
/> +
</define>
<body> *
<insert /> *
<delete /> *
<update /> *
<select /> *
<set name='name' /> *
<if> *
<expr> !
<cond> !
</expr>
<then> !
<instructions> !
<set> !
<debug> ?
<exception> ?
</then>
<else-if> *
<expr> !
<cond> !
</expr>
<then> !
<instructions> !
<set> !
<debug> ?
<exception> ?
</then>
</else-if>
<else> ?
<instructions> !
</else>
</if>
<while> *
<expr> !
<cond> !
</expr>
<do> !
<instructions> !
<while.exit /> *
</do>
</while>
<for name='name'> *
<var-in /> !
<do> !
<instructions> !
</do>
</for>
<foreach> *
<select> !
<into /> *
<columns /> *
</select>
<if> !
<expr> !
<cond> !
</expr>
<then> !
<instructions> !
<set> !
<exit> ?
</then>
</if>
</foreach>
<set name='name'> *
<function /> +
</set>
<execute-procedure name='name'> *
<in> *
<param /> *
</in>
<out> *
<var name='name' /> *
</out>
</execute-procedure>
<lock
table='table'
mode='mode'
/> *
<unlock table='table' /> *
<return var='var' /> *
</body>
</procedure/function>
Attributes | |||||
---|---|---|---|---|---|
Name | Type | Required | Default | Description | |
Aname | String | Nombre del procedure o de la funcion |
Arguments | |||||
---|---|---|---|---|---|
Name | Type | Required | Unique | Nullable | Description |
Etest | Unidad de prueba. | ||||
Aid | String | Identificador de la unidad de prueba. | |||
Eargs | Argumentos a pasar al udp. | ||||
Earg | |||||
Aname | String | Nombre del parametro de entrada. | |||
Alike | String | Permite obtener el tipo de dato de una columna ya existente. | |||
Atype | String | Posibles tipos de variables del argumento. | |||
Asize | String | Debe contener el tamano del parametro (si el tipo de dato lo requiere) | |||
Amode | String | Aplicable solo en XUDP. Permite indicar si el parametro es de entrada o salida. Un parametro de salida puede ser modificado en el procedimiento y la modificacion sera efectiva tambien desde donde fue invocada la procedure. | |||
Adict | String | Solo es necesario cuando hay que obtener el tipo de dato indicado en el atributo like antes de la compilacion de la funcion. | |||
Ereturns | Aplicable solo en XUDF. Tipo de dato del valor retornado | ||||
Atype | String | Posibles tipos de variables del argumento. | |||
Asize | String | Debe contener el tamano del parametro (si el tipo de dato lo requiere) | |||
Alike | String | Permite obtener el tipo de dato de una columna ya existente. | |||
Adict | String | Solo es necesario cuando hay que obtener el tipo de dato indicado en el atributo like antes de la compilacion de la funcion. | |||
Edefine | Contiene la definicion de las variables. | ||||
Evariable | |||||
Aname | String | Permite especificar el nombre de la variable | |||
Alike | String | Permite obtener el tipo de dato de una columna ya existente. | |||
Atype | String | Posibles tipos de variables del argumento. | |||
Asize | String | Debe contener el tamano del parametro (si el tipo de dato lo requiere) | |||
Adict | String | Solo es necesario cuando hay que obtener el tipo de dato indicado en el atributo like antes de la compilacion de la funcion. | |||
Ebody |
Esta etiqueta indica el inicio de la funcion o procedimiento:
|
||||
Einsert | Permite hacer inserciones de datos. | ||||
Edelete | Permite eliminar registros. | ||||
Eupdate | Permite hacer modificaciones de datos. | ||||
Eselect | Este tag permite la inclusion de consultas SQL. A diferencia de la gramatica XSQL-SELECT, en la que cada clausula de la consulta se corresponde con una etiqueta (<from>, <join>,<where> etc.), en XSQL-UDP unicamente se indica el inicio y fin de la sentencia. | ||||
Eset | Permite hacer asignaciones de variables. | ||||
Aname | String | Permite especificar el nombre de la variable en la que se desea asignar. | |||
Eif | Sentencia condicional. | ||||
Eexpr | La expresion de la sentencia condicional debe estar compuesta por operandos y operadores. Los operandos pueden consistir en variables o parametros. Suele ser habitual, necesitar utilizar como condicion de un if, una comparacion entre el resultado de una consulta y cierto valor. En WebStudio XSQL-UDF-UDP, se debe realizar la consulta antes de la sentencia condicional, asignando el resultado de la misma a una variable. | ||||
Vcond | boolean | ||||
Ethen | En esta etiqueta se incluye el grupo de sentencias a ejecutar en caso que se cumpla la condicion (tag expr). | ||||
Vinstructions | code | ||||
Vset | Ver tag <set> del tag <body> | ||||
Vdebug | Permite ver el contenido de una variable, las variables generadas por un select, el resultado de un calculo, etc. | ||||
Vexception | Si se cumple la condicion del bloque < if>, se lanza la excepcion. | ||||
Eelse-if | |||||
Eexpr | |||||
Vcond | boolean | ||||
Ethen | |||||
Vinstructions | code | ||||
Vset | Ver tag <set> del tag <body> | ||||
Vdebug | Permite ver el contenido de una variable, las variables generadas por un select, el resultado de un calculo, etc. | ||||
Vexception | Si se cumple la condicion del bloque < else-if>, se lanza la excepcion. | ||||
Eelse | |||||
Vinstructions | code | ||||
Ewhile | Sentencia iterativa. | ||||
Eexpr | Ver tag <expr> del tag <if> | ||||
Vcond | boolean | ||||
Edo | |||||
Vinstructions | code | ||||
Ewhile.exit | Este tag es opcional, se utiliza generalmente bajo alguna condicion, y provoca la salida de la sentencia iterativa (salida del bucle) y se retoma la ejecucion por la sentencia que sigue al tag while. | ||||
Efor | Sentencia iterativa. | ||||
Aname | string | Nombre de la variable de iteracion. | |||
Evar-in | Valor inicial, final y salto para la variable de iteracion. Ejemplo (1 TO 10 STEP 1). | ||||
Edo | |||||
Vinstructions | code | ||||
Eforeach | Implementacion de cursores. Debe contener la consulta cuyo resultado se va a recorrer. | ||||
Eselect | Ver tag <select> del tag <body> | ||||
Einto | Si se desea asignar el resultado de una consulta en una o varias variables se debe utilizar el elemento into. | ||||
Ecolumns | Exclusivamente en consultas de cursores | ||||
Eif | Ver tag <if> del tag <body> | ||||
Eexpr | Ver tag <expr> del tag <if> | ||||
Vcond | boolean | ||||
Ethen | Ver tag <then> del tag <if> | ||||
Vinstructions | code | ||||
Vset | Ver tag <set> del tag <body> | ||||
Vexit | Permite abandonar el cursor cuando se cumple dicha condicion. | ||||
Eset | Para invocar funciones (que devuelven un valor) se puede utilizar el elemento de asignacion de variables set. | ||||
Aname | Nombre de la variable que recibe el valor de la funcion. | ||||
Efunction | Nombre de la funcion a la que llamamos y entre () los atributos que esta necesita. | ||||
Eexecute-procedure | Ejecutar procedimiento | ||||
Aname | Permite especificar el nombre del procedimiento que se desea ejecutar. | ||||
Ein | Con este elemento se especifican los parametros de entrada del procedure. | ||||
Eparam | Deben haber tantas etiquetas param como parametros o valores de entrada. | ||||
Eout | Parametros de salida | ||||
Evar | Nombre del parametro de salida | ||||
Aname | Nombre del parametro de salida. | ||||
Elock | Bloquear tabla | ||||
Atable | Nombre de la tabla que se necesita bloquear. | ||||
Amode |
|
||||
Eunlock | Desbloquear tabla | ||||
Atable | Nombre de la tabla a desbloquear. | ||||
Ereturn | Aplicable solo a XUDF. Valor a retornar | ||||
Avar | Valor devuelto por la funcion. El tipo de dato del valor o variable debe coincidir con el tipo de retorno declarado en la cabecera. |
XML
<procedure name='cgcogesl_chk_codcli'> <args> <arg name='p_rowenl' like='cgcogesl.rowenl' mode='in' /> <arg name='p_numero' like='cefectos.numero' mode='in' /> </args> <define> <variable name='m_empcode' like='cgcogesh.empcode' /> <variable name='m_codges' like='cgcogesh.codges' /> <variable name='m_codcli' like='cgcogesh.codcli' /> <variable name='m_fecpro' like='cgcogesh.fecpro' /> <variable name='m_estges' like='cgcogesh.estges' /> <variable name='m_count' type='integer' /> </define> <body> <set name='m_count'>-1</set> <include name='before' /> <if> <expr>m_count = -1</expr> <then> <select> <columns> COUNT(*) </columns> <into>m_count</into> FROM cgcogesh, cefectos WHERE cgcogesh.apteid = p_rowenl AND cefectos.numero = p_numero AND cgcogesh.empcode = cefectos.empcode AND cgcogesh.codcli = cefectos.tercer </select> </then> </if> <include name='after' /> <if> <expr>m_count = 0</expr> <then> <exception> 'cgcogesl_chk_codcli: Usuarios [' || <char>p_rowenl</char> || '/' || <char>p_numero</char> || '] Error cliente !' </exception> </then> </if> </body> </procedure>
XML
<function name='cempresa_get_placon'> <test> <unit id='1'> SELECT MIN(cempresa.empcode) FROM cempresa; </unit> </test> <args> <arg name='p_empcode' like='cempresa.empcode' /> </args> <returns like='cempresa.placon' /> <define> <variable name='cempresa_placon' like='cempresa.placon' /> </define> <body> <if> <expr>p_empcode IS NULL</expr> <then> <exception>'cempresa_get_placon: Codigo de sociedad no informado !'</exception> </then> </if> <select>cempresa.placon <into>cempresa_placon</into> FROM cempresa WHERE cempresa.empcode = p_empcode </select> <if> <expr>cempresa_placon IS NULL</expr> <then> <exception>'cempresa_get_placon: [' || p_empcode || '] Plan de cuentas no encontrada en [cempresa] !'</exception> </then> </if> <return>cempresa_placon</return> </body> </function>
20.2.3 array.toVector
Retorna un Vector (java.util.Vector) a partir del array de objetos (java.util.ArrayList) original. Su función principal dentro del lenguaje xsql es facilitar la construcción de solicitudes SOAP en las que se requieran enviar como parámetro a una función un Vector de datos. En general, por su naturaleza, los script xsql no requeriran el uso de esta función fuera de este ámbito.
<array.toVector name='name'>
<array> ?
</array.toVector>
Attributes | |||||
---|---|---|---|---|---|
Name | Type | Required | Default | Description | |
Aname | string | Nombre de la variable de tipo array |
Arguments | |||||
---|---|---|---|---|---|
Name | Type | Required | Unique | Nullable | Description |
Varray | array | El objeto array se puede referenciar por nombre mediante el atributo name o bien se puede pasar como un argumento de la función. |
Returns | |
---|---|
Type | Description |
vector | Retorna un Vector del array origen. |
Generación de un vector de enteros.
<xsql-script name='test_arrayToVector'> <body> <array.toVector> <array> <number type='integer'>10</number> <number type='integer'>20</number> <number type='integer'>30</number> </array> </array.toVector> </body> </xsql-script>
20.2.4 geo.fromText (XSQL-Script tag)
Retorna la geometria especficada a partir de la representacion WKT (Well-Known Text).
<geo.fromText>
<type> *
<type> *
</type>
<coords> *
<coords> *
</coords>
<srid> *
<coords> *
</srid>
</geo.fromText>
Arguments | |||||
---|---|---|---|---|---|
Name | Type | Required | Unique | Nullable | Description |
Etype | Tipo de Geometria. Tipos de objeto POINT, LINESTRING, POLYGON... | ||||
Vtype | string | ||||
Ecoords | Coordenadas de la geometria, separadas por "," | ||||
Vcoords | string | ||||
Esrid | SRID de la geometra | ||||
Vcoords | integer |
XML
<select> <columns> <geo.fromText type='LINESTRING'> <coords>1313 242, 0 0</coords> <srid>4326</srid> </geo.fromText>, <geo.fromText type='POINT'> <coords>1 4</coords> <srid>4326</srid> </geo.fromText>, </columns> <from table='cdataemp' /> </select>
20.3 Functions
20.3.1 Javascript
1. getLabelMessage
string getLabelMessage(boolean code = false , string defmsg , string param1, param2, ... , paramN);
El contenido de la etiqueta puede contener referencias dinamicas, mediante la sintaxis {i}. Donde las referencias {0}, {1}, ..., {n} serán reemplazadas por los respectivos parametros que reciba la funcion, a partir del tercer parametro.
Obtiene una etiqueta definida en los diccionarios de la base de datos actual para el idioma del usuario. En caso de no encontrar la etiquieta devuelve el texto por defecto. Si no se define ningun texto por defecto devuelve codigo_de_idioma.codigo_etiqueta; por ejemplo: EN.LBL_NAME
De esta forma, un mensaje del tipo: "The value must be defined between {0} and {1}". Ante una llamada a la funcion como la siguiente: getLabelMessage("LBL_RANG", "Default message...", 1, 8); Devolvera: "The value must be defined between 1 and 8".
Parameters | |||
---|---|---|---|
Name | Type | Required | Description |
code | boolean | Codigo de la etiqueta | |
defmsg | string | Mensaje por defecto a devolver en caso de no encontrar la etiqueta para el idioma del usuario | |
param1, param2, ... , paramN | string | Argumentos para ser reemplazados en el mensaje si se utilizan referencias del tipo {0}, {1}, ..., {N} |
Javascript
getLabelMessage('JS_OVERLAP_TARIFF',''Text');
2. setFieldExistValues
setFieldExistValues(string fieldName, string objdest, string coldest, string qrycond , boolean noCache = false);
Modifica las referencias de integridad de un campo. Generalmente, las referencias de integridad estan definidas, o bien por la existencia de una foreign key (Hard Reference), o bien se definen mediante el mantenimiento de relaciones de integridad wic_jdic_collist (Soft References). Esta funcion, permite definir relaciones dinamicas (Dynamic References), gestionadas va programa. consulta, define los posibles valores que puede adoptar el campo actual. El objeto aqui indicado debera estar definido en alguno de los diccionarios de la base de datos actual.
Parameters | |||
---|---|---|---|
Name | Type | Required | Description |
fieldName | string | Nombre del campo. | |
objdest | string | Objeto destino de la referencia. | |
coldest | string | Nombre de la columna que contiene los posibles valores que podra adoptar el campo. | |
qrycond | string | Condicion SQL que, junto con la clausula SQL del objeto destino, delimita el numero registros validos. | |
noCache | boolean | cada consulta se ejecuta en la base de datos. -false la consulta SQL se ejecuta en cache. |
Javascript
setFieldExistValues(field.name, "gdelegac", "codigo", (getFieldValue("gvenpedh.empcode") != "" ? "gdelegac.empcode = '" + getFieldValue("gvenpedh.empcode") + "' AND gdelegac.estado != 'B'" : "gdelegac.estado != 'B'") );
3. sqltableAddEvent
sqltableAddEvent(string|number boxid, string evtname, string callback);
Anade un evento a la tabla. Permite indicar la ejecucion de una funcion cuando se dispara un determinado evento. Los eventos contemplados son:
# onload Se ejecuta cada vez que se carga la tabla
# before_edit (rowid) Se ejecuta cuando la tabla pasa a modo edicion. Si la funcion del evento devuelve 'false' se previente la edicion de la fi.
# after_edit (rowid) Se ejecuta despues de poner la fila en modo edicion. Permite deshabilitar campos mediante la funcion sqltableSetFieldNoEntry
# before_insert (rowid) Se ejecuta antes de realizar la insercion de una nueva fila. Si la funcion del evento devuelve 'false' se previenteap insercion de la fila.
# after_insert (rowid) Se ejecuta despues de que la fila se ha insertado satisfactoriamente.
# before_update (rowid) Se ejecuta antes de modificar una fila. Si la funcion del evento devuelve 'false' se previente la modificacion de la filabpr
# after_update (rowid) Se ejecuta despues de que la fila se ha modificado satisfactoriamente.
# before_delete (rowid) Se ejecuta antes de eliminar una fila. Si la funcion del evento devuelve 'false' se previente el borrado de la fila.
# after_delete (rowid) Se ejecuta despues de que la fila se ha eliminado satisfactoriamente.
Parameters | |||
---|---|---|---|
Name | Type | Required | Description |
boxid | string|number | Puede ser tanto el codigo nemotecnico de la caja(boxcode), como el identificador interno de la base de datos(boxid). | |
evtname | string | Nombre del evento para el que se desea añadir la funcion. | |
callback | string | Funcion a ejecutar cuando se dispare el evento. |
4. getLabelMessage
string getLabelMessage(boolean code = false , string defmsg , string param1, param2, ... , paramN);
El contenido de la etiqueta puede contener referencias dinamicas, mediante la sintaxis {i}. Donde las referencias {0}, {1}, ..., {n} seran reemplazadas por los respectivos parametros que reciba la funcion, a partir del tercer parametro.
Obtiene una etiqueta definida en los diccionarios de la base de datos actual para el idioma del usuario. En caso de no encontrar la etiquieta devuelve el texto por defecto. Si no se define ningun texto por defecto devuelve codigo_de_idioma.codigo_etiqueta; por ejemplo: EN.LBL_NAME
De esta forma, un mensaje del tipo: "The value must be defined between {0} and {1}". Ante una llamada a la funcion como la siguiente: getLabelMessage("LBL_RANG", "Default message...", 1, 8); Devolvera: "The value must be defined between 1 and 8".
Parameters | |||
---|---|---|---|
Name | Type | Required | Description |
code | boolean | Codigo de la etiqueta | |
defmsg | string | Mensaje por defecto a devolver en caso de no encontrar la etiqueta para el idioma del usuario | |
param1, param2, ... , paramN | string | Argumentos para ser reemplazados en el mensaje si se utilizan referencias del tipo {0}, {1}, ..., {N} |
Javascript
getLabelMessage('JS_OVERLAP_TARIFF',''Text');
5. Arguments vis configurator
Arguments vis configurator(string fieldName, string objdest, string coldest, string qrycond , boolean noCache = false);
Modifica las referencias de integridad de un campo. Generalmente, las referencias de integridad estan definidas, o bien por la existencia de una foreign key (Hard Reference), o bien se definen mediante el mantenimiento de relaciones de integridad wic_jdic_collist (Soft References). Esta funcion, permite definir relaciones dinamicas (Dynamic References), gestionadas va programa. consulta, define los posibles valores que puede adoptar el campo actual. El objeto aqui indicado debera estar definido en alguno de los diccionarios de la base de datos actual.
Parameters | |||
---|---|---|---|
Name | Type | Required | Description |
fieldName | string | Nombre del campo. | |
objdest | string | Objeto destino de la referencia. | |
coldest | string | Nombre de la columna que contiene los posibles valores que podra adoptar el campo. | |
qrycond | string | Condicion SQL que, junto con la clausula SQL del objeto destino, delimita el numero registros validos. | |
noCache | boolean | cada consulta se ejecuta en la base de datos. -false la consulta SQL se ejecuta en cache. |
Javascript
setFieldExistValues(field.name, "gdelegac", "codigo", (getFieldValue("gvenpedh.empcode") != "" ? "gdelegac.empcode = '" + getFieldValue("gvenpedh.empcode") + "' AND gdelegac.estado != 'B'" : "gdelegac.estado != 'B'") );
6. setInsertRequiresReset
setInsertRequiresReset ( )
Obliga al usuario a ejecutar el reset del formulario antes de una insercion.
20.4 Java
Java
import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; public class MyThreadFactory implements ThreadFactory { private static final ConcurrentHashMap<String, AtomicInteger> POOL_NUMBER = new ConcurrentHashMap<String, AtomicInteger>(); private final ThreadGroup group; private final AtomicInteger threadNumber = new AtomicInteger(1); private final String namePrefix; public MyThreadFactory(String threadPoolName) { if (threadPoolName == null) { throw new NullPointerException("threadPoolName"); } POOL_NUMBER.putIfAbsent(threadPoolName, new AtomicInteger()); SecurityManager securityManager = System.getSecurityManager(); group = (securityManager != null) ? securityManager.getThreadGroup() : Thread.currentThread().getThreadGroup(); AtomicInteger poolCount = POOL_NUMBER.get(threadPoolName); if (poolCount == null) { namePrefix = threadPoolName + " pool-00-thread-"; } else { namePrefix = threadPoolName + " pool-" + poolCount.getAndIncrement() + "-thread-"; } } public Thread newThread(Runnable runnable) { Thread thread = new Thread(group, runnable, namePrefix + threadNumber.getAndIncrement(), 0); if (thread.isDaemon()) { thread.setDaemon(false); } if (thread.getPriority() != Thread.NORM_PRIORITY) { thread.setPriority(Thread.NORM_PRIORITY); } return thread; } }
21 Task List
This tag allows to write tasks lists. It consists of the following attributes and tags:
<taskList lang=""> <p>This is an optional brief description of the task list</p> <taskItem date="06-11-2019" module="SD" title="Ventas y distribución" desc="This is a brief description of the task" status="Approved"> <p> This is a long description that can be on display or hidden using the right button. You can write paragrafs, lists, links,... </p> </taskItem> <taskItem date="07-11-2019" module="FI" title="Finanzas" desc="This is a brief description of the task" status="Approval Pending"> <p> This is a long description. You can write paragrafs, lists, links, buttons,... </p> </taskItem> <taskItem date="08-11-2019" module="CONS" title="Construcciones" desc="This is a brief description of the task" status="Proposed"> <p> This is a long description. You can write paragrafs, lists, links, buttons,... </p> </taskItem> </taskList>
taskList 'lang' attribute
By default 'lang' is set to ENG but the user can change it to ESP or CAT.
Extended description
Show/Hide the extended description by clicking the button at the end of each row.
This is an optional brief description of the task list
Date | Module | Title | Description | Status | |
---|---|---|---|---|---|
06-11-2019 | SD | Ventas y distribución | This is a brief description of the task | Approved | |
This is an example with a status="Approved". |
|||||
07-11-2019 | FI | Finanzas | This is a brief description of the task | Approval Pending | |
This is an example with a status="Approval Pending" and a ordered list in the description.
|
|||||
08-11-2019 | CONS | Construcciones | This is a brief description of the task | Proposed | |
This is an example with a status="Proposed" and an unordered list in the description.
|
22 Permanent Links
To create a link use the following:
<a href="Here goes the link">Here goes the text to display</a>
To copy to clipboard a document's permanent link, click on the button 'Copy Link' located in the document's button panel (top right).

23 Api
This tag allows to documentate functions.
The api tag can have the attribute package. If infomed it will be displayed before the function name in the method information.
The param tag inside a function has the attribute configurator which can have the following values:
- yes - the param will be passed to the configurator via general setter (setValue("paramName", paramValue))
- setter - the param will be passed to the configurator via individual setter (setParamName(paramValue))
- no or not informed - the param will be used as a normal param of the principal function
Class Ax.ext.db.schema
Method Summary
Method Detail
Ax.ext.db.schema.modelStatus
-
object[] Ax.ext.db.schema.modelStatus( string type, config => { setDict(string); setPattern(string); setDebug(boolean); } )
- Info:
-
Verify if the logic model (cataloged in the dictionary) corresponds with the physical model (database) of each one of the objects (table, index, check, etc). It not only verifies but also gives an idea of what should be execute so that the logical model corresponds to the physical model. - Parameters:
- type - all|TABLE|INDEX|FOREIGN|CHECK|TLOAD
- dict - Dictionary where the object is found. This attribute is optional, if the object is reported it is taken from this dictionary. If it is not reported, the system search it in all the dictionarys of the application and it will execute the one that is defined in the wic_dbms_dicts befor
- pattern - Filter pattern
- debug - Debug
- Returns:
- object[]
let rs = Ax.ext.db.schema.modelStatus('all', config => { config.setPattern("studio_%"); config.setDict("wic_iges"); config.setDebug(true); });
Ax.ext.db.schema.modelCreate
-
resultset Ax.ext.db.schema.modelCreate( string type, config => { setArgument("dict", string); setArgument("temp", string); setArgument("debug", boolean); } )
- Info:
-
Executes the statements of creation of structure (DDL) over one or several databases. In the creation of the structure you can differentiate different objects to create.
- Table: Just the creation of the table with its columns.
- Index: Index, primary keys, foreign keys, etc.
- Check: Checks.
- Data upload: There are tables in which you want that when the table is created the system automatically loads records on this table.
- Parameters:
- type - all|TABLE|INDEX|FOREIGN|CHECK|TLOAD
- dict - Selection condition of the SQL object
- temp - Filter pattern
- debug - Debug
- Returns:
- resultset
let rs = Ax.ext.db.schema.modelCreate('index', config => { config.setPattern("studio_%"); config.setDict("wic_iges"); config.setDebug(true); });
Ax.ext.db.schema.modelUpgrade
-
string[] Ax.ext.db.schema.modelUpgrade( string type, config => { setArgument("dict", string); setArgument("temp", string); setArgument("debug", boolean); } )
- Info:
-
Verify if the logic model (cataloged in the dictionary) corresponds with the physical model (database) of each one of the objects (table, index, check, etc). It not only verifies but also gives an idea of what should be execute so that the logical model corresponds to the physical model. - Parameters:
- type - all|TABLE|INDEX|FOREIGN|CHECK|TLOAD
- dict - Dictionary where the object is found. This attribute is optional, if the object is reported it is taken from this dictionary. If it is not reported, the system search it in all the dictionarys of the application and it will execute the one that is defined in the wic_dbms_dicts befor
- temp - Filter pattern
- debug - Debug
- Returns:
- string[]
let rs = Ax.ext.db.schema.modelUpgrade('table', config => { config.setPattern("studio_%"); config.setDict("wic_iges"); config.setDebug(true); });
Ax.ext.db.schema.modelDrop
-
object Ax.ext.db.schema.modelDrop( string type, config => { setArgument("dict", string); setArgument("temp", string); setArgument("debug", boolean); } )
- Info:
-
Remove one or several object physically from the database as cataloged in the dictionary. - Parameters:
- type - all|TABLE|INDEX|FOREIGN|CHECK|TLOAD
- dict - Dictionary where the object is found. This attribute is optional, if the object is reported it is taken from this dictionary. If it is not reported, the system search it in all the dictionarys of the application and it will execute the one that is defined in the wic_dbms_dicts befor
- temp - Filter pattern
- debug - Debug
- Returns:
- object
let rs = Ax.ext.db.schema.modelDrop('table', config => { config.setPattern("studio_%"); config.setDict("wic_iges"); config.setDebug(true); });