Anterior Sumário Próximo OpenBASE! O Banco de Dados inteligente. Fale conosco!

IMPRIMA

Propósito

Imprimir relatório formatado no dispositivo lógico associado.

Sintaxe

IMPRIMA NOME = <arquivo> [PAGINA = <número>] ou 

IMPRIMA [PAGINA = <número>] [NAOLISTA] <corpo>

FIM

Descrição

<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.

Instruções de Cabeçalho

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:

  • Uma cadeia de caracteres entre aspas.
  • Uma das palavras chaves $PÁGINA, $DATA $HORA, indicando respectivamente, contador automático de páginas, a data e a hora do sistema.
  • Nome de um item de dados do banco de dados.
  • Uma das variáveis $0 a $9 criadas pelo comando CALCULE

<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

Instruções de Ordenação

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

Instruções De Detalhe

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.

-------------------------------------------------------------------------------------------------------------

Instrução para freqüência de quebras

É 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:

  • uma cadeia de caracteres entre aspas uma das palavras chaves $PÁGINA, $DATA ou $HORA, indicando respectivamente, contador automático de páginas, a data e a hora do sistema.
  • nome de um item de dados do banco de dados.
  • uma das variáveis $0 a $9 criadas pelo comando CALCULE

<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

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:

  • uma cadeia de caracteres entre aspas .
  • uma das palavras chaves $PAGINA, $DATA ou $HORA, indicando respectivamente, contador automático de páginas, a data e a hora do sistema.
  • nome de um item de dados do banco de dados.    
  • uma das variáveis $0 a $9 criadas pelo comando CALCULE

<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

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:

  • uma cadeia de caracteres entre aspas.
  • uma das palavras chaves $PAGINA, $DATA ou $HORA, indicando respectivamente, contador automático de páginas, a data e a hora do sistema.
  • nome de um item de dados do banco de dados.
  • uma das variáveis $0 a $9 criadas pelo comando CALCULE

<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

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.

Edição De Alfanuméricos

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

Edição De Numéricos

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

Anterior Sumário Próximo OpenBASE! O Banco de Dados inteligente. Fale conosco!