Lenguaje de formatos

From ABCD Wiki
Revision as of 11:35, 21 December 2013 by Guilda (talk | contribs) (Extractores de campos)
Jump to: navigation, search

Extractores de campos

El lenguaje de formatos permite extraer información de un registro CDS/Isis, prepararla y presentarla al usuario por pantalla o enviarla a impresoras u otros medios de salida.

Para extraer información de un registro se usan los extractores de campos, los cuales, en su forma más sencilla se forman con la letra v (en mayúscula o minúscula, indistintamente), seguida por la etiqueta del campo cuyo contenido se desea extraer:

       Vxx    Incluye en la salida el campo cuya etiqueta representa el valor xx
              Ej:v10 

Si el campo posee subcampos, en la extracción del campo se debe indicar el subcampo que se desea acceder

      Vxx^a   Incluye en la salida el subcampo (^a) o 
              equivalente presente en campo con etiqueta xx. Ej: v10^a, v10^r

Cuando el primer subcampo de un elemento de datos es obligatorio, como en el caso de los nombres personales los cuales se forman con el apellido y el nombre propiamente dicho estando siempre presente el apellido; entonces, en este caso no es necesario identificar el apellido con un delimitar de subcampos ya que es un elemento obligarorio. El ingreso se podrá realizar de la siguiente forma:

              Ruiz Alvarado^nFernando 						

El primer subcampo del campo es Ruiz Alvarado y para referenciarlo se usa la construcción ^* lo cual es equivalente a primer subcampo del campo, entendiendose como primer subcampo la cadena de caracteres existente desde el inicio del campo hasta que se encuentre un delimitador de subcampos (^) o el fin del campo. Bajo este concepto, si la etiqueta del campo nombre es 10, el comando

              v10^*,", "v10^n 

producirá como salida

              Ruiz Alvarado, Fernando 				

Extractores virtuales de campo

Estos elementos del lenguaje de formatos se utilizan para generar un literal en el formato de salida, dependiendo de si un campo está presente o ausente. Son los siguientes:

             Dxx 

Presenta en la salida el literal asociado, si el campo con etiqueta xx está presente en el registro:

              Ej: "El campo tiene materias. "d76				

En la salida se incluye el rótulo El campo tiene materias. si el campo 76 está presente en el registro. Si el campo 76 está ausente, no se genera el literal correspondiente

              Nxx 

Coloca en la salida el literal asociado si el campo con etiqueta xx está ausente.

              Ej: "S/F"n43

En la salida aparecerá el literal S/F si el campo 43 está ausente. Si el campo está presente no se genera salida ninguna

En ninguno de estos casos se coloca el contenido del campo en la salida generada.

Extractores parciales de campo

El lenguaje de formatos permite extraer una subcadena de caracteres de un campo especificando el inicio de la cadena a extraer y la longitud de la misma.

Para ilustrar este aspecto, consideremos el caso de un campo de fecha tratado bajo la norma ISO, la cual establece que el ingreso debe realizarse de la siguiente manera: AAAAMMDD, o sea, que el ańo simpre será el primer elemento del campo y constará de dos dígitos, a continuación se colocará el mes, siempre con dos dígitos y al final del día, también con dos dígitos.

El ańo, al ser el primer elemento del campo, está desplazado 0 (cero) caracteres respecto al inicio del campo; el mes está desplazado 4 caracteres respecto al inicio del campo y el día está desplazado 6 caracteres respecto al inicio del campo.

Gráficamente, ésto corresponde a la siguiente situación:

         Contenido del campo   Desplazamientos respecto al orígen del campo
               20011001		      01234567				 		

Para extraer porciones de un campo, el lenguaje de formatos permite expresar una porción de un campo en términos de su posición respecto al orígen (desplazamiento) y de la cantidad de caracteres a tomar en cuenta a partir de esa posicion inicial (longitud). El símbolo para identificar el valor del desplazamiento es el * (asterisco) y la longitud se expresa con símbolo . (punto). Entonces, la construcción

               Vxx*D.L    extraerá L caracteres del campo xx tomados a partir del
                          desplazamiento D respecto al inicio del campo.		

Ej. Si el campo 44 se ingresó con el valor 20010915, tendremos:

                v44*6.2 = 15
                v44*4.2 = 09
                v44*0.4 = 2001 

Si el desplazamiento es cero, esto es, la porción que deseamos obtener se encuentra al inicio del campo, entonces, no es necesario especificar es desplazamiento sino lo solo la longitud del segmento a extraer.

                Ejm: v44*0.4 = v44.4		

Si la longitud del segmento que deseamos extraer se ubica a partir de un desplazamiento x hasta el final del campo, no es necesario especificar la longitud a extraer.

                Ejm: v44*6.2 = v44*6 

Al omitirse la longitud se toma desde la posición 6 el resto de caracteres presentes en el campo (2)