Sei sulla pagina 1di 265

Roteiro do Treinamento Maker

Contedo
PRIMEIRO DIA .............................................................................................................................. 5 Introduo...................................................................................................................................... 5 Apresentao pessoal: .............................................................................................................. 5 Consideraes gerais sobre o Help........................................................................................... 5 Suporte Tcnico ao Maker......................................................................................................... 5 Apresentao Metodolgica ...................................................................................................... 5 Instalao do Maker e do Webrun ............................................................................................. 5 Iniciando um projeto no Maker ...................................................................................................... 5 Configuraes ............................................................................................................................... 6 Apresentar os elementos da tela do Maker .................................................................................. 8 Controle de acesso ao desenvolvimento do projeto ..................................................................... 9 Criao de Grupos ..................................................................................................................... 9 Criao de Usurios .................................................................................................................. 9 Catlogo de imagens .................................................................................................................... 9 Conexes Adicionais ..................................................................................................................... 9 Assistente Sql .............................................................................................................................. 10 Criando Formulrio ...................................................................................................................... 10 Histrico SQL .............................................................................................................................. 14 Criao de Menus ....................................................................................................................... 14 Importao de arquivos FRZ ....................................................................................................... 14 Definindo Tipos de Dados e Dicionrio de Dados ...................................................................... 14 Continuao - Criando Formulrio .............................................................................................. 14 Editando formulrio ..................................................................................................................... 14 Passo a passo para a criao deste formulrio; ......................................................................... 15 Assistente de Criao de Mltiplos Formulrios ......................................................................... 17 Exemplificando componente Grfico .......................................................................................... 18 Exemplificando componente Grade ............................................................................................ 21 Exemplificando componente Lista Dupla .................................................................................... 23 Exemplificando componente rvore ........................................................................................... 26 Opes comuns para os objetos em um Formulrio .................................................................. 28 Permitindo acesso externo ao formulrio .................................................................................... 29 Repositrio - Obtendo Formulrio ............................................................................................... 29 Exerccio 1 - Formulrio .............................................................................................................. 29 SEGUNDO DIA ........................................................................................................................... 40 Editor de Fluxo de Aes ............................................................................................................ 40 Elementos da tela Editor de Fluxo de Aes ........................................................................... 40 Criando Fluxo camada cliente usando Interao ................................................................. 40 Criando Fluxo - camada servidor usando Processamento ..................................................... 47 Criando Fluxo camada servidor usando Deciso ................................................................. 53 Editar o Fluxo - camada cliente usando Sub-fluxo .................................................................. 59 Debug ...................................................................................................................................... 60 Profile ....................................................................................................................................... 60 Funes usadas em fluxo ........................................................................................................... 60 Eventos onde podem ser chamados os Fluxogramas ............................................................ 60 Camadas.................................................................................................................................. 60 Busca de funes na tela Propriedades do Montador de Expresses ................................... 60 Boas Prticas para o desenvolvimento de fluxos .................................................................... 60 Exerccios com Fluxos ................................................................................................................ 60 Exerccio 2 ............................................................................................................................... 60 Exerccio 3 ............................................................................................................................... 63 Exerccio 4 ............................................................................................................................... 66 Exerccio 5 ............................................................................................................................... 74 Exerccio 6 ............................................................................................................................... 79 TERCEIRO DIA ........................................................................................................................... 86 Trabalhando com funes de grade ........................................................................................... 86 Exerccios com Fluxos .............................................................................................................. 100 Exerccio 7 ............................................................................................................................. 100 Exerccio 8 ............................................................................................................................. 103

iii

Contedo

Exerccio 9 ............................................................................................................................. 113 Obtendo dados de arquivo para tabela ..................................................................................... 120 Lendo dados de um contedo XML .......................................................................................... 130 Trabalhando com MD5 .............................................................................................................. 136 Trabalhando com fluxos genricos(Exemplo 1) ........................................................................ 151 Trabalhando com fluxos genricos (Exemplo 2) ....................................................................... 154 Utilizando Fluxo Web Service ................................................................................................... 158 QUARTO DIA ............................................................................................................................ 165 Relatrio .................................................................................................................................... 165 Tipo de Relatrio ................................................................................................................... 165 Criando Relatrios ................................................................................................................. 165 Tela Gerador de Relatrios ................................................................................................... 165 Personalizao e Skins ............................................................................................................. 172 Personalizando Barra de Ferramentas do Formulrio .......................................................... 172 Utilizando Formulrio Principal .............................................................................................. 172 Pasta Maker.Commons ......................................................................................................... 177 Pasta Components ................................................................................................................ 177 Recursos gerenciais do projeto ................................................................................................. 178 Agendador de Tarefas ........................................................................................................... 178 Lista de Sistemas .................................................................................................................. 178 Empacotar projeto ................................................................................................................. 178 Scanner de Dependncias .................................................................................................... 178 Histrico de Alteraes .......................................................................................................... 178 Verses .................................................................................................................................. 178 Otimizador de Consultas ....................................................................................................... 178 Verificar atualizaes Maker e Help ...................................................................................... 178 Documentao Automtica.................................................................................................... 178 Exportar Relatrio para JASPER........................................................................................... 178 Webrun - Configuraes e Publicao ...................................................................................... 179 Configuraes do Webrun ..................................................................................................... 179 Publicao ............................................................................................................................. 179 Modelagem das Tabelas para Treinamento ............................................................................. 180 QUINTO DIA.............................................................................................................................. 181 Projeto Integrador 1 Agendamento de Reunies ................................................................... 181 Objetivo .................................................................................................................................. 181 Cadastro de Pases ............................................................................................................... 189 Cadastro de Estados ............................................................................................................. 191 Cadastro de Cidades ............................................................................................................. 194 Cadastro de Bairros ............................................................................................................... 196 Cadastro de Entidade ............................................................................................................ 198 Cadastro de Funcionrios ...................................................................................................... 204 Participantes Externos ........................................................................................................... 207 Cadastro de Empresas .......................................................................................................... 211 Cadastro de Reunies ........................................................................................................... 219 Relao dos Eventos ............................................................................................................. 234 Projeto Integrador 2 Controle de Protocolo ............................................................................ 240 Objetivo .................................................................................................................................. 240 Tipo de Documento ............................................................................................................... 246 Gerncia ................................................................................................................................ 247 Fornecedor ............................................................................................................................. 248 Protocolo ................................................................................................................................ 249 Protocolos por perodo .......................................................................................................... 262

iv

PRIMEIRO DIA Introduo


Apresentao pessoal:
Nome Cargo e Funo Especializaes

Consideraes gerais sobre o Help


Enfatizar o uso do Manual Maker 2.6 como fonte principal de pesquisa.

Suporte Tcnico ao Maker


Apresentao do Portal do Suporte da Softwell.

Apresentao Metodolgica
Nova Metodologia de Desenvolvimento de Software: O Maker uma plataforma integrada, que suporta o processo de desenvolvimento de aplicaes desde a definio do termo de abertura de um projeto, at a atividade final de implementao e continua na etapa de manuteno da aplicao. uma plataforma que permite o desenvolvimento interativo e totalmente visual, sem a necessidade da escrita de cdigos em linguagens de programao. Suporta diferentes tecnologias em termos de bancos de dados, sistemas operacionais, servidores de aplicao, mecanismos de segurana etc. Um dos grandes diferenciais do Maker o seu controle de dependncias entre elementos do sistema produzido, desde as funcionalidades at o modelo de dados, permitindo o reuso de funcionalidades completas armazenadas em repositrios de sistemas do Maker. A ferramenta est voltada para a especificao, construo e manuteno de sistemas em um mesmo ambiente, portando uma metodologia de desenvolvimento diferencial, influenciando em aspectos como tempo, custo e qualidade do produto final.

Instalao do Maker e do Webrun


Conceituar o Maker e o Webrun; Recursos bsicos de hardware e softwares; Verses do Windows homologadas e as verses do Maker para cada verso de S.O.; Verses do Webrun e Servidores de aplicao web homologados; Processo de instalao Token - Chave de acesso (os tipos Corporativos e Locais) e comentar sobre os executveis para as duas verses.

Iniciando um projeto no Maker


Tela Bem-Vindo e suas opes: a. Internacionalizao; b. Atalho para projetos recentes; c. Tela de Configuraes (comentrio rpido) Criao de Projetos. Definio do Escopo do Projeto; a. Observaes:

i. O nome do sistema ter o mesmo nome da turma; ii. O banco de dados padro dos treinamentos o Postgres; iii. O nome do banco ter o mesmo nome da turma. b. Banco de Dados homologados / restries apontando para Help do Maker. Comentar e apresentar as 92 tabelas criadas no banco (pode utilizar o pgAdmin III e comentar sobre as tabelas internas). Apresentar o arquivo de script de banco (mostrar o diretrio e arquivo). Comentar sobre o Charset e Schema public; c. Arquivo WFRE definir e comentar o local padro e causas caso salve em outro lugar; d. Comentar sobre o API de funes (mostrar diretrio de origem)

Configuraes
Configuraes conexo do projeto: da

Configuraes da conexo com Webrun. Em Repositrio, alm de conceituar deve apontar para o projeto SISTEMA DE TREINAMENTO (um dos projetos instalados com o instalador do Maker)

Comentrios sobre o versionamento do Maker e da quantidade de verses dos objetos Formulrio, Relatrios e Fluxos que so armazenadas no banco:

Comentrios sobre as opes dos sinalizadores quando utilizar a ferramenta Debug em fluxos. Primeiro momento para comentar da ferramenta que depura o fluxo:

Comentar todos os itens da aba Outros. Deve enfatizar os pontos: Atualizao Automtica, Exibir tabelas do Maker, Enviar relatrio de erro, Documentao Automtica e Gerao automtica de tabelas (muito importante falar e mostrar como o Maker nomeia os campos e tabelas criadas automaticamente e comentar evitar nomes acima de 32 caracteres).

Gerao Automtica de tabelas

Apresentar os elementos da tela do Maker


Apresentar e conceituar: a. Barra de Menus; b. Barra de Ferramentas; c. Barra de Menu do Projeto; d. rea de Desenvolvimento; e. Paleta Objetos.

Controle de acesso ao desenvolvimento do projeto


Criao de Grupos
Criao de Grupos criao de dois grupos: Administradores e Usurios;

Criao de Usurios
Falar do usurio master; Falar da hierarquia: Usurio, Gerente e Administrador Geral; Criao de dois usurios: um usurio contendo o nome do aluno e outro chamado Visitante. O usurio aluno com funes de administrador e pertencente ao grupo Administrador e o segundo usurio no grupo Usurios podendo criar formulrios, fluxos e relatrios.

Catlogo de imagens
Cadastrar algumas imagens para utilizao de fundo de tela e cones para boto. Para fundo de tela, pode utilizar a imagem ...\Softwell Solutions\Maker 2.6\Webrun 2\tomcat\webapps\webrun\Resource\main.jpg e para cone de boto pode usar ... \Softwell Solutions\Maker 2.6\Webrun 2\tomcat\webapps\webrun\Skins\Default\ help_edit.gif (pode ser qualquer outra imagem das pastas, desta forma o aluno tem contato com os diretrios contendo imagens da interface da aplicao final)

Conexes Adicionais
Conceituar e demonstrar a criao de uma conexo com o banco sample2 (um dos bancos instalados com o instalador do Maker). Executar manualmente a conexo e depois comentar a opo de conexo atravs do WFRE.

10

Assistente Sql
Executor de Scripts SQL - apresentar os recursos da tela e do Assistente SQL. Deve-se montar consultas simples, demonstrando a possibilidade de: a. Escrever um SQL b. Importar script de um arquivo c. Gerar arquivo de script d. Utilizar opes com clique direito do mouse sobre o nome da tabela e. Usar o Assistente SQL i. Opes para adicionar objetos na consulta ii. Seleo de campos iii. Relacionamento entre tabelas iv. Propriedades de ligao: Left, Right e Full Join v. Renomear a tabela vi. Opes da grade da tela do assistente vii. Comentar In Select... viii. Comentar Union ix. Funcionalidades da aba Resultados x. Funcionalidades da aba SQL

Criando Formulrio
Usar o Assistente de Criao de Formulrio e a Paleta Componentes: utilizao de alguns componentes para a criao de um formulrio chamado Clientes, contendo nome, foto, digital, data de cadastro automtica, campo, sexo, o tipo e observaes. Permitir e interagir com a tabela que o Maker ir criar no banco.

a. Apresentar os componentes e suas propriedades: i. Texto utilizada apenas como ttulo/label no formulrio; ii. Caixa de Texto um componente para o cadastro do nome do cliente; iii. Check alm da apresentao, enfatizar a possibilidade de armazenar qualquer valor; iv. Imagem o componente ser utilizado duas vezes: para cadastrar a foto do cliente e a outra opo para digital. Por conta deste campo o usurio interage com a digitao de comando SQL para a criao do campo; v. Moldura este componente ser utilizado apenas para oferecer um detalhe na rea de trabalho do formulrio. Vale ressaltar que a moldura bastante utilizada juntamente com fluxo em abrir formulrio na moldura, URL e at mesmo executar Applet; vi. Lista criar uma lista simples para cadastro do sexo do cliente; vii. Opes alm da apresentao, enfatizar a semelhana com o componente Lista; viii. Texto Longo - alm da apresentao, enfatizar a Propriedade Texto Rico b. Ao salvar o formulrio: i. Apresentar o Assistente de Criao de Banco de Dados e editar:

10

11

ii. Manipular descrio de campos, nome de campo, tamanho, tipo (pela grade principal) e editar atravs da DDL (chamar ateno aos nomes criados quando ultrapassam 32 caracteres). Citar a relao entre os campos dos bancos que o maker trabalha. Criar um campo para digital (Bigint). Apontar cada tipo de campo Maker ao tipo do banco (apontar ao tpico do help). Passo a passo para a criao do formulrio CLIENTES: 1. Primeiramente verifique a estrutura do formulrio no Maker:

2. Atravs da paleta Objetos acione a opo ; 3. Aplique o nome CLIENTES e clique no boto OK; 4. Insira um componente Texto no formulrio. Atravs do boto direito do mouse defina para a propriedade Descrio o texto Cadastro de clientes; 5. Insira um componente Caixa de Texto o texto Nome do cliente; e defina para a propriedade Descrio

6. Insira um componente Caixa de Texto e defina para a propriedade Descrio o texto Data de Cad. e para a propriedade Contedo defina Data; 7. Insira um componente Check e defina para a propriedade Descrio o texto Cliente Ativo, para a propriedade Valor Marcado defina S e para Valor Desmarcado defina N; 8. Insira um componente Lista e defina para a propriedade Descrio o texto Sexo, para a propriedade Lista defina F com descrio Feminino e M com descrio Masculino como mostra imagem abaixo:

11

12

9. Insira um componente Opes e defina para a propriedade Descrio o texto Tipo de cliente, para a propriedade Lista defina pf com descrio Pessoa fsica e pj com descrio Pessoa jurdica como mostra imagem abaixo:

10. Insira um componente Texto longo e defina para a propriedade Descrio o texto Observaes, para a propriedade Texto Rico defina HTML Bsico;

12

13

11. Insira dois componentes do tipo Imagem Descrio o texto Foto e Digital;

e defina para a propriedade

Obs.: Estes campos sero utilizados para capturar a imagem atravs de uma webcam ou de arquivo e o outro componente far a leitura biomtrica. 12. Salve o formulrio e configure o Assistente de Banco de Dados:

Ativando a DDL do formulrio em criao, acrescente um campo para atribuir propriedade Impresso Digital:

13

14

Aps clicar no boto Executar, retorne a propriedade do campo Ditigal e aponte o campo STD_CLI_DIGITAL a propriedade Impresso Digital. 13. Salve o formulrio, crie um menu chamado Cadastro e insira-o. Obs.: Este formulrio pode ser importado atravs do arquivo Criando Formulrio CLIENTE.FRZ.

Histrico SQL
Comentrios sobre o recurso apresentar os recursos da tela.

Criao de Menus
Conceituar os controles do menu; Menu drop-down clique direito do mouse no Menu comentrio das opes Criar menu Cadastros, incluir o formulrio Cliente e acessar pelo Webrun a aplicao: utilizar o preview pelo Maker. Solicitar o cadastro de um registro. Comentar particularidade do preview para verses Windows.

Importao de arquivos FRZ


Utilizar o assistente de Importao apontando para o arquivo TABELAS PARA TREINAMENTO.FRZ (mostrar a imagem da modelagem do contedo importado) Falar do: a. Recurso de Importao e Exportao, b. Formato do arquivo Exibir a imagem da Modelagem das tabelas

Definindo Tipos de Dados e Dicionrio de Dados


Aps importar as tabelas, utilizar o Executor de Script SQL e mostrar as tabelas importadas; Falar e criar em Tipos de Dados crie uma mscara (MONETRIO - $) aplicando-a no campo FUN_SALARIO; Abrir e editar o Dicionrio de Dados apontando para as tabelas importadas; Citar a importncia para documentao.

Continuao - Criando Formulrio


Usar Assistente de Criao de Formulrios para criar o formulrio Estado e Cidade Comentar e recriar manualmente a Lista Dinmica do formulrio Cidade:

Editando formulrio
Abrir o formulrio Cliente e criar uma aba chamada Endereo; Criar duas Listas Dinmicas: a. Uma Lista Dinmica que traga os Estados (mostrar a opo arrastando o formulrio e soltando como Lista Dinmica); b. Uma Lista Dinmica que traga as Cidades filtradas pelo Estado utilizar parmetro na consulta; Ao Salvar o formulrio, comentar sobre a criao automtica de campos e chaves estrangeiras (chamar ateno aos nomes criados quando ultrapassam 32 caracteres); Executar no Webrun e editar a aba Endereo;

14

15

Retornando para o Maker, apague a lista correspondente ao cadastro de Estados e modifique a lista correspondente a Cidade mostrando a possibilidade de alimentar Estado e Cidade ao mesmo tempo. Concatenar os campos CID_NOME e EST_NOME para a propriedade campo lista. Sendo esta a mesma estrutura utilizada para chave composta. Executar no Webrun e demonstrar os dados na base; Minimizar o formulrio Cliente; Criar um formulrio com a seguinte estrutura:

Obs.: Este formulrio ser usado posteriormente para consumir WebService: passar CEP e receber endereo. Criar uma chave estrangeira vinda do formulrio Cliente e salvar o formulrio. Incluir um componente Sub-Form em Cliente, apontando para o formulrio Endereo do Cliente. Falar das Propriedades do componente; Falar das Propriedades do formulrio e falar das Definies (enfatizar botes do formulrio, assistente de consulta, campos obrigatrios e valor padro. Fazer o primeiro comentrio referente a Associar aes tabela posteriormente um fluxo da camada banco de dados ser utilizado); Falar da aba Localizar

Passo a passo para a criao deste formulrio;

1. Atravs da paleta Objetos acione a opo ; 2. Aplique o nome ENDEREO DO CLIENTE e clique no boto OK; 3. Insira um componente Caixa de Texto o texto CEP; 4. Insira um componente Boto propriedades); e defina para a propriedade Descrio

(no momento sem nenhuma definio de

5. Insira um componente Texto longo e defina para a propriedade Descrio o texto Endereo; 6. Para manter as boas prticas de modelagem de banco, este formulrio deve possuir um relacionamento com o formulrio CLIENTE atravs de chave de banco. Para criar uma chave estrangeira (Forekey), arraste e solte o formulrio CLIENTE em forma de componente Lista Dinmica.

15

16

7. Salve o formulrio e verifique o Assistente de Criao de Banco de Dados:

8. Aps salvar, apague o componente Lista Dinmica, mas IGNORE a excluso do campo:

16

17

9. Feche o formulrio ENDEREO DO CLIENTE e abra o formulrio CLIENTE; 10. A partir da paleta Objetos, arraste e solte o formulrio ENDEREO DO CLIENTE para dentro do formulrio CLIENTE, na aba Endereo

11. Salve o formulrio e execute-o no Webrun. Observao: Este formulrio pode ser importado atravs do arquivo Incluindo SUBFORM em CLIENTE.FRZ. Para mais informaes sobre o componente, acesse o tpico SubFormulrio.

Assistente de Criao de Mltiplos Formulrios


Utilizar o Assistente de Criao de Mltiplos Formulrios apontando para as tabelas GER_ENDERECO, SIG_DEPARTAMENTO, SIG_PROJETO e SIG_TRABALHA_EM. Ao utilizar o recurso, permita a criao de um novo menu, defina um prefixo para os formulrios e depois visualize tudo no Webrun.

17

18

Exemplificando componente Grfico


Duplique o formulrio de cadastro de departamentos para EXEMPLO COM GRFICO; Criar grfico circular de setores com dados filtrados pelo campo cdigo do departamento:

Passo a passo para exemplificar a utilizao do componente Grfico: 1. Primeiramente, observe a estrutura deste formulrio no Maker:

18

19

2. Insira um componente Grfico ; 3. Ative as propriedades do componente atravs do boto direto do mouse:

4. 5. 6. 7. 8.

Para a propriedade Ttulo defina DESPESAS COM PESSOAL; Para a propriedade Posio da legenda defina Abaixo; Para a propriedade Contedo da legenda defina Etiqueta e valor; Para a propriedade Mostrar 3D defina Sim; Para a propriedade Sries clique no boto da configurao da propriedade

19

20

Todo grfico possui pelo menos uma Srie. Aps clicar no boto para adicionar uma srie do tipo Pizza, clique no boto para configurar a srie :

Ative a opo para aplicar uma Cor para cada fatia. Confirme que a cor ir Aparecer na Legenda, Visvel, na opo Exibir Marcas defina um Estilo da Marca do tipo Porcentagem. Para definir a Fonte de Dados, selecione a opo Banco de dados e atravs do boto Consulta SQL defina:

20

21

A origem da consulta a tabela SIG_FUNCIONARIO. Os campos selecionados foram FUN_NOME, FUN_SALARIO e DEP_COD. O contedo do grfico deve ser filtrado pelo cdigo do registro atual de departamento. Por isto o parmetro :DEP_COD. Na aba Opes tive a opo Circular forando que o grfico apresente-se sempre circular independente do tamanho da rea defina com o componente para o desenho do grfico. Para destacar o item de maior valor, defina um valor em pixel em Distncia da Maior Fatia. No exemplo foi definido 30 pixels. 9. Confirme as configuraes aplicadas nas duas tela e visualize o formulrio no Webrun. Obs.: Este formulrio pode ser importado atravs do arquivo Exemplo com Grfico.FRZ. Para mais informaes sobre o componente, acesse o tpico Grfico.

Exemplificando componente Grade


Criar um novo formulrio, sem fonte de dados, sem barra de navegao, sem aba localizar; Salvar como EXEMPLO COM GRADE; Incluir um componente grade apontando para o formulrio Estado. Falar das propriedades do componente; Demonstrar no Webrun; Implementar o formulrio com uma segunda grade apontando para cidade e utilize a propriedade Grade Mestre.

Passo a passo para exemplificar a utilizao do componente Grade: 1. Primeiramente, observe o que desejamos criar e a estrutura deste formulrio no Maker:

21

22

2. Inicie um novo formulrio chamado EXEMPLO COM GRADE; 3. Este formulrio no possuir fonte de dados e no utilizaremos as abas Cadastro e Localizar. Ativando as propriedades do formulrio atravs do boto direito do mouse, defina na propriedade Navegao que No ser acionada a barra de ferramentas e desative tambm as Abas; 4. Aps Salvar o formulrio, IGNORE a criao da tabela; 5. Insira um componente Grade no formulrio e ajuste o tamanho; 6. Ative as propriedades do componente grade atravs do boto direito do mouse e defina que o Formulrio de origem chama-se Estado; 7. Salve o formulrio e insira-o no menu do projeto e excute no Webrun; 8. Retornando ao Maker, insira uma grade para listar as Cidades. Desta vez arraste o formulrio anteriormente criado posicionando-o logo abaixo da primeira grade. Ao soltar o clique, selecione a opo Grade. Ative as propriedades da segunda grade atravs do clique direito do mouse e selecione a propriedade Grade Mestre; 9. Clique no boto para configurar a propriedade:

Deve-se selecionar os campos de relacionamento dos dois objetos e clicar no boto Adicionar. Clique no boto OK, salve o formulrio e execute no Webun. Ao selecionar um registro da grade dos estados, ocorrer a seleo das cidades contidas. Para mais informaes sobre o contedo, acesso do tpico Grade.

22

23

Este formulrio pode ser importado atravs do arquivo Exemplo com Grade.FRZ.

Exemplificando componente Lista Dupla


Editar o formulrio de cadastro de projetos incluindo uma Lista Dupla que permita a seleo de funcionrios para um determinado projeto:

Passo a passo para exemplificar a utilizao do componente Lista Dupla: 1. Primeiramente, observe a estrutura deste formulrio no Maker:

2. Redimensione o formulrio aumentando a sua altura;

3. Selecione o componente Lista dupla

e insira-o no formulrio;

23

24

4. Ative as propriedades do componente atravs do boto direito do mouse e defina: em Descrio principal um ttulo para a primeira coluna. Com exemplo informe RELAO DE FUNCIONRIOS. Utilize a propriedade Fonte descrio principal para formatar a descrio (como exemplo aplique a cor Azul-marinho). Para a propriedade SQL Principal, informe a origem dos dados como mostra a imagem abaixo:

Select sig_funcionario.fun_cod, sig_funcionario.fun_nome From sig_funcionario Order By sig_funcionario.fun_nome 5. Na propriedade Campo Chave principal defina FUN_COD e para a propriedade Campo lista principal defina FUN_NOME. Para a propriedade Descrio selecionados defina um ttulo para a segunda coluna da lista (como exemplo defina FUNCIONRIOS ALOCADOS). Utilize a propriedade Fonte descrio selecionados para formatar a descrio (como exemplo aplique a cor Bord). Para a propriedade SQL Selecionados, informe a origem dos dados como mostra a imagem abaixo:

24

25

Select sig_trabalha_em.fun_cod, sig_trabalha_em.pro_cod, sig_funcionario.fun_nome From sig_trabalha_em Left Join sig_funcionario On sig_trabalha_em.fun_cod = sig_funcionario.fun_cod Order By sig_funcionario.fun_nome Na propriedade Parmetros selecionados configure o relacionamento entre o objeto Lista Dupla e o formulrio, como mostra a imagem abaixo:

25

26

Na propriedade Campo Chave selecionados defina FUN_COD e para a propriedade Campo lista selecionados defina FUN_NOME. Observao; no foi utilizada a propriedade Parmetros principal pois deseja que qualquer funcionrio possa participar de qualquer projeto. 6. Salve o formulrio e execute no Webrun. Obs.: Este formulrio pode ser importado atravs do arquivo Exemplo com Lista Dupla.FRZ. Para mais informaes sobre o componente, acesse o tpico Lista Dupla.

Exemplificando componente rvore


Criar um formulrio chamado EXEMPLO COM RVORE, sem fonte de dados e barra de navegao para listar os funcionrios por cidade:

Passo a passo para exemplificar a utilizao do componente rvore: 1. Primeiramente, observe a estrutura deste formulrio no Maker:

26

27

2. Inicie um novo formulrio chamado EXEMPLO COM RVORE; 3. Este formulrio no possuir fonte de dados e no utilizaremos as abas Cadastro e Localizar. Ativando as propriedades do formulrio atravs do boto direito do mouse, defina na propriedade Navegao que No ser acionada a barra de ferramentas e desative tambm as Abas; 4. Aps Salvar o formulrio, IGNORE a criao da tabela; 5. Insira uma Lista Dinmica arrastando o formulrio de cidades. Aps isto, apague a referncia de campo na propriedade Campo e apague a referncia do Formulrio de origem; 6. Insira um componente rvore no formulrio e ajuste o tamanho; 7. Ative as propriedades do componente com o boto direito do mouse e defina a consulta dos dados do componente atravs da propriedade SQL seguindo imagem abaixo:

27

28

Select sig_funcionario.fun_cod, sig_funcionario.fun_cod_gerente, sig_funcionario.fun_nome, ger_endereco.cid_cod From sig_funcionario Inner Join ger_endereco On sig_funcionario.fun_cod = ger_endereco.fun_cod 8. 9. 10. 11. 12. Clique no boto OK para confirmar a consulta; Para a propriedade Campo chave aponte para o campo FUN_COD; Para a propriedade Campo lista aponte para o campo FUN_NOME; Para a propriedade Campo pai aponte para o campo FUN_COD_GERENTE; Para a propriedade Parmetros devemos informar os vnculos do componente com o formulrio. Isto ocorre neste caso pois deseja-se que o contedo seja filtrado pelo valor retornado pela lista de cidades. Clique no boto para configurar a propriedade:

A parametrizao do componente ocorrer entre campos da consulta da rvore e componentes do formulrio. Para filtrar os funcionrios por cidade vinculou-se o campo CID_COD com o COMPONENTE {EDTCID_COD}. necessrio definir o valor inicial da raiz da rvore para entender que gerentes possuem valor nulo como padro no campo FUN_COD_GERENTE. Ento, vinculou o campo a um objeto qualquer do formulrio que retorne nulo. Este vnculo poderia ser com qualquer objeto ou campo que no possua retorno diferente de nulo. 13. Clique no boto OK para confirmar; 14. Salve o formulrio, insira-o no menu da aplicao e execute no Webrun. Obs.: Este formulrio pode ser importado atravs do arquivo Exemplo com rvore.FRZ. Para mais informaes sobre o componente, acesse o tpico rvore.

Opes comuns para os objetos em um Formulrio


Comentar sobre; a. Propriedades e Eventos; b. Alinhamento;

28

29

c. d. e. f.

Edio; Controles; Substituir; Novo Componente

Permitindo acesso externo ao formulrio


Atravs das propriedades dos objetos contidos na paleta Objetos (clique direito do mouse sobre o objeto) defina Externo; Demonstre o acesso externo ao formulrio.

Repositrio - Obtendo Formulrio


Reforar o conceito e utilizar para a importao de um formulrio do projeto Sistema de Treinamento (definido no incio do treinamento, tela Configuraes). Apontar para o formulrio Relao Geral de Gerentes e arrastar para o projeto atual; Gerar um novo sistema apontando para o mesmo banco, chamando-o <turma>2 e definir que o projeto <turma> seja o repositrio; Apresentar a utilizao do clique direito do mouse e arrastar o objeto, mostrando as duas opes: Vincular e Copiar

Exerccio 1 - Formulrio
Criar um formulrio para o Cadastro de Funcionrios. A consulta deste formulrio deve conter todos os campos da tabela SIG_FUNCIONARIO. Esse formulrio composto por quatro abas, sendo elas: Cadastro, Endereo, Projetos e Recursos Alocados e Localizar. Na incluso de um novo registro, alguns campos devem ser preenchidos automaticamente: o campo Sexo deve apresentar Masculino, o campo Funcionrio Ativo deve estar marcado e o campo Data de Admisso dever estar preenchido com a data atual.

A aba Endereo constituda por um componente SubForm que d manuteno a tabela GER_ENDERECO.

29

30

A aba Projetos e Recursos Alocados deve conter duas grades e um componente que conte a quantidade de projetos que o funcionrio participa. A primeira grade editvel e a segunda, apenas lista os funcionrios alocados no projeto acima selecionado.

Na aba Localizar os campos de pesquisa devem ser: Cdigo, Nome e Departamento (descrio dos departamentos da tabela SIG_DEPARTAMENTO). Os campos que devero aparecer na grade so: Cdigo, Nome, Departamento e Cidade. (descrio das cidades da tabela GER_CIDADE).

30

31

Nesse formulrio os campos Nome do Funcionrio, Departamento, Sexo, Bairro e Cidade devem ser obrigatrios. Observaes: Crie um menu chamado Exerccios para armazenar os exerccios que sero desenvolvidos no decorrer do treinamento. Passo a passo para execuo do exerccio: 1. Primeiramente revise a edio do Dicionrio de dados para a tabela SIG_FUNCIONARIO; 2. Observe a estrutura da aba Cadastro do formulrio:

Atravs do componente Caixa de Texto insira vrios campos: i. O primeiro ser o Cdigo do func. apontando para o campo FUN_COD. Observar que automaticamente obter a Descrio vinda do Dicionrio de Dados; ii. O segundo ser Nome apontando para o campo FUN_NOME; iii. O terceiro ser Idade apontando para o campo FUN_IDADE; iv. O quarto ser Salrio apontando para o campo FUN_SALRIO;

31

32

Insira um componente Lista apontando para o campo FUN-SEXO e para a propriedade Lista defina F com descrio Feminino e M com descrio Masculino como mostra imagem abaixo:

Atravs do componente Check aponte para o campo FUN_ATIVO e para a propriedade Valor Marcado defina S e para Valor Desmarcado defina N;

Insira um componente Imagem e defina para a propriedade Descrio o texto Foto e na propriedade Campo aponte para FUN_FOTO.

Insira um componente Lista Dinmica de Departamentos.

arrastando o formulrio Cadastro

Atravs do componente Caixa de Texto insira dois campos: i. O primeiro ser o CPF apontando para o campo FUN_CPF; ii. O segundo ser Data Admisso apontando para o campo FUN_DATA_ADMISSAO e defina na propriedade Contedo a opo Data.

Atravs do componente Lista Dinmica insira um campo chamado Gerente apontando para o campo FUN_COD_GERENTE e configure os parmetros do componente: i. Para a propriedade SQL clique no boto da configurao da propriedade e monte a consulta:

32

33

Select sig_funcionario.fun_cod, sig_funcionario.fun_nome From sig_funcionario Order By sig_funcionario.fun_nome ii. Para a propriedade Campo Chave indique o campo FUN_COD; iii. Para a propriedade Campo Lista indique o campo FUN_NOME. Insira uma nova aba no formulrio clicando com o boto direito do mouse na rea das abas e escolhendo a opo Inserir. Defina o nome Endereo. Nesta aba ser inserido o formulrio Cadastro de Endereo e este dever ser editado para o layout desejado:

Alguns campos so definidos como obrigatrios, por isto deve-se ativar as Definies do formulrio e atravs da aba Chaves e Atualizaes habilita-se os campos Bairro e Cidade.

33

34

Nesta nova aba, arraste e solte o formulrio Cadastro de Endereo e ajuste posio e tamanho do componente inserido.

Insira uma nova aba no formulrio clicando com o boto direito do mouse na rea das abas e escolhendo a opo Inserir. Defina o nome Projetos e Recursos Alocados. Nesta nova aba, insira dois componentes Grade, dois componentes Texto e um componente Lista Dinmica. Observe imagem abaixo:

34

35

Para a criao da primeira grade, abra o formulrio Cadastro de Trabalha Em e retire o campo referente a cadastro de funcionrio. Ao Salvar o formulrio, no exclua o campo correspondente (responder Ignorar na tela de Assistente de Criao de Banco de Dados). O formulrio ficar assim:

Agora arraste e solte o formulrio Cadastro de Trabalha Em e solte-o como Grade. Esta grade ser editvel justamente para poder inserir novos projetos ao funcionrio. Para a segunda grade crie um formulrio chamado Funcionrios por projeto, apontando para a tabela SIG_TRABALHA_EM, contendo apenas a lista dinmica que mostrar os funcionrios. Observe o layout abaixo:

35

36

Ao Salvar o formulrio, no exclua o campo correspondente a projetos (responder Ignorar na tela de Assistente de Criao de Banco de Dados). Agora arraste e solte o formulrio Funcionrios por projeto e solte-o como Grade. Altere a propriedade Editvel da grade para No, pois esta listar funcionrios do mesmo projeto acima selecionado. E para filtrar os funcionrios do projeto acima, utilize a propriedade Grade Mestre relacionando as duas grades atravs do campo em comum chamado PRO_COD. Observe imagem abaixo:

Para criar o totalizador de projetos, insira um componente Texto contendo na Descrio o texto Total de Projetos:. Ao lado do texto, insira um componente Lista Dinmica apontando para o campo FUN_COD e a consulta estruturada como mostra a imagem abaixo:

36

37

Select Count(sig_trabalha_em.pro_cod), sig_trabalha_em.fun_cod From sig_trabalha_em Group By sig_trabalha_em.fun_cod Having (sig_trabalha_em.fun_cod = :fun_cod) Com isto, a propriedade Campo Chave aponta-se para FUN_COD e na propriedade Campo Lista aponta-se para COUNT. Observe que a propriedade Campo passar o valor para a consulta filtrando o total de projetos por funcionrio. Observe tambm que foi definido um texto para titular a segunda grade. Insira um componente Texto contendo na Descrio o texto Funcionrios alocados no mesmo projeto.

Algumas Definies i.

foram estabelecidas para atender o exerccio:

O exerccio pede os campos nome do departamento (DEP_NOME) como campo de pesquisa e nome da cidade (CID_NOME) na grade da aba localizar como campo de resposta. Para isto, modifique a consulta do formulrio como mostra a imagem abaixo:

37

38

Select sig_funcionario.fun_cod, sig_funcionario.fun_cod_gerente, sig_funcionario.fun_nome, sig_funcionario.fun_idade, sig_funcionario.fun_salario, sig_funcionario.fun_sexo, sig_funcionario.dep_cod, sig_funcionario.fun_cpf, sig_funcionario.fun_data_admissao, sig_funcionario.fun_ativo, sig_funcionario.fun_foto, sig_departamento.dep_nome, ger_cidade.cid_nome From sig_funcionario Left Join sig_departamento On sig_funcionario.dep_cod = sig_departamento.dep_cod Left Join ger_endereco On sig_funcionario.fun_cod = ger_endereco.fun_cod Left Join ger_cidade On ger_endereco.cid_cod = ger_cidade.cid_cod Order By sig_funcionario.fun_cod Para alguns campos, solicita-se valor padro:

38

39

Confirme estas definies e ativando a aba Localizar, selecione os campos de pesquisa e campos da grade:

Salve o formulrio. Crie um menu chamado Exerccios e insira o formulrio Cadastro de Funcionrios. Observe que a Barra de Menus do projeto, apresenta-se travada. Clique no cone (Travado) no canto esquerdo mudando o estado para (Destravado). Agora arraste o formulrio da paleta Objetos para o menu. Observe que o mouse apresenta-se no formato formulrio. Clique em queira cancelar a edio do menu, clique no boto enquanto arrasta o (Desfazer).

(Salvar) para confirmar a edio do menu. Caso

39

40

Obs.: Este formulrio pronto pode ser importado para o projeto atravs do arquivo Cadastro de Funcionrios.FRZ.

SEGUNDO DIA Editor de Fluxo de Aes


Elementos da tela Editor de Fluxo de Aes
Barra de Menus; Barra de Ferramentas; rea de Edio do Fluxo; Janela Identificadores (variveis) F11 para ativar ou usar menu Exibir; Menu PopUp clique direito do mouse Incio - Parmetro de Entrada - Conceituar; Fim - Parmetro de Sada - Conceituar; Boas Prticas para desenvolvimento de fluxos apontando para o help.

Criando Fluxo camada cliente usando Interao


Este exemplo iniciar a utilizao do fluxo, na camada cliente e a utilizao do componente Interao para disparar uma mensagem na tela OL FUNCIONRIO. Chamar o fluxo de EXIBIR MENSAGENS. Utilizar um boto no formulrio Cadastro de Funcionrios para executar o fluxo. Passos para criao do fluxo: 1. Abra o formulrio Cadastro de Funcionrios e insira um boto para executar o fluxo:

2. Ative o Editor de fluxos de Aes atravs da barra de ferramentas do Maker, clicando em ; 3. Na tela do editor, insira um componente Interao, e clicando com o boto direito do mouse edite a descrio do componente informando a ao que este executar. Como exemplo:

40

41

4. Com o boto direito do mouse sobre a Interao, clique em Editar; 5. Na janela do componente, selecione a funo Mensagem de Alerta e ao lado digite o contedo que ser exibido na tela. Observe imagem abaixo:

6. Clique no boto OK e salve o fluxo na camada cliente chamando-o de EXIBIR MENSAGENS:

Na tela Salvar fluxo selecione ou crie uma pasta especfica para o novo fluxo. Defina o Nome do fluxo, determine uma Descrio e informe o Destino cliente para este fluxo. Clique no boto Salvar para confirmar. 7. Feche o editor de fluxo e, retornando ao formulrio Cadastro de funcionrios, ative os Eventos do boto atravs do clique direito do mouse. Selecione o evento Ao Clicar;

41

42

8. Na tela Definir aes aponte para o fluxo EXIBIR MENSAGENS e clique o boto OK; 9. Salve o formulrio e execute-o no Webrun.

Implementar o fluxo obtendo o nome do funcionrio com um Parmetro de Entrada, substituindo a palavra FUNCIONRIO pelo nome obtido atravs do componente do formulrio. Utilizar a funo Concatenao. Passo a passo: 1. Atravs da paleta Objetos, clique na aba Fluxos e abra o fluxo com clique duplo; 2. Execute clique duplo no componente Incio e crie uma varivel chamada NOME DO FUNCIONRIO:

42

43

1. Clique duplo no componente Interao e clique no boto para configurar a expresso do componente; 2. Aparece o Montador de Expresses com o elemento inicial, j definido com o valor Constante do tipo Letras contendo a frase:

3. Execute um clique no elemento para selecionar e ativar a tela Propriedades:

43

44

4. Clique na aba Fluxos e Funes e localize a funo Concatenao digitando na rea de pesquisa da tela:

5. Clique no nome da funo; 6. No Montador de Expresses teremos agora a funo sendo exibida com dois parmetros. O primeiro conter o valor OL : Para definir o valor, clique no balo do primeiro parmetro da funo e digite na tela propriedades o contedo. Para definir o segundo valor que seria o nome do funcionrio, clique no segundo balo e clique no nome da varivel criada para receber o NOME DO FUNCIONRIO:

44

45

7. Feche as telas clicando no boto OK; 8. Salve o fluxo, minimize a tela; 9. Retornando ao formulrio Cadastro de Funcionrios, ative os eventos do boto e abra a tela Definir aes; 10. Defina a origem do valor do Parmetro de entrada do fluxo apontando para o campo FUN_NOME; 11. Clique no boto OK, salve o formulrio e no execute-o webrun.

Implementar o fluxo, acrescentando parmetros na CONCATENAO, gerando duas linhas de texto. Utilizar a funo OBTER VALOR DO COMPONENTE para obter o salrio do funcionrio atravs do componente do formulrio: OL <nome> O SEU SALRIO <salrio>

Passo a passo: 1. Abra o fluxo que deixou minimizado na tela do Maker; 2. Clique duplo no componente Interao e clique no boto para configurar a expresso do componente. Aparece o Montador de Expresses com a funo Concatenao. Clique no topo da expresso (no balo contendo o nome CONCATE); 3. Na parte inferior da tela Propriedades aumente o nmero de Parmetros da funo. Clicando no boto , adicione mais 3 parmetros:

4. Clique no terceiro parmetro para definir uma Quebra de linha para a frase. Localize e insira a funo, passando o valor 1 para a quantidade de quebras:

45

46

5. Para o quarto parmetro da funo, digite a segunda parte da frase O SEU SALRIO :

6. Para o quinto parmetro utilize a funo Obter valor do Componente. Esta funo solicita dois parmetros: nome do formulrio e nome do componente que contem o valor que deseja obter. A imagem abaixo demonstra selecionando o formulrio de onde deseja obter o valor:

A imagem abaixo demonstra selecionando o componente do formulrio de onde deseja obter o valor:

46

47

7. Salve e feche o fluxo. Retornando ao formulrio, salve-o tambm e execute no Webrun. Obs.: O formulrio contendo o boto para chamar o fluxo e o fluxo que exibe a mensagem podem ser importados para o seu projeto atravs dos arquivos Cadastro de Funcionrios com fluxo camada cliente.FRZ e Fluxo camada cliente usando Interao.FRZ.

Criando Fluxo - camada servidor usando Processamento


Neste exemplo, criaremos um fluxo para disparar uma mensagem na tela contendo o bairro do endereo do funcionrio. Salvar como FLUXO UTILIZANDO PROCESSAMENTO. Este fluxo conter um Processamento que receber o cdigo do funcionrio para filtrar uma consulta a banco, retornando o bairro para exibio numa Mensagem de Alerta. Incluir um boto no formulrio Cadastro de Funcionrios para disparar o fluxo.

Passo a passo: 1. Abra o formulrio Cadastro de Funcionrios e insira um boto para executar o fluxo:

47

48

2. Ative o Editor de fluxos de Aes atravs da barra de ferramentas do Maker, clicando em ; 3. Na tela do editor, insira um componente Processamento e um componente Interao. Clicando com o boto direito do mouse sobre os componente inseridos, edite as descries informando a ao que eles executaro. Como exemplo:

4. Neste fluxo ser utilizada uma Varivel Parmetro de Entrada, que passar o cdigo do funcionrio para filtrar o bairro correspondente. Ative a tela Parmetro de Entrada executando clique duplo no componente Incio:

5. Neste fluxo ser utilizada um Identificador (varivel) que receber o retorno do bairro provido da consulta. Caso a tela de variveis no esteja ativa, pressione a tecla F11 ou pelo menu Exibir Janela Variveis:

48

49

6. Agora, criar a consulta retornando o bairro. Execute clique duplo no componente Processamento abrindo o Montador de Expresses; 7. Atravs do campo Atribuir o resultado ao identificador, associe a varivel BAIRRO:

8. Clique no componente do Montador de Expresses e atravs da tela Propriedades localize a funo Campo. Esta funo permite obter o valor de retorno de um campo. No caso, o campo ser o retorno da consulta que ser executada atravs da funo Abrir Consulta. Observe imagem abaixo:

Ao inserir a funo Campo percebe-se que dois parmetros devem ser passados: informar uma origem de dados (consulta ou tabela) e informar um campo desta origem. No primeiro parmetro observe que passamos uma consulta:

49

50

1. Clicando no primeiro parmetro da funo Campo, clique na aba Fluxos e Funes e localize a funo Abrir consulta;

2. Aps selecionar a funo Abrir consulta, clique no primeiro parmetro SQL Consulta, clique no boto da tela Propriedades; 3. Na tela Assistente SQL desenvolva a consulta para obter o bairro:

Select ger_endereco.end_bairro, ger_endereco.fun_cod From ger_endereco Where (ger_endereco.fun_cod = :COD_FUNC) A consulta possui um parmetro chamado COD_FUNC. Por este parmetro passaremos o cdigo do funcionrio para filtrar o bairro do funcionrio. Clique no boto . Aparecendo a tela Parmetros, clique no boto para configurar.

50

51

Na tela do Montador de Expresses, clicando no componente e exibindo a tela Propriedades,

Aps definir o parmetro de entrada para filtrar a consulta, clique no boto OK da tela Montador de Expresses. Voltando tela Parmetros clique no boto Salvar. Retornando a tela Assistente SQL clique o boto OK. Retornando a tela Montador de Expresses do componente Processamento, defina para o segundo parmetro o nome do campo que possui o valor desejado (atravs da tela Propriedades selecione o campo da consulta):

51

52

Aps selecionar o campo, clique no boto OK da tela Montador de Expresses. 4. Aps obter o contedo, execute clique duplo no componente Interao; 5. Na tela Interao, selecione a funo Mensagem de Alerta e clique no boto para configurar o contedo da mensagem; 6. Abrindo a tela Montador de Expresses, clique no balo inicial e selecione a varivel Bairro:

Clique no boto OK do Montador de Expresses. Voltando para a tela Interao, clique no boto OK. 7. Salve o fluxo com o nome FLUXO UTILIZANDO PROCESSAMENTO na camada Servidor;

52

53

8. Feche o fluxo; 9. Retornando para o formulrio Cadastro de Funcionrios, ative os eventos do boto EXIBIR BAIRRO e na tela Definir ao, selecione o fluxo criado e passe o campo FUN_COD como parmetro de entrada:

10. Aps clicar no boto OK, salve o formulrio e execute no Webrun. Obs.: O fluxo criado e o formulrio podem ser importados para o projeto atravs dos arquivos Cadastro de Funcionrios com fluxo camada servidor.FRZ e Fluxo utilizado processamento.FRZ.

Criando Fluxo camada servidor usando Deciso


Neste exemplo, criaremos um fluxo para disparar uma mensagem na tela contendo a relao de projetos associados ao funcionrio. Salvar como EXIBIR LISTA DE PROJETOS. Este fluxo conter um processamento que receber o cdigo do funcionrio para filtrar uma consulta retornando a lista de projetos para exibio numa mensagem de alerta. Este exemplo envolve a utilizao de um Processamento para consulta, uma Deciso para montar o loop e uma Interao para exibir a lista. Incluir um boto no formulrio Cadastro de Funcionrios para disparar o fluxo.

Passo a passo: 1. Abra o formulrio Cadastro de Funcionrios e insira um boto para executar o fluxo:

53

54

9. Ative o Editor de fluxos de Aes atravs da barra de ferramentas do Maker, clicando em ; 10. Na tela do editor, desenvolva o seguinte fluxo:

11. Neste fluxo ser utilizada uma Varivel Parmetro de Entrada, que passar o cdigo do funcionrio para filtrar os projetos. Ative a tela Parmetro de Entrada executando clique duplo no componente Incio:

54

55

12. Neste fluxo ser utilizada um Identificador (varivel) que receber o retorno da consulta (deve ser uma varivel do tipo Tabela) e uma varivel que armazenar o contedo para exibio (esta varivel pode ser do tipo Letras ou Variante a depender do contedo que ser atribudo). Caso a tela de variveis no esteja ativa, pressione a tecla F11 ou pelo menu Exibir Janela Variveis:

13. No primeiro Processamento criaremos a consulta. Execute clique duplo abrindo o Montador de Expresses; 14. Atravs do campo Atribuir o resultado ao identificador, associe a varivel LISTA DE PROJETOS e clicando no elemento da tela de expresses, localize a funo Abrir consulta:

11. Aps selecionar a funo Abrir consulta, clique no primeiro parmetro SQL Consulta e clique no boto da tela Propriedades; 12. Na tela Assistente SQL desenvolva a consulta para obter o bairro:

55

56

Select sig_trabalha_em.fun_cod, sig_projeto.pro_nome From sig_trabalha_em Left Join sig_projeto On sig_trabalha_em.pro_cod = sig_projeto.pro_cod Where (sig_trabalha_em.fun_cod = :FUNCIONRIO) 13. A consulta possui um parmetro chamado FUNCIONRIO. Por este parmetro passaremos o cdigo do funcionrio para filtrar o bairro do funcionrio. Clique no boto configurar. . Aparecendo a tela Parmetros, clique no boto para

14. Na tela do Montador de Expresses, clicando no componente e exibindo a tela Propriedades, selecione a varivel CDIGO DO FUNCIONRIO. 15. Aps definir o parmetro de entrada para filtrar a consulta, clique no boto OK da tela Montador de Expresses. 16. Voltando tela Parmetros clique no boto Salvar. 17. Retornando a tela Assistente SQL clique o boto OK. 18. Retornando a tela Montador de Expresses do componente Processamento, defina para o segundo parmetro o nome do campo que possui o valor desejado (atravs da tela Propriedades selecione o campo da consulta): 19. Aps selecionar o campo, clique no boto OK da tela Montador de Expresses. 20. Aps obter o contedo, execute clique duplo no componente Deciso. Este componente com retorno lgico, receber sempre uma expresso que retorne Verdadeiro ou Falso. Esta deciso ser responsvel em manter o loop enquanto percorre o retorno da consulta contendo a lista de projetos. Execute clique duplo no componente Deciso e na tela Montador de Expresses, clicando no elemento inicial, localize a funo Existem registros atravs da tela Propriedades aba Fluxos e Funes. Esta funo possui um parmetro que solicita a identificao da consulta ou tabela que contm os dados. Observe a imagem abaixo:

56

57

21. Clique no OK para confirmar; 22. Para o segundo componente Processamento deve-se expressar uma concatenao (juno de dados) montando o contedo que ser exibido. Observe imagem abaixo:

23. Inicialmente atribuiu o resultado da expresso varivel AUXILIAR. Em seguida localiza-se a funo Concatenao e aumenta o nmero de parmetros para 3; 24. O primeiro parmetro da concatenao a prpria varivel AUXILIAR; 25. O segundo parmetro da concatenao a utilizao da funo Campo passando no primeiro parmetro o nome da consulta e passando no segundo parmetro o nome do campo que possui os projetos; 26. O terceiro parmetro da funo a utilizao da funo Quebra de linha passando em seu nico parmetro o valor equivalente a quebras de linhas que desejamos; 27. Clique no boto OK do Montador de Expresses; 28. Voltando para a tela Interao, clique no boto OK; 29. Para o terceiro componente Processamento deve-se expressar uma funo que mova o ponteiro para o prximo registro da consulta. No deve esquecer que ao utilizar a funo Abrir consulta o ponteiro posiciona-se no primeiro registro:

57

58

Para mover o ponteiro para o prximo registro da consulta utilize a funo Tabela Prximo registro passando no parmetro o nome da consulta ou tabela. Observe que o fluxo retornar para a deciso e mantm verificando se existem registros. 30. Para o componente Interao, utilize a funo Mensagem de alerta exibindo o contedo armazenado na varivel AUXILIAR:

31. Salve o fluxo com o nome EXIBIR LISTA DE PROJETOS, na camada Servidor; 32. Feche o fluxo; 33. Retornando para o formulrio Cadastro de Funcionrios, ative os eventos do boto EXIBIR PROJETOS e na tela Definir ao, selecione o fluxo criado e passe o campo FUN_COD como parmetro de entrada; 34. Aps clicar no boto OK, salve o formulrio e execute no Webrun. Obs.: O fluxo criado e o formulrio podem ser importados para o projeto atravs dos arquivos Cadastro de Funcionrios usando deciso.FRZ e EXIBIR LISTA DE PROJETOS.FRZ.

58

59

Editar o Fluxo - camada cliente usando Sub-fluxo


Neste exemplo, editaremos o fluxo EXIBIR MENSAGENS incluindo um componente Sub-Fluxo chamando o fluxo FLUXO UTILIZANDO PROCESSAMENTO, disparando assim as duas mensagens na tela.

Passo a passo: 1. Abra o fluxo EXIBIR MENSAGENS e insira um componente Subfluxo; 2. Execute clique duplo no componente inserido e localize o fluxo FLUXO UTILIZANDO PROCESSAMENTO na tela Subfluxo:

3. O fluxo selecionado necessita de um parmetro de entrada. Na rea chamada Descrio clique no boto para definir este valor; 4. Atravs do Montador de Expresses e clicando no elemento inicial da expresso, crie uma varivel do tipo Parmetro de Entrada para passar o valor desejado ao sub-fluxo. Na tela Propriedades, clique no boto informando nome, tipo e tipo de identificador:

5. Aps criar a varivel, clique no componente inicial do Montador de Expresses e clique na varivel criada; 6. Clique no boto OK do Montador de Expresses e OK na tela do sub-fluxo; 7. Salve e feche o fluxo; 8. Retorne ao formulrio Cadastro de Funcionrios e abra o evento Ao clicar do boto EXIBIR MENSAGEM;

59

60

9. Na tela Definir aes complemente os Parmetros de entrada do fluxo definindo para CDIGO o campo FUN_COD; 10. Salve o formulrio e execute no Webrun. Obs.: O formulrio e o fluxo utilizado neste exemplo pode ser importado para seu projeto atravs dos arquivos Cadastro de Funcionrios com sub_fluxo.FRZ e EXIBIR MENSAGEM COM SUB_FLUXO.FRZ.

Debug
Utilizar um dos fluxos acima para apresentar o recurso

Profile
Utilizar um dos fluxos acima para apresentar o recurso

Funes usadas em fluxo


Editor de funes demonstrar a criao e edio de funes. Criar uma funo simples. Como exemplo, acesse o tpico Exemplo de Como Criar uma Funo do manual do Maker.

Eventos onde podem ser chamados os Fluxogramas


Reviso.

Camadas
Reviso.

Busca de funes na tela Propriedades do Montador de Expresses


Reviso.

Boas Prticas para o desenvolvimento de fluxos


Importncia da documentao das funes

Exerccios com Fluxos


Exerccio 2
Criar um fluxo que no permita a insero e nem a alterao de um funcionrio que tenha a idade menor do que 18. Esse fluxo deve estar associado aos eventos Antes de inserir e Antes de alterar do formulrio Cadastro de Funcionrios. Obs.: Ajudar na identificao, leitura e funcionamento da funo IGUAL.

60

61

Passo a passo:

1. Abra o Editor de Fluxo de Aes ; 2. Para este exerccio utilizaremos um Parmetro de Entrada para receber do formulrio a idade do funcionrio. Clique duplo no componente Incio e crie um parmetro chamado Idade, do tipo Inteiro. No campo Formulrio de trabalho, indique Cadastro de Funcionrios. Clique em Ok para confirmar; 3. Adicione um componente e execute um clique duplo sobre ele; 4. Clique sobre o componente inicial do Montador de Expresso e observe ao lado, a tela Propriedades; 5. Localize a funo Menor (atravs da aba Fluxos e Funes); 6. Para o primeiro parmetro da funo, aponte para o Parmetro de Entrada Idade:

7. Para o segundo parmetro, defina o valor de critrio 18 (corresponde a idade limite):

8. Vamos criar uma Mensagem de erro para impedir a incluso ou alterao do registro, caso a Idade do funcionrio seja menor que 18 anos. Esta etapa estar relacionada a opo SIM do componente Deciso. Insira um componente clique duplo sobre ele; 9. Selecione a Funo Mensagem de Erro; e execute um

10. Defina os parmetros da funo. Clique em ; 11. Ativando a tela do Montador de Expresso, clique no componente inicial; 12. Na tela de Propriedades na aba Identificadores selecione a Constante do tipo Letras e ao lado, informe a mensagem que ser exibida. Sugesto: Essa pessoa no pode ser funcionrio!:

13. Clique em Ok na tela Montador de Expresses; 14. O fluxo ficar da seguinte forma:

61

62

15. Salve o fluxo com o nome Cadastro de Funcionrios - Verifica Idade.(sendo na camada Cliente); 16. Agora, associe ao evento Antes de alterar do formulrio Cadastro de Funcionrios, o fluxo Cadastro de Funcionrio - Verifica Idade; 17. Com o formulrio Cadastro de Funcionrios, aberto; 18. Clique com o boto direito do mouse na rea do formulrio; 19. Em Eventos, selecione o item Antes de Alterar. Clique em 20. Na tela Definir Aes, defina: ;

21. No campo Fluxo associado, localize o fluxo; 22. Em Parmetros de entrada do fluxo selecione Componente e ao lado, aponte para o componente que armazena a idade. 23. Para o evento o Evento Antes de Incluir, repita os passos; 24. Salve todo o projeto e execute no Webrun. Obs.: O formulrio e o fluxo envolvidos neste exerccio podem ser importados atravs dos arquivos Cadastro de Funcionrios - Verifica Idade.FRZ e Cadastro de Funcionrios com exerccio2 de fluxo .FRZ.

62

63

Exerccio 3
Para o formulrio Cadastro de Departamentos, crie um fluxo que oculte o componente Departamento se a quantidade de caracteres for maior do que seis. Este fluxo dever estar associado ao Evento Ao navegar. Salve o fluxo com o nome Cadastro de Departamento - Ocultar componente nome

Obs.: Ser utilizada a funo MOSTRAR COMPONENTE. Passo a passo: 1. Para facilitar o entendimento, o fluxo deve ficar assim:

2. Abra o Editor de Fluxo de Aes; 3. Execute clique duplo em Incio; 4. Na tela Parmetros de Entrada localize o formulrio Cadastro de Departamento definindo-o como Formulrio de Trabalho e crie uma varivel para receber o nome do departamento:

5. Vamos criar uma condio para satisfazer o critrio de ocultar ou no o componente.

Insira o componente e execute duplo clique para ativar o Montador de expresso; 6. Clique no elemento inicial do Montador de expresso; 7. Com a tela Propriedade aberta, na aba Fluxos e Funes, localize a funo Menor ou Igual:

63

64

8. Clique no primeiro parmetro e com a tela Propriedade aberta, na aba Fluxos e Funes, localize a funo Tamanho; 9. Clique no primeiro parmetro da funo Tamanho e aponte para a varivel Departamento; 10. Em seguida, selecione o segundo parmetro e atribua ao valor uma Constante do tipo Inteiro cujo valor 6: A expresso ficar assim:

11. Vamos criar uma expresso para mostrar o nome do Departamento. A Deciso ser

SIM. Insira um e execute duplo clique para ativar o Montador de expresso; 12. Com a tela Propriedade aberta, na aba Fluxos e Funes, localize a funo Mostrar Componente:

13. Clique no primeiro parmetro e na tela Propriedade, na aba Identificadores, localize o campo Departamento (EDTDEP_NOME):

64

65

14. Clique no segundo parmetro e na tela Propriedade, na aba Identificadores, selecione o valor Verdadeiro:

15. Confirme a expresso. Faa o mesmo para a negao da Deciso, mudando o valor lgico. Em seguida Salve o fluxo com o nome Cadastro de Departamento - Ocultar componente nome na camada Cliente. 16. Agora vamos associar o fluxo ao Evento Ao navegar do formulrio Cadastro de Departamento. Clique com o boto direito do mouse na rea do formulrio Cadastro de Departamentos e selecione o item Eventos; 17. Em Ao Navegar, Clique no boto ; 18. Na tela Definir Aes, no campo Fluxo associado, selecione o fluxo Cadastro de Departamento - Ocultar componente nome passando para o parmetro de entrada o valor do campo DEP_NOME:

65

66

19. Confirme os parmetros; 20. Agora executar no Webrun. Obs.; O fluxo e o formulrio utilizados neste exerccio podem ser importados para o projeto atravs dos arquivos Cadastro de Departamento - Ocultar componente nome.FRZ e Cadastro de Departamento com fluxo ocultar componente.

Exerccio 4
Criar um fluxo que conte a quantidade de funcionrios de um determinado departamento. Esse fluxo deve preencher um componente Caixa de Texto, que deve estar desvinculado do banco de dados. O fluxo dever ser executado pelo evento Ao navegar do formulrio Cadastro de Departamento.

Obs.: Ser utilizada a funo ALTERAR VALOR DO COMPONENTE. Passo a passo; 1. Abra o formulrio Cadastro de Departamentos e insira um componente Caixa de Texto . Defina para a propriedade Descrio o texto Total de Funcionrios e para a propriedade Apenas leitura informe Sim. Em seguida Salve o formulrio;

66

67

2. Abra o Editor de Fluxo de Aes; 3. Execute clique duplo em Incio; 4. Na tela Parmetros de Entrada crie uma varivel para receber o cdigo do departamento:

5. Monte o a seguinte estrutura de fluxo;

No primeiro processamento faremos uma consulta que retornar o total de funcionrios e o segundo ir atribuir este total ao componente Caixa de Texto. 6. Atravs da tela identificadores (variveis) crie uma varivel para receber o retorno da consulta:

7. Agora, criar a consulta retornando o total. Execute clique duplo no componente Processamento abrindo o Montador de Expresses; 8. Atravs do campo Atribuir o resultado ao identificador, associe a varivel TOTAL DE FUNCIONRIOS:

67

68

15. Clique no componente do Montador de Expresses e atravs da tela Propriedades localize a funo Campo. Esta funo permite obter o valor de retorno de um campo. No caso, o campo ser o retorno da consulta que ser executada atravs da funo Abrir Consulta. Observe imagem abaixo:

Ao inserir a funo Campo percebe-se que dois parmetros devem ser passados: informar uma origem de dados (consulta ou tabela) e informar um campo desta origem. No primeiro parmetro observe que passamos uma consulta: 16. Clicando no primeiro parmetro da funo Campo, clique na aba Fluxos e Funes e localize a funo Abrir consulta;

68

69

17. Aps selecionar a funo Abrir consulta, clique no primeiro parmetro SQL Consulta e clique no boto da tela Propriedades; 18. Na tela Assistente SQL desenvolva a consulta para obter o total de funcionrios:

Select Count(sig_funcionario.fun_cod), sig_funcionario.dep_cod From sig_funcionario Group By sig_funcionario.dep_cod Having (sig_funcionario.dep_cod = :DEPTO) A consulta possui um parmetro chamado DEPTO. Por este parmetro passaremos o cdigo do departamento para filtrar o total de funcionrios. Clique no boto . Aparecendo a tela Parmetros, clique no boto para configurar.

69

70

Na tela do Montador de Expresses, clicando no componente e exibindo a tela Propriedades, onde selecionaremos a varivel DEPARTAMENTO para passar o valor do parmetro da consulta:

Aps definir o parmetro de entrada para filtrar a consulta, clique no boto OK da tela Montador de Expresses. Voltando tela Parmetros clique no boto Salvar. Retornando a tela Assistente SQL clique o boto OK. Retornando a tela Montador de Expresses do componente Processamento, defina para o segundo parmetro o nome do campo que possui o valor desejado (atravs da tela Propriedades selecione o campo da consulta):

70

71

Aps selecionar o campo, clique no boto OK da tela Montador de Expresses. 19. Aps obter o contedo, execute clique duplo no segundo processamento; 20. Abrindo a tela Montador de Expresses, clique no balo inicial e localize a funo Alterar Valor do Componente atravs da aba Fluxos e Funes da tela Propriedades;

Para o primeiro parmetro aponte para o formulrio Cadastro de Departamentos. Para o segundo parmetro aponte para o (EDTDEP_NOME). componente Departamento

Para o terceiro parmetro aponte para a varivel TOTAL DE FUNCIONRIOS:

71

72

Clique no boto OK do Montador de Expresses. 21. Salve o fluxo com o nome TOTALIZANDO FUNCIONRIOS POR DEPARTAMENTO na camada Servidor; 22. Feche o fluxo; 23. Retornando para o formulrio Cadastro de Departamento, ative os eventos do formulrio e selecione Ao Navegar; 24. Na tela Definir aes clique no boto pois este fluxo ser chamado atravs de um componente SubFluxo do Cadastro de Departamento Ocultar componente nome; 25. Abrindo o Editor de fluxo de ao insira um componente Subfluxo no incio (por exemplo):

26. Execute clique duplo no componente Subfluxo abrindo a tela de configurao, Por onde apontar para o fluxo TOTALIZANDO FUNCIONRIOS POR DEPARTAMENTO:

72

73

27. O fluxo selecionado necessita de um parmetro de entrada. Na rea chamada Descrio clique no boto para definir este valor; 28. Atravs do Montador de Expresses e clicando no elemento inicial da expresso, crie uma varivel do tipo Parmetro de Entrada para passar o valor desejado ao sub-fluxo. Na tela Propriedades, clique no boto informando nome, tipo e tipo de identificador:

29. Aps criar a varivel, clique no componente inicial do Montador de Expresses e clique na varivel criada; 30. Clique no boto OK do Montador de Expresses e OK na tela do sub-fluxo; 31. Salve e feche o fluxo; 32. Retorne a tela Definir aes do formulrio Cadastro de Departamentos e passe o campo DEP_COD para o segundo parmetro de entrada; 33. Salve o formulrio ignorando a criao do campo e execute no Webrun. Obs.: O formulrio e o fluxo utilizado neste exemplo pode ser importado para seu projeto atravs dos arquivos Cadastro de Departamento contendo fluxo que totaliza funcionrios.FRZ e TOTALIZANDO FUCIONRIOS POR DEPARTAMENTO.FRZ.

73

74

Exerccio 5
Criar uma tela chamada Gerentes. Esta tela no possuir vnculo com banco de dados, no possuir barra de navegao e abas. Esta tela dever apresentar dois componentes: uma Lista Dinmica que liste os gerentes. O gerente deve ser do sexo masculino, no pode ser subordinado a outro gerente e deve ter idade superior a 35 anos. E insira um componente Boto cujo nome Executar Operao (este ir disparar um fluxo). O fluxo deve somar os salrios de todos os funcionrios subordinados ao gerente ou retornar uma mensagem: Retorno vazio. Os funcionrios tm que ser do sexo masculino e ter idade menor do que 25 anos. O resultado da operao deve ser exibido em uma Mensagem de alerta.

Passo a passo: 1. Crie um formulrio com a estrutura solicitada:

2. Clique direito na rea do formulrio e ative as propriedades definindo: para a propriedade Navegao e para a propriedade Abas informe No; 3. Salve o formulrio ignorando a gerao da tabela; 4. Configure as propriedades da Lista Dinmica: execute clique direito no componente e na opo Descrio defina o texto Gerentes. Na opo SQL desenvolva a seguinte consulta:

74

75

Select sig_funcionario.fun_cod, sig_funcionario.fun_nome From sig_funcionario Where (sig_funcionario.fun_cod_gerente Is Null) And (sig_funcionario.fun_sexo = 'M') And (sig_funcionario.fun_idade > 35) Aps clicar no boto OK defina para a propriedade Campo Chave o campo FUN_COD e para a propriedade Campo Lista aponte para o campo FUN_NOME. 5. Insira um boto no formulrio, ajuste o tamanho, clique direito no componente e na opo Descrio defina o texto Executar Operao. Para o Evento Ao Clicar do boto, clique no boto para abrir a tela Definir aes e a partir desta, clique no

boto ; 6. Com o Editor de Fluxos de Aes aberto, monte a seguinte estrutura de fluxo:

7. Neste fluxo ser utilizada uma Varivel Parmetro de Entrada, que passar o cdigo do funcionrio gerente para filtrar a consulta que executar a somatria dos salrios dos colaboradores correspondentes. Ative a tela Parmetro de Entrada executando clique duplo no componente Incio:

75

76

8. Neste fluxo ser utilizada um Identificador (varivel) que receber o retorno do total dos salrios provido da consulta. Caso a tela de variveis no esteja ativa, pressione a tecla F11 ou pelo menu Exibir Janela Variveis:

9. Agora, criar a consulta retornando o total. Execute clique duplo no componente Processamento abrindo o Montador de Expresses; 10. Atravs do campo Atribuir o resultado ao identificador, associe a varivel TOTAL DOS SALRIOS: 11. Clique no componente do Montador de Expresses e atravs da tela Propriedades localize a funo Campo. Esta funo permite obter o valor de retorno de um campo. No caso, o campo ser o retorno da consulta que ser executada atravs da funo Abrir Consulta. Observe imagem abaixo:

76

77

Ao inserir a funo Campo percebe-se que dois parmetros devem ser passados: informar uma origem de dados (consulta ou tabela) e informar um campo desta origem. No primeiro parmetro observe que passamos uma consulta: 12. Clicando no primeiro parmetro da funo Campo, clique na aba Fluxos e Funes e localize a funo Abrir consulta; 13. Aps selecionar a funo Abrir consulta, clique no primeiro parmetro SQL Consulta, clique no boto da tela Propriedades; 14. Na tela Assistente SQL desenvolva a consulta para obter o total de salrios:

Select sig_funcionario.fun_cod_gerente, Sum(sig_funcionario.fun_salario) From sig_funcionario Group By sig_funcionario.fun_cod_gerente Having (sig_funcionario.fun_cod_gerente = :GERENTE)

77

78

A consulta possui um parmetro chamado GERENTE. Por este parmetro passaremos o cdigo do funcionrio gerente para filtrar o total de salrios. Clique no boto . Aparecendo a tela Parmetros, clique no boto para configurar.

Na tela do Montador de Expresses, clicando no componente e exibindo a tela Propriedades, clique na varivel CDIGO DO FUCIONRIO:

Aps definir o parmetro de entrada para filtrar a consulta, clique no boto OK da tela Montador de Expresses. Voltando tela Parmetros clique no boto Salvar. Retornando a tela Assistente SQL clique o boto OK. Retornando a tela Montador de Expresses do componente Processamento, defina para o segundo parmetro o nome do campo que possui o valor desejado; Aps selecionar o campo, clique no boto OK da tela Montador de Expresses.

78

79

15. Aps obter o contedo, execute clique duplo no componente Interao; 16. Na tela Interao, selecione a funo Mensagem de Alerta e clique no boto para configurar o contedo da mensagem; 17. Abrindo a tela Montador de Expresses, clique no balo inicial e selecione a varivel TOTAL DOS SALRIOS. Clique no boto OK do Montador de Expresses. Voltando para a tela Interao, clique no boto OK. 18. Salve o fluxo com o nome TOTALIZANDO SALRIOS na camada Servidor; 19. Feche o fluxo; 20. Na tela Definir ao e passe o componente Gerentes (MakerLookup1) como parmetro de entrada:

21. Aps clicar no boto OK, salve o formulrio e execute no Webrun. Obs.: O fluxo e o formulrio criados no exemplo podem ser importados para o projeto atravs dos arquivos FORMULRIO GERENTES.FRZ e TOTALIZANDO SALRIOS.FRZ.

Exerccio 6
Altere o formulrio Cadastro de Cidades incluindo um componente Texto Longo que dever apresentar os funcionrios moradores da respectiva cidade. A lista de moradores ser gerada por um fluxo associado ao Evento Ao navegar do formulrio.

Passo a passo: 1. Altere o layout do formulrio Cadastro de Cidades deixando-o da seguinte forma:

79

80

2. Salve o formulrio; 3. Ative o Editor de fluxos de aes e monte a seguinte estrutura de fluxo:

4. Defina os Parmetros de Entrada:

80

81

5. Defina os Identificadores (variveis):

6. Para o primeiro Processamento:

Para a funo Abrir Consulta crie a seguinte consulta:

81

82

Select ger_endereco.cid_cod, sig_funcionario.fun_nome From ger_endereco Inner Join sig_funcionario On ger_endereco.fun_cod = sig_funcionario.fun_cod Where (ger_endereco.cid_cod = :CIDADE) A consulta possui um parmetro chamado CIDADE. Por este parmetro passaremos o cdigo da cidade para filtrar os funcionrios. Clique no boto Aparecendo a tela Parmetros, clique no boto para configurar. .

82

83

Na tela do Montador de Expresses, clicando no componente e exibindo a tela Propriedades, onde selecionaremos a varivel CDIGO DA CIDADE para passar o valor do parmetro da consulta:

Aps definir o parmetro de entrada para filtrar a consulta, clique no boto OK da tela Montador de Expresses. Voltando tela Parmetros clique no boto Salvar. Retornando a tela Assistente SQL clique o boto OK. 7. Para a Deciso:

83

84

A funo Existem Registros manter o loop enquanto existirem registros no retorno da consulta. 8. Para o segundo Processamento:

Neste Processamento temos uma concatenao atribuindo varivel AUXILIAR. 9. Para o terceiro Processamento:

Neste Processamento temos a funo Tabela Prximo Registro move o ponteiro da consulta para o prximo registro. 10. Para o quarto Processamento:

84

85

Neste processamento temos a atribuio do contedo da varivel AUXILIAR ao componente do formulrio. 11. Salve o fluxo chamando-o LISTA DE MORADORES; 12. Abra os eventos do formulrio e associe AO NAVEGAR, passando como parmetro de entrada o cdigo da cidade; 13. Salve o formulrio e execute no Webrun. Obs.: O fluxo e o formulrio deste exerccio podem ser importados para o projeto atravs dos arquivos Cadastro de Cidades com lista de moradores.FRZ e LISTA DE MORADORES.FRZ.

85

86

TERCEIRO DIA Trabalhando com funes de grade


Crie um formulrio sem vnculo a banco de dados e grave com o nome Trabalhando com Grade. Este formulrio deve conter a estrutura abaixo:

Faa um fluxo que posicione o cursor no campo Nome ao abrir o formulrio; Faa um fluxo, que obtenha os valores dos componentes e alimente a grade ao clicar no boto; Crie um fluxo para o boto Excluir Linha, para excluir a linha que estiver selecionada na grade; Crie um fluxo para excluir o intervalo de linhas; Incluir um componente Caixa de Texto que totalize os salrios a cada atualizao.

Passo a passo: 1. Inicialmente crie o formulrio da grade, contendo os trs campos de cadastro (para este exemplo, a mscara ou tipo de dados dos campos no sero levados em considerao):

86

87

2. Salve o formulrio, chamando-o de Grade e permita a criao da tabela de origem:

3. Feche o formulrio Grade; 4. Crie o formulrio principal, incluindo os componentes necessrios, chamando-o de Trabalhando com Grade e sem criar a origem dos dados (para este exemplo, a mscara ou tipo de dados dos campos no sero levados em considerao). Para o componente Grade, defina na Propriedade Formulrio que a origem Grade. Para o componente Caixa de Texto correspondente ao Total de Salrios defina na Propriedade Apenas Leitura o valor SIM; 5. Ative as propriedade do boto chamado Inserir e ative a Tabulao; 6. Defina que a tabulao ocorra apenas para os componentes de entrada e no boto de insero:

7. Salve o formulrio; 8. Crie um fluxo que foque o campo Nome ao entrar no formulrio:

9. Defina os Parmetros de Entrada do fluxo (clique duplo no componente Incio). No caso apenas informe o Formulrio de Trabalho:

87

88

10. Para o Processamento, utilize a funo Focar Componente:

11. Salve este fluxo na camada cliente, chamando-o de Exercicios - Focar Componente; 12. Feche o editor de fluxos; 13. Voltando ao formulrio Trabalhando com Grade, ative os eventos do formulrio usando clique direito na rea do objeto e escolha Ao Entrar. Aponte para o fluxo Exercicios - Focar Componente; 14. Abra o editor de fluxos para a criao do fluxo que atribuir o valor ao componente Total de Salrios:

15. Defina os Parmetros de Entrada:

88

89

16. Para o Processamento:

A funo Atribuir Valor ao Componente define o valor do componente que ser mascarado atravs da funo Formatar Nmero. 17. Salve o fluxo chamando-o de Exercicios - Grade Total de Salrios na camada servidor; 18. Inicie um novo fluxo;

89

90

Este fluxo insere uma nova linha na grade, depois obtm os dados dos componentes e manda para a grade e totaliza os salrios. 19. Inicie criando os Parmetros de Entrada (clique duplo no componente Incio):

20. Para o processamento chamado Inserir Linha na Grade:

90

91

21. Para o processamento chamado Inserir Nome na Grade:

A funo principal Grade Atribuir Valor. Inicia identificando a grade, em seguida a posio da linha inserida (j que o ndice da grade inicia com valor 0 (zero), utilizou-se a funo Grade Obter Total de Linhas e executou uma Subtrao por 1 (um)). Os parmetros seguintes correspondem a identificao da coluna e a origem do valor para inseero. 22. Para o processamento chamado Inserir Idade na Grade:

91

92

23. Para o processamento chamado Inserir Salrio na Grade:

24. Para o processamento chamado Limpar componente Nome:

Aps a insero dos dados na grade, o contedo do componente ser apagado. 25. Para o processamento chamado Limpar componente Idade:

92

93

26. Para o processamento chamado Limpar componente Salrio:

27. Para o processamento chamado Focar componente Nome:

93

94

28. Para o Sub-Fluxo:

Localize o fluxo Exercicios Grade Total de Salrios. Este fluxo necessita de um parmetro de entrada:

Observe que a funo principal chama-se Grade Somatria de uma coluna que recebe os parmetros: nome do formulrio que contm a grade e o nome da coluna que ser totalizada. 29. Salvar o fluxo com o nome Exercicios - Grade Inserir Valores na camada cliente; 30. Associe o fluxo ao evento Ao Clicar do boto Inserir:

94

95

31. Inicie um novo fluxo:

Este fluxo executar a excluso da linha selecionada e recalcula o total de salrios. 32. Inicie definindo os Parmetros de Entrada. No caso, apenas aponte o Formulrio de Trabalho:

95

96

33. Para o Processamento:

A funo principal chama-se Grade Remover Linha que necessita de dois parmetros: o nome da grade e a linha que ser excluda. A posio da linha definida atravs da funo Grade Obter Linha Selecionada. 34. Para o Sub-Fluxo:

Localize o fluxo Exercicios Grade Total de Salrios. Este fluxo necessita de um parmetro de entrada:

96

97

Observe que a funo principal chama-se Grade Somatria de uma coluna que recebe os parmetros: nome do formulrio que contm a grade e o nome da coluna que ser totalizada. 35. Salve o fluxo chamando-o de Exercicios - Grade Remover Linha na camada cliente; 36. Associe o fluxo ao evento Ao Clicar do boto Excluir Linha; 37. Inicie um novo fluxo:

Este fluxo remover as linhas em um intervalo definido pelo usurio. 38. Inicie pelos Parmetros de Entrada (clique duplo no componente Incio):

97

98

39. Para a Deciso:

Enquanto o valor inicial for menor ou igual ao valor final do intervalo, o fluxo excluir a linha. 40. Para o processamento Remove Fim:

98

99

A funo principal Grade Remover Linha que recebe o nome da grade e a posio da linha. 41. Para o processamento Decrementa Fim:

Aqui redefine a posio da linha final do intervalo. 42. Para o Sub-Fluxo:

Localize o fluxo Exercicios Grade Total de Salrios. Este fluxo necessita de um parmetro de entrada:

99

100

Observe que a funo principal chama-se Grade Somatria de uma coluna que recebe os parmetros: nome do formulrio que contm a grade e o nome da coluna que ser totalizada. 43. Salve o fluxo chamando-o de Exercicios - Grade Remover Intevalo na camada cliente; 44. Associe o fluxo ao evento Ao Clicar do boto Excluir Intervalo; 45. Salve o formulrio e execute no Webrun. Obs.: Os formulrios e fluxos envolvidos neste exemplo podem ser importados para o projeto atravs dos arquivos Grade.FRZ, Trabalhando com Grade.FRZ (os formulrios), Exercicios Focar Componente.FRZ, Exercicios Inserir Valores.FRZ, Exercicios Grade Remover Intervalo.FRZ, Exercicios Remover Linha.FRZ, Exercicios Total de Salrios.FRZ os fluxos e STD_GRADE.FRZ (estrutura de dados).

Exerccios com Fluxos


Exerccio 7
Criar um formulrio desvinculado do banco de dados, chamado Gerar Arquivo. Esse formulrio deve conter um componente Caixa de Texto com o nome Caminho do Arquivo, um componente Texto Longo com o nome Contedo do arquivo e um boto chamado Gerar Arquivo. O boto deve executar um fluxo que gere o arquivo com o contedo descrito em Contedo do arquivo e com o caminho descrito em Caminho do Arquivo:

100

101

Passo a passo: 1. Crie um formulrio contendo trs componentes: duas caixas de texto chamadas Caminho e Contedo e um boto chamado Gerar Arquivo; 2. Abra o editor de fluxos e desenvolva a seguinte estrutura:

3. Defina os Parmetros de Entrada:

4. Defina as variveis:

5. Para o Primeiro Processamento utilizada a funo Abrir arquivo para escrita, passando como primeiro parmetro o Caminho e segundo parmetro como False, retornando a referncia para a varivel Arquivo como mostra a imagem abaixo:

101

102

6. Para o Segundo Processamento utilizada a funo Adicionar a arquivo, passando como primeiro parmetro a referncia do arquivo que a varivel Arquivo e o contedo do arquivo passado no inicio como Contedo, abaixo imagem deste processamento:

7. Para o Terceiro Processamento utilizada a funo Fechar arquivo, passando como primeiro parmetro a referncia do arquivo que a varivel Arquivo, abaixo imagem deste processamento:

8. Para a Mensagem de alerta definida uma mensagem para exibir ao termino da gerao do arquivo como indicado abaixo (Arquivo gerado com sucesso):

102

103

9. Ao vincular no evento do clique do boto devem ser indicados os Parmetros de Entrada do fluxo sendo eles os componentes do formulrio como mostra imagem abaixo:

Obs.: O formulrio e o fluxo deste exerccio podem ser importados para o projeto atravs dos arquivos Exerccio7.FRZ e FLUXO Exerccio7.FRZ.

Exerccio 8
Crie um formulrio sem vnculo ao banco de dados, chamado Exportar Funcionrios. Crie um fluxo para gerar um arquivo de exportao cuja extenso .TXT e o nome do arquivo depende do departamento selecionado. O arquivo deve conter o Nome do funcionrio, o nome do Gerente, a Idade, o Bairro e a Cidade do funcionrio. As informaes dos funcionrios devem aparecer separadas por ";" e na mudana de cada funcionrio deve haver uma quebra de linha.

Observao: usar a funo Faa com barra de progresso Layout do Arquivo:

103

104

Nome do Funcionrio; Gerente; Idade; Bairro; Cidade. Ex.: Rafael Alves; Ricardo Gomes;23;Costa Azul;Salvador Andr Silva;Renato Amaral;26;Pituba;Salvador Alex Lima;ngelo Barbosa;22;Brotas;Salvador ... Passo a passo:

1. Atravs da paleta Objetos clique na opo ; 2. Na tela Assistente de Criao de Novo Formulrio defina o nome Exportar Funcionrios e clique no boto OK; 3. Redimencione o formulrio e defina algumas Propriedades: para as propriedades Navegao e Abas informe No; 4. Localize o formulrio Cadastro de Departamentos e arraste-o para o formulrio em forma de Lista Dinmica. Ative as Propriedades do componente e apague a referncia contida em Campo; 5. Insira um componente Boto ao lado da lista de departamentos do formulrio. Na Propriedade Descrio defina o texto Exportar; 6. Ative o Editor de Fluxos de Aes ; 7. Inicialmente monte a seguinte estrutura de fluxo:

Este fluxo ir consultar os dados solicitados dos funcionrios, obter o total de registros que retornam da consulta para criar a barra de progresso e no loop a insero ocorrer linha a linha. Ao final uma mensagem ser exibida informando a concluso da gerao do arquivo. 8. Agora defina os Parmetros de Entrada. Execute clique duplo no elemento Incio:

104

105

9. Agora defina os Identificadores (variveis):

10. Para o primeiro Processamento:

105

106

11. A funo Abrir Consulta dever ser configurado o parmetro SQL Consulta da seguinte forma:

Select sig_funcionario.fun_nome, sig_funcionario.fun_idade, GERENTE.fun_nome As "GERENTE", ger_endereco.end_bairro, ger_cidade.cid_nome, sig_funcionario.dep_cod, sig_departamento.dep_nome From sig_funcionario Left Join sig_funcionario GERENTE On sig_funcionario.fun_cod_gerente = GERENTE.fun_cod Left Join ger_endereco On sig_funcionario.fun_cod = ger_endereco.fun_cod Left Join ger_cidade On ger_endereco.cid_cod = ger_cidade.cid_cod Inner Join sig_departamento On sig_funcionario.dep_cod = sig_departamento.dep_cod Where (sig_funcionario.dep_cod = :DEPARTAMENTO) Obs.: Para o parmetro da consulta chamado DEPARTAMENTO, aponte para o Parmetro de Entrada definido no incio do passo a passo:

106

107

12. Para o segundo Processamento:

107

108

13. A funo Abrir Consulta dever ser configurado o parmetro SQL Consulta da seguinte forma:

Select Count(sig_funcionario.fun_cod), sig_funcionario.dep_cod From sig_funcionario Group By sig_funcionario.dep_cod Having (sig_funcionario.dep_cod = :DEPARTAMENTO)

108

109

Obs.: Para o parmetro da consulta chamado DEPARTAMENTO, aponte para o Parmetro de Entrada definido no incio do passo a passo:

14. Para o terceiro Processamento:

109

110

Este processamento define o arquivo que ser criado. Sempre que houver a necessidade de escrever ou ler arquivos, dever criar uma varivel do tipo Variante para armazenar a referncia. 15. Para a Deciso ser utilizada a funo Faa com Barra de Progresso e a funo Existem Registros mantendo a barra at percorrer todos os registros resultantes da consulta:

16. Para o quarto Processamento:

110

111

Neste processamento ocorre a concatenao de todos os dados que iro compor a linha do arquivo juntamente com um comendo de quebra de linha no final. 17. Para o quinto Processamento:

Utilize a funo Dormir para pausar a execuo do fluxo, permitindo assim que a barra de progresso possa ser desenhada na tela. Este recurso no usualmente aplicado. Aqui estamos forando a exibio provocando um daley no loop. 18. Para o sexto Processamento:

111

112

Neste processamento estamos movendo o cursor para o prximo registro da consulta. 19. Para o stimo Processamento:

20. Para a Interao:

112

113

Uma simples mensagem de alerta para o usurio. 21. Salve o fluxo chamando-o de EXPORTANDO FUNCIONRIOS, direcionando para a camada servidor; 22. Retornando para o formulrio, associe ao evento Ao Clicar do boto passando como parmetro o valor que o componente Lista Dinmica retorna; 23. Salve o formulrio e execute-o no Webrun. Obs.: O formulrio e o fluxo deste exerccio podem ser importados para o projeto atravs dos arquivos Exportar Funcionrios.FRZ e Fluxo Exportar Funcionrios.FRZ.

Exerccio 9
Crie um formulrio chamando-o de Exportar Todos os Funcionrios e insira um boto para executar um fluxo gerando a seguinte listagem em arquivo: Cdigo do Departamento;Nome do Departamento Cdigo do Funcionrio;Nome do Funcionrio;Idade;Sexo Cdigo do Funcionrio;Nome do Funcionrio;Idade;Sexo Cdigo do Funcionrio;Nome do Funcionrio;Idade;Sexo Quantidade de Funcionrios: Quantidade Ex.: 1;Comercial 1;Luiz Carlos 2;Rafael Alves 3;Alex Lima Quantidade de Funcionrio: 3 2;Desenvolvimento 4;Danilo Dantas 5;Rogrio Correia Quantidade de Funcionrios: 2 Passo a passo:

113

114

1. Crie um formulrio sem vnculo ao banco contendo um componente boto chamado Exportar todos os Funcionrios:

2. Crie um fluxo com a seguinte estrutura:

3. Defina uma varivel chamada Tabela Dados do tipo Tabela que vai conter a consulta de departamentos e funcionrios, Defina Cod Departamento do tipo Inteiro que vai receber o cdigo do departamento atual, defina Lista Dados que vai armazenar temporariamente os registros e defina tambm uma varivel chamada Count do tipo Inteiro iniciada como 0 (zero) que vai contar a quantidade de funcionrios em um determinado departamento:

114

115

4. Para o Primeiro processamento - efetue uma consulta utilizando a funo Abrir consulta e retorne o valor da consulta para uma varivel do tipo tabela:

A consulta ser estruturada da seguinte forma:

Select sig_departamento.dep_cod, sig_departamento.dep_nome, sig_funcionario.fun_cod, sig_funcionario.fun_nome, sig_funcionario.fun_idade, Case When sig_funcionario.fun_sexo = 'M' Then 'Masculino' Else 'Feminino' End As "Sexo" From sig_departamento Inner Join sig_funcionario On sig_departamento.dep_cod = sig_funcionario.dep_cod Order By

115

116

sig_departamento.dep_nome, sig_funcionario.fun_nome 5. Para a Deciso utilize a funo Existem registro passando a tabela obtida pelo primeiro processamento:

6. Para o Processamento Condio SIM utilize a funo Campo passando no primeiro parmetro a tabela e segundo parmetro o cdigo do departamento, retornando para a varivel Cod Departamento como indica imagem abaixo:

7. Para o Processamento Armazena departamento concatene a varivel criada Lista Dados, Cod Departamento, com um ; (ponto e vrgula), com o campo da Tabela dados que contm o nome do departamento e por fim concatena com uma quebra de linha, sendo esta utilizada como Concatenao de dois parmetros, sendo os dois convertidos utilizando a funo Letra, passando como 13 no primeiro parmetro e 10 no segundo parmetro.

116

117

8. Para a Segunda Deciso, utiliza a funo Igual, passando no primeiro parmetro o cdigo do departamento Cod Departamento e no segundo parmetro a funo Campo definindo no primeiro parmetro Tabela Dados e no segundo parmetro DEP_COD como mostra a imagem abaixo:

9. Para o Processamento Armazena Funcionrios crie uma concatenao com os campos solicitados dos funcionrios, definindo a funo Concatenao, no primeiro parmetro Lista dados, no segundo parmetro utilizando a funo Letra passando 9, e obtendo da Tabela dados os campos do funcionrio utilizando a funo Campo passando a tabela como primeiro parmetro e escolhendo o campo para ser utilizado, por fim colocar Concatenao de dois parmetros, sendo os dois convertidos utilizando a funo Letra, passando como 13 no primeiro parmetro e 10 no segundo parmetro para adicionar uma quebra de linha que pode ser lida nos editores de textos:

117

118

10. Para o Processamento Prximo registro da tabela, utiliza a funo Tabela Prximo registro para passar o registro da tabela, ou seja definido em seu parmetro a Tabela Dados.

11. Para o Processamento Incrementa contador, utilizar a funo Soma passando varivel Count e no segundo parmetro o nmero 1, sendo retornado ao prprio Count, tendo a quantidade de funcionrios, como mostra a imagem abaixo:

12. Para o Processamento Armazena Quantidade de Funcionrios, utilizar a funo Concatenao passando como parmetros: a varivel Lista Dados mais um texto escrito Quantidade de Funcionrios:, mais a varivel Count que agora contem a

118

119

quantidade de vezes passada no lao de repetio ou seja a quantidade de funcionrios, depois adicionado duas Concatenaes adicionando duas quebras de linha como mostra imagem abaixo:

13. Para o Processamento Zerar contador atribua a varivel Count o valor 0 para zerar esta e na prxima vez caso entre novamente no lao possa contar corretamente a quantidade de funcionrio:

14. Para o Sub-Fluxo chamando o Exercicio 7, em Caminho que esperado voc deve passar C:\TodosFuncionarios.txt e em Conteudo deve ser passado a Lista Dados que est preenchida com toda a consulta e armazenada estruturalmente de forma como foi solicitado:

119

120

15. Salve o fluxo e atribua ao evento Ao Clicar do componente boto; 16. Insira o formulrio ao menu e execute no Webrun. Obs.: O formulrio e os fluxos deste exerccio, podem ser importados a partir dos arquivos FORMULRIO EXPORTAR TODOS OS FUNCIONRIOS.FRZ e FLUXO EXPORTAR TODOS OS FUNCIONRIOS.FRZ (este arquivo inclui o fluxo do Exerccio 7).

Obtendo dados de arquivo para tabela


A partir do arquivo gerado no Exerccio 8, importe os dados para o seguinte formulrio:

O recurso de importao permitir que o usurio selecione um arquivo da mquina local:

120

121

Passo a passo; 1. Inicialmente desenvolva o formulrio acima ilustrado, contendo campos de texto e um boto que ir disparar o fluxo de importao; 2. Salve o formulrio chamando-o de IMPORTAR DADOS e permita que o assistente crie a fonte de dados; 3. Agora abra o editor de fluxos e desenvolva a seguinte estrutura:

121

122

4. Agora defina os Parmetros de Entrada:

Obs.: Ser utilizado um parmetro passando o nome do arquivo porqu ser criado um fluxo chamador que passar a identificao do arquivo. 5. Agora defina os Identificadores (variveis):

6. Para o primeiro Processamento:

122

123

Este processamento identifica o arquivo (nome e local); 7. Para a Deciso:

Observe que esta funo mantm o loop enquanto existirem dados no arquivo. 8. Para o segundo Processamento:

123

124

A funo Ler linha do arquivo retorna o contedo da linha e este retorno est sendo atribudo a uma varivel do tipo Letras. 9. Para o terceiro Processamento:

Aps obter o contedo da linha do arquivo no passo 8, deve-se obter o valor destinado para cada campo. A utilizao da funo Quebrar Texto cria uma lista de objetos e cada um possui uma posio definida e iniciando por 1. A lista atribuda a uma varivel do tipo Variante. 10. Para o quarto Processamento:

124

125

Este processamento responsabiliza-se em inserir os dados na tabela do formulrio, atravs da funo Executar Atualizao. Clicando no parmetro SQL Atualizao, escolha a opo Insero:

Aps clicar no boto WIZARD a tela Construtor SQL:Insero exibida e deve-se configurar:

125

126

Selecionando campo a campo, utilize a funo Obter objeto da lista para obter de cada posio o valor correspondente ao campo. 11. Aps definir o valor de cada campo, clique no boto OK para sair da tela Construtor SQL e outro OK para sair da tela do Montador de Expresses; 12. Para o quinto Processamento:

13. Para o sexto Processamento:

126

127

A funo de atualizao de formulrio utilizado para mostrar os registros importados. 14. Para o stimo Processamento:

Este comando utilizado para remover o arquivo. Esta funo ser utilizada pois na rotina a seguir, o arquivo ser enviado para o servidor e aps a importao dos dados, o arquivo excludo.

15. Salve o fluxo com o nome IMPORTAR DADOS; 16. Pelo menu Arquivo clique em Novo; 17. Crie a seguinte estrutura:

127

128

18. Para o componente Deciso:

A funo Interao de Confirmao retorna um valor lgico. Esta funo apresentar uma tela aguardando que o usurio clique no boto OK ou CANCELAR:

19. Para o componente Processamento:

128

129

A funo Upload permitir a interao do usurio na seleo do arquivo contendo os dados:

20. Salve o fluxo chamando-o de CONFIRMA IMPORTAR DADOS; 21. Feche o editor de fluxos e retorne para o formulrio IMPORTAR DADOS; 22. Atribua ao evento Ao Clicar do boto o fluxo CONFIRMA IMPORTAR DADOS:

129

130

23. Salve o formulrio e execute-o no Webrun. Obs.: O formulrio, fluxo e o arquivo de texto utilizados neste exerccio podem ser importados para o projeto atravs dos arquivos Formulrio Importar Dados.FRZ e os fluxos IMPORTAR DADOS.FRZ e CONFIRMA IMPORTAR DADOS o arquivo de texto pode ser copiado para a unidade C: da sua mquina.

Lendo dados de um contedo XML


Esse exemplo permite obter os filhos da raiz de um contedo XML. O contedo XML est em uma string passada como parmetro na funo Abrir XML, porm poderia ser obtido tambm de um arquivo.XML utilizando a funo Abrir XML de um arquivo. Seguindo, utilize a funo Obter raiz, no caso do exemplo ser a tag <aviso>. Logo aps feito um lao com todos os filhos obtidos da funo Filhos de um elemento XML. Nesta funo se desejar obter um filho especfico, deve-se passar o nome do mesmo no 2 parmetro, caso no passe, a funo retornar todos os filhos. A partir de ento utilizado um lao para exibir o valor de cada filho. Conteudo do XML: <?xml version="1.0"?> <aviso> <para>Oi</para> <de>Jefferson</de> <cabecalho>Lembre-se</cabecalho> <corpo>Testando...</corpo> </aviso> Passo a passo: 1. Criar um formulrio com um Boto que ir disparar o fluxo:

130

131

2. Atravs das Propriedades do formulrio, desabilite Navegao, Abas e salve o formulrio chamando-o de Exemplo XML; 3. Abra o Editor de Fluxos de Ao e crie a seguinte estrutura:

4. Crie os Identificadores (variveis) (caso a janela no esteja presente, pressione F11):

131

132

5. Para o processamento Obtem XML;

utilizada a funo Abrir XML passando como parmetro o contedo XML e o retorno desta funo ser atribudo a varivel XML. 6. Para o processamento Obtem Raiz;

utilizada a funo Obter Raiz passando como parmetro a varivel XML, e o retorno desta funo ser atribudo a varivel Raiz XML. 7. Para o processamento Obtem Filhos da Raiz;

132

133

utilizada a funo Filhos de Elemento XML passando como primeiro parmetro a varivel Raiz XML, o retorno desta funo ser atribudo a varivel Filhos XML. 8. Para o processamento Obtem Total de Filhos;

utilizada a funo Tamanho da Lista passando como parmetro a varivel Filhos XML, o retorno desta funo ser atribudo a varivel Total de Filhos. 9. Para a Deciso;

133

134

utilizada a funo Menor ou igual passando como primeiro parmetro a varivel Contador e no segundo parmetro a varivel Tamanho da Lista, e o retorno desta funo ser atribudo a varivel Total de Filhos. 10. Para o processamento Obtem Filho do XML:

utilizada a funo Obter Objeto da Lista passando como primeiro parmetro a varivel Filhos XML e no segundo a varivel Contador, o retorno desta funo ser atribudo a varivel Filho. 11. Para o processamento Obtem Valor do Filho e Armazana em Valores:

134

135

utilizada a funo Concatenao passando como primeiro parmetro a varivel Valores, no segundo a varivel Obter Valor de um elemento XML passando como parmetro a varivel Filho, e no terceiro parmetro a funo Quebra de Linha, o retorno desta funo ser atribudo a varivel Valores. 12. Para o processamento Incrementa Contador:

13. Para o processamento Exibe Valores:

135

136

utilizada a funo Alerta Aguardando Ok passando como parmetro a varivel Valores. 14. Salve o fluxo na camada servidor, chamando-o de Fluxo Exemplo XML; 15. Atribua o fluxo ao evento Ao Clicar do boto do formulrio. Obs.: O formulrio e fluxo deste exemplo podem ser importados para o projeto atravs dos arquivos Exemplo XML.FRZ e Fluxo Exemplo XML.FRZ.

Trabalhando com MD5


Desenvolver uma tela de solicitao de nome de usurio e senha onde o usurio com o perfil de administrador editar. Aplicar aos eventos Antes de Alterar e Antes de Inserir. Este caso muito freqente em terminais de caixas quando o usurio no possui permisso de edio de partes do sistema. Para este exemplo utilize o formulrio Cadastro de Funcionrios para requisitar tela login e senha do usurio administrador quando o campo Salrio for editado.

Passo a passo: 1. O formulrio Cadastro de Funcionrios ser implementa com uma imagem que servir de boto chamados da tela de login e senha. Para a implementao, inclua uma imagem na galeria do projeto. Acesse a galeria de imagens do Maker e adicione a seguinte imagem localizada no contexto do Webrun C:\Arquivos de programas\Softwell Solutions\Maker 2.6\Webrun 2\tomcat\webapps\webrun\Resource\add_system.gif ou C:\Program Files (x86)\Softwell Solutions\Maker 2.6\Webrun 2\tomcat\webapps\webrun\Resource\ add_system.gif (para Win 64):

136

137

2. Insira um componente Imagem no formulrio Cadastro de funcionrios apontando para a imagem recm inserida na Galeria de Imagens. O formulrio dever ficar da seguinte forma:

3. Salve o formulrio; 4. Devem ser criados dois grupos atravs do menu Projeto Controle de Acesso Grupos:

137

138

5. Abra o projeto no Webrun; 6. Ative o para dar as permisses necessrias no componente Salrio do formulrio Cadastro de Funcionrios; 7. Com o modo gerente ativado, clique no formulrio Cadastro de funcionrios ser exibido a tela abaixo:

8. Clique no cone para abrir o formulrio; 9. Clique no componente Salrio e na permisso Apenas Leitura deixe marcado o grupo Usurios e desmarcado o grupo Administradores; 10. Realize o mesmo procedimento para o componente imagem e na permisso Visvel deixe marcado o grupo Usurios e desmarcado o grupo Administradores; 11. Retorne ao ;

138

139

12. Retorne ao Maker; 13. Criar um formulrio com o nome Autorizar atualizao sem vnculo com banco de dados, que dever ficar como a estrutura abaixo:

O formulrio alm de no possuir origem de dados, defina Sim na Propriedade Modal. 14. Criar um fluxo chamado Coloca salrio em apenas leitura e associar ao evento Ao Navegar do formulrio Cadastro de funcionrios. O fluxo dever ficar com a seguinte estrutura:

15. Inicie declarando um Parmetro de Entrada para receber o cdigo do grupo passado como constante e defina o formulrio Cadastro de funcionrios como Formulrio de Trabalho:

139

140

16. Para a Deciso,deve verificar se o usurio logado est no grupo Administradores:

A consulta dever ser estruturada como mostra imagem abaixo:

140

141

Select fr_usuario_grupo.grp_codigo From fr_usuario_grupo Where (fr_usuario_grupo.usr_codigo = :usuario) No parmetro usuario o deve ser utilizada a funo Id do usurio para obter o usurio logado no momento.

141

142

17. 18. 19. 20.

Clique no OK do Montador de Expresses; Clique em Salvar na tela Propriedades; Clique OK na tela Deciso; Para o Processamento, define o campo Salrio como apenas leitura utilizando a funo Campo Apenas Leitura:

21. Salve o fluxo; 22. Agora, criar um fluxo que ser associado ao evento Ao Clicar da imagem que estar ao lado do campo Salrio. Este fluxo abrir o formulrio que Autoriza atualizao. Retornando ao editor de fluxos, desenvolva a seguinte estrutura:

142

143

23. Salve o fluxo chamando-o de Autorizar atualizao, associe ao evento Ao Clicar da imagem que estar ao lado do campo Salrio; 24. Retornando ao editor de fluxos, crie um fluxo chamando-o de Confirma autorizao na camada servidor e associar ao subfluxo que se encontra no fluxo Autorizao. O fluxo dever ficar da seguinte maneira:

25. Inicialmente defina os Parmetros de Entrada:

26. Defina os Identificadores (variveis):

143

144

27. Para o primeiro Processamento (Obtm criptografia da senha) verifique que a criptografia da senha do usurio em Maker realizada da seguinte maneira: obtido o MD5 da concatenao do cdigo do usurio (campo USR_CODIGO da tabela FR_USUARIO) com a senha informada:

Deve ser realizada um consulta para obter o cdigo do usurio passando o login informado no formulrio Autorizar atualizao. A consulta dever ficar da seguinte maneira:

144

145

Select fr_usuario.usr_login, fr_usuario.usr_codigo From fr_usuario Where (fr_usuario.usr_login = :usuario) 28. Para o Segundo Processamento (Consulta senha) deve-se criar uma consulta que retorne o registro que possua a senha e o cdigo do grupo Administradores. A consulta dever ficar:

145

146

Select fr_usuario.usr_codigo From fr_usuario Inner Join fr_usuario_grupo On fr_usuario_grupo.usr_codigo = fr_usuario.usr_codigo Where (fr_usuario.usr_senha = :senha) And (fr_usuario_grupo.grp_codigo = 2) 29. Para a Deciso (Existem registro), deve-se verificar se existe registro no retorno da consulta anterior.

30. Caso exista registro, o fluxo retorna o inteiro 1, caso contrrio retorna o inteiro 0. Ento foram inseridos dois componentes Fim: para a terminao Sim:

31. E para a terminao No definiu:

146

147

32. Salve o fluxo na camada servidor chamando-o de Confirma autorizao; 33. Ainda no editor de fluxos, clique em Novo; 34. Criar um fluxo chamado Autorizao na camada cliente e associar ao evento Ao clicar do boto Autorizar do formulrio Autorizar atualizao. O fluxo dever ficar com a seguinte estrutura:

35. Inicialmente defina o Parmetro de Entrada:

147

148

36. Defina os Identificadores (variveis):

37. Para o SubFluxo, aponte para o fluxo Confirma Autorizao passando dois parmetros (usurio e senha) e retornando um inteiro que informa se o usurio existe e tem permisso para alterar o salrio:

148

149

38. Para a Deciso, verificar se o retorno do Subfluxo igual a 1:

39. Caso a deciso seja Sim o processamento Habilita componente salrio deve utilizar a funo Executar fluxo no formulrio para remover a propriedade apenas leitura do componente Salrio no formulrio Cadastro de funcionrios. No primeiro parmetro da funo so utilizadas as funes Obter formulrio chamador e Obter formulrio atual. Caso o retorno seja No deve ser exibida a mensagem: Credenciais invlidas ou usurio no tem permisso para esta operao!.

149

150

40. No segundo parmetro passado o fluxo que ser executado. No nosso caso o fluxo HabilitaSalario, que remove a propriedade apenas leitura do campo salrio.

41. No segundo Processamento (Fechar formulrio) utilizar a funo Fechar formulrio:

150

151

42. No terceiro Processamento (Alerta!) utilizar a funo Alertar Aguardando OK:

43. Salvar o fluxo chamando-o de Autorizao na camada cliente e associar ao evento Ao clicar do boto Autorizar do formulrio Autorizar atualizao. Obs.: Os formulrios e fluxos deste exerccio podem ser importados para o projeto atravs dos arquivos CADASTRO DE FUNCIONRIOS COM EXEMPLO MD5.FRZ, Autorizar atualizao.FRZ, Coloca salrio em apenas leitura.FRZ, Autorizao.FRZ, FLUXO Autorizar atualizao.FRZ, FLUXO Coloca salrio em apenas leitura.FRZ, Confirma autorizao.FRZ e HabilitaSalario.FRZ.

Trabalhando com fluxos genricos(Exemplo 1)


Altere o formulrio Estados, incluindo um componente Caixa de Texto que receber a identificao do usurio logado, obtido atravs de um fluxo. Deve associar o fluxo aos eventos Antes de Alterar e Antes de Inserir do formulrio:

Passo a passo:

151

152

1. Modifique o formulrio incluindo um componente Caixa de Texto e defina algumas Propriedades: para a propriedade Descrio defina Usurio Logado e para a propriedade Apenas Leitura defina No; 2. Salve o formulrio e permita a criao do campo na tabela; 3. Abra o editor de fluxos e crie a seguinte estrutura:

Este fluxo cria uma varivel de sesso contendo o nome do login do usurio. Este fluxo ser atribudo ao evento Ao Entrar do sistema. A varivel chama-se USUARIO e para cada usurio ser gerada u 4. Salve o fluxo na camada servidor, chamando-o de CRIANDO VARIVEL DE SESSO; 5. Feche o editor de fluxo e ative os eventos da rea de trabalho do Maker; 6. Para o evento Ao Entrar, atribua o fluxo criado; 7. Ative o menu Projeto do Maker e clique em Salvar. Caso esteja com o Webrun aberto, Recarregue o Sistema; 8. Abra do Editor de Fluxos de Aes e monte a seguinte estrutura

152

153

9. Para a Deciso:

Esta condio executar a atribuio ao componente caso o formulrio esteja em Modo de Incluso ou caso esteja em Modo de Aterao. 10. Para o Processamento:

153

154

Observe que a funo Alterar Valor do Componente permitir a atribuio do valor armazenado na varivel de sesso ao componente do formulrio atravs da funo Obter varivel da sesso. 11. Salve o fluxo chamando-o de ATRIBUINDO VALOR DA VARIVEL DE SESSO AO COMPONENTE; 12. Feche o editor de fluxos; 13. Abra o formulrio ESTADOS e ative o evento Ao Navegar e associe o fluxo ATRIBUINDO VALOR DA VARIVEL DE SESSO AO COMPONENTE; 14. Salve o formulrio e execute no Webrun. Obs. O formulrio e os fluxos deste exerccio podem ser importados para o projeto atravs dos arquivos Formulrio ESTADOS.FRZ, ATRIBUINDO VALOR DA VARIVEL DE SESSO AO COMPONENTE.FRZ e CRIANDO VARIVEL DE SESSO.FRZ.

Trabalhando com fluxos genricos (Exemplo 2)


Exemplificar a utilizao de fluxos de modo genrico. Passo a passo: 1. Crie um formulrio sem vnculo a banco de dados conforme estrutura abaixo:

154

155

2. Salve com o nome Exibe-Oculta Componentes; 3. Abra do editor de fluxo e crie um fluxo associado ao evento Ao modificar do componente Opes. Este fluxo receber como parmetros de entrada a lista de componentes que se deseja Exibir/Ocultar e o valor do componente Opes; 4. Observe a estrutura do fluxo:

5. Observe os Parmetros de Entrada:

6. Crie os Identificadores (variveis):

155

156

O fluxo que Exibe/Oculta componentes de um formulrio deve possuir os parmetros de entrada: Componentes (Variante) e Exibir Componente? (Lgico). 7. Para o primeiro Processamento (Obtm lista de componentes) Converte os componentes em uma lista de objetos.

8. Para a Deciso, verificar se o tamanho da lista maior ou igual a varivel contador:

9. Para o segundo Processamento (Exibe/Oculta componente), utilize a funo Mostrar componente obtendo o componente passado no primeiro parmetro atravs da funo Obter objeto da lista e definindo se o componente ser exibido ou ocultado atravs da varivel passada no segundo parmetro:

156

157

10. Para o terceiro Processamento (Incrementa contador), incrementar a varivel contador:

11. Salve o fluxo com o nome Exibe-Oculta Componentes; 12. Ative os eventos do componente Opes e para a opo Ao Modificar defina:

157

158

13. Salve o formulrio e execute no Webrun. Obs.; O formulrio e o fluxo usados neste exemplo podem ser importados para este projeto atravs dos arquivos FORMULRIO Exibe-Oculta Componentes.FRZ e FORMULRIO Exibe-Oculta Componentes.FRZ e FLUXO Exibe-Oculta Componentes.FRZ.

Utilizando Fluxo Web Service


Desenvolva um fluxo que possa ser utilizado como web service e associe ao evento Ao Clicar do boto contido no formulrio. Deve-se passar o cdigo da cidade (tabela GER_CIDADE campo CID_COD) e retornar o estado (tabela GER_ESTADO, campo EST_NOME), que ser atribudo ao componente do formulrio.

Passo a passo: 1. Inicie criando o formulrio acima apresentado. Este formulrio no possuir vnculos com fonte de dados. A Lista Dinmica representa a relao de cidades, um boto para disparar o fluxo com a descrio OBTER ESTADO e por fim, uma Caixa de Texto com a Descrio e Apenas Leitura; 2. Salve o formulrio chamando-o Consumindo fluxo web service; 3. Abra o Editor de Fluxo de Aes e monte a seguinte estrutura:

158

159

4. Inicie criando Parmetro de Entrada:

5. Defina os Identificadores (variveis):

159

160

6. Para o Processamento:

Este processamento executa uma conta que retorna um campo e deste obtm o nome do estado, atribuindo a varivel ESTADO. Monte a seguinte consulta:

Select ger_cidade.cid_cod, ger_estado.est_nome From ger_cidade Inner Join ger_estado On ger_cidade.est_cod = ger_estado.est_cod Where (ger_cidade.cid_cod = :CIDADE)

160

161

Esta consulta possui o parmetro CIDADE que recebe o valor do Parmetro de Entrada. 7. Para o componente Fim:

O Valor de retorno provem da varivel que foi utilizada no processamento:

8. 9. 10. 11.

Salve o fluxo como FLUXO PARA WEBSERVICE; Clique na aba Fluxo da paleta Objetos; Clique direito no fluxo FLUXO PARA WEBSERVICE e selecione a opo Externo; Atravs do menu Projeto do Maker clique em Salvar. Caso esteja com o Webrun aberto, execute Recarregar Sistema; 12. Agora crie o fluxo que ir consumir o FLUXO PARA WEBSERVICE. Este fluxo ser disparado pelo evento Ao Clicar do boto do formulrio. Clique em Novo da barra de ferramentas do editor de fluxo e monte a seguinte estrutura:

13. Inicie criando o Parmetro de Entrada:

161

162

Este parmetro recebe o valor proveniente da lista de cidades do formulrio. 14. Defina o Identificador (varivel):

15. Para o primeiro Processamento:

162

163

A funo utilizada para consumir WebServices a funo Chamar Servio Web. Para consumir um fluxo como servio, configure os parmetros da funo do seguinte modo: a. Primeiro parmetro aponte para o endereo do servio web (o ip apresentado um exemplo caso esteja local): http://127.0.0.1:8080/webrun/services/WFRWebService?wsdl b. Segundo parmetro aponte para a porta do servio: WFRWebService c. Terceiro parmetro aponte para mtodo: callRule d. Quarto parmetro passe os parmetros. J que est obtendo o retorno de um objeto que requisita vrios parmetros, deve-se obter os dados em forma de Lista. A funo Criar lista a partir dos elementos permite isto. O primeiro parmetro da funo informar a sigla do sistema onde se encontra o fluxo. No segundo parmetro informe o nome de um usurio que tenha acesso ao objeto fluxo que est sendo consumido. No terceiro parmetro informe a senha deste usurio. No quarto parmetro informe o nome do fluxo que ser consumido e no quinto parmetro passe os parmetros que este fluxo necessita (observe que tambm deve ser em forma de Lista e no formato de letras). 16. Para o segundo Processamento:

163

164

Neste processamento utiliza-se a funo Alterar valor do componente para atribuir o valor recebido pela varivel ESTADO ao componente do formulrio. 17. Salve o fluxo chamando-o de CONSUMINDO FLUXO WEBSERVICE; 18. Feche o editor de fluxos; 19. Retorne ao formulrio Consumindo fluxo web service. Abra o evento Ao Clicar do boto e associe o fluxo CONSUMINDO FLUXO WEBSERVICE:

20. Salve o formulrio e execute no Webrun. Obs.; O formulrio e os fluxos podem ser importados para o projeto atravs dos arquivos Formulrio Consumindo fluxo web service.FRZ, FLUXO PARA WEBSERVICE.FRZ e CONSUMINDO FLUXO WEBSERVICE.FRZ.

164

165

QUARTO DIA Relatrio


Tipo de Relatrio
Comentrio sobre a verso Legado e Maker Report (recordar a tela Configuraes)

Criando Relatrios
Tela Novo Relatrio comentar sobre: a. Relatrio em Branco esta opo ser escolhida para abordagem; b. Assistente de Criao de Relatrio; c. Baseado em Formulrio; d. Relatrio Legado.

Tela Gerador de Relatrios


Aba Dados: conceituar e desenvolver duas consultas que tenham relacionamento

A primeira consulta possui a estrutura abaixo:

165

166

Select sig_funcionario.fun_cod, sig_funcionario.fun_nome, sig_funcionario.fun_idade, sig_funcionario.fun_salario, sig_funcionario.fun_sexo, sig_funcionario.dep_cod, sig_funcionario.fun_data_admissao, sig_departamento.dep_nome From sig_funcionario Inner Join sig_departamento On sig_funcionario.dep_cod = sig_departamento.dep_cod Where sig_funcionario.fun_cod = :fun_cod And sig_funcionario.fun_sexo = :fun_sexo And sig_funcionario.dep_cod = :dep_cod And sig_funcionario.fun_data_admissao = :fun_data_admissao /*WHERE_ADD*/ Order By sig_departamento.dep_nome, sig_funcionario.fun_nome /*ORDER_ADD*/ Seguem os parmetros utilizados:

166

167

A segunda consulta possui a estrutura abaixo:

Aba Desenho: comentar sobre: a. Bandas b. Menu Arquivo: i. Configurar Pgina ii. Configurar impresso para arquivo

167

168

Menu Visualizar: i. Barras de Ferramentas 1. Padro 2. Dados 3. Avanado 4. Alinhamento e Espaamento 5. Tamanho 6. Desenho 7. Editar 8. Formato d. Menu Relatrio: i. Dados ii. Ttulo iii. Resumo iv. Cabealho v. Rodap vi. Grupos e. Componentes: i. Texto ii. Varivel do Sistema iii. Varivel iv. Imagem v. Polgono vi. Campo Texto vii. Campo Calculado viii. Sub-relatrio Sugesto do layout do relatrio:

c.

168

169

Passo a passo: 1. Observe a estrutura abaixo:

2. Todo relatrio possui inicialmente as faixas Cabealho, Detalhe e Rodap. Para este exemplo ative a faixa Sumrio travs do menu Relatrio Resumo e atravs do menu Relatrio Grupos selecione o campo DEP_COD e as faixas Cabealho do Grupo e Rodap do Grupo sero ativadas:

3. Para a faixa Cabealho foram inseridos os componentes Imagem, Polgono e Texto:

169

170

4. Para a faixa Cabealho do Grupo foi inserido o componentes Campo Texto:

5. Para a faixa Detalhe foram inseridos os componentes Linha, Campo Texto e SubRelatrio:

Aps inserir o componente Sob-relatrio aparecer uma segunda aba (parte inferior da tela do relatrio) chamada SubReport1. No item 9 deste passo a passo demonstraremos como configur-la. 6. Para a faixa Rodap do Grupo foram inseridos os componentes Texto e Campo Calculado (para configurar este componente atravs do clique direito do mouse, ativando a opo Clculo selecione Soma e na barra de ferramentas do relatrio aponte para o campo FUNN_SALARIO):

7. Para a faixa Rodap foi inserido um componente Linha e um componente Varivel do Sistema. Atravs da barra de ferramentas do relatrio mude o valor da varivel para Pgina no conjunto descritiva:

8. Para a faixa Sumrio foram inseridos vrios componentes: Linha, Texto e Campo Calculado. Cada componente associado a Campo Calculado executa uma forma de clculo. O primeiro executa Somar, o segundo executa Mnimo, o terceiro executa Mximo e o quarto executa Mdia.

9. Para configurar o Sub-Relatrio, clique na aba e observe a estrutura:

170

171

10. Atravs do menu Relatrio Dados defina a origem dos dados apontando para a consulta funcionarioXprojeto:

11. Para a faixa Ttulo insira um componente Texto:

12. Para a faixa Detalhe insira um componente Campo de Texto apontando para o campo PRO_NOME:

13. Para a faixa Sumrio foram inseridos os componentes Texto e Campo Calculado. O Campo Calculado executa Contar o nmero de projetos:

14. Salve o relatrio chamando-o FUNCIONRIOS POR DEPARTAMENTO e insira-o no menu do projeto. Ao acessar pelo Webrun, a janela conter quatro filtros. Obs.: O relatrio deste exemplo pode ser importados para o projeto atravs do arquivo FUNCIONRIOS POR DEPARTAMENTO.FRZ.

171

172

Personalizao e Skins
Personalizando Barra de Ferramentas do Formulrio
Utilizao do arquivo barra de botes.FRZ como exemplo de barra de ferramentas para formulrio. Importar para o projeto e inserir em um formulrio.

Utilizando Formulrio Principal


Criar um formulrio composto por uma rvore e uma moldura para abrir formulrio dentro da moldura aps clicar no item da rvore.

Passo a passo: 1. Criar um formulrio sem abas, fonte de dados e barra de navegao (usar as propriedades do formulrio Navegao e Abas informando No):

2. Salvar o formulrio como Formulrio Principal; 3. O componente rvore inserido no formulrio contm as propriedades: a. SQL desenvolva a seguinte consulta:

172

173

Select fr_menu.mnu_codigo, fr_menu.mnu_descricao, fr_menu.mnu_codigo_parent, fr_menu.frm_codigo, fr_menu.mnu_tipo From fr_menu Where (fr_menu.mnu_descricao <> 'Formulrio Principal') And (fr_menu.mnu_tipo <> 'R') b. Campo Chave aponte para o campo MNU_CODIGO; c. Campo Lista aponte para o campo MNU_DESCRICAO; d. Campo pai aponte para o campo MNU_CODIGO_PARENT. 4. Salve o formulrio; 5. Abra o Editor de Fluxo de Aes e desenvolva a seguinte estrutura:

6. Inicie definindo os Parmetros de Entrada:

173

174

No inicio devem ser definidos dois parmetros de entrada do fluxo e esses parmetros sero passados automaticamente. 7. Defina os Identificadores (variveis):

8. Para o primeiro processamento:

174

175

utilizada a funo Campo, passando como primeiro parmetro a funo Abrir Consulta e no segundo parmetro o campo a ser obtido do valor na consulta. O retorno dessa funo ser atribudo varivel Cdigo do Formulrio.

Select FR_MENU.mnu_codigo, fr_formulario.frm_guid From FR_MENU Left Join fr_formulario On FR_MENU.frm_codigo = fr_formulario.frm_codigo Where (FR_MENU.mnu_codigo = :codigo_menu) 9. Na Deciso:

175

176

A verificao do retorno vazio importante para verificar se o objeto que selecionado com um clique no ser aberto na moldura caso seja item do menu. 10. Para o segundo processamento:

utilizada a funo Abrir Formulrio numa Moldura, passando como primeiro parmetro o formulrio onde se encontra a moldura. No segundo parmetro informa-se o nome do componente moldura. No terceiro parmetro deve identificar o formulrio e no quarto parmetro False indicando no ir aparecer barra de rolagem na moldura. 11. Salve o fluxo chamando-o de Abre um formulrio numa moldura; 12. Feche o editor de fluxos; 13. Associe o fluxo ao evento Ao Clicar do componente rvore:

176

177

No necessrio indicar os parmetros de entrada pois o Webrun obter automaticamente. 14. Para definir este formulrio como formulrio principal, execute clique direito na rea de Trabalho do Maker e atravs da Propriedade Formulrio Principal aponte para o formulrio; 15. Ative o menu Projeto e Salve; 16. Na tela do Webrun, execute a opo Recarregar Sistema. 17. Acesse projeto pelo Webrun. Para retornar tela padro: 1. Execute clique direito na rea de Trabalho do Maker e atravs da Propriedade Formulrio Principal apague a refrncia do formulrio; 2. Ative o menu Projeto e Salve; 3. Pelo boto Iniciar do Windows, localize a pasta Softwell Solutions Webrun 2.6 Atualizaes e Configuraes; 4. Clique no boto Reiniciar; 5. Acesse o projeto pelo Webrun. Obs.: O formulrio e o fluxo utilizados neste exemplo podem ser importados para o projeto atravs dos arquivos Formulrio Principal.FRZ e Abre um formulrio numa moldura.FRZ.

Pasta Maker.Commons
Definio e utilizao da pasta para personalizar

Pasta Components
Demonstrao da atualizao do componente Lista dinmica diretamente no cdigo do objeto nativo (por exemplo this.filterOnKeyPress = true;) e mostrar atualizando o componente totalmente personalizado.

177

178

Recursos gerenciais do projeto


Agendador de Tarefas
Comentrio sobre o recurso: funcionamento da tela, quando se aplica e observar configurao necessria no Webrun.

Lista de Sistemas
Comentrio sobre o recurso: funcionamento da tela, quando se aplica.

Empacotar projeto
Comentrio sobre o recurso: funcionamento da tela, quando se aplica e limitaes.

Scanner de Dependncias
Comentrio sobre o recurso: funcionamento da tela, quando se aplica.

Histrico de Alteraes
Comentrio sobre o recurso: funcionamento da tela, quando se aplica.

Verses
Comentrio sobre o recurso: funcionamento da tela, quando se aplica.

Otimizador de Consultas
Comentrio sobre o recurso: funcionamento da tela, quando se aplica.

Verificar atualizaes Maker e Help


Comentrio sobre o recurso: funcionamento da tela e lembrar do atualizador automtico configurado atravs da aba Outros da tela Configuraes.

Documentao Automtica
Comentrio e utilizao: a. Gerar documentao bsica do projeto; b. Demonstrar possibilidade de edio do relatrio; c. Apresentar local do arquivo rtm.

Exportar Relatrio para JASPER


Comentrio sobre o recurso.

178

179

Webrun - Configuraes e Publicao


Configuraes do Webrun
Opes da tela do Webrun a. Modo gerente b. Log c. Alterar Senha d. Executor de Scripts SQL e. Recarregar Sistemas f. Conexes Adicionais Apresentar e comentar a tela Configurao do Webrun Verificao do Browser; Opes de Configuraes (item da tela Sistemas): a. Gerenciar Sistemas b. Parmetros de Configurao c. Recarregar Sistemas; d. Configurar: i. Configuraes para conexo com o banco de dados; ii. Configuraes Avanadas; iii. Modificar iv. Reiniciar; v. Exportar

Publicao
Comentar e executar: d. Exportar cdigo WAR; e. Exportar cdigo JAR. Comentar a opo Desfazer exportao.

179

180

Modelagem das Tabelas para Treinamento

180

181

QUINTO DIA Projeto Integrador 1 Agendamento de Reunies


Objetivo
Este projeto uma ferramenta complementar para o reforo do conhecimento adquirido. Deve ser aplicado ao final do treinamento ou extra curso para que o treinando possa auto avaliar. O projeto chamado Agendamento de Reunies um sistema projetado para o agendamento de eventos. Relao de recursos aplicados no projeto: Mdulos de incluso, alterao, excluso, busca e log para todos os formulrios. Utilizao de componentes tais como: Caixa de Texto, Texto, Lista, Lista Dinmica, Check, Imagem, Boto, Moldura, Opes, Texto Longo, Sub-Form, Grade. Menus e sub-menus. Relatrio. Fluxos. Cadastro de imagens. Leitura Biomtrica. Dicionrio de Dados. Tipos de Dados. Assistentes para criao de formulrios.

O projeto possui os seguintes objetos: Menu Cadastros 1. Localidade i. Cadastro de Pases ii. Cadastro de Estados iii. Cadastro de Cidades iv. Cadastro de Bairros 2. Cadastro da Entidade 3. Cadastro de Funcionrios Menu Agendamento 1. Participantes Externos 2. Cadastro de Empresas 3. Cadastro de Reunies Menu Relatrios 1. Relao dos Eventos

Este projeto utiliza o PostgreSQL 8.2 e aps a criao do mesmo, devem ser importadas as tabelas contidas no arquivo Tabelas para projeto de concluso.frz. O banco possuem a seguinte modelagem: GER_BAIRRO

COLUMNS

181

182

CONSTRAINTES

GER_PAIS
COLUMNS CONSTRAINTES

GER_PESSOA
COLUMNS CONSTRAINTES

SCH_EMPRESA
COLUMNS CONSTRAINTES

SCH_ENTIDADE
COLUMNS CONSTRAINTES

182

183

SCH_FUNCIONARIO

COLUMNS

CONSTRAINTES

SCH_PARAMETRO_EMAIL
COLUMNS CONSTRAINTES

SCH_PARTICIPANTE
COLUMNS CONSTRAINTES

SCH_REUNIAO

COLUMNS

183

184

CONSTRAINTES

SCH_REUNIAO_PESSOA
COLUMNS CONSTRAINTES

SCH_SETOR
COLUMNS CONSTRAINTES

O menu do projeto est composto pelos formulrios a seguir: CADASTRO DE PASES

184

185

CADASTRO DE ESTADOS

CADASTRO DE CIDADES

185

186

CADASTRO DE BAIRROS

CADASTRO DA ENTIDADE

186

187

CADASTRO DE FUNCIONRIOS

PARTICIPANTES EXTERNOS

187

188

CADASTRO DE EMPRESAS

CADASTRO DE REUNIES

188

189

O menu do projeto est composto pelo relatrio a seguir: RELAO DOS EVENTOS

Cadastro de Pases
Formulrio para o cadastro de pases. Este formulrio no possui fonte de dados. Est composto por um componente Grade com origem no formulrio PAS, que possui origem na tabela GER_PAIS:

189

190

Passos: 1. Inicie um novo formulrio nomeando-o de PAS e defina a origem de dados GER_PAIS; 2. Aps confirmar a gerao do formulrio, mantenha apenas o componente referente a descrio do pas; 3. Inicie um novo formulrio nomeando-o de CADASTRO DE PASES e no defina origem de dados; 4. Insira um componente Moldura envolvendo o componente Grade; 5. Insira um componente Texto e defina para a propriedade DESCRIO o contexto CADASTRO DE PASES; 6. Insira um componente Grade e defina para a propriedade FORMULRIO do componente o formulrio PAS; 7. Salve e feche o formulrio; 8. Edite a barra de menus do projeto, criando o menu CADASTROS e dentro deste, crie o menu LOCALIDADE;

190

191

9. Insira o formulrio CADASTRO DE PASES no menu LOCALIDADE e Salve a barra de menus.

Consulta SQL: Select ger_pais.pais_cod, ger_pais.pais_nome From ger_pais

Cadastro de Estados
Formulrio para o cadastro de estados. Est composto por dois componentes: uma Caixa de Texto e uma Lista Dinmica. A origem dos dados do formulrio vem da tabela GER_ESTADO.

191

192

Passos: 1. Inicie um novo formulrio nomeando-o de CADASTRO DE ESTADOS e defina a origem de dados GER_ESTADO; 2. Aps confirmar a gerao do formulrio, mantenha apenas os componentes referentes a descrio do estado e o combo que lista os pases; 3. Insira um componente Moldura envolvendo os componentes; 4. Salve e feche o formulrio; 5. Edite a barra de menus do projeto inserindo o formulrio CADASTRO DE ESTADOS no menu LOCALIDADE e Salve a barra de menus.

192

193

Consulta SQL: Select ger_estado.est_cod, ger_estado.est_nome, ger_estado.pais_cod From ger_estado

193

194

Cadastro de Cidades
Formulrio para o cadastro de cidades. Est composto por dois componentes: uma Caixa de Texto e uma Lista Dinmica. A origem dos dados do formulrio vem da tabela GER_CIDADES.

Passos: 1. Inicie um novo formulrio nomeando-o de CADASTRO DE CIDADES e defina a origem de dados GER_CIDADES; 2. Aps confirmar a gerao do formulrio, mantenha apenas os componentes referentes a descrio da cidade e o combo que lista os estados; 3. Insira um componente Moldura envolvendo os componentes; 4. Salve e feche o formulrio; 5. Edite a barra de menus do projeto inserindo o formulrio CADASTRO DE CIDADES no menu LOCALIDADE e Salve a barra de menus.

194

195

Consulta SQL: Select ger_cidade.cid_cod, ger_cidade.cid_nome, ger_cidade.est_cod From ger_cidade

195

196

Cadastro de Bairros
Formulrio para o cadastro de bairros. Est composto por dois componentes: uma Caixa de Texto e uma Lista Dinmica. A origem dos dados do formulrio veem da tabela GER_BAIRRO.

Passos: 1. Inicie um novo formulrio nomeando-o de CADASTRO DE BAIRROS e defina a origem de dados GER_BAIRROS; 2. Aps confirmar a gerao do formulrio, mantenha apenas os componentes referentes a descrio do bairro e o combo que lista as cidades; 3. Insira um componente Moldura envolvendo os componentes; 4. Salve e feche o formulrio; 5. Edite a barra de menus do projeto inserindo o formulrio CADASTRO DE BAIRROS no menu LOCALIDADE e Salve a barra de menus.

196

197

Consulta SQL: Select ger_bairro.bai_cod, ger_bairro.bai_nome, ger_bairro.cid_cod From ger_bairro

197

198

Cadastro de Entidade
Formulrio para o cadastro da empresa, dos setores da empresa e do servidor de envio de email. Este formulrio est composto por trs abas: Cadastro, Setores e Configurar SMTP. A origem dos dados do formulrio vem da tabela SCH_ENTIDADE.

198

199

Passos para a aba Cadastro: 1. Inicie um novo formulrio nomeando-o de CADASTRO DE ENTIDADE e defina a origem de dados SCH_ENTIDADE; 2. Aps confirmar a gerao do formulrio, mantenha apenas os componentes referentes a descrio da entidade, site, telefone, fax e campo imagem para logomarca. Para os campos telefone e fax, aplique uma mscara (por exemplo, usar o tipo TELEFONE); 3. Insira um componente Moldura envolvendo os componentes.

199

200

Passos para a aba Setores: 1. Insira uma nova aba renomeando-a para Setores. Esta aba est composta por uma grade originada do formulrio CADASTRO DE SETORES: i. Inicie um novo formulrio nomeando-o de CADASTRO DE SETORES e defina a origem de dados SCH_SETOR;

200

201

Aps confirmar a gerao do formulrio, mantenha apenas o componente referente a descrio do setor; 2. Insira um componente Moldura envolvendo a grade.

ii.

Passos para a aba Configurar SMTP: 1. Insira uma nova aba renomeando-a para Configurar SMTP. Esta aba est composta por um componente Sub-Form cujo formulrio de origem CONFIGURAO DO SMTP, baseado na tabela SCH_PARAMETRO_EMAIL, com a seguinte estrutura: composto por componentes Caixa de Texto referentes a descries do servidor de email, porta, e-mail, usurio e senha e um componente Check para configurar o uso de SSL; 2. Salve e feche o formulrio; 3. Edite a barra de menus do projeto inserindo o formulrio CADASTRO DA ENTIDADE no menu CADASTROS e Salve a barra de menus.

201

202

Consulta SQL do CADASTRO DA ENTIDADE: Select sch_entidade.sch_ent_id, sch_entidade.sch_ent_entidade, sch_entidade.sch_ent_site, sch_entidade.sch_ent_telefone, sch_entidade.sch_ent_fax, sch_entidade.pcc_cad_logomarca From sch_entidade

202

203

Consulta SQL do CADASTRO DE SETORES: Select sch_setor.set_cod, sch_setor.set_nome, sch_setor.sch_ent_id From sch_setor

203

204

Cadastro de Funcionrios
Formulrio para o cadastro de funcionrios da empresa. Este formulrio est composto por componentes Caixa de Texto (para cadastrar o nome, o telefone fixo e o celular), e um componente Sub-Formulrio que ser comentado abaixo.

Passos: 1. Inicie um novo formulrio nomeando-o de CADASTRO DE FUNCIONRIOS e defina a origem de dados GER_PESSOA; 2. Aps confirmar a gerao do formulrio, mantenha apenas os componentes referentes a descrio do nome, telefone e celular. O formulrio ficar da seguinte forma:

204

205

3. Inicie um novo formulrio nomeando-o SUBFORM-FUNCIONRIOS. e defina a origem de dados SCH_FUNCIONARIO; 4. Aps confirmar a gerao do formulrio, mantenha apenas os componentes referentes a descrio do e-mail, setor (uma Lista Dinmica baseada na tabela SHC_SETOR) e um componente imagem para capturar a digital. O formulrio ficar com o seguinte layout:

5. Salve o formulrio e feche; 6. Insira o SUBFORM-FUNCIONRIOS no formulrio CADASTRO DE FUNCIONRIOS;

205

206

7. Atravs da opo Controle, utilize a opo Enviar para trs, onde o formulrio ficar com o seguinte layout:

8. Salve o formulrio e feche. Consulta SQL do CADASTRO DE FUNCIONRIOS: Select ger_pessoa.pes_cod, ger_pessoa.pes_nome, ger_pessoa.pes_tel, ger_pessoa.pes_cel, ger_pessoa.pes_tipo From ger_pessoa Where ger_pessoa.pes_tipo = 'F' Consulta SQL do SUB-FORM FUNCIONRIO: Select sch_funcionario.pes_cod, sch_funcionario.pes_cod_digital, sch_funcionario.pes_digital, sch_funcionario.set_cod, sch_funcionario.pes_email From sch_funcionario Observao: Definir valor F como valor padro para o campo TIPO.

206

207

Participantes Externos
Formulrio para o cadastro de participantes externos, ou seja, convidados. Este formulrio est composto por componente Caixa de Texto (para cadastrar o nome, o telefone fixo e o celular), e um componente Sub-Formulrio que ser comentado abaixo.

Passos: 1. Inicie um novo formulrio nomeando-o de PARTICIPANTES EXTERNOS e defina a origem de dados GER_PESSOA; 2. Aps confirmar a gerao do formulrio, mantenha apenas os componentes referentes a descrio do nome, telefone e celular. O formulrio ficar da seguinte forma:

207

208

3. Inicie um novo formulrio nomeando-o SUB-FORM PARTICIPANTES. e defina a origem de dados SCH_PARTICIPANTE; 4. Aps confirmar a gerao do formulrio, mantenha apenas os componentes referentes a descrio do e-mail e empresar (uma lista dinmica baseada na tabela SHC_EMPRESA). O formulrio ficar com o seguinte layout:

5. Salve o formulrio e feche;

208

209

6. Insira o SUB-FORM PARTICIPANTES no formulrio PARTICIPANTES EXTERNOS; 7. Atravs da opo Controle, utilize a opo Enviar para trs, onde o formulrio ficar com o seguinte layout:

8. Salve o formulrio e feche;

209

210

9. Edite o menu da aplicao inserindo o formulrio no menu AGENDAMENTO. Consulta SQL do PARTICIPANTES EXTERNOS: Select ger_pessoa.pes_cod, ger_pessoa.pes_nome, ger_pessoa.pes_tel, ger_pessoa.pes_cel, ger_pessoa.pes_tipo From ger_pessoa Where ger_pessoa.pes_tipo = 'P' Consulta SQL do SUB-FORM PARTICIPANTES: Select sch_participante.pes_cod, sch_participante.emp_cod, sch_participante.pes_email From sch_participante Observao: Definir valor P como valor padro para o campo TIPO.

210

211

Cadastro de Empresas
Formulrio para o cadastro das empresas dos participantes externos. Este formulrio est composto por duas abas: Cadastro (cadastro dos dados da empresa) e aba Endereo (cadastro dos dados para correspondncia).

Passos para a aba Cadastro: 1. Inicie um novo formulrio nomeando-o de CADASTRO DE EMPRESAS e defina a origem de dados SCH_EMPRESA; 2. Aps confirmar a gerao do formulrio, mantenha apenas os componentes referentes a descrio da empresa, e-mail, telefone e fax. Para os campos telefone e fax, aplique uma mscara (por exemplo, usar o tipo TELEFONE); 3. Insira um componente Moldura envolvendo os componentes.

211

212

Passos para a aba Endereo: 1. Insira uma nova aba e renomei para Endereo; 2. Insira um componente Lista Dinmica que possuir a seguinte consulta: Select ger_bairro.bai_cod, ger_bairro.bai_nome, ger_cidade.cid_nome, ger_estado.est_nome, ger_pais.pais_nome From ger_bairro Inner Join ger_cidade On ger_bairro.cid_cod = ger_cidade.cid_cod Inner Join ger_estado On ger_cidade.est_cod = ger_estado.est_cod Inner Join ger_pais On ger_estado.pais_cod = ger_pais.pais_cod Configure para a Propriedade Campo Chave o campo bai_cod e para a Propriedade Campo Lista o campo bai_nome. 3. Para os campos CIDADE, ESTADO e PAS: duplique o campo BAIRRO alterando a Propriedade Campo Lista para cid_nome ou est_nome ou pais_nome, conforme o campo, e para estes trs compoenentes, utilize a Propriedade Estilo com o valor Edit e ative a Propriedade Apenas Leitura; 4. Insira um componente Caixa de Texto associando ao campo emp_numero e outro para o campo emp_cep; 5. Para o campo de cadastro do cep, foram inseridas duas imagens. Existe um fluxo associado ao evento Ao Clicar da primeira imagem (a imagem representando uma lupa de pesquisa), e este fluxo est descrito abaixo; 6. Insira dois componentes Texto Longo representando os campos emp_end e emp_complemento respectivamente; 7. Insira um componente Moldura envolvendo os componentes.

212

213

Fluxo associado ao evento Ao Clicar do componente imagem (lupa de pesquisa):

213

214

1. Ative o Editor de Fluxo de Aes; 2. Inicialmente monte a estrutura do fluxo:

3. Crie as variveis do fluxo:

214

215

4. Para o Processamento MOSTRAR GIF ANIMADO:

5. Para o Processamento CHAMAR SERVIO WEB:

215

216

Parmetros: 1 - http://www.byjg.com.br/xmlnuke-php/webservice.php/ws/cep?WSDL 2 - CEPServicePort 3 - obterLogradouro 4 - CEP (parmetro de entrada CEP) Retorno Logradouro do CEP passado como parmetro para a varivel ENDEREO.

6. Para o Processamento ATRIBUIR RESULTADO DA PESQUISA PARA ENDEREO:

216

217

7. Para o Processamento OCULTAR GIF ANIMADO:

8. Salve o fluxo na camada Servidor;

217

218

9. Atribua ao evento Ao Clicar do componente da imagem (lupa de pesquisa) obtendo do componente referente ao CEP o valor correspondente ao parmetro de entrada do fluxo:

10. Salve o formulrio e Feche; 11. Edite o menu da aplicao inserindo o formulrio CADASTRO DE EMPRESAS no menu AGENDAMENTO.

218

219

Cadastro de Reunies
O formulrio CADASTRO DE REUNIES o principal objeto do sistema, onde todos os dados se cruzam. Este formulrio composto por quatro abas: Cadastro, Participantes, Notificao e Status da Reunio. Este formulrio possui origem na tabela SCH_REUNIAO.

219

220

Passos para a aba Cadastro: 1. Inicie um novo formulrio nomeando-o de CADASTRO DE REUNIES e defina a origem de dados SCH_REUNIAO; 2. Aps confirmar a gerao do formulrio, mantenha apenas os componentes referentes a data da reunio, HORA INICIAL e HORA FINAL, o tema, o local do evento e uma observao sobre o evento. Para os campos referentes a data do evento, aplique a Propriedade Contedo definindo o tipo Data. Para o campo LOCAL DA REUNIO SETOR, utilizando o componente Lista Dinmica, obtenha da tabela SCH_SETOR as opes que sero exibidas na lista armazenando no campo EMP_COD; 3. Insira um componente Moldura envolvendo os componentes.

220

221

Passos para a aba Participantes: 1. Insira uma nova aba no formulrio nomeando-a de Participantes e nesta, insira dois componentes Grade para o cadastro de FUNCIONRIOS (participantes da empresa promotora do evento) e para PARTICIPANTES CONVIDADOS;

221

222

i. Para a grade que representa a relao de funcionrios, foi criado um formulrio com o seguinte layout:

A consulta do formulrio: Select sch_reuniao_pessoa.pes_cod, sch_reuniao_pessoa.reu_cod, ger_pessoa.pes_tipo From sch_reuniao_pessoa Inner Join ger_pessoa On sch_reuniao_pessoa.pes_cod = ger_pessoa.pes_cod Where ger_pessoa.pes_tipo = 'F' ii. Para o componente Lista Dinmica que:representa o campo PES_COD da tabela SCH_REUNIAO_PESSOA, possui a propriedade Campo Chave apontando para PES_COD e para a propriedade Campo Lista, apontar para PES_NOME. Segue a consulta do componente: Select ger_pessoa.pes_cod, ger_pessoa.pes_nome, ger_pessoa.pes_tipo From ger_pessoa Where ger_pessoa.pes_tipo = 'F' Order By ger_pessoa.pes_nome iii. Salve o formulrio e insira-o no formulrio CADASTRO DE REUNIES, na aba Participantes como Grade; iv. Insira um boto sobrepondo o canto superior direito do componente grade que representa o cadastro de participantes convidados. Para a propriedade Formulrio do boto, aponte para o formulrio CADASTRO DE FUNCIONRIOS; v. Para a grade que representa a relao de participantes convidados, foi criado um formulrio com o seguinte layout:

222

223

A consulta do formulrio: Select sch_reuniao_pessoa.pes_cod, sch_reuniao_pessoa.reu_cod, ger_pessoa.pes_tipo From sch_reuniao_pessoa Inner Join ger_pessoa On sch_reuniao_pessoa.pes_cod = ger_pessoa.pes_cod Where ger_pessoa.pes_tipo = 'P' vi. Para o componente Lista Dinmica que representa o campo PES_COD da tabela SCH_REUNIAO_PESSOA, possui a propriedade Campo Chave apontando para PES_COD e para a propriedade Campo Lista, apontar para PES_NOME. Segue a consulta do componente Select ger_pessoa.pes_cod, ger_pessoa.pes_nome, ger_pessoa.pes_tipo From ger_pessoa Where ger_pessoa.pes_tipo = 'P' Order By ger_pessoa.pes_nome vii. Salve o formulrio e insira-o no formulrio CADASTRO DE REUNIES, na aba Participantes como Grade; viii. Insira um boto sobrepondo o canto superior direito do componente grade que representa o cadastro de participantes convidados. Para a propriedade Formulrio do boto, aponte para o formulrio PARTICIPANTES EXTERNOS;

223

224

Passos para a aba Notificao: 1. Insira uma nova aba no formulrio nomeando-a de Notificao e nesta, insira:

224

225

i.

ii.

iii.

iv.

um componente Caixa de Texto com as seguintes Propriedades: para a Propriedade Campo, aponte para REU_TEMA. Para a Propriedade Apenas Leitura defina Sim, para a Propriedade Descrio informe Assunto; um componente Texto Longo, apontando para o campo PCC_CAD_MENSAGEM. Para a Propriedade Quebra Automtica defina Sim e para a Propriedade Texto Rico selecione HTML Bsico; um componente Texto cuja Propriedade Descrio "* Quando utilizada a palavra TEMA (maisculo), a mesma ser substituda pelo TEMA DA REUNIO.". Ajuste a altura do componente para o equivalente a duas linhas de texto e ative a Propriedade Quebra Automtica para Sim; um boto com a descrio Enviar notificao da reunio e ao Evento Ao Clicar associe o fluxo para enviar e-mails para os participantes cadastrados e o corpo do e-mail corresponde a mensagem digitada no campo MENSAGEM. Existe uma particularidade no contexto da mensagem que correspondente a pala TEMA quando usada no texto: esta palavra ser substituda pelo contedo correspondente ao tema da reunio. O fluxo possui a seguinte estrutura:

Passos para a criao do fluxo: 1. Parmetros de entrada do fluxo:

225

226

2. Identificadores (variveis) do fluxo:

3. Processamento 1: Este processamento consulta os parmetros necessrios para o envio de e-mail e atribui o resultado para varivel PARAMETROS_EMAIL:

226

227

Observe a consulta: Select sch_parametro_email.par_server_email, sch_parametro_email.par_usuario, sch_parametro_email.par_senha, sch_parametro_email.sch_con_porta, sch_parametro_email.sch_con_usa_ssl, sch_parametro_email.pcc_con_e_mail From sch_parametro_email 4. Processamento 2: Este processamento consulta os participantes do evento e atribui o resultado para varivel LISTA_PARTICIPANTES:

227

228

Observe a consulta: Select sch_reuniao_pessoa.reu_cod, sch_funcionario.pes_email From sch_reuniao_pessoa Inner Join sch_funcionario On sch_reuniao_pessoa.pes_cod = sch_funcionario.pes_cod Where sch_reuniao_pessoa.reu_cod = :COD_REUNIAO Union Select sch_reuniao_pessoa.reu_cod, sch_participante.pes_email From sch_reuniao_pessoa Inner Join sch_participante On sch_reuniao_pessoa.pes_cod = sch_participante.pes_cod Where sch_reuniao_pessoa.reu_cod = :COD_REUNIAO 5. Deciso 3: Esta deciso apenas verifica se existe ou no dados na consulta:

228

229

6. Interao 4: Esta interao apenas uma Mensagem de Alerta avisando quando no existir dados na consulta:

7. Interao 5: Esta deciso apenas verifica se existe ou no dados na consulta e mantm o loop:

229

230

8. Processamento 6: Este processamento monta o contedo que ser enviado por e-mail. A funo principal, E-mail - Enviar E-mail Instantaneamente, est estruturado da seguinte forma:

9. Processamento 7: Este processamento move o ponteiro na consulta dos participantes:

230

231

10. Interao 8: Esta interao apenas uma Mensagem de Alerta avisando o envio do email:

Salve o fluxo chamando-o de ENVIAR NOTIFICAO POR E-MAIL e associe ao evento Ao Clicar do boto Enviar notificao da reunio passando os seguintes parmetros:

231

232

Passos para a aba Status da Reunio: 1. Insira uma nova aba no formulrio nomeando-a de Status da Reunio e nesta, insira: i. um componente Check com as seguintes Propriedades: para a Propriedade Campo, aponte para REU_INTERNA. Para a Propriedade Descrio defina REUNIO INTERNA?.Para a Propriedade Valor Marcado defina S e para a Propriedade Valor Desmarcado informe N; ii. um componente Opes, apontando para o campo REU_STATUS. Para a Propriedade Descrio defina SITUAO. Para a Propriedade Lista defina:

232

233

Salve e feche o formulrio. Edite a barra de menus do projeto, inserindo-o no menu AGENDAMENTO e Salve a barra de menus.

233

234

Relao dos Eventos


Este relatrio lista todos os eventos cadastrados com a possibilidade de filtrar por STATUS.

Siga os passos para a constituio do relatrio:

1. A partir da paleta de objetos, aba Relatrio, clique em Novo; 2. Na tela Novo Relatrio, selecione a opo Relatrio em branco e clique no boto Ok; 3. Ative a Aba Dados e crie a consulta para o relatrio:

Select sch_reuniao.reu_cod, sch_reuniao.reu_data, sch_reuniao.reu_tema, sch_reuniao.reu_obs, sch_reuniao.reu_interna, sch_reuniao.emp_cod, sch_reuniao.reu_horainicio, sch_reuniao.reuhorafim, sch_entidade.sch_ent_entidade,

234

235

sch_entidade.sch_ent_site, sch_entidade.pcc_cad_logomarca, sch_reuniao.reu_status From sch_reuniao, sch_entidade Where sch_reuniao.reu_status = :STATUS

4. O critrio STATUS configurado atravs da tela Maker Params, acionada atravs do boto com a seguinte consulta:

235

236

5. Clique no boto

e monte a consulta:

Select Cast(Case When sch_reuniao.reu_status = 1 Then 'Concluda' When sch_reuniao.reu_status = 2 Then 'Cancelada' When sch_reuniao.reu_status = 3 Then 'Andamento' End As VarChar(30)) As status, sch_reuniao.reu_status, Count(sch_reuniao.reu_status) As tota From sch_reuniao Group By Cast(Case When sch_reuniao.reu_status = 1 Then 'Concluda' When sch_reuniao.reu_status = 2 Then 'Cancelada' When sch_reuniao.reu_status = 3 Then 'Andamento' End As VarChar(30)), sch_reuniao.reu_status

236

237

6. Clique no boto Ok; 7. Retornando a tela Maker Params declare para Campo o atributo reu_status e para Campo para Listagem o atributo status; 8. Clique no boto Ok; 9. Crie uma nova consulta para a constituio do grfico do relatrio:

Select Cast(Case When sch_reuniao.reu_status = 1 Then 'Concluda' When sch_reuniao.reu_status = 2 Then 'Cancelada' When sch_reuniao.reu_status = 3 Then 'Andamento' End As VarChar(30)), Count(sch_reuniao.reu_status) From sch_reuniao Group By Cast(Case When sch_reuniao.reu_status = 1 Then 'Concluda' When sch_reuniao.reu_status = 2 Then 'Cancelada' When sch_reuniao.reu_status = 3 Then 'Andamento' End As VarChar(30))

237

238

10. Clique em Ok para confirmar a consulta; 11. Ative a aba Desenho e desenvolva o seguinte layout:

Para os itens do layout:

238

239

1. Insira um componente pcc_cad_logomarca; 2. Utilizando o componente 3. Utilizando o componente 4. Utilizando o componente

(Campo Imagem) apontando para o campo (Texto) crie o ttulo e os rtulos das colunas; (Campo Texto) crie os campos de dados; (Campo Texto) crie os campos do rodap;

5. Utilizando o componente (Varivel do Sistema) defina uma numerao de pgina atravs da barra de ferramentas chamada Editar escolhendo a opo Pgina no conjunto descritiva; 6. Constitua uma legenda que apresentar o valor do filtro selecionado: a. Desenhe um retngulo atravs da ferramenta insira um (Texto): (Polgono) e dentro deste

b. Arraste da coluna Estrutura de Dados o campo STATUS com a propriedade Visvel desativada:

c.

Insira um componente (Varivel) e atravs da propriedade Clculo e programe a seguinte rotina para o componente:

if Parametros['STATUS']='1' then variable1.text :='Reunies Concludas' else if Parametros['STATUS']='2' then variable1.text :='Reunies Canceladas' else if Parametros['STATUS']='3' then variable1.text :='Reunies em Andamento' else variable1.text :='Todos'; end;

239

240

7. Desenvolva um grfico circular de setores na rea Sumrio, que venha resumir as ocorrncias dos eventos. Siga os passos: a. Ative o menu Relatrios e ative a opo Resumo; b. Insira um componente grfico; c. (Campo Grfico) e ative a propriedade Editar o

d. e. f. g. h. i.

Clique no boto para acrescentar uma seqncia e escolhendo um grfico. Neste exemplo escolheremos o grfico de pizza com a opo 3D desativada; Localize a opo Srie1 dentro das sries do grfico e clique na aba Fonte de dados; Mude a opo Manual para Condutor de dados apontando para a segunda consulta; Na opo Rtulos aponte para a expresso que listar o status da reunio (expresso contendo a funo Cast...); Na opo Pizza selecione o segundo campo (campo onde executou a funo Count); No tem Legenda, desative a opo de legenda; Feche a tela de edio de grfico e ajuste o tamanho e posio.

Salve o relatrio e insira-o no menu do sistema.

Projeto Integrador 2 Controle de Protocolo


Objetivo
Este projeto uma ferramenta complementar para o reforo do conhecimento adquirido. Deve ser aplicado ao final do treinamento ou extra curso para que o treinando possa auto avaliar. O projeto chamado Controle de Protocolo um sistema projetado para o controle de processos entre setores. Relao de recursos aplicados no projeto: Mdulos de incluso, alterao, excluso, busca e log para todos os formulrios. Utilizao de componentes tais como: Caixa de Texto, Texto, Lista, Lista Dinmica, Check, Imagem, Boto, Moldura, Opes, Texto Longo, Sub-Form, Grade. Menus e sub-menus.

240

241

Relatrio. Fluxos. Dicionrio de Dados. Tipos de Dados. Assistentes para criao de formulrios.

O projeto possui os seguintes objetos: Menu Cadastro 1. Tipo de Documento 2. Gerncia 3. Fornecedor Menu Protocolo 1. Protocolo Menu Relatrios 1. Protocolos por perodo

Este projeto utiliza o PostgreSQL 8.2 e aps a criao do mesmo, devem ser importadas as tabelas contidas no arquivo Tabelas para projeto de concluso2.frz. O banco possuem a seguinte modelagem: FBB_FORNECEDOR

FBB_GERENCIA

241

242

FBB_MOVIMENTACAO

FBB_PROTOCOLO

242

243

FBB_TIPO_DE_DOCUMENTO

O menu do projeto est composto pelos formulrios a seguir: TIPO DE DOCUMENTO

243

244

GERNCIA

FORNECEDOR

244

245

PROTOCOLO

PROTOCOLOS POR PERODO

245

246

Tipo de Documento
Formulrio para o cadastro de documentos. Est composto por um componente Caixa de Texto com origem na tabela FBB_TIPO_DE_DOCUMENTO:

Passos: 1. Crie um formulrio novo como base na tabela FBB_TIPO_DE_DOCUMENTO, utilizando o Assistente de Criao de Formulrios; 2. Remova o componente referente ao cdigo e altere a descrio do componente criado para Descrio. Depois, adicione ao formulrio um componente Moldura e um componente Texto com a descrio Cadastro de Tipo de Documento; 3. Salve o formulrio chamando-o Tipo de Documento; 4. Leve-o para o menu Cadastro. Consulta SQL: Select FBB_TIPO_DE_DOCUMENTO.fbb_tip_id, FBB_TIPO_DE_DOCUMENTO.fbb_tip_descricao From FBB_TIPO_DE_DOCUMENTO /*WHERE_NEW*/ /*ORDER_NEW*/ Este formulrio pode ser obtido atravs do arquivo Tipo de Documento.FRZ.

246

247

Gerncia
Formulrio para o cadastro de setores. Est composto por um componente Caixa de Texto com origem na tabela FBB_GERENCIA:

Passos: 1. Crie um formulrio novo como base na tabela FBB_GERENCIA, utilizando o Assistente de Criao de Formulrios; 2. Remova o componente referente ao cdigo e altere a descrio do componente criado para Descrio. Depois, adicione ao formulrio um componente Moldura e um componente Texto com a descrio Cadastro de Gerncia; 3. Salve o formulrio chamando-o Tipo de Documento; 4. Leve-o para o menu Cadastro. 5. Consulta SQL: Select FBB_GERENCIA.fbb_ger_id, FBB_GERENCIA.fbb_ger_nome From FBB_GERENCIA /*WHERE_NEW*/ /*ORDER_NEW*/ Este formulrio pode ser obtido atravs do arquivo GERENCIA.FRZ.

247

248

Fornecedor
Formulrio para o cadastro o cliente origem do processo. Est composto por um componente Caixa de Texto com origem na tabela FBB_FORNECEDOR:

Passos: 1. Crie um formulrio novo como base na tabela FBB_FORNECEDOR, utilizando o Assistente de Criao de Formulrios; 2. Remova o componente referente ao cdigo e altere a descrio do componente criado para Descrio. Depois, adicione ao formulrio um componente Moldura e um componente Texto com a descrio Cadastro de Fornecedor; 3. Salve o formulrio chamando-o Tipo de Documento; 4. Leve-o para o menu Cadastro. 5. Consulta SQL: Select FBB_FORNECEDOR.fbb_for_id, FBB_FORNECEDOR.fbb_for_nome From FBB_FORNECEDOR /*WHERE_NEW*/ /*ORDER_NEW*/ Este formulrio pode ser obtido atravs do arquivo FORNECEDOR.FRZ.

248

249

Protocolo
Formulrio para o cadastro do processo. Possui origem na tabela FBB_PROTOCOLO e na tabela FBB_MOVIMENTACAO que foi usada para a criao do formulrio da grade:

Observao: No Sql do formulrio (para alterar v at Definies e depois em Assistente Sql) deve ser criado uma nova expresso com o apelido de Documento anexado, para preencher o componente checkbox Documento anexado do formulrio. A expresso deve conter a seguinte sintax: Case When FBB_PROTOCOLO.fbb_pro_caimnho_do_documento Is Null Then 'N' Else 'S' End Consulta SQL: Select FBB_PROTOCOLO.fbb_pro_numero, FBB_PROTOCOLO.fbb_pro_ano, FBB_PROTOCOLO.fbb_tip_id, FBB_PROTOCOLO.fbb_pro_tipo, FBB_PROTOCOLO.fbb_ger_id, FBB_PROTOCOLO.fbb_for_id, FBB_PROTOCOLO.fbb_pro_origem, FBB_PROTOCOLO.fbb_pro_destino, FBB_PROTOCOLO.fbb_for_id_fornecedor_destino,

249

250

FBB_PROTOCOLO.fbb_ger_id_gerencia_destino, FBB_PROTOCOLO.fbb_pro_data_entrada, FBB_PROTOCOLO.fbb_pro_data_saida, FBB_PROTOCOLO.usr_codigo, FBB_PROTOCOLO.fbb_pro_caimnho_do_documento, Case When FBB_PROTOCOLO.fbb_pro_caimnho_do_documento Is Null Then 'N' Else 'S' End As "ExisteDocumento" From FBB_PROTOCOLO

/*WHERE_NEW*/ /*ORDER_NEW*/ Nas definies deste formulrio, na aba Valor padro e Mscaras como mostra abaixo:

Deve ser definido valor padro clicando com boto direito e escolhendo Funes para os campos: FBB_PROTOCOLO.fbb_pro_ano (valor padro Ano), FBB_PROTOCOLO.fbb_pro_data_entrada (valor padro Data), FBB_PROTOCOLO.usr_codigo (valor padro Cdigo do usurio). Referente aos campos Origem (FBB_PRO_ORIGEM) e Destino (FBB_PRO_DESTINO) deve ser definido no componente Opes os valores a serem armazenados como: I e E, com suas respectivas descries: Interno e Externo. Referente ao componente Lista (chamado Tipo) devem ser definidos os valores a serem armazenados como: E e S, com suas respectivas descries: Entrada e Sada. Deve ser criado um formulrio para onde a grade vai apontar, chamado de Movimentao, que com base na tabela FBB_MOVIMENTACAO.

250

251

O campo de ligao do formulrio principal com a grade fbb_pro_numero como mostra imagem abaixo:

Aps a criao completa salve o formulrio com o nome Protocolo e no menu chamado Protocolo adicione o formulrio criado. Este formulrio pode ser obtido atravs do arquivo PROTOCOLO.FRZ.

251

252

Este formulrio possui um fluxo associado ao evento Ao Navegar:

Crie um fluxo chamado Mostrar ou Ocultar Componentes que oculte/exiba os componentes: Fornecedor Origem, Gerente Origem, Fornecedor Destino, Gerente Destino, texto que informa a necessidade de gravar o registro antes do upload do arquivo. Alm disso, habilite/desabilite o boto Upload do Documento. Crie dois parmetros de entrada para o fluxo chamados: Origem (Letras) e Destino (Letras) para receber os valores dos componentes Opo do formulrio.

No primeiro componente deciso (Origem = Interno?), utilize a funo igual para verificar se o parmetro origem igual a I.

252

253

Para ocultar/exibir um componente utilize a funo Mostrar componente passando no segundo parmetro o valor lgico false para ocultar e true para exibir.

Logo aps a primeira deciso, caso a deciso seja SIM, oculte o componente Fornecedor Origem e exiba o componente Gerencia Origem. Caso a deciso seja NO, Oculte o componente Gerencia Origem e exiba o componente Fornecedor Origem. No segundo componente deciso (Destino= Interno?), realizado o mesmo procedimento do passo anterior, porm exibe/oculta os componentes: Gerencia Destino e Fornecedor Destino. No terceiro componente deciso (Est em Modo de Incluso?), utilize a funo Est em modo de insero.

Caso a deciso seja SIM exibe o componente Label (funo Mostrar componente) e desabilita o boto Upload do Documento. Para habilitar/desabilitar um componente utilize a funo Mostrar componente passando no segundo parmetro o valor lgico false para desabilitar e true para habilitar.

Caso a deciso seja NO utilize as mesmas funes apenas invertendo os parmetros lgicos. Lembre-se que pode ser utilizado o Copiar e Colar (Crtl+C/Crtl+V). Feito isso, Clique com o boto direito no formulrio, menu eventos, e associe o fluxo ao evento Ao navegar passe os parmetros Origem e Destino pegando dos componentes Opes. Conforme ilustrado na figura abaixo:

253

254

Este fluxo pode ser obtido atravs do arquivo Mostrar ou Ocultar Componentes .FRZ. O componente chamado Origem possui um fluxo associado ao evento Ao Modificar:

Crie um fluxo chamado mostrar componente, este fluxo tem como objetivo exibir/ocultar os componentes Lista dinmica - Fornecedor Origem, Gerencia Origem. Para melhor entendimento, o fluxo ficar da seguinte maneira: Crie um parmetro de entrada para o fluxo chamado: Origem (Letras) para receber o valor do componente Opo - Origem do formulrio.

254

255

No primeiro componente deciso (Est em Modo de Insero ou Alterao?), utilize as funes Ou, Est em modo de Insero e Est em modo de Alterao para verificar se o formulrio est em modo de insero ou alterao. O montador de expresses ficar da seguinte maneira:

No segundo componente deciso (Origem = Interno?), utilize a funo igual para verificar se o parmetro origem igual a I.

Caso a deciso seja SIM exibe o componente Gerencia Origem (funo Mostrar componente) e oculta o componente Fornecedor.

Caso a deciso seja NO utilize as mesmas funes apenas invertendo os parmetros lgicos. Lembre-se que pode ser utilizado o Copiar e Colar (Crtl+C/Crtl+V). Feito isso, Clique com o boto direito no componente Opes - Origem, menu eventos, e associe o fluxo ao evento Ao modificar passe o parmetro Origem pegando do componente Opes - Origem. Conforme ilustrado na figura abaixo:

255

256

Este fluxo pode ser importado para o projeto atravs do arquivo mostrar componente.FRZ. Este formulrio possui um componente chamado Destino que possui um fluxo associado ao evento Ao Modificar: Crie um fluxo chamado mostrar componente, este fluxo tem como objetivo exibir/ocultar os componentes Lista dinmica - Fornecedor Origem, Gerencia Origem. Para melhor entendimento, o fluxo ficar da seguinte maneira:

Crie um parmetro de entrada para o fluxo chamado: Origem (Letras) para receber o valor do componente Opo - Origem do formulrio.

256

257

No primeiro componente deciso (Est em Modo de Insero ou Alterao?), utilize as funes Ou, Est em modo de Insero e Est em modo de Alterao para verificar se o formulrio est em modo de insero ou alterao. O montador de expresses ficar da seguinte maneira:

No segundo componente deciso (Origem = Interno?), utilize a funo igual para verificar se o parmetro origem igual a I.

Caso a deciso seja SIM exibe o componente Gerencia Origem (funo Mostrar componente) e oculta o componente Fornecedor.

Caso a deciso seja NO utilize as mesmas funes apenas invertendo os parmetros lgicos. Lembre-se que pode ser utilizado o Copiar e Colar (Crtl+C/Crtl+V). Feito isso, Clique com o boto direito no componente Opes - Origem, menu eventos, e associe o fluxo ao evento Ao modificar passe o parmetro Origem pegando do componente Opes - Origem. Conforme ilustrado na figura abaixo:

257

258

Obs.: Este fluxo pode ser importado ao projeto atravs do arquivo mostrar destino.FRZ.

Ao boto chamado Upload do Documento existe um fluxo associado ao evento Ao clicar: Crie um fluxo no evento ao clicar do boto Upload do Documento, no parmetro de entrada deste fluxo defina a seguinte variavel Numero do protocolo , do tipo inteiro:

No processamento adicione a funo Upload passando nulo no primeiro parmetro, no segundo parmetro definindo uma constante como letras Upload - Gravar Caminho do Arquivo (que vai ser a regra a chamada) e no ultimo parmetro definindo o parmetro de entrada. Abaixo como ficou:

258

259

Voltando no evento ao clicar do boto deve ser definido o parmetro de entrada criado, selecionando como campo, sendo ele fbb_pro_numero como segue abaixo:

A regra que foi passada como segundo parmetro da funo upload recebe como parmetro de entrada Caminho do arquivo do tipo letras e Numero do protocolo do tipo inteiro.

No primeiro processamento utilize a funo Executar Atualizao, selecionando Atualizao, passando o nmero do protocolo do parmetro de entrada com critrio igualando ao campo fbb_pro_numero e definindo o contedo do Caminho do documento como o parmetro de entrada, segue abaixo:

259

260

No segundo processamento utilize a funo Alerta aguardando ok passando como parmetro uma constante letras Upload Realizado com Sucesso!!!:

No terceiro processamento utilize a funo Atualizar Registro Corrente como mostra abaixo:

Salve o fluxo na camada servidor e com o nome utilizado na funo anterior chamado de Upload - Gravar Caminho do Arquivo. Obs.: Este fluxo pode ser importado para o projeto atravs do arquivo Upload - Upload.FRZ. Para o boto chamado Download do Documento existe um fluxo associado ao evento Ao Clicar: Crie um fluxo no evento ao clicar do boto Download do Documento, no parmetro de entrada deste fluxo defina a seguinte variavel Caminho do Arquivo, do tipo letras:

260

261

Na deciso verifique se o caminho nulo ou no utilizando a funo nulo ou vazio como mostra abaixo:

Caso o caminho seja nulo crie uma mensagem de iterao do tipo erro e defina uma constante no montador de expresses: No Existe Documento Anexado para Esse Protocolo. Caso exista caminho, adicione um processamento contendo a funo Iniciar Download, passando no primeiro parmetro uma concatenao indicando o arquivo que vai ser efetuado o download, como o que temos armazenado o caminho, quebramos o texto removendo as barras retornando o caminho em uma lista, e no segundo parmetro pegamos o ultimo objeto da lista que contm o nome do arquivo com a extenso. Abaixo mostra a estrutura dessas funes:

Voltando no evento ao clicar do boto deve ser definido o parmetro de entrada criado, selecionando como campo, sendo ele fbb_pro_caminho_do_documento como segue abaixo:

Obs.: Este fluxo pode ser importado para o projeto atravs do arquivo Download Download.FRZ.

261

262

Protocolos por perodo


Tela para listar os processos de um perodo ou todos. Possui origem no relatrio Protocolos por perodo. O relatrio possui o seguinte layout:

Siga os passos para a constituio do relatrio:

1. A partir da paleta de objetos, aba Relatrio, clique em Novo; 2. Na tela Novo Relatrio, selecione a opo Relatrio em branco e clique no boto Ok; 3. Ative a Aba Dados e crie a consulta para o relatrio:

Select fbb_protocolo.fbb_pro_numero, fbb_protocolo.fbb_pro_ano, Case When fbb_protocolo.fbb_pro_tipo = 'S' Then 'Sada' When fbb_protocolo.fbb_pro_tipo = 'E' Then 'Entrada' End As Tipo, fbb_protocolo.fbb_pro_data_entrada, fbb_protocolo.fbb_pro_data_saida, fbb_tipo_de_documento.fbb_tip_descricao, fr_usuario.usr_nome As Usuario, Case When FornecedorDestino.fbb_for_id Is Null Then GerenciaDestino.fbb_ger_nome Else FornecedorDestino.fbb_for_nome End As Destino, Case When FornecedorOrigem.fbb_for_id Is Null Then GerenciaOrigem.fbb_ger_nome

262

263

Else FornecedorOrigem.fbb_for_nome End As Origem From fbb_protocolo Left Join fbb_tipo_de_documento On fbb_protocolo.fbb_tip_id = fbb_tipo_de_documento.fbb_tip_id Left Join fbb_fornecedor FornecedorOrigem On fbb_protocolo.fbb_for_id = FornecedorOrigem.fbb_for_id Inner Join fr_usuario On fbb_protocolo.usr_codigo = fr_usuario.usr_codigo Left Join fbb_gerencia GerenciaDestino On fbb_protocolo.fbb_ger_id_gerencia_destino = GerenciaDestino.fbb_ger_id Left Join fbb_gerencia GerenciaOrigem On fbb_protocolo.fbb_ger_id = GerenciaOrigem.fbb_ger_id Left Join fbb_fornecedor FornecedorDestino On fbb_protocolo.fbb_for_id_fornecedor_destino = FornecedorDestino.fbb_for_id Where fbb_protocolo.fbb_pro_data_entrada Between :data_inicial And :data_final /*WHERE_ADD*/ Order By fbb_protocolo.fbb_pro_numero /*ORDER_ADD*/

5. O critrio STATUS configurado atravs da tela Maker Params, acionada atravs do boto com a seguinte consulta:

263

264

10. Clique em Ok para confirmar a consulta; 11. Ative a aba Desenho e desenvolva o seguinte layout:

264

265

7. 1 - Desenhe um retngulo arredondado atravs da ferramenta

(Polgono)

8. 2 - Dentro do retngulo insira um (Texto); 9. 3 - Atravs do menu Visualizar - Barra de Ferramentas - Estrutura de Dados ative a coluna Estrutura de Dados e posicione o campo data_inicial, trazendo-o dos Parametros; 10. 4 - Utilizando o componente (Texto) crie o texto ; 11. 5 - Atravs do menu Visualizar - Barra de Ferramentas - Estrutura de Dados ative a coluna Estrutura de Dados e posicione o campo data_final, trazendo-o dos Parametros;; 12. 6 - Desenhe um retngulo arredondado atravs da ferramenta 13. 7 - Utilizando o componente (Campo Texto) insira os campos; (Polgono);

14. 8 - Utilizando o componente (Varivel do Sistema) defina uma numerao de pgina atravs da barra de ferramentas chamada Editar escolhendo a opo Pgina no conjunto descritiva; 15. Salve o relatrio chamando-o de Protocolos por perodo; 16. Feche o editor de relatrios e crie um menu no projeto, chamando-o de Relatrios; 17. Arraste o relatrio ao menu criado. Obs.: Este relatrio pode ser obtido atravs do arquivo Protocolos por perodo.FRZ.

265

Potrebbero piacerti anche