REPORT FORM
 Exibe um relatório no console
------------------------------------------------------------------------------

 Sintaxe

     REPORT FORM <xcRelatório>
        [TO PRINTER] [TO FILE <xcArquivo>]
        [<abrangência>] [WHILE <lCondiçao>] [FOR <lCondiçao>]
        [PLAIN | HEADING <cCabeçalho>] [NOEJECT] [SUMMARY]

 Argumentos

     <xcRelatório> é o nome do arquivo de formato de relatório (.frm)
     que contém a definiçao do relatório (REPORT).  Caso nao haja
     especificaçao de extensao, (.frm) é assumido.  <xcRelatório> é uma
     expressao que pode ser especificada literalmente por expressao
     caractere entre parênteses.

     TO PRINTER envia a saída para a impressora.

     TO FILE <xcArquivo> envia a saída para um arquivo sem caracteres de
     form feed (ASCII 12).  Se nao for especificada extensao de arquivo, um
     (.txt) é adicionado.  <xcArquivo> é uma expressao literal, ou seja, o
     próprio nome do arquivo, ou expressao caractere entre parênteses.

     <abrangência> é a parte do arquivo de dados corrente onde atuará o
     comando REPORT FORM.  O padrao é todos (ALL).

     WHILE <lCondiçao> especifica o conjunto de registros que atendem a
     condiçao do registro corrente até que a condiçao seja falsa.

     FOR <lCondiçao> especifica o conjunto condicional de registros no
     qual o comando irá atuar dentro da abrangência.

     PLAIN evita a exibiçao de data e número de página, e condiciona a
     impressao a ser feita sem quebras de página.  Além disso, o título do
     relatório e cabeçalhos de colunas aparecem apenas no início do
     relatório.

     HEADING coloca o resultado de <cCabeçalho> na primeira linha de
     cada página.  <cCabeçalho> é avaliado somente uma vez no começo do
     relatório, antes que o ponteiro de registro seja movido.  Caso ambos
     PLAIN e HEADING estejam especificados, PLAIN tem a preferência.

     NOEJECT evita que a página inicial seja ejetada quando a cláusula
     TO PRINTER for usada.

     SUMMARY faz o comando REPORT FORM exibir somente linhas de grupo,
     subgrupo e total geral.  As demais linhas sao omitidas.

 Descriçao

     REPORT FORM é um comando de console que acessa sequencialmente
     registros na área de trabalho corrente exibindo um relatório tabular e
     opcionalmente agrupado com cabeçalhos de página e coluna a partir de
     uma definiçao existente num arquivo (.frm).  O arquivo REPORT FORM real
     (.frm) é criado utilizando-se RL.EXE ou através de dBASE III PLUS.
     Consulte o capítulo Utilitário de Relatório e Etiquetas no livro
     Programando e Utilitários para mais informaçoes a respeito da criaçao
     de definiçoes de relatórios.

     Quando chamada, a saída é enviada para a tela e opcionalmente para a
     impressora e/ou um arquivo.  Para evitar que a saída seja enviada para
     a tela quando da impressao ou envio da mesma para um arquivo, use o
     comando SET CONSOLE OFF antes de utilizar o comando REPORT FORM.

     Quando chamado, o comando REPORT FORM procura na unidade e diretório
     SET PATH corrente se o arquivo <xcRelatório> nao for encontrado no
     diretório corrente e o PATH nao tiver sido especificado.

 Notas

       Interrompendo REPORT FORM: Para interromper um comando
        REPORT FORM, use a funçao INKEY() como parte da condiçao FOR para
        verificar a interrupçao ao pressionar uma tecla.  Veja o exemplo
        abaixo.

       Margem da impressora: Como REPORT FORM é um comando de
        console, ele obedece ao que estiver definido em SET MARGIN para a
        saída para a impressora.

       Incluindo caracteres form feed: Para incluir caracteres
        de alimentaçao de formulário ao enviar um comando REPORT FORM TO
        FILE, redirecione a saída da impressora para um arquivo usando o
        comando SET PRINTER desta forma:

        SET PRINTER TO <xcArquivo>
        REPORT FORM <xcArquivo> TO PRINTER
        SET PRINTER TO

       Relatórios em ambientes de rede: Comandos REPORT FORM em
        ambientes de rede podem ser afetados por mudanças feitas em arquivos
        de dados por outros usuários enquanto o relatório está sendo
        executado.  Por exemplo, se um usuário mudar um valor chave de "A"
        para "Z" enquanto o relatório estiver sendo impresso, o mesmo
        registro poderá aparecer repetido.

 Exemplos

       O exemplo a seguir usa ao mesmo tempo uma expressao extendida
        e uma expressao literal para executar um comando REPORT FORM:

        LOCAL xcReport := "Sales"
        USE Sales INDEX Sales NEW
        REPORT FORM Sales TO PRINTER FOR Branch = "100" HEADING "Filial 100"
        REPORT FORM (xcReport) TO PRINTER FOR Branch != "100"

       Este exemplo demonstra como interromper um comando LABEL FORM
        usando a funçao INKEY() para verificar se o usuário teclou Esc:

        #define K_ESC  27
        USE Sales NEW
        LABEL FORM Sales FOR INKEY() != K_ESC

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

See Also: LABEL FORM LIST