Exemplos »»

  O exemplo abaixo demonstra como imprimir etiquetas adesivas utilizando a sintaxe do Cobol Micro Focus 4.5:

VisRel

1º Faça o download dos arquivos deste exemplo clicando aqui;

2º Abra o layout do relatório chamado "Etiqueta.vrl";

3º Veja que foram inseridas apenas algumas linhas de programação na primeira e última banda para transforma-las em uma section. Assim é possível replica-la facilmente no seu programa a partir dos registros do cadastro;

VisRelEdit

4º Para integrar o layout acima com o programa Cobol abaixo, clique no menu "Editar - Copiar como - Cobol 4.5", e em seguida substitua todo o conteúdo do arquivo "Etiqueta.CPY" com o que estiver na área de tranferência (colar). O VisRelEdit pode fazer isso automaticamente ao selecionar o menu "Configurar - Gerar CPY ao Salvar";

5º Em seguida basta compilar o programa e executá-lo. Veja que a rotina "imp-etiquetas" foi chamada diversas vezes gerando as etiquetas (duas de cada vez), e o VisRel encarrega-se de fazer a quebra de página conforme o tamanho do papel selecionado pelo usuário.

      $set ans85 noosvs mf
        environment division.
        configuration section.
        special-Names.
             decimal-point is comma.
        input-output section.
             select ARQ1
                    assign to disk
                    file status is w-seq-st.

             select seq-arq
                    assign to        disk
                    organization     line sequential
                    lock mode is     manual
                    status           w-seq-st.

        data division.
        file section.
        fd      ARQ1
                label record is standard
                value of file-id is w-nome-arq.
        01      REG1.
                03 fd-produto        pic x(30).
                03 fd-valunit        pic 9(6)v99.
                03 fd-codigo         pic 9(12).

        fd      seq-arq
                value of file-id w-seq-id
                record is varying in size depending on w-seq-size.
        01      seq-reg.
                02 w-linha           pic x(1200).

        working-storage section.

        01      w-nome-arq           pic x(20)     value spaces.

        01      VisRel.
                03 w-numrel          pic x(10)     value "Rel0001".
                03 w-descr-1         pic x(30)     value spaces.
                03 w-valor-1         pic zz.zz9,99.
                03 w-codigo-1        pic x(12)     value spaces.
                03 w-descr-2         pic x(30)     value spaces.
                03 w-valor-2         pic zz.zz9,99.
                03 w-codigo-2        pic x(12)     value spaces.

                03 w-margem-e        pic 9(4)      value zeros.
                03 w-margem-s        pic 9(4)      value zeros.
                03 w-conta           pic 9(4)      value zeros.

        01      w-status.
                02 w-seq-id          pic x(20)     value spaces.
                02 w-seq-st          pic xx        value zeros.
                02 w-seq-size        pic 9(06)     value zeros.

        01      w-texto.
                02 w-texto-A         pic x(26)     value spaces.
                02 w-texto-B         pic x(1174)   value spaces.

        01      w-RH.
                02 w-RH-A            pic x(2)      value spaces.
                02 filler            pic x(1)      value spaces.
                02 w-RH-B            pic x(1197)   value spaces.

        77      FUNCAO-35            pic x comp-x  value 35.
        77      CODERRO-2            pic x comp-x  value 0.
        01      COMANDO              pic x(250)    value spaces.
        01      COMMAND-LIN.
                02 COMMAND-LIN-LEN   pic x comp-x  value 0.

        screen section.

        procedure division.

        Inicio. 
******** Inicializar o arquivo com alguns registros ********
           move "Etiquetas.DAT" to w-nome-arq
           open output ARQ1

           perform 33 times
              add 1 to w-conta
              string "Produto ", w-conta
                     delimited by size into fd-produto
              compute fd-valunit = 100 * w-conta
              compute fd-codigo = 789000000000 + (1234567 * w-conta)

              write REG1
           end-perform

           close ARQ1

           move 10 to w-margem-s
           move 10 to
w-margem-e

           perform inicio-visrel

           open input ARQ1.

           move 0 to w-conta.
           go to le-arquivo.
           .

        inicio-visrel.
           move "Etiqueta.Rel" to w-seq-id
           open output seq-arq
           copy "Etiqueta.cpy".

        le-arquivo.
           read arq1 next at end go to fecha-arquivo.

           add 1 to w-conta.

           if w-conta > 2
             perform imp-etiquetas
             move 1 to w-conta
           end-if

           if w-conta = 1
             move fd-produto to w-descr-1
             move fd-valunit to w-valor-1
             move fd-codigo  to w-codigo-1
           end-if

           if w-conta = 2
             move fd-produto to w-descr-2
             move fd-valunit to w-valor-2
             move fd-codigo  to w-codigo-2
           end-if

           go to le-arquivo.

        fecha-arquivo.
           if w-conta = 1
             move spaces to w-descr-2
             move 0 to w-valor-2
             move 0 to w-codigo-2
             perform imp-etiquetas
           end-if

           close ARQ1.

        final-visrel.
            close seq-arq.
         
            STRING "VisRel.exe ",
                   "/g ",
                   w-seq-id,
                   " /t Etiquetas adesivas"
                   DELIMITED BY SIZE INTO COMANDO
.

            DISPLAY COMANDO UPON COMMAND-LINE.
            CALL X"91" USING CODERRO-2, FUNCAO-35, COMMAND-LIN.
            exit program.
            goback.

No computador de seus clientes instale apenas a Run-Time do VisRel (RunTimeVisRel.exe), ou então copie o arquivo C:\Windows\VisRel.exe para a sua pasta de programas.

IMPORTANTE: Se você tem clientes com Windows 95 ou 98 e se optar por copiar o VisRel.exe, copie também o arquivo Msvbvm60.dll (sempre deste link) para a sua pasta de programas! Nunca copie o arquivo Msvbvm60.dll da pasta system de um computador para outro, ou para a sua pasta de programas, pois cada versão ou service pack do Windows tem sua própria DLL (exceto o Windows 9x).

Obs.: Ao utilizar o DialogSystem do NetExpress é necessário adicionar na linha de comando o parâmetro /SV, caso contrário a tela do VisRel pode ficar oculta pelo seu programa. E no caso de relatórios no modo gráfico (VisRelEdit), selecione o menu Configurar - Manter o relatório visível. Isso ocorre devido ao comando "REFRESH-OBJECT" que é disparado depois do comando "RETC".

Veja mais detalhes das linhas de comando do VisRel clicando aqui.


Página Principal Página Principal Página Principal Página Principal Página Principal Comprar Comprar Comprar Comprar Comprar Comprar Contato Contato Contato Contato Contato Contato + Produtos + Produtos + Produtos + Produtos + Produtos + Produtos Download Download Download Download Download Download Sobre Sobre Sobre Sobre Sobre Sobre