Upload
vukhue
View
222
Download
1
Embed Size (px)
Citation preview
1
DDK GUI
Parte 2
Tecnologia
2
Agenda
1 Parte
Nomenclatura
Estilos
Cadastro Simples
Cadastro Simples – Alteração
Cadastro Simples – Inclusão
Cadastro Complexo
Cadastro Complexo – Alteração
Pai x Filho – Atualiza Filho
Manutenção de Filhos
3
Pai x Filho – Atualiza Ambos
Manutenção de Pais
Consulta Simples
Consulta Complexa
Consulta Relacionamento
Relatórios / Cálculos / Fechamentos
Parâmetros Únicos
Parâmetros Múltiplos
Formação
Formação sem Navegação
Agenda
4
Importação
Exportação
Pesquisa
Vá Para
Digitação Rápida
Painéis
Funções – Relatórios Relacionados
Funções – Consultas Relacionadas
Menu de Barra
Agenda
5
Parte 2
Construção
SmartQuery
SmartViewer – Padrão
SmartViewer – Sem Campos de Tabela
SmartViewer – Só com Campos Chave
Parte 3
CustomBrowser Inclui/Modifica
CustomBrowser Zoom Wizard
Vá Para
Pesquisa
Agenda
6
Cadastro Simples
Parte 4
Cadastro Simples Alteração
Cadastro Simples Inclusão
Cadastro Complexo
Cadastro Inclui/Modifica Filho
Cadastro Pai x Filho – Atualiza Filho
Cadastro Inclui/Modifica Pai
Cadastro Pai x Filho – Atualiza Ambos
Parte 5
Consulta Simples
Agenda
7
Consulta Complexa
Consulta Relacionamentos
Parâmetros Únicos
Formação
Parte 6
Relatórios
Importação
Exportação
CustomBrowser Digitação
Digitação Rápida
Agenda
8
Parte 7
Includes e Utilitários Padrão
UT_FIELD.I
UT-RTLBL.I
UT-RUN.I
UT-MSGS.P
IND01-10.I, IND11-50.I E IND51500.I
UT-TABLE.I
UT-LITER.I
UT-LIMIT.P
Agenda
9
UT-GLOB.I
I-FREEAC.I
UT-DIR.P
BTB917ZX.P
BTB917ZY.P
BTB917ZZ.P
UT-VRBIN.P
UT-FINFO.P
UT-CMDLN.P
Agenda
10
UT-OSVER.I
I-COUNTDS.I
UT-WIN.I
UT-TRACE.P
Parte 8
Validações
Validações de Tela
Validações Triggers de Dicionário
Mensagens
Regras para Criação de Mensagens
Agenda
11
Mensagens em Outros Idiomas
Procedures Reutilizáveis
Portabilidade de RCODES
Customizações
API - Application Program Interface
UPC - User Program Call
Agenda
12
Construção
Construção
13
Passos
1. Em Arquivo | Novo, selecionar o estilo Custom Query Wizard;
SmartQuery
14
2. Se necessário, especificar uma tabela externa.
SmartQuery
15
Uma tabela externa complementa os critérios join para uma query. Por exemplo, uma query em 'Order OF Customer' exige uma tabela Customer externa. A tabela externa está preenchida por outra procedure object--tipicamente um SmartBrowser ou SmartViewer.
1. Clicar em ‘Add External Tables’
2. Dentro do Table Selector, selecione a tabela externa.
SmartQuery
16
3. Especificar as tabelas para a query. Deve-se marcar a opção INDEXED_REPOSITION.
Detalhes:
Não pode ter classificação (cláusula BY);
Não pode conter pré-seleção (cláusula preselect)
Deve ser sobre apenas uma tabela, não podendo haver joinentre tabelas (each,each).
SmartQuery
17
SmartQuery
18
4. Remover as Chaves Estrangeiras criadas pelo Wizard.
SmartQuery
19
5. Finalizar o Wizard
SmartQuery
6. Salvar a SmartQuery com o nome definido, de acordo com os Padrões de Nomenclatura;
20
Laboratório
Tabela: Customer
SmartQuery
21
De acordo com os objetos a serem instanciados na viewer, seguir a técnica correspondente:
Padrão;
Sem campos de tabela;
Só com campos chave;
SmartViewer
22
Padrão
É aquela que possui ao menos um campo não chave de tabela.
É necessário para uma Viewer Padrão possuir ao menos um campo de tabela habilitado. Esse campo não pode ser chave de tabela.
SmartViewer
23
Sem campos de tabela
É aquela que possui apenas objetos (widgets) não vinculados a uma base de dados, ou seja, são variáveis dispostas na tela de modo que o usuário possa alterar os seus valores em tempo de execução.
SmartViewer
24
Só com campos chave
É aquela que não possui campos não chave dispostos na tela. Esta viewer poderá conter variáveis dispostas para entrada de dados pelo usuário;
SmartViewer
25
1. Em Arquivo | Novo, selecionar o estilo Custom Viewer com AutoField;
SmartViewer - Padrão
26
2. Na dialog que se abrirá logo após a seleção do template, selecionar a(s) tabela(s) a serem utilizadas na viewer;
3. Na janela, após a seleção da(s) tabela(s), selecionar os campos a serem utilizados;
SmartViewer - Padrão
27
SmartViewer - Padrão
28
4. A seguir pode ou não ser apresentada uma mensagem questionando se a viewer deve suportar chaves estrangeiras. Caso aconteça, clicar em Cancel;
SmartViewer - Padrão
29
5. Se a viewer for utilizada em um cadastro do tipo simples, no início da procedure local-assign-records, é necessário substituir a linha contendo:
{include/i-valid.i}
por estas a seguir:
if not frame {&frame-name}:validate() thenreturn 'ADM-ERROR':U.
SmartViewer - Padrão
30
SmartViewer - Padrão
31
6. Alterar a altura de todos os atributos de tipo fill-in para 0.88;
7. Para os atributos que formam a chave de acesso da tabela, caso forem postos na tela:
1. Tornar os atributos desabilitados, através de propriedades, desmarcando o toggle-box 'Enable';
2. Em propriedades e Advanced, marcar o toggle-box '{&ADM-CREATE-FIELDS}';
3. Colocar o primeiro atributo na linha 1.17;
SmartViewer - Padrão
32
4. Caso exista mais de um atributo chave:
1. Colocá-los em espaçamento 1, ou seja, na linha 2.17, 3.17, etc.;
2. Alterar a altura do retângulo rt-key para o número de atributos chave + 0.25, ou seja, 2.25, 3.23, etc.;
3. Alterar a linha inicial do retângulo rt-mold para a altura do rt-key + 1.25;
SmartViewer - Padrão
33
8. Se não forem colocados atributos chave:1. Eliminar o retângulo rt-key;
2. Mover o retângulo rt-mold para a linha 1;
9. Para os atributos que não formam a chave de acesso da tabela, caso forem postos na tela:
1. Colocar o primeiro atributo na linha de rt-mold + 0.17 (Exemplo: 2.67);
2. Colocar os demais atributos com um espaçamento de 1 (Exemplo: 3.67, 4.67);
3. Alterar a altura do retângulo rt-mold de modo a apenas caber os atributos dentro;
SmartViewer - Padrão
34
10. Colocar na SmartViewer outros objetos, como, por exemplo, combo-box, que não estão associados aos campos no banco de dados;
11. Para os objetos não associados ao banco de dados e que devem ser atualizados pelo usuário, acessar as 'Property' e:
1. Tornar o objeto desabilitado (em propriedades, desmarcar o toggle-box 'Enable');
SmartViewer - Padrão
35
2. Em propriedades e Advanced, marcar o toggle-box '{&ADM-MODIFY-FIELDS}';
3. Customizar a procedure LOCAL-INITIALIZE para que as inicializações dos objetos sejam feitas. Essas inicializações das variáveis podem ser, atribuição de labels (para tradução automática), atribuição de itens para combo-boxes e radio-sets, etc., e devem ser feitas antes do dispatch padrão;
SmartViewer - Padrão
36
/* Code placed here will execute PRIOR to standard behavior. */
{utp/ut-liter.i Preço * R}assign fill-in_Price:label in frame {&frame-name} =
return-value
cb-country:list-items in frame {&frame-name} = {pdinc/i01pd001.i 03}.
/* Dispatch standard ADM method.*/
RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ).
/* Code placed here will execute AFTER standard behavior. */
SmartViewer - Padrão
37
4. Na procedure LOCAL-ENABLE-FIELDS comentar a linha que contém a ocorrência:"if-adm-new-record=yesthen";
5. A procedure LOCAL-DISPLAY-FIELDS deve ser customizada para que o valor da variável seja exibido, para isso, antes do dispatch padrão deve-se atribuir àvariável o valor a ser exibido.
SmartViewer - Padrão
38
/* Code placed here will execute PRIOR to standard behavior. */
if avail order-line thenassign fill-in_Price = Order-Line.Price.
Elseassign fill-in_price = 0.
/* Dispatch standard ADM method. */
/* RUN dispatch IN THIS-PROCEDURE (INPUT 'display-fields':U).*/
/* Code placed here will execute AFTER standard behavior. */
SmartViewer - Padrão
39
12. Quanto à largura da SmartViewer:
1. Se a SmartViewer for usada dentro de um folder de Cadastro Inclui/Modifica Filho, alterar a largura de rt-key e rt-mold para 76,72;
2. Se a SmartViewer for usada dentro do Cadastro Inclui/Modifica Filho sem folder, alterar a largura de rt-key e rt-mold para 79,29;
SmartViewer - Padrão
40
3. Se for usada dentro de outro folder que não seja em um Cadastro Inclui/Modifica Filho, alterar a largura de rt-key e rt-mold para 85.72;
14. Acessar as propriedades da frame da SmartViewer, clicar em 'Tab
Order' e no combo-box 'Tabbing Options' escolher a opção 'Left-to-Right By Columns';
SmartViewer - Padrão
41
15. Salvar a SmartViewer, com o nome definido de acordo com os Padrões de Nomenclatura;
SmartViewer - Padrão
42
1. Em Arquivo | Novo, selecionar o estilo Custom Viewer com AutoField;
SmartViewer - Sem Campos de Tabela
43
2. Cancelar a tela de seleção de tabelas exibida após a escolha da template.
3. Se a viewer for utilizada em um cadastro do tipo simples, no início da local-assign-records é necessário substituir a linha:
{include/i-valid.i}
por estas a seguir:
if not frame {&frame-name}:validate() then
return 'ADM-ERROR':U.
SmartViewer – Sem Campos de Tabela
44
SmartViewer – Sem Campos de Tabela
45
4. Definir no Method-Library, que a include i-auxtab.i, deve ser a primeira da lista;
SmartViewer – Sem Campos de Tabela
46
SmartViewer – Sem Campos de Tabela
47
5. Definir ao menos uma tabela externa;
6. Inserir os objetos (fill-in´s, combo-boxes, radio-sets, retângulos, etc) na viewer. Esses objetos não podem ser campos de tabelas;
7. Desabilitar todos os objetos da tela que não devam ser mostrados habilitados;
SmartViewer – Sem Campos de Tabela
48
8. Atenção: O controle de habilitação/desabilitação de campos deve ser feito pelo usuário. Para isso, deve-se colocar os campos nos pré-processadores de acordo com a tabela abaixo:
SmartViewer – Sem Campos de Tabela
49
SmartViewer – Sem Campos de Tabela
Habilitados nas operações de ADD, COPY e MODIFY.
Adm-modify-fieldsAdm-assign-fields
Outras Variáveis
Habilitados somente na criação de um novo registro.
Adm-create-fieldsChaves (variáveis que representam chaves)
FinalidadePreprocessadorTipo de Objetos
50
9. Customizar a procedure LOCAL-INITIALIZE para que as inicializações dos objetos sejam feitas. Essas inicializações das variáveis podem ser, atribuição de labels (preparação para tradução), atribuição de itens para combo-boxes e radio-sets, etc.;
SmartViewer – Sem Campos de Tabela
51
SmartViewer – Sem Campos de Tabela
52
10. Customizar a procedure LOCAL-DISPLAY-FIELDS, sendo que énessa procedure que os valores dos objetos serão exibidos:
1. Comentar o dispatch padrão;
2. Inserir os comandos para que os valores dos objetos sejam exibidos.
SmartViewer – Sem Campos de Tabela
53
SmartViewer – Sem Campos de Tabela
54
11. Customizar a procedure LOCAL-ENABLE-FIELDS, sendo que énessa procedure que os objetos são habilitados:
1. Comentar o dispatch padrão;
2. Comentar a linha em que consta a seguinte sentença: if adm-new-record then.
3. Caso seja uma viewer principal, incluir:RUN notify ('enable-fields, GROUP-ASSIGN-TARGET':U).
SmartViewer – Sem Campos de Tabela
55
SmartViewer – Sem Campos de Tabela
56
12. Customizar a procedure LOCAL-DISABLE-FIELDS, sendo que énessa procedure que os objetos são desabilitados:
1. Comentar o dispatch padrão;
2. Inserir as seguintes linhas:&if defined(ADM-CREATE-FIELDS) &then
disable {&ADM-CREATE-FIELDS} with frame {&frame-name}.&endif
3. Caso seja uma viewer principal, colocar:RUN notify ('disable-fields, GROUP-ASSIGN-TARGET':U).
SmartViewer – Sem Campos de Tabela
57
SmartViewer – Sem Campos de Tabela
58
13. Customizar a procedure LOCAL-ASSIGN-STANTEMENT, sendo que é nessa procedure que os objetos terão seus valores salvos:
1. Comentar o dispatch padrão;
2. Inserir a lógica de gravação dos valores das variáveis.
SmartViewer – Sem Campos de Tabela
59
SmartViewer – Sem Campos de Tabela
60
14. Alterar a altura de todos os atributos para 0.88;
15. Para os atributos que representam a chave de acesso a tabelas, caso forem postos na tela:
1. Colocar o primeiro atributo na linha 1.17;
2. Caso existam mais atributos que represente uma chave:
1. Colocá-los com espaçamento 1, ou seja, na linha 2.17, 3.17, etc.;
SmartViewer – Sem Campos de Tabela
61
2. Alterar a altura do retângulo rt-key para o número de atributos chave + 0.25, ou seja, 2.25, 3.23, etc.;
3. Alterar a linha inicial do retângulo rt-mold para a altura do rt-key + 1.25;
16. Se não forem colocados atributos que representem chaves:
1. Eliminar o retângulo rt-key;
2. Mover o retângulo rt-mold para a linha 1;
SmartViewer – Sem Campos de Tabela
62
17. Para os atributos que não formam a chave de acesso da tabela, caso forem postos na tela:
1. Colocar o primeiro atributo na linha de rt-mold + 0.17 (Exemplo: 2.67);
2. Colocar os demais atributos com um espaçamento de 1 (Exemplo: 3.67, 4.67);
3. Alterar a altura do retângulo rt-mold de modo a apenas caber os atributos dentro do mesmo;
18. Se não forem colocados atributos não chave, retirar o retângulo rt-mold;
SmartViewer – Sem Campos de Tabela
63
19. Quanto à largura da SmartViewer:
1. Se a SmartViewer for usada dentro de um folder de Cadastro Inclui/Modifica, alterar a largura de rt-key e rt-mold para 76,72;
2. Se a SmartViewer for usada dentro do Cadastro Inclui/Modifica sem folder, alterar a largura de rt-key e rt-mold para 79,29;
3. Se for usada dentro de outro folder que não seja em um Cadastro Inclui/Modifica, alterar a largura de rt-key e rt-mold para 85.72;
SmartViewer – Sem Campos de Tabela
64
20. Acessar as propriedades da frame da SmartViewer, clicar em 'Tab Order' e, no combo-box 'Tabbing Option‘, escolher a opção 'Left-to-Right By Columns';
21. Salvar a SmartViewer, com o nome definido, de acordo com os Padrões de Nomenclatura.
SmartViewer – Sem Campos de Tabela
65
1. Em Arquivo | Novo, selecionar o estilo Custom Viewer com AutoField;
SmartViewer - Só com Campos Chave
66
2. No dialog que se abrirá logo após a seleção do template, selecionar a(s) tabela(s) a serem utilizadas na viewer;
3. Na janela, após a seleção da(s) tabela(s), selecionar os campos a serem utilizados;
4. A seguir, pode ou não ser apresentada uma mensagem questionando se a viewer deve suportar chaves estrangeiras. Caso aconteça, clicar em Cancel;
5. Definir, no Method-Library, que a include i-auxtab.i, deve ser a primeira da lista;
SmartViewer – Só com Campos Chave
67
SmartViewer – Só com Campos Chave
68
6. Desabilitar todos os campos da tela;
7. Colocar os campos nos pré-processadores, de acordo com a tabela abaixo:
SmartViewer – Só com Campos Chave
Devem ser marcados os objetos que serão habilitados para a alteração de uma ocorrência na tabela. Observe que índices de tabelas não podem ser alterados.
Adm-modify-fields
Habilitados somente na criação deum novo registroExemplo: operações de ADD e COPY
Adm-create-fieldsAdm-assign-fields
FinalidadePreprocessador
69
8. Customizar a procedure LOCAL-INITIALIZE para que as inicializações dos objetos sejam feitas. Essas inicializaçõespodem ser atribuição de labels (preparação para tradução), atribuição de itens para combo-boxes e radio-sets, etc.;
SmartViewer – Só com Campos Chave
70
SmartViewer – Só com Campos Chave
71
9. Caso existam, na viewer, objetos não vinculados ao banco de dados (variáveis), customizar a procedure LOCAL-DISPLAY-FIELDS para que seus valores sejam exibidos.
SmartViewer – Só com Campos Chave
72
SmartViewer – Só com Campos Chave
73
10. Customizar a procedure LOCAL-ENABLE-FIELDS:
1. Comentar o dispatch padrão;
2. Comentar a linha em que apareça a sentença: if adm-new-record = yes then;
3. Caso seja uma viewer principal, incluir:RUN notify ('enable-fields, GROUP-ASSIGN-TARGET':U).
SmartViewer – Só com Campos Chave
74
SmartViewer – Só com Campos Chave
75
11. Caso existam, na viewer, objetos não vinculados ao banco de dados (variáveis), customizar a procedure LOCAL-ASSIGN-RECORD para que seus valores sejam salvos.
SmartViewer – Só com Campos Chave
76
SmartViewer – Só com Campos Chave
77
12. Criar e customizar a procedure LOCAL-ASSIGN-STATEMENT;
1. Inserir o seguinte código após o dispatch padrão:
do with frame {&frame-name} on error undo, return "ADM-ERROR":&if defined(ADM-CREATE-FIELDS) &then
if ADM-NEW-RECORD then assign {&ADM-CREATE-FIELDS}.&endif&if defined(ADM-MODIFY-FIELDS) &then
assign {&ADM-MODIFY-FIELDS}.&endif
end.
SmartViewer – Só com Campos Chave
78
SmartViewer – Só com Campos Chave
79
13. Alterar a altura de todos os atributos para 0.88;
14. Para os atributos que formam a chave de acesso da tabela:
1. Colocar o primeiro atributo na linha 1.17;
2. Caso exista mais de um atributo chave:
1. Colocá-lo com espaçamento 1, ou seja, na linha 2.17, 3.17, etc.;
SmartViewer – Só com Campos Chave
80
2. Alterar a altura do retângulo rt-key para o número de atributos chave + 0.25, ou seja, 2.25, 3.23, etc.;
3. Alterar a linha inicial do retângulo rt-mold para altura do rt-key + 1.25;
15. Para os atributos que não formam a chave de acesso da tabela, caso forem postos na tela:
1. Colocar o primeiro atributo na linha de rt-mold + 0.17 (Exemplo: 2.67);
2. Colocar os demais atributos com um espaçamento de 1 (Exemplo: 3.67, 4.67);
SmartViewer – Só com Campos Chave
81
16. Colocar na SmartViewer outros objetos, como por exemplo combo-box, que não estão associados ao banco de dados;
17. Se não forem colocados atributos não chave, retirar o retângulo rt-mold.Obs.: Apesar da viewer só com campos chave não conter outros campos, poderá conter variáveis;
SmartViewer – Só com Campos Chave
82
18. Para os objetos não associados ao banco de dados e que devem ser atualizados pelo usuário, acessar as 'Property' e:
1. Tornar o objeto desabilitado (em propriedades, desmarcar o toggle-box 'Enable');
2. Em propriedades e Advanced, marcar o toggle-box '{&ADM-MODIFY-FIELDS}';
SmartViewer – Só com Campos Chave
83
19. Quanto à largura da SmartViewer:
1. Se a SmartViewer for usada dentro de um folder de Cadastro Inclui/Modifica, alterar a largura de rt-key e rt-mold para 76,72;
2. Se a SmartViewer for usada dentro do Cadastro Inclui/Modifica sem folder, alterar a largura de rt-key e rt-mold para 79,29;
3. Se for usada dentro de outro folder que não seja em um Cadastro Inclui/Modifica, alterar a largura de rt-key e rt-mold para 85.72;
SmartViewer – Só com Campos Chave
84
20. Acessar as propriedades da frame da SmartViewer, clicar em 'Tab Order' e, no combo-box 'Tabbing Option‘, escolher a opção 'Left-to-Right By Columns';
21. Salvar a SmartViewer, com o nome definido de acordo com os Padrões de Nomenclatura;
SmartViewer – Só com Campos Chave
85
Laboratório
Tabela: CustomerCampos: Customer.Cust-Num;
Customer.NameCustomer.AddressCustomer.PhoneCustomer.CityCustomer.StateCustomer.Country
SmartViewer
86
Este material é de propriedade da DATASUL S.A., sendo proibida a sua reprodução em qualquer meio, total ou parcial, sem aprovação por escrito. Todos os direitos estão reservados. A informação contida aqui é confidencial
e não pode ser utilizada fora da empresa ou das franquias que fazem parte da nossa rede, não podendo ser divulgada para clientes, parceiros ou outra empresa ou indivíduo sem o prévio consentimento de um diretor da
DATASUL S.A. As opiniões expressas aqui estão sujeitas a modificação sem aviso prévio.
http://universidade.datasul.com.br
http://universidade.datasul.com.br
Obrigada!
Obrigada