PCOL()
 Devuelve la posición de columna actual de la cabeza de impresión
------------------------------------------------------------------------------
 Sintaxis

     PCOL() --> nColumna

 Devuelve

     PCOL() devuelve un valor numérico entero que representa la posición de
     la última columna impresa más uno. La posición de columna inicial es
     cero.

 Descripción

     PCOL() es una función de impresora que informa de la posición de
     columna de la cabeza de impresión después de la última operación.
     PCOL() sólo se actualiza si SET DEVICE TO PRINTER o SET PRINTER ON
     están activados. PCOL() es similar a COL(), excepto en que se aplica a
     la impresora en vez de a la pantalla. PCOL() se actualiza de las formas
     siguientes:

      Al arrancar la aplicación, PCOL() se pone a cero

      Al ejecutar un EJECT, PCOL() se pone a cero

      Cualquier operación de impresión hace que PCOL() tome el valor
        de la posición de la última columna impresa más uno

      La función SETPRC() permite establecer PCOL() en la posición
        de columna que se especifique

     PCOL() se utiliza normalmente con PROW() para imprimir un valor
     relativo al último valor impreso en la misma línea. Esto facilita la
     alineación de columnas durante la impresión de un informe de columnas.
     Para imprimir un valor en la siguiente columna puede especificarse su
     posición como PCOL() + <desplazamiento columna>. PCOL() sólo puede
     alinear correctamente los valores en columnas cuando tienen una anchura
     fija. Para asegurarse de que los valores tengan una anchura fija, dé
     formato a la salida mediante la función TRANSFORM(), la cláusula
     PICTURE del mandato @...SAY o cualquiera de las funciones PAD().

 Notas

     ■ Códigos de control de impresora: Al enviar códigos de control
        a la impresora, PCOL() deja de estar sincronizada con la posición de
        la cabeza de impresión. Aunque los códigos de control no se
        imprimen, la discrepancia ocurre porque CA-Clipper cuenta todos los
        caracteres enviados a la impresora, independientemente de la forma
        en que ésta los trate. Para evitar la discrepancia, guarde los
        valores actuales de PROW() y PCOL(), envíe los códigos de control y
        utilice SETPRC() para restablecer los valores originales de PROW() y
        PCOL().

     ■ SET MARGIN: PCOL() no puede utilizarse de manera fiable con
        una sentencia SET MARGIN para imprimir con un mandato @...SAY. Al
        imprimir con @...SAY, el valor actual de MARGIN se añade siempre a
        la posición de columna especificada antes de enviar la salida a la
        impresora. Esto hace que el valor MARGIN se sume al de PCOL() cada
        vez que se invoca el mandato @...SAY en una misma línea de
        impresión.

 Ejemplos

      En este ejemplo, PCOL() crea un informe sencillo que imprime
        una lista de nombres, direcciones y números telefónicos de clientes:

        LOCAL nLinea := 99, nPagina := 1
        USE Cliente INDEX NombreCli NEW
        SET DEVICE TO PRINTER
        DO WHILE !EOF()
           IF nLinea > 55
              PaginaSup(nPagina)
              nLinea := 1
              nPagina++
           ENDIF
           @ nLinea, 10 SAY NombreCli
           @ nLinea, PCOL() + 2;
              SAY RTRIM(Ciudad) + ", " + RTRIM(Provincia) + CodigoPost;
                  PICTURE REPLICATE("X", 35)
           @ nLinea, PCOL() + 2;
              SAY Telefono;
                  PICTURE "@R (999) 999-9999"
           nLinea++
           SKIP
        ENDDO
        SET DEVICE TO SCREEN
        CLOSE

 Ficheros   La biblioteca asociada es CLIPPER.LIB.

 To download this example - click here.

See Also: ?|?? @...SAY EJECT PAD() PROW() QOUT()