PCOL()
 Retorna a posiçao de coluna corrente da cabeça de impressao
------------------------------------------------------------------------------

 Sintaxe

     PCOL() --> nColuna

 Retorno

     PCOL() retorna um valor numérico inteiro que representa a última
     posiçao de coluna impressa mais 1 (um).  A posiçao inicial de coluna é
     zero.

 Descriçao

     PCOL() é uma funçao de tratamento de impressoras que informa a posiçao
     de coluna em que se encontra a cabeça de impressao após a última
     operaçao de impressao.  PCOL() é atualizada somente se SET DEVICE TO
     PRINTER ou SET PRINTER ON estiverem em uso.  PCOL() é o mesmo que
     COL(), com a diferença de que diz respeito à impressora, e nao à tela.
     A atualizaçao de PCOL() é feita das seguintes formas:

       A inicializaçao da aplicaçao configura PCOL() zero

       EJECT reconfigura PCOL() para zero

       Uma operaçao de impressao configura PCOL() para a última
        posiçao de coluna impressa mais 1 (um)

       SETPRC() configura PCOL() para a posiçao de coluna
        especificada

     PCOL() é utilizada juntamente com PROW() para imprimir um valor
     relativo ao último valor impresso na mesma linha.  Isto facilita o
     alinhamento de colunas ao ser impresso um relatório colunar.  Pode ser
     impresso um valor na próxima coluna, especificando-se sua posiçao como
     PCOL() + <deslocamento da coluna>.  Observe que PCOL() é eficaz para
     alinhamentos somente se os valores de coluna tiverem tamanho fixo.
     Para garantir que os valores de coluna tenham tamanho fixo, formate a
     saída usando TRANSFORM(), a cláusula PICTURE de @...SAY, ou qualquer
     uma das funçoes PAD().

 Notas

       Códigos de controle de impressora: O envio de códigos de
        controle à impressora ocasiona falta de sintonia entre PCOL() e a
        posiçao da cabeça de impressao.  Embora os códigos de controle nao
        imprimam, esta discrepância acontece porque o Clipper conta todos os
        caracteres enviados à impressora, sem considerar o tratamento dado
        pela impressora a estes códigos.  Para fazer o ajuste necessário,
        grave os valores correntes de PROW() e PCOL(), envie os códigos de
        controle, e depois utilize SETPRC() para recuperar os valores
        originais de PROW() e PCOL().

       SET MARGIN: Nao é confiável utilizar-se PCOL() juntamente
        com SET MARGIN para imprimir com @...SAY.  Ao ser feita uma
        impressao com @...SAY, o valor MARGIN corrente sempre é adicionado à
        posiçao de coluna especificada antes que a saída seja enviada à
        impressora, o que efetivamente adiciona o valor MARGIN a PCOL() para
        cada invocaçao de @...SAY para a mesma linha de impressao.

 Exemplos

     Este exemplo utiliza PCOL() para criar um relatório simples, que
     imprime uma listagem de nomes, endereços, e números de telefones
     contidos no arquivo Customer:

     LOCAL nLine := 99, nPage := 1
     USE Customer INDEX CustName NEW
     SET DEVICE TO PRINTER
     WHILE !EOF()
        IF nLine > 55
           PageTop(nPage)
           nLine := 1
           nPage++
        ENDIF
        @ nLine, 10 SAY Name
        @ nLine, PCOL() + 2;
           SAY RTRIM(City) + ", " + RTRIM(State) + Zip;
           PICTURE REPLICATE("X", 35)
           @ nLine, PCOL() + 2;
           SAY Phone;
           PICTURE "@R (999) 999-9999"
        nLine++
        SKIP
     ENDDO
     SET DEVICE TO SCREEN
     CLOSE

 Arquivos:  Biblioteca CLIPPER.LIB.
 To download this example - click here.

See Also: COL() PAD() PROW() ROW() SETPRC() SET DEVICE