AS/400 Capítulo 8: Display Files

Neste capítulo vamos mostrar-lhe como pode criar menus e ecrãs em AS/400.

São ficheiros definidos em DDS que permitem criar menus e ecrãs no AS/400 para interacção com os utilizadores. Os display files são constituídos por vários registos que correspondem a diferentes partes do ecrã (definidas pelo programador). Estas partes podem ou não sobrepor-se.

O utilitário SDA permite “desenhar” o que queremos que apareça no ecrã e o utilitário encarrega-se de gerar o código DDS. Vamos em seguida criar um ecrã com a ajuda do SDA e depois vamos analisar as partes mais relevantes do código gerado, para ficar com uma ideia da estruturação do código, pois existem situações em que é mais fácil fazer uma alteração manipulando o código.

Vamos neste capitulo criar um ecrã que nos mostrará os dados de um cliente.

Para abrir o SDA escreva na linha de comando STRSDA. Vai lhe surgir este ecrã:

STRSDA
STRSDA

Escolha a opção 1 e coloque os dados como vê na figura abaixo, onde o source file é onde o ficheiro vai ser guardado (deve ser QDDSSRC, pois o código destes ficheiros é, como ja disse antes, DDS). Member refere-se ao nome que vamos dar ao membro do ficheiro.

Criar ficheiro
Criar ficheiro

Prima Enter. Vai lhe surgir um novo ecrã. Adicione um registo ao ficheiro da maneira que pode ver na próxima imagem:

Listagem de registos do ficheiro
Listagem de registos do ficheiro

Agora deve especificar de que tipo vai ser este registo, neste caso será RECORD:

Adicionar registo
Adicionar registo

Após o Enter aparece-lhe um ecrã vazio. Nesse ecrã puderá desenhar o registo do topo do ecrã da figura seguinte.

Note que quando escreve uma string deve colocar plicas a delimitá-la, pois senão cada palavra vai equivaler a um campo isolado. Colocando as plicas a string pode ser manipulada como uma única unidade no ecrã.

A função *USER vai mostrar no ecrã o nome do utilizador. Existem outras funções deste género como *DATE (mostra a data actual do sistema), *TIME (mostra a hora actual do sistema) *SYSNAME (mostra o nome do sistema).

No final prima Enter. Tenha sempre atenção em verificar se tudo se encontra correctamente posicionado antes de um Enter, pois após o Enter não é possivel alterar o aspecto do ecrã a partir do SDA, só manipulando o código.

Desenhando no SDA
Desenhando no SDA

Mover um campo

Se quiser mover o campo no ecrã para a direita, coloque imediatamente à direita do campo sinais >. O número de sinais que colocar será o numero de posições que o campo se deslocará. Para mover o campo para a esquerda coloque sinais < à esquerda do campo.

Mover um campo
Mover um campo

Centrar um campo

Se quiser centrar um campo no ecrã escreva ac imediatamente antes do início do campo, ou seja, o 'a' vai ficar na posição anterior ao campo e o 'c' vai ficar colocado sobre a primeira letra do campo. Prima Enter.

Prima F3 para terminar a edição deste ecrã. Escolha a opção 1 para guardar as alterações:

Centrar um campo
Centrar um campo

Crie agora outro registo com o nome BOTTOM, da mesma forma que criou o registo TOP.

Quando abrir o ecrã de edição do registo prima F9. Vai lhe aparecer este ecrã:

Visualizar vários registos
Visualizar vários registos

Aqui pode selecionar os registos que deseja visualizar ao mesmo tempo que edita o registo BOTTOM (repare que no STATUS do registo diz “In use”). Só pode selecionar no máximo 3 registos. Deve selecioná-los com números sequenciais de 1 a 3. Selecione o campo TOP e prima Enter.

Criar o registo Bottom
Criar o registo Bottom

Desenhe o registo como vê na figura seguinte. Faça a linha com o auxílio da tecla Underscore. Prima Enter.

Alterar propriedades
Alterar propriedades

Alteração das propriedades de um campo

Vamos agora editar as propriedades do campo “F3=Exit”. Coloque um asterisco imediatamente antes do início do campo, como vê na imagem seguinte, e prima Enter.

Alterar propriedades de um campo
Alterar propriedades de um campo

Aparece-lhe o ecrã seguinte. Coloque um 'Y' na opção Colors, pois vamos alterar a cor de visualização do campo.

Selecionar opção colors
Selecionar opção colors

Coloque um 1 no campo Blue:

Selecionar cor azul
Selecionar cor azul

Dê Enters até regressar ao ecrã de desenho. O campo aparece agora com a cor azul. Saia da edição deste registo (F3) e guarde o seu trabalho.

Crie um novo registo, MIDDLE, da mesma forma que criou o BOTTOM e o TOP.

Selecione para visualização os registos que já criou:

Criar registo middle
Criar registo middle

Desenhe os campos que vê na imagem seguinte. Prima enter no final.

Adicionar campos
Adicionar campos

Utilizar campos de tabelas

Vamos agora selecionar os campos da tabela Clients para pudermos mostrar no ecrã. Prima F10. No menu que lhe surge deve selecionar o registo da tabela Clients para output, opção 3, pois neste exemplo só desejamos mostrar os dados. Se desejar fazer o input de dados ou input/output selecione entre as opções a que lhe convier. Escreva no menu o que vê na imagem em baixo e prima Enter no final.

Selecionar a tabela
Selecionar a tabela

Pode ver que agora em baixo aparece uma mensagem com o nome de todos os campos precedidos de um número. Para pudermos colocar os campos no ecrã devemos colocar o número do campo que desejamos precedido de um &, como pode ver na figura seguinte. Tenha atenção, pois se der um Enter antes de selecionar os campos todos, a ordem numérica deles vai-se alterar.

Usar campos da tabela
Usar campos da tabela

O resultado final será este:

Resultado final
Resultado final

Saia da edição do registo, sem se esquecer de guardar as alterações. Só temos agora que fazer uns pequenos ajustes nas opções dos registos e do ficheiro.

Opções ao nivel do registo (overlay)

Escolha a opção 8 para o registo TOP:

Alterar opção overlay
Alterar opção overlay

Selecione a opção Overlay Keywords:

Alterar opção overlay passo 2
Alterar opção overlay passo 2

Coloque Y na opção Overlay without erasing. Esta opção permite-lhe mostrar este registo no ecrã simultaneamente com outros. Prima Enter até voltar ao menu com os registos e active esta opção para os restantes dois registos.

Alterar a opção overlay passo 3
Alterar a opção overlay passo 3

Opções ao Nível do ficheiro (indicadores)

Vamos agora identificar o indicador 03 (para o F3=Exit) ao nível do ficheiro. No menu onde encontra a listagem dos registos pressione F14 (F13=shift+F1; F14=shift+F2; F15=shift+F3, etc.). No ecrã seguinte escolha a opção Indicator Keywords:

Adicionar indicadores ao nível do ficheiro
Adicionar indicadores ao nível do ficheiro

Coloque uma linha como vê na imagem:

Adicionar indicador para tecla F3
Adicionar indicador para tecla F3

Prima Enter até voltar ao menu dos registos. Prima F3 e guarde o ficheiro.

Código DDS para Display Files

Pode ver o código do membro que acabou de criar indo ao ficheiro de source QDDSSRC e abrindo o membro com o nome SHW_CLI. No início do ficheiro deve ter algo deste género:

A DSPSIZ(24 80 *DS3)
A CF03(03 'Exit')

Estas opções afectam todo o ficheiro. Deve acrescentar nesta área uma linha que vai mais à frente permitir renomear os indicadores no ficheiro plain (acrescente, por exemplo, a seguir à linha com DSPSIZ):

A INDARA

Deve ter depois uma linhas como estas:

A R TOP
A OVERLAY
A 1 65USER
A 3 27'Client Details:'

Estas linhas estão a definir apenas o registo TOP. Repare que aparece a opção OVERLAY, que tínhamos definido no SDA. A palavra USER está colocada no ecrã na linha 1 coluna 65.

Repare agora nesta linha do registo MIDDLE:

A ID_CLI R O 8 23REFFLD(CLIENTS/ID_CLI DEMO/CLIENTS)

Está definida a referência ao campo da tabela CLIENTS, a coluna (23) e linha (8) onde está posicionado o campo, o tipo de leitura à tabela é para output: o ID_CLI é o nome que este campo tem, é igual ao campo correspondente na tabela CLIENTS.

Compile o ficheiro com a opção 14, quando fechar o membro, para as alterações se tornarem efectivas.

Executar display files

Agora para conseguir “correr” este ecrã tem que criar um membro plain que vai tratar de mostrar o conteúdo do display file no ecrã. Consulte o ficheiro QplainSRC.SHW_CLI para ver como este ficheiro deve ser definido. Este ficheiro está bastante comentado assim pode perceber melhor a sua estrutura. Tente criar este ficheiro e corra-o. O resultado deve ser o seguinte:

Execução do display file 1
Execução do display file 1

Se carregar Enter:

Execução do display file 2
Execução do display file 2

Artigos relacionados