Auxílios do VisualAge Generator

EZCHART

EZCHART permite acessar o Interactive Chart Utility (ICU) do Graphic Data Display Manager (GDDM) a partir do programa VisualAge Generator.

Usos

A chamada a EZCHART é essencialmente uma chamada a um programa não-VisualAge Generator que converte os dados dos eixos X e Y no ponto flutuante e o passa ao ICU. Ocorre alguma verificação de parâmetros em EZCHART e os códigos de retorno são definidos de acordo com ela. O ICU não retorna nenhuma informação ao programa que faz a chamada. Todos os recursos que costumam estar disponíveis no ICU estão disponíveis ao usuário de programas VisualAge Generator.

Considerações sobre Definição para EZCHART

Algum conhecimento de ICU é útil quando se usa EZCHART. Consulte a Presentation Graphics Feature (PGF) Reference para obter mais informações sobre o ICU. A introdução explica muitos dos termos usados e a descrição de CALL explica os parâmetros passados por VisualAge Generator Server for MVS, VSE, and VM.

Programa VisualAge Generator que usa EZCHART pode ser aquele que pede dados ao usuário através de vários mapas e depois os coloca no formato necessário, mostrando o resultado na forma de gráfico. A partir daí, o usuário do programa pode ser autorizado a alterar o gráfico, dependendo da opção DISPLAY indicada na lista de parâmetros pelo programa VisualAge Generator. Os programas que permitem sessão interativa com o ICU assumem que o usuário do programa conhece o ICU, porque o VisualAge Generator não tem nenhum controle sobre a sessão do ICU.

O programa VisualAge Generator pode ser programado para coletar e rearrumar os dados do usuário e depois imprimir os resultados em forma de gráfico, possivelmente com vários tipos de gráficos incorporando os mesmos dados. Nesse caso, o uso de EZCHART pode ser inteiramente transparente ao usuário do programa, porque PRINT pode ser uma opção definida num mapa VisualAge Generator que faz uma CALL a EZCHART com a opção PRINT e depois retorna ao programa VisualAge Generator.

Os analistas podem usar os programas VisualAge Generator para colocar dados coletados no ICU e modificar os gráficos. Esses gráficos podem então ser usados em outros programas VisualAge Generator.

A opção para exibir um gráfico sem sessão do ICU pode ser útil para demonstrações e reuniões, especialmente se a saída puder ser projetada numa tela grande.

Parâmetros para EZCHART

Os parâmetros a seguir devem ser especificados na seguinte ordem:

  1. Código de retorno
  2. Controle de tabela
  3. Controle de dados
  4. Dados do eixo-X
  5. Dados do eixo-Y
  6. Teclas
  7. Rótulos
  8. Cabeçalho

Código de retorno, controle de tabela e controle de dados são parâmetros obrigatórios. Os outros parâmetros são opcionais.

Você pode deixar de fora parâmetros não usados do fim da lista ao chamar EZCHART e os dados simulados são passados para ICU, mas parâmetros não podem ser deixados de fora do meio da lista. Por exemplo, quando rótulos forem ser usados, XDATA ainda deve ser passado embora as informações nesse registro não serão usadas.

Validação da Lista de Parâmetros

EZCHART pega a lista de parâmetros passados e faz o seguinte:

Parâmetro de código de retorno para EZCHART

O código de retorno é um campo numérico de 4 bytes para código de conclusão. Esse campo não pode ser definido como binário e, deveria ser verificado se contém um valor não-zero no retorno da chamada à EZCHART.

Os seguintes códigos de retorno de erro podem ser recebidos de EZCHART:

2
Um ou mais dos 3 parâmetros obrigatórios não foi passado, ou:
KEYL > 0, mas nenhum registro KEYS foi passado, ou:
LABELL > 0, mas nenhum registro LABELS foi passado, ou:
HEADINGL > 0, mas nenhum registro HEADING foi passado, ou:
PAIRING > 0, mas nenhum XDATA foi passado.

3
Incapaz de obter armazenamento para parâmetros X ou Y

4
Estouro em conversão de ponto flutuante

8
Faltando cópias da impressora

9
Faltando nome da impressora

10
Carga ou ligação para GDDM falhou

Parâmetro de controle de tabela para EZCHART

O controle de tabela é uma estrutura de formato especificado contendo informações de controle necessárias para executar a sessão ICU:

LEVEL
Item binário com comprimento de 9 (BIN 4 bytes) o qual deve ser 0

DISPLAY
BIN 4 bytes; um número de 0 a 7 controlando a sessão ICU

A parte DISPLAY do parâmetro do Controle de Tabela controla o tipo de sessão ICU que é chamado. Existem oito opções de DISPLAY oferecidas pelo ICU; todas são suportadas e transparentes para o VisualAge Generator:

DISPLAY=0
Essa opção cria um Arquivo de Dados de Tabela usando os dados fornecidos nos outros parâmetros. Nenhuma sessão ICU é iniciada e nenhuma tabela é criada.

DISPLAY=1
Essa opção entra o ICU no painel inicial, tendo inicializado a tabela e formatos de dados usando os parâmetros passados.

DISPLAY=2
Essa opção exibe a tabela solicitada com os dados passados do programa e, em seguida permite que o usuário do programa use os recursos de ICU interativamente para modificar e salvar a tabela.

DISPLAY=3
Essa opção exibe a tabela solicitada com os dados passados do programa, mas limita o acesso do usuário do programa aos menus do ICU.

DISPLAY=4
Essa é a opção de impressão que imprime o mapa especificado no dispositivo especificado e retorna o controle para o programa.

DISPLAY=5
Essa opção usa os parâmetros para construir uma tabela, mas nenhuma E/S de dispositivo é executada.

DISPLAY=6
Essa opção é a mesma que a opção 5, exceto que o usuário pode modificar a tabela.

DISPLAY=7
Essa opção cria uma tabela dos parâmetros passados e a envia para o dispositivo de saída atual. Nenhum painel de menu do ICU é usado.

HELP
BIN 4 bytes; valores possíveis são 0 e 1, onde 1=informações de auxílio estão no painel quando ele aparece pela primeira vez

ISOLATE
BIN 4 bytes; valores possíveis são 0 e 1, onde 0=usuário pode SAVE(salvar) e RESTORE(restaurar) na sessão ICU

FORMNAME
Nome de 8 caracteres de um formato de tabela definido previamente ou um asterisco para indicar um gráfico de linha

DATANAME
Nome de 8 caracteres dos dados salvos antes ou asterisco indicando que os dados foram passados para a CALL

Se DATANAME for igual a um asterisco, você deve passar dados de eixo-Y em uma chamada à EZCHART. Caso contrário, resultados inesperados podem ocorrer.

PAIRING
BIN 4 bytes; valores possíveis são 0 e 1, onde 1=dados passados que estão em pares

NG
BIN 4 bytes; número de grupos nos dados sendo passados

NE
BIN 4 bytes; número máximo de elementos em qualquer grupo

KEYL
BIN 4 bytes; comprimento de chaves passadas

LABELL
BIN 4 bytes; comprimento de rótulos passados como dados de eixo-X

HEADINGL
BIN 4 bytes; comprimento de cabeçalho de cadeia de caracteres

PRTNAME
Nome de 8 caracteres do destino de impressão local

PRTDEP
BIN 4 bytes; profundidade da tabela na impressora

PRTWID
BIN 4 bytes; largura da tabela na impressora

PRTCOPY
BIN 4 bytes; número de cópias a serem impressas.

Parâmetro de controle de dados para EZCHART

Controle de dados é uma matriz de itens que indica o número de elementos em cada grupo de tabela. Esse deve ser uma definição de registro separada, definida como BIN 4 bytes, com o valor OCCURS definido para o número de grupos (NG) como especificado na tabela de controle. O recurso ICU requer que dados que são passados estejam na forma de ponto flutuante curto. Você não precisa estar familiarizado com essa forma, mas você deveria estar ciente que alguma perda de precisão pode ocorrer na conversão de partes fracionais de números, devido a truncagem.

Parâmetro de dados de eixo-X para EZCHART

Uma definição de registro, com:

Parâmetro de dados de eixo-Y para EZCHART

Uma definição de registro, com:

Valores de dados ausentes no eixo-X e no eixo-Y  O ICU fornece um meio de indicar valores de dados ausentes nas matrizes de eixo-X e eixo-Y. Se você desejar especificar valores de dados ausentes na sua chamada EZCHART, você deve mover brancos para quaisquer elementos de matriz para os quais não há dados disponíveis. Para fazer isso, você deve sub-estruturar os elementos de matriz como campos caracteres como mostrado no exemplo a seguir:

Nome do Item Nível Ocorrs  Tipo  Comprim  Dec    Bytes
  YLENG      10      1      BIN      9      0       4
  YDEC       10      1      BIN      9      0       4
  YITEMS     10      xx     NUM     yy     zz      yy
  Y-MISSING  15      1      CHA     yy     zz      yy

No exemplo, xx é o número de itens especificados no registro de Controle de Dados, yy é o valor em YLENG e, zz é o valor em YDEC. Quaisquer valores ausentes podem ser definidos pela seguinte instrução:

MOVE ' ' to Y-MISSING(subscrito);

A rotina EZCHART passa esses valores para o ICU como 10 na potência de 72. O ICU reconhece esse valor como um indicador de um valor de dados ausente. Consulte a Presentation Graphics Feature (PGF) Reference para determinar os efeitos causados sobre os diferentes tipos de gráficos.

Ao usar dados emparelhados, não especifique valores ausentes na matriz de eixo-X. Um erro GDDM ocorrerá.

Parâmetro de chaves para EZCHART

É um registro contendo uma matriz de chaves para grupos de dados a serem usados na criação de uma tabela. Deve haver o mesmo número de chaves que o de grupos na tabela. O item tem que estar em registro separado e tem que ser definido como CHA com comprimento de chave especificado no Controle de Tabela e OCCURS como número de grupos especificados no Controle de Tabela.

Parâmetro de rótulos para EZCHART

É um registro contendo uma matriz de cadeias de caracteres que tem relação com rótulos através do eixo-X de certos tipos de tabelas (barras, setores, etc.) que são usados ao invés de dados do eixo-x na criação da tabela. O item tem que estar em registro separado e tem que ser definido como CHA com comprimento de legenda especificado no Controle de Tabela e OCCURS definido como o número de elementos especificados do Controle de Tabela.

Parâmetro de cabeçalho para EZCHART

É um registro contendo uma cadeia de caracteres que é usada para criar um cabeçalho na tabela solicitada. Tem que ser um registro definido como CHA (comprimento do cabeçalho especificado no Controle de Tabela).

Ambientes de Destino para EZCHART

Ambiente Considerações de Compatibilidade
VM CMS Nenhum.
VM batch Não suportado.
CICS para MVS/ESA Nenhum.
MVS/TSO Nenhum.
MVS batch Não suportado.
IMS/VS Não suportado.
IMS BMP Não suportado.
CICS para VSE Nenhum.
VSE batch Não suportado.
CICS para OS/2 Não suportado.
OS/400 Não suportado.
OS/2 (GUI) Não suportado.
Windows (GUI) Não suportado.
OS/2 (C++) Não suportado.
AIX Não suportado.
CICS for AIX Não suportado.
HP-UX Não suportado.
Solaris Não suportado.
CICS for Solaris Não suportado.
Windows NT Não suportado.
CICS para Windows NT Não suportado.
Dispositivo de Teste Nenhum.

Exemplos para EZCHART

Para emitir uma chamada à EZCHART, você deve primeiro definir os seguintes registros:

  1. WS_RECD - Registro do armazenamento de trabalho para o exemplo EZCHART
    Nome Item   Nível Occors Tipo Bytes      Descrição
    Return_code  77    1    NUM   4   /* 0=CALL bem-sucedida        */
    
  2. CHART_CTRL_RECD - Registro do armazenamento de trabalho para o exemplo EZCHART
    Nome Item   Nível Occors Tipo Bytes      Descrição
      LEVEL     10     1    BIN   4   /* Deve ser zero                    */
      DISPLAY   10     1    BIN   4   /* Número de controle de acesso ICU */
      HELP      10     1    BIN   4   /* 0=Info da PFkey não exibida      */
      ISLATE    10     1    BIN   4   /* 0=Usuário pode salvar e restaurar*/
      FORM      10     1    CHA  8   /* Nome do gráfico salvo ou '*'   */
      DATA      10     1    CHA  8   /* Nome dos dados salvos ou '*'    */
      PAIRING   10     1    BIN   4   /* 1=Dados emparelhados (x e y)     */
      NGRPS     10     1    BIN   4   /* Número de grupos de dados        */
      NELEMS    10     1    BIN   4   /* Número de elementos de dados (max)*/
      KEYL      10     1    BIN   4   /* Comprimento de chaves passadas    */
      LABELL    10     1    BIN   4   /* Comprimento de rótulos passados   */
      HDINGL    10     1    BIN   4   /* Comprimento de cabeçalho          */
      PRTNM     10     1    CHA  8   /* Nome de destino da impressão local */
      PRTDEP    10     1    BIN   4   /* Profundidade de tabela na impressora*/
      PRTWID    10     1    BIN   4   /* Largura de tabela na impressora   */
      PRCOPY    10     1    BIN   4   /* Número de cópias a imprimir       */
    
  3. DATA_CTRL_RECD - Registro do armazenamento de trabalho para o exemplo EZCHART
    Nome Item   Nível Occors Tipo Bytes      Descrição
      DCNTL      10    ?     BIN   4   /* Número de elementos em cada  */
                                      /* grupo.                         */
                                      /* Occurs =     valor de          */
                                      /*    CHART_CTRL_RECD.NGRPS     */
     
    
  4. X_DATA_RECD - Registro do armazenamento de trabalho para o exemplo EZCHART

    Nome Item Nível Occors Tipo Bytes Dec     Descrição
      XLENG     10     1    BIN   4    0 /* Comprimento total de campo  */
      XDEC      10     1    BIN   4    0 /* Número de casas decimais    */
      XITEMS    10     ?    NUM   ?    ? /* Matriz de  X itens,  */
                                         /* Occurs= total de todos DCNTL*/
                                         /*         ... + DCNTL(n)      */
                                         /*         itens em DATA_CT */
                                         /*         ... RL_RECD      */
                                         /* Bytes = valor de XLENG      */
                                         /* Dec   = valor de XDEC       */
    
  5. Y_DATA_RECD - Registro do armazenamento de trabalho para o exemplo EZCHART

    Nome Item Nível Occors Tipo Bytes Dec     Descrição
      YLENG    10     1     BIN   4    0 /* Comprimento total de campo  */
      YDEC     10     1     BIN   4    0 /* Número de casas decimais    */
      YITEMS   10      ?    NUM   ?    ? /* Matriz de Y itens,  */
                                         /* Occurs= total de todos DCNTL*/
                                         /*         ... + DCNTL(n)      */
                                         /*         itens em DATA_CT */
                                         /*         ... RL_RECD      */
                                         /* Bytes = valor de YLENG      */
                                         /* Dec   = valor de YDEC       */
    
  6. KEY_ARRAY - Registro do armazenamento de trabalho para o exemplo EZCHART
    Nome Item   Nível Occors Tipo Bytes      Descrição
      KEYARR    10     ?    CHA  ?   /* Occurs = valor de  */
                                      /*    CHART_CTRL_RECD.NGRPS     */
                                      /* Bytes = valor de              */
                                      /*    CHART_CTRL_RECD.KEYL      */
    
  7. LABEL_ARRAY - Registro do armazenamento de trabalho para o exemplo EZCHART

    Nome Item   Nível Occors Tipo Bytes      Descrição
      LABLAR    10     ?    CHA  ?   /* Occurs = valor de            */
                                      /*    CHART_CTRL_RECD.NELEMS    */
                                      /* Bytes = valor de              */
                                      /*    CHART_CTRL_RECD.LABELL    */
    
  8. HEAD_RECD - Registro do armazenamento de trabalho para o exemplo EZCHART
    Nome Item   Nível Occors Tipo Bytes      Descrição
      HEAD      10     1    CHA  ?   /* Bytes = valor de             */
                                      /*    CHART_CTRL_RECD.HDINGL    */
    

    Inicialize os valores de dados nos registros usado como parâmetros. Em seguida chame EZCHART usando o seguinte:

    Call EZCHART  RETURN_CODE, CHART_CTRL_RECD, DATA_CTRL_RECD,
                  X_DATA_RECD, Y_DATA_RECD, KEY_ARRAY, LABEL_ARRAY,
                  HEAD_RECD;
    


[ Início da Página | Página Anterior | Próxima Página | Índice ]