ddk gui - sanderleisilveira.com.br · 4 importação exportação pesquisa vá para digitação...

Post on 10-Dec-2018

222 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

universidade@datasul.com.br

http://universidade.datasul.com.br

universidade@datasul.com.br

http://universidade.datasul.com.br

Obrigada!

Obrigada

top related