

Imprimir relatório formatado no dispositivo lógico associado.
IMPRIMA NOME = <arquivo> [PAGINA = <número>] ou
IMPRIMA [PAGINA = <número>] [NAOLISTA] <corpo>
FIM
|
<arquivo> |
Representa o nome de um arquivo com a definição do relatório, com as opções do comando IMPRIMA. |
|
<corpo> |
Representa a definição do relatório com as opções do comando IMPRIMA. |
|
<número> |
Determina o número máximo de linhas numa página. Se não informado, supõe-se como tamanho máximo 60 linhas por página. |
|
NAOLISTA |
Determina que no relatório não serão impressos os comandos de formatação. Caso não se especifique esta opção, na primeira página do relatório será impresso o <corpo> do relatório. |
O comando IMPRIMA solicita ao GERAL imprimir informações, na unidade lógica de listagem, registros cujos endereços estejam guardados no arquivo de seleção.
Se o arquivo de seleção foi gerado a partir de um arquivo que tenha uma chave estrangeira, podem ser impressos dados dos arquivos ENTIDADE ligados.
O comando IMPRIMA pode ser usado para criar formatos de saída, com cabeçalhos de página, números de página, subtotais e totais de valores de itens.
Pode ser guardado como procedimento em disco através do uso de um EDITOR, podendo então ser usado várias vezes sem ter que redigitar o formato do relatório.
Outras características do IMPRIMA:
Para utilizar o comando IMPRIMA com o relatório definido em um arquivo em disco, o usuário deve primeiramente criar este arquivo com o editor de textos e então executar o comando IMPRIMA do seguinte modo:
IMPRIMA NOME = <arquivo>
O GERAL procura por <arquivo> no diretório corrente e o executa. Caso <arquivo> não seja encontrado, o GERAL avisa ao usuário.
Um procedimento inexistente é tratado como um erro qualquer num procedimento de relatório.
Para usar a forma de comando IMPRIMA <corpo>, o usuário digita a palavra IMPRIMA e a tecla {ENTER}. Cada instrução ocupa uma linha. Quando o usuário aperta a tecla {ENTER}, o GERAL aguarda por outra linha enviando um ponto de interrogação.
Depois do usuário digitar {ENTER}, o GERAL verifica se a instrução está na forma apropriada. Se uma instrução estiver incorreta, o GERAL envia uma mensagem de erro e aguarda do usuário uma nova instrução através do ponto de interrogação. O usuário deve redigitar a instrução, não sendo necessário redigitar o comando IMPRIMA inteiro até aquele ponto.
O corpo do relatório propriamente dito consiste dos seguintes tipos de instruções:
cabeçalho, detalhe, ordenação, grupo, total e edição.
Com estas instruções o usuário controla cada linha de saída impressa pelo GERAL em resposta ao comando IMPRIMA.
Para sair do processador de relatório, o usuário deve digitar FIM ou a tecla ESC/ESC. A mensagem COMANDO ? aparecerá e o comando IMPRIMA poderá ser executado novamente.
A instrução de cabeçalho é usada para imprimir dados de cabeçalho no topo de cada página do relatório. O formato da instrução de cabeçalho é o seguinte:
C<número>,<mensagem>,<posição> [,ESPAÇO {A|D} [<número>]]
Descrição
|
<número> |
Representa um inteiro de 1 a 9 especificando a linha do cabeçalho para exibição da <mensagem> |
|
<mensagem> |
Representa a informação a ser impressa, e pode ser:
|
|
<posição> |
especifica o número da coluna para impressão de<mensagem> (inicio = 1). O GERAL não verifica a superposição de impressão de itens na saída. É da responsabilidade do usuário escolher as posições corretas dos itens de impressão. O número escolhido pode variar de 1 a 132. |
|
ESPAÇO {A | D}<número> |
determina o número de linhas que serão saltadas antes ou depois da impressão de <mensagem>. As cláusulas A e D informam respectivamente antes e depois; <número> representa o número de linhas saltadas e deve ser um valor inteiro na faixa de 1 a 19. Caso <número> não seja especificado, será saltada uma linha apenas. Para espacejar antes e depois de imprimir uma linha, o usuário deve usar a opção ESPAÇO duas vezes. |
Exemplo
O exemplo a seguir mostra como utilizar esta instrução e exibe o resultado esperado.
C1,"PAG.",120
C1,PAGINA,125,ESPACO D2
C2,"RELATORIO DO INVENTARIO DE PECAS",46
C3,"COOPERATIVA DE PROCESSAMENTO DE DADOS",46,ESPACO A2
A instrução de ordenação tem duas finalidades no comando IMPRIMA.
Sintaxe
O [<número>], <item> [,A|D]
Descrição
|
<número> |
representa o nível de quebra do item de ordenação e deve ser um inteiro na faixa de 1 a 9. |
|
<item> |
representa o nome de um item selecionado, usado para ordenar a impressão do relatório. |
|
A|D |
determinam o tipo de ordenação ascendente e descendente respectivamente. Por omissão é assumido A. |
Os registros que se encontram no arquivo de seleção estão dispostos na ordem da chave utilizada no comando SELECIONE.
A instrução de ordenação permite alterar a ordem dos registros, para a ordem desejada na impressão do relatório.
Exemplo
O exemplo a seguir mostra a ordenação de um arquivo de seleção pelo item MODELO, antes da ordenação e o relatório ordenado.
Registros Selecionados Antes Da Ordenação.
|
LOCAL1 |
MODELO |
PNOME1 |
|
JAPAO |
4000 |
TELETIPO |
|
AMERICA CENTRAL |
4100 |
CONTROLADOR TTY |
|
MEXICO |
4100 |
MEMORIA 32K |
|
AUSTRALIA |
5100 |
MEMORIA 265K |
|
JAPAO |
4100 |
UNIDADE FITA MAGNETICA 7 TRI |
|
AMERICA CENTRAL |
4000 |
UNIDADE FITA MAGNETICA 7 TRI |
|
MEXICO |
5000 |
UNIDADE FITA MAGNETICA 9 TRI |
|
AUSTRALIA |
5100 |
CARTUCHO DE DISCO |
|
CANADA |
5100 |
CARTUCHO DE DISCO |
|
MEXICO |
5100 |
CARTUCHO DE DISCO |
|
JAPAO |
5100 |
DISCO ALTA VELOCIDADE |
|
AMERICA CENTRAL |
4100 |
FIO DE CORRENTE ALTERNADA 5 PES |
|
AUSTRALIA |
4100 |
FIO DE CORRENTE ALTERNAD 5 PES |
|
MEXICO |
4100 |
FIO DE CORRENTE ALTERNADA 10 PES |
|
JAPAO |
5000 |
CABO AUXILIAR 12 PES |
|
AMERICA CENTRAL |
5100 |
CABO AUXILIAR 12 PES |
Registros Selecionados Depois Da Ordenação.
|
LOCAL1 |
MODELO |
PNOME1 |
|
JAPAO |
4000 |
TELETIPO |
|
AMERICA CENTRAL |
4000 |
UNIDADE FITA MAGNETICA 7 TRI |
|
MEXICO |
4100 |
MEMORIA 32K |
|
AMERICA CENTRAL |
4100 |
CONTROLADOR TTY |
|
JAPAO |
4100 |
UNIDADE FITA MAGNETICA 7 TRI |
|
AMERICA CENTRAL |
4100 |
FIO DE CORRENTE ALTERNADA 5 PES |
|
AUSTRALIA |
4100 |
FIO DE CORRENTE ALTERNADA 5 PES |
|
MEXICO |
4100 |
FIO DE CORRENTE ALTERNADA 10 PES |
|
JAPAO |
5000 |
CABO AUXILIAR 12 PES |
|
MEXICO |
5000 |
UNIDADE FITA MAGNETICA 9 TRI |
|
AUSTRALIA |
5100 |
MEMORIA 265K |
|
AUSTRALIA |
5100 |
CARTUCHO DE DISCO |
|
CANADA |
5100 |
CARTUCHO DE DISCO |
|
MEXICO |
5100 |
CARTUCHO DE DISCO |
|
JAPAO |
5100 |
DISCO ALTA VELOCIDADE |
|
AMERICA CENTRAL |
5100 |
CABO AUXILIAR 12 PES |
Todo item num registro pode ser definido como um item de ordenação.
Por exemplo, os registros na figura 8 podem ser ordenados com base no valor de LOCAL1.
O1, MODELO
O2, LOCAL1
Informa ao GERAL para ordenar os registros primeiramente pelo valor de LOCAL1 e depois pelo valor de MODELO. Os resultados são mostrados a seguir:
Registros Ordenados Por Dois Itens De Ordenação.
|
LOCAL1 |
MODELO |
PNOME1 |
|
AMERICA CENTRAL |
4000 |
FIO DE CORRENTE ALTERNADA 5 PES |
|
AMERICA CENTRAL |
4100 |
CONTROLADOR TTY |
|
AMERICA CENTRAL |
4100 |
UNIDADE FITA MAGNETICA TRI |
|
AMERICA CENTRAL |
5100 |
CABO AUXILIAR 12 PES |
|
AUSTRALIA |
4100 |
FIO DE CORRENTE ALTERNADA 5 PES |
|
AUSTRALIA |
5100 |
CARTUCHO DE DISCO |
|
AUSTRALIA |
5100 |
MEMORIA 265K |
|
CANADA |
5100 |
CARTUCHO DE DISCO |
|
JAPAO |
4000 |
TELETIPO |
|
JAPAO |
4100 |
UNIDADE FITA MAGNETICA 7 TRI |
|
JAPAO |
5000 |
CABO AUXILIAR 12 PES |
|
JAPAO |
5100 |
DISCO ALTA VELOCIDADE |
|
MEXICO |
4100 |
MEMORIA 32K |
|
MEXICO |
4100 |
FIO DE CORRENTE ALTERNADA 10 PES |
|
MEXICO |
5000 |
UNIDADE FITA MAGNETICA 9 TRI |
|
MEXICO |
5100 |
CARTUCHO DE DISCO |
Uma quebra de controle ocorre sempre que um item de ordenação troca de valor durante a impressão de um relatório utilizada pelas instruções de grupo e totalização.
O nível mais alto de instrução de ordenação define o item de ordenação majoritário.
Na figura 8, LOCAL1 e o item de ordenação majoritário.
Exemplo:
O exemplo a seguir mostra como o GERAL interpreta os comandos de ordenação, usando o item chamado LOCAL1 como o primeiro item de ordenação e PNOME1 como o último.
O, PNOME1
O1, MODELO
O2, LOCAL1
Uma instrução de detalhe indica a mensagem que será impressa no relatório. O GERAL não imprime valores que não forem definidos numa instrução de detalhe.
Sintaxe
D [<número>],<mensagem>,<posicao>[,ESPAÇO {A|D}
[<número>]] [,PULO {A|D}] [,E{Z|<número>]
Descrição
<número>
Representa um inteiro de 1 a 19 especificando a linha para exibição da <mensagem>
<mensagem>
Representa a informação a ser impressa, e pode ser:
<posição>
Especifica o número da coluna para impressão de <mensagem> (inicio = 1). O GERAL não verifica a superposição de impressão de itens na saída. É da responsabilidade do usuário escolher as posições corretas dos itens de impressão. O número escolhido pode variar de 1 a 132.
ESPAÇO {A|D} <número>
Determina o número de linhas que serão saltadas antes ou depois da impressão de <mensagem>. As cláusulas A e D informam respectivamente antes e depois; <número> representa o número de linhas saltadas e deve ser um valor inteiro na faixa de 1 a 19. Caso <número> não for especificado será saltada uma linha apenas. Para espacejar antes e depois de imprimir uma linha, o usuário deve usar a opção ESPAÇO duas vezes.
PULO {A|D}
Determina um salto para o topo da próxima página antes ou depois da impressão de <mensagem>. As cláusulas A e D informam respectivamente antes e depois. O salto de folha só é executado se for impresso algum registro na folha atual.
E{Z|<número>}
Determina a máscara de edição para a mensagem impressa. EZ determina que serão suprimidos os zeros à esquerda de um valor numérico. E<número> corresponde ao número da instrução de edição. Somente uma instrução de edição pode ser usada para cada instrução detalhe.
Exemplo
O exemplo a seguir mostra o resultado de um comando IMPRIMA utilizando-se instruções de detalhe.
COMANDO ? SELECIONE PNUM1 < 53000
FORAM SELECIONADOS 5 REGISTROS
COMANDO ? IMPRIMA
? D, "NÚMERO DA PECA =", 15
? D, PNUM1, 26
? D, "NOME DA PECA =", 45
? D, PNOME1, 66
? FIM
COMANDO ?
Figura 9 - Saída Usando Instruções De Detalhe.
-------------------------------------------------------------------------------------------------------------
NÚMERO DA PECA=11032-NOME DA PECA=MEMORIA 32K
NÚMERO DA PECA=31000-NOME DA PECA=CARTUCHO DE DISCONÚMERO DA PECA=06600-NOME DA PECA=IMPRESSORA 600 LPMNÚMERO DA PECA=25000-NOME DA PECA=UNIDADE FITA MAGNETICA 7TRK.
-------------------------------------------------------------------------------------------------------------
É utilizada para imprimir, ao final do relatório, a freqüência das quebras gerais de cada grupo. Um grupo é definido por uma instrução de ordenação rotulada de 1 a 9. Para cada grupo pode ser associada uma instrução de freqüência de quebra bastando usar o mesmo número de rótulo.
Sintaxe
U <número>, <mensagem>,<posicao> [,ESPACO {A|D}
<número>] [,PULO] [,E{Z|<número>]
Descrição
|
<número> |
representa um inteiro de 1 a 9 especificando a linha para exibição da <mensagem>. |
|
<mensagem> |
representa a informação a ser impressa, e pode ser:
|
|
<posição> |
especifica o número da coluna para impressão de <mensagem> (inicio = 1). O GERAL não verifica a superposição de impressão de itens na saída. É da responsabilidade do usuário escolher as posições corretas dos itens de impressão. O número escolhido pode variar de 1 a 132. |
|
ESPACO {A|D} |
<número> determina o número de linhas que serão saltadas antes ou depois da impressão de <mensagem>. As cláusulas A e D informam respectivamente antes e depois; <número> representa o número de linhas saltadas e deve ser um valor inteiro na faixa de 1 a 19. Caso <número> não seja especificado, será saltada uma linha apenas. Para espacejar antes e depois de imprimir uma linha, o usuário deve usar a opção ESPAÇO duas vezes. |
|
PULO {A|D} |
determina um salto para o topo da próxima página antes ou depois da impressão de <mensagem>. As cláusulas A e D informam respectivamente antes e depois. O salto de folha é executado se for impresso algum registro na folha atual. |
|
E{Z|<número> |
determina a máscara de edição para a mensagem impressa. EZ determina que serão suprimidos os zeros à esquerda de um valor numérico. E<número> corresponde ao número da instrução de edição. Somente uma instrução de edição pode ser usada para cada instrução detalhe. |
Instruções de grupo são utilizadas para imprimir mensagens sempre que ocorrer uma quebra de nível. Um nível é definido por uma instrução de ordenação rotulada de 1 a 9. Para cada nível pode ser associada uma instrução de grupo bastando usar o mesmo número de rótulo. Havendo uma quebra, o GERAL imprime a instrução de grupo associada a este nível.
Instruções de grupo também são impressas no início do relatório, pois o valor do item associado à quebra, e vazio.
Sintaxe
G[<linha>]<número>, <mensagem>,<posicao>
[,ESPACO {A|D} <número>] [,PULO] [,E{Z|<número>}]
Descrição
|
<linha> |
representa ordem do cabeçalho, se igual a 1 corresponde ao primeiro cabeçalho se igual a 2 corresponde ao segundo cabeçalho (subcabeçalho). |
|
<número> |
representa um inteiro de 1 a 9 especificando a linha para exibição da <mensagem>. |
|
<mensagem> |
representa a informação a ser impressa, e pode ser:
|
|
<posição> |
especifica o número da coluna para impressão de <mensagem> (início = 1). O GERAL não verifica a superposição de impressão de itens na saída. É da responsabilidade do usuário escolher as posições corretas dos itens de impressão. O número escolhido pode variar de 1 a 132. |
|
ESPACO {A|D} |
<número> determina o número de linhas que serão saltadas antes ou depois da impressão de <mensagem>. As cláusulas A e D informam respectivamente antes e depois; <número> representa o número de linhas saltadas e deve ser um valor inteiro na faixa de 1 a 19. Caso <número> não seja especificado, será saltada uma linha apenas. Para espacejar antes e depois de imprimir uma linha, o usuário deve usar a opção ESPAÇO duas vezes. |
|
PULO {A|D} |
determina um salto para o topo da próxima página antes ou depois da impressão de <mensagem>. As cláusulas A e D informam respectivamente antes e depois. O salto de folha só é executado se for impresso algum registro na folha atual. |
|
E{Z|<número>} |
determina a máscara de edição para a mensagem impressa. EZ determina que serão suprimidos os zeros à esquerda de um valor numérico. E<número> corresponde ao número da instrução de edição. Somente uma instrução de edição pode ser usada para cada instrução detalhe. |
Exemplo
O exemplo a seguir mostra um relatório onde foram definidos níveis de ordenação e de grupo. O relatório será ordenado primeiramente por LOCAL1 e em seguida por MODELO. As instruções de grupo só serão impressas na mudança dos valores destes campos (figura 10).
COMANDO? SELECIONE LOCAL1 < "JAPAO"
FORAM SELECIONADOS 00025 REGISTROS
COMANDO ? IMPRIMA
? C1, "PAG.",65
? C1, PAGINA,69,ESPACO A2
? C2, "RELATORIO DO INVENTARIO DE PECAS",19,ESPACO A2
? C3, "COOPERATIVA DE PROCESSAMENTO DE DADOS",19
? O , PNOME1
? O1, MODELO
? O2, LOCAL1
? G1, MODELO,31
? G11,"QUEBROU MODELO",5
? G21,"??????????????",5
? G2, "MERCADO =",5
? G2, LOCAL1,15
? G12,"//////////////",5
? G22,"**************",5
? U1,"FIM DO RELATORIO",15
? D1, PNOME1,53
Instruções de total são utilizadas para imprimir mensagens sempre que ocorrer uma quebra de nível. Um nível é definido por uma instrução de ordenação rotulada de 1 a 9. Para cada nível pode ser associada uma instrução de total, bastando usar o mesmo número de rótulo. Havendo uma quebra, o GERAL imprime a instrução de total associada a este nível.
Instruções de total não são impressas somente nas quebra de nível, mas também no final do relatório.
Sintaxe
T {[F|<número>],<mensagem>,<posicao>[,ESPACO]
[,PULO] [,E{Z,<número>}]
[,SOMA|MEDIA|FREQUENCIA]
Descrição
|
{F|<número>} |
representa um inteiro de 1 a 9 especificando a linha para exibição da <mensagem>. Sendo especificado F, determina que a mensagem será impressa no final do relatório. |
|
<mensagem> |
representa a informação a ser impressa, e pode ser:
|
|
<posição> |
especifica o número da coluna para impressão de <mensagem> (inicio = 1). O GERAL não verifica a superposição de impressão de itens na saída. É da Responsabilidade do usuário escolher as posições corretas dos itens de impressão. O número escolhido pode variar de 1 a 132. |
|
ESPACO {A|D} |
<número> determina o número de linhas que serão saltadas antes ou depois da impressão de <mensagem>. As cláusulas A e D informam respectivamente antes e depois; <número> representa o número de linhas saltadas e deve ser um valor inteiro na faixa de 1 a 19. Caso <número> não seja especificado, será saltada uma linha apenas. Para espacejar antes e depois de imprimir uma linha, o usuário deve usar a opção ESPAÇO duas vezes. |
|
PULO {A|D} |
determina um salto para o topo da próxima página antes ou depois da impressão de <mensagem>. As cláusulas A e D informam respectivamente antes e depois. O salto de folha só é executado se for impresso algum registro na folha atual. |
|
E{Z|<número>} |
determina a máscara de edição para a mensagem impressa. EZ determina que serão suprimidos os zeros à esquerda de um valor numérico. E<número> corresponde ao número da instrução de edição. Somente uma instrução de edição pode ser usada para cada instrução detalhe. |
|
SOMA |
determina que serão acumulados os valores dos itens de quebra. |
|
MÉDIA |
determina que será impressa a média aritmética do item de quebra. |
|
FREQUÊNCIA |
determina que será impressa a quantidade de valores dos itens impressos a cada quebra de item. |
Para as opções SOMA, MÉDIA e FREQUÊNCIA, o valor acumulado e impresso no relatório e o acumulador são zerados para o próximo grupo de controle. Se um total final tiver sido especificado por uma instrução de total rotulada com a letra F, o total de todos os valores impressos para um item é impresso depois da última linha detalhe do relatório.
Caso seja usado um item numa instrução de total sem uma das opções MÉDIA, FREQUÊNCIA ou SOMA, o valor impresso é o próximo valor de quebra. Caso seja usado o nome de um item, o GERAL imprime o valor corrente do item no momento da quebra.
Exemplo
O exemplo a seguir mostra a utilização dos controles de totalizações.
COMANDO? SELECIONE PNUM1 <> 00000
LEITURA SEQUENCIAL. PROSIGO (S OU N) ? S
FORAM SELECIONADOS 00049 REGISTROS
COMANDO? IMPRIMA
? C1, "PAG.",65
? C1, PAGINA, 69, ESPACO A2
? C2, "RELATORIO DE PECAS DO INVENTARIO", 46
? C3, "COOPERATIVA DE PROCESSAMENTO DE DADOS", 43, ESPACO A2
? O , PNOME1
? O1, MODELO
? O2, LOCAL1
? G1, MODELO, 30
? G2, LOCAL1, 20
? T2, "TOTAL", 53
? T2, PRECO, 69, ESPACO A2, SOMA
? D1, PNOME1,53
? D1, PRECO, 69
? FIM
Figura 11 - Saída Do Exemplo Anterior
|
PAG.1 RELATÓRIO DE PECAS DO INVENTÁRIO COOPERATIVA DE PROCESSAMENTO DE DADOS |
|||
|
AMERICA CENTRAL |
4000 |
FIO CORRENTE ALTERNADA 5 PES |
00150 |
|
4100 |
CONTROLADOR TTY |
09000 |
|
|
|
UNIDADE FITA MAGNETICA 7 TRI |
15000 |
|
|
5100 |
CABO AUXILIAR 12 PES |
00170 |
|
|
TOTAL |
40820 |
||
|
AUSTRALIA |
4000 |
DISCO ALTA VELOCIDADE |
01850 |
|
|
FIO CORRENTE ALTERNADA 5 PES |
00150 |
|
|
4100 |
MEMORIA 265K |
14700 |
|
|
5100 |
CABO AUXILIAR 12 PES |
00175 |
|
|
TOTAL |
16875 |
||
|
CANADA |
4100 |
MEMORIA 265K |
09000 |
|
UNIDADE FITA MAGNETICA 7 TRI |
15500 |
||
|
5100 |
CARTUCHO DE DISCO |
00800 |
|
|
TOTAL |
49700 |
||
|
JAPAO |
4000 |
TELETIPO |
00340 |
|
4100 |
UNIDADE FITA MAGNETICA 7 TRI |
15000 |
|
|
5000 |
CABO AUXILIAR 12 PES |
00175 |
|
|
5100 |
DISCO ALTA VELOCIDADE |
01850 |
|
|
|
TOTAL |
17365 |
|
|
MEXICO |
4100 |
FIO CORRENTE ALTERNADA 10PES |
00250 |
|
MEMORIA 32K |
09000 |
||
|
5000 |
UNIDADE FITA MAGNETICA 9 TRI |
18500 |
|
|
5100 |
CARTUCHO DE DISCO |
00800 |
|
|
|
TOTAL |
28550 |
|
Instruções de edição são utilizadas para mascarar a saída das mensagens impressas através das instruções de detalhe, grupo e total. Esta instrução realiza tarefas como:
Podem ser usadas até 10 instruções de edição rotuladas de E0 até E9.
Para usar tal instrução, o usuário inclui o rótulo da instrução de edição na lista de opções. Uma única instrução de edição pode ser usada por mais de uma instrução de impressão.
Sintaxe
E [<número>], <mascara>
Descrição
<número>
Representa um único inteiro de 0 a 9 que identifica a instrução de edição.
<mascara>
Representa uma cadeia de caracteres. Para edição de valores numéricos, <mascara> pode ter o tamanho de 1 até 20 caracteres. Para edição de valores alfanuméricos, <mascara> pode ter o tamanho de 1 a 72 caracteres.
Uma máscara para edição de valores alfanuméricos consiste de uma cadeia de caracteres. Qualquer caractere diferente de X é exibido como sendo parte da máscara, o caractere X é utilizado para exibição o valor do item.
Caso o tamanho da máscara seja menor que o tamanho do item a ser exibido, a impressão é truncada no tamanho da máscara.
Caso o tamanho da máscara seja maior que o tamanho do item a ser exibido, são impressos brancos até completar o tamanho da máscara.
Figura 12 - Saída Usando Máscaras De Edição Alfanuméricas.
|
valor de item |
máscara de edição |
resultado impresso |
|
ABCD |
"X-X-X-X" |
A-B-C-D |
|
ABCD |
"XX" |
AB |
|
ABCD |
"XXXXX" |
ABCD |
|
A34B |
"X//X-X-X-X" |
A//3-4-- |
|
ABCD |
"—X" |
—A |
Uma máscara de edição de valores numéricos consiste de uma cadeia de caracteres posicionais com até 20 caracteres.
Caso a quantidade de dígitos significativos seja maior que a máscara de edição, somente serão exibidos os dígitos definidos pelo tamanho da máscara.
Os caracteres permitidos para edição de numéricos são descritos a seguir.
Se um sinal negativo aparecer na máscara em qualquer posição que não seja na posição do caractere mais a direita da máscara, então este sinal será tratado como um caractere de inserção.
Cada um dos fixadores e dos caracteres de sinal, servem para um propósito especial na edição de valores. Os caracteres e seus significados são especificados na tabela 1.5.
Tabela 1.5 - Caracteres De Máscara De Edição.
|
Caractere |
Explicação |
|
9 |
Determina a posição dos dígitos na máscara, exibindo zeros à esquerda. |
|
Z |
Determina a posição dos dígitos na máscara, exibindo brancos para cada zero à esquerda. |
|
* |
Determina a posição dos dígitos na máscara, exibindo asteriscos para cada zero à esquerda. |
|
$ |
Determina a posição dos dígitos na máscara, exibindo brancos para cada zero à esquerda, exceto na primeira posição, onde é exibido um caractere "$" (cifrão). |
|
CR |
Determina a exibição dos caracteres "CR" (crédito) à direita de valores negativos. Para valores positivos são exibidos brancos à direita. Devem ser os últimos caracteres na máscara. |
|
- |
Determina a exibição do caractere "-" à direita de valores negativos. Para valores positivos será exibido um brancos à direita. Devem ser os últimos caracteres na máscara. |
Qualquer outro caractere será exibido na posição definida pela máscara de edição.
Exemplos
O exemplo a seguir mostra algumas formas de utilização das máscaras de edição de numéricos com o resultado esperado.
Figura 13 - Saída Usando-se Máscaras De Edição Numéricas:
|
Valor do item |
Mascara de edição |
Resultado mostrado |
|
0059 |
"$$$,999 |
$ 059 |
|
001024 |
"ZZZ,ZZZ" |
1,024 |
|
0010555 |
"$$,$$$.99CR" |
$ 105.55CR |
|
00010555 |
"$$,$$$.99CR" |
$ 105.55 |
|
0010555 |
"$$,$$$.99-" |
$ 105.55 |
|
00010555 |
"$$,$$$.99-" |
$ 105.55 |
|
15039250 |
"$,$$$,$$$.99CR" |
$150,392.50 |
|
00049 |
"*****" |
***49 |
|
044240474 |
"999-99-9999" |
044-24-0474 |
|
2145 |
"$,$$$.99" |
$ 21.45 |
|
2145 |
"$,$$$.99-" |
$ 21.45 |
O exemplo a seguir mostra a utilização de instruções de edição com máscaras de edição de numéricos.
COMANDO ? SELECIONE PNUM1 < > 0000000000
LEITURA SEQUENCIAL. PROSSIGO (S OU N) ? S
FORAM SELECIONADOS 00049 REGISTROS
COMANDO ? IMPRIMA
? C1, "PAG.", 65
? C1, PAGINA, 69, ESPACO A2
? C2, "RELATORIO DO INVENTARIO DE PECAS", 46
? C3, "COOPERATIVA DE PROCESSAMENTO"+;
"DE DADOS", 43, ESPACO A2
? O , PNOME1
? O1, MODELO
? O2, LOCAL1
? G1, MODELO, 30, E1
? G2, LOCAL1, 20
? D1, PNOME1, 53
? D1, PRECO, 69, E2
? E1, "ZZZZZZZZZZ"
? E2, "$.$$$.$$$.$99,00"
? FIM
Figura 14 - Saída Do Exemplo Anterior:
|
RELATORIO DO INVENTARIO DE PECAS COOPERATIVA DE PROCESSAMENTO DE DADOS |
|||
|
AMERICA CENTRAL |
40 |
FIO CORRENTE ALTERNADA 5 PES |
$150,00 |
|
41 |
CONTROLADOR TTY |
$9.000,00 |
|
|
UNIDADE FITA MAGNETICA 7 TRI |
$15.000,00 |
||
|
51 |
CABO AUXILIAR 12 PES |
$170,00 |
|
|
AUSTRALIA |
40 |
DISCO ALTA VELOCIDADE |
$1.850,00 |
|
FIO CORRENTE ALTERNADA 5 PES |
$150,00 |
||
|
41 |
MEMORIA 265K |
$14.700,00 |
|
|
51 |
MEMORIA 265K |
$14.700,00 |
|
|
CABO AUXILIAR 12 PES |
$175,00 |
||
|
CARTUCHO DE DISCO |
$800,00 |
||
|
CANADA |
41 |
MEMORIA 265K |
$9.000,00 |
|
UNIDADE FITA MAGNETICA 7 TRI |
$15.500,00 |
||
|
51 |
CARTUCHO DE DISCO |
$800,00 |
|
|
JAPAO |
40 |
TELETIPO |
$340,00 |
|
41 |
UNIDADE FITA MAGNETICA 7 TRI |
$15.000,00 |
|
|
50 |
CABO AUXILIAR 12 PES |
$175,00 |
|
|
51 |
DISCO ALTA VELOCIDADE |
$1.850,00 |
|
|
MEXICO |
41 |
FIOCORRENTE ALTERNADA10 PES |
$250,00 |
|
MEMORIA 32K |
$9.000,00 |
||
|
50 |
UNIDADE FITA MAGNETICA 9 TRI |
$18.500,00 |
|
|
51 |
CARTUCHO DE DISCO |
$800,00 |
|
