PosCpo

Indica la posición del campo en la línea corriente, función GetDatos, posiciones 3, 4 y 6, Mediciones, No conformidades asociadas Instrumentos, respectivamente. Se puede utilizar las posiciones almacenadas en el vector aResultados de dos formas:

1. Utilizando los vectores aHeader y aCols de la forma convencional, determinándose la búsqueda del campo en el aHeader, guardando la respectiva posición en el aCols, siempre que se esté editando una de las opciones 3, 4 ó 6

Ejemplo:

nPosmed := Ascan(aHeader,{|x|AllTrim(x[2])==\"QES_MEDICA\"})

2. Directamente en la estructura del vector aResultados:

También existe el vector público aSavHeadEns, que almacena la estructura del aHeader que se utiliza en las mediciones, de acuerdo con el ensayo seleccionado en el Laboratorio, es decir, solamente la posición 3 del vector aResultados. La existencia y utilización de este vector se justifica debido a la carta utilizada en cada ensayo. Tanto el aHeader como el aCols se elabora de forma dinámica.

Para buscar una posición de un campo en las mediciones recolectadas en el ensayo X, sin necesidad de estar en Mediciones, se debe adoptar el siguiente procedimiento:

 

aHeaderTmp :=  aSavHeadEns[nFldLab,nFldEns]
nPosmed := Ascan(aHeader,{|x|PosMed(x[2])==\"QES_MEDICA\"})
cResMed := aResultados[nFldLab,3,nFldEns,Z,nPosMed]
//en que Z es la línea de la función Getdatos almacenada

El ejemplo anterior demuestra cómo localizar un campo en el vector aResultados sin que se esté en la función GetDatos. En este ejemplo se utilizan las variables público nFldLab y nFldEns, que indican, respectivamente, la posición del Laboratorio corriente y Ensayo seleccionado. Se puede observar que el vector aResultados almacena una copia exacta del aCols editado en la función GetDatos y/o Enchoice.

Para localizar la posición de un campo editado en las posiciones 4 y 6, hay que almacenar el aHeader en el vector aSavaHeader, el cual posee dos dimensiones que almacenan, respectivamente, la estructura relativa a: No-conformidades e Instrumentos.

Ejemplo:

aHeaderNco := aSavaHeader[1] //no-conformidades

aHeaderIns   := aSavaHeader[2] //instrumentos

 

¡Importante!

En el caso de que se esté editando la función Getdatos, no es necesario referenciar los vectores aSavaHeader y/o aSavHeadEns, basta utilizar el estándar en el aHeader y aCols.

Para referenciar la posición de un campo en la función Enchoice (Laudo de Laboratorio y Final), posición 7 en el aResultados[PosLab....] y posición 1 en aResultados[nPosLauFin...], hay que efectuar una búsqueda del nombre del campo que se va a manipular en el vector aCpoEnc.

Ejemplo:

//Laudo del Laboratorio

nPosLau := Ascan(aCpoEnc,{|x|AllTrim(x)==\"QEL_LAUDO\"})

cLaudo := aResultados[nFldLab,7,nPosLau]

Para refenciar el campo vía personalización estándar mediante el SX3, por validación, previa o automática, basta utilizar la variable de memoria, ejemplo:

M->QEL_LAUDO := \"A\"

El laudo del Laboratorio y el Final serán referenciados por los campos del archivo QEL, por ello, cuando se haga una personalización, habrá necesidad de establecer distinciones entre el Laudo del Laboratorio y el Laudo Final. En el próximo ítem, se exhibirán los pasos de cómo hacerlo.