Manual de consulta

Llamada de función (@)

Finalidad

Invoca un bloque FUNCTION, un bloque MACRO_FUNCTION o una función incorporada con argumentos específicos. Si la función no es una función incorporada, debe definirla en la macro de Net.Data antes de especificar una llamada de función.

Sintaxis

>>-@nombre_función---(------------------------------------------>
 
>-----+---------------------------------------------------+--)--><
      |  .-,--------------------------------------------. |
      |  V                                              | |
      '----+-nombre_variable-------------------------+--+-'
           +-referencia de variable------------------+
           +-llamada de función----------------------+
           |    .-----------------------------.      |
           |    V                             |      |
           '-"----+-serie------------------+--+---"--'
                  +-referencia de variable-+
                  '-llamada de función-----'
 

Valores

@nombre_función
El nombre de cualquier función existente. Una cadena numérica o alfabética que comience por un carácter alfabético o un subrayado y que contenga cualquier combinación de caracteres alfabéticos, numéricos, de subrayado o de punto.

nombre de variable
Nombre que identifica una variable. Consulte el apartado Nombre de variable para obtener información sobre sintaxis.

serie
Cualquier secuencia de caracteres alfabéticos y numéricos y de puntuación, excepto el carácter de nueva línea.

referencia de variable
Devuelve el valor de una variable y se especifica con $ y (). Por ejemplo: si VAR='abc', entonces $(VAR) devuelve el valor 'abc'. Consulte el apartado Referencia de variables para obtener información de sintaxis.

llamada de función
Invoca uno o más bloques FUNCTION o MACRO_FUNCTION, o una función incorporada de Net.Data con argumentos específicos.

Contexto

Las llamadas de función pueden encontrarse en estos contextos:

Restricciones

Ejemplos

Ejemplo 1: Llamada a la función formQuery de SQL

%FUNCTION(DTW_SQL) formQuery(){
SELECT $(queryVal) from $(tableName)
%}
 
%HTML (Input){
<p>Which columns of $(tableName) do you want to see?</p>
<form method="post" action="report">
<input name="queryval" type="checkbox" value="name" />Name
<input name="queryval" type="checkbox" value="mail" />E-mail
<input name="queryval" type="checkbox" value="fax" />FAX
<input type="submit" value="submit request" />
</form>
%}
 
%HTML (Report){
<p>Here are the columns you selected:</p>
<hr />
@formQuery()
%}

Ejemplo 2: Llamada a una función REXX con parámetros de entrada y salida

%FUNCTION(DTW_REXX) my_rexx_pgm(INOUT a, b, IN c, OUT d) {
 %EXEC{ mypgm.cmd this is a test %}
%}
%HTML(INPUT) {
 <p> Original variable values: $(w) $(x) $(z) </p>
 <p> @my_rexx_pgm(w, x, y, z) </p>
 <p> Modified variable values: $(w) $(x) $(z) </p>
%}

Ejemplo 3: Llamada a una función REXX con parámetros de entrada, que utiliza referencias de variables y llamadas de función

%FUNCTION(DTW_REXX) my_rexx_pgm(IN a, b, c, d, OUT e) {
  ...
%}
%HTML(INPUT) {
 <p>  @my_rexx_pgm($(myA), @getB(), @retrieveC(), $(myD), myE)</p>
%} 

Ejemplo 4: Macro que ilustra la utilización del parámetro INOUT.


%DEFINE a = "initial value of a"

%FUNCTION(DTW_REXX) func1(INOUT x) {
Say 'value at start of function:<br />
Say 'x =' x
Say '<p>'
x = "new value of a"
Say '<p>'
%REPORT {
<p>value at start of report block:<p>
x = $(x)<br />
@dtw_assign(x, "newest value of a")
value at end of report block:<br />
x = $(x)<br />
%}
%}

%HTML (Report) {
initial values:<br />
a = $(a)<br />
@func1(a)
value after function call:<br />
a = $(a)<br />
%}

Salida resultante

initial
values:
a = initial value of a
 
value at start of function:
x = initial value of a
 
value at start of report block:
x = new value of a
 
value at end of report block:
x = newest value of a
 
value after function call:
a = newest value of a
 


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]