Vous êtes sur la page 1sur 86

ADVPL

MICROSIGA Software S/A Av. Braz Leme, 1399/1631 02511-000 - So Paulo - Brasil Telefone (011) 3981-7000 http://www.microsiga.com.br

Copyright MICROSIGA Software S/A Todos os direitos reservados e protegidos pela Lei de Direitos Autorais n. 9.610 de 19/02/1.998. Nenhuma parte deste documento pode ser reproduzida, publicada ou transmitida por impresso, fotocpia, microfilme, fita de udio, eletronicamente, mecanicamente, ou qualquer outro meio, ou armazenado em um sistema de informao recuperado, sem a permisso prvia, por escrito do proprietrio destes direitos. Em funo do contnuo desenvolvimento dos produtos da MICROSIGA Software S/A, este documento est sujeito a modificaes que sero atualizadas nas subseqentes revises de novas verses. Portanto, toda informao contida neste documento de natureza geral e nunca poder ser utilizada em qualquer obrigao contratual. Elaborao:

MICROSIGA Educao Corporativa


Apoio e Reviso:

Auditoria de Cursos MICROSIGA

SUMRIO
ADVPL ............................................................................................................................. 1 INTRODUO ......................................................................................................................... 5 VISO GERAL DO CURSO ......................................................................................................... 5
Objetivos do Curso .................................................................................................................... 5 Metodologia do Curso ................................................................................................................ 5 Linguagem de Programao ADVPL ......................................................................................... 6 Programao Com Interface Prpria com o Usurio ................................................................. 6 Programao Sem Interface Prpria com o Usurio .................................................................. 7 Programao por Processos ....................................................................................................... 7 Programao de RPC ................................................................................................................. 7 Programao Web ..................................................................................................................... 8 Programao TelNet .................................................................................................................. 8

CONFIGURANDO A FERRAMENTA IDE .......................................................................................... 9


O que voc ir aprender neste captulo .................................................................................... 9 Rotinas Abordadas ..................................................................................................................... 9 Preferncias ............................................................................................................................... 9 Configuraes .......................................................................................................................... 10 O que voc aprendeu neste captulo ....................................................................................... 10 Prximo Passo .......................................................................................................................... 10

FUNES APLICADAS EM GATILHOS ............................................................................................ 11


O que voc ir aprender neste captulo ...................................................................................11 Rotinas Abordadas .................................................................................................................... 11 Funes em Gatilhos ................................................................................................................11 O que voc aprendeu neste captulo ....................................................................................... 18 Prximo Passo .......................................................................................................................... 18

FUNES PARA CADASTROS ................................................................................................... 19


O que voc ir aprender neste captulo .................................................................................. 19 Rotinas Abordadas ................................................................................................................... 19 AxCadastro() Cadastro Padro .............................................................................................. 19 MBrowse() ................................................................................................................................ 35 Modelo2()................................................................................................................................. 43 Modelo3()................................................................................................................................. 44 O que voc aprendeu neste captulo ....................................................................................... 45 Prximo Passo .......................................................................................................................... 45

CONSULTAS PADRO ............................................................................................................ 46


O que voc ir aprender neste captulo .................................................................................. Rotinas Abordadas ................................................................................................................... Consultas Padro ..................................................................................................................... Tipo 1 .................................................................................................................................. Tipo 2 .................................................................................................................................. 46 46 46 46 46

Tipo 3 .................................................................................................................................. 47 Tipo 4 .................................................................................................................................. 47 Tipo 5 .................................................................................................................................. 47 Tipo 6 .................................................................................................................................. 48 O que voc aprendeu neste captulo ....................................................................................... 54 Prximo Passo .......................................................................................................................... 54

RELATRIOS ....................................................................................................................... 55
O que voc ir aprender neste captulo .................................................................................. 55 Rotinas abordadas.................................................................................................................... 55 SetPrint()................................................................................................................................... 55 SetDefault() .............................................................................................................................. 56 Pergunte() ................................................................................................................................. 56 SetRegua() ................................................................................................................................ 57 RptStatus() ................................................................................................................................ 57 IncRegua() ................................................................................................................................ 57 Relatrios ................................................................................................................................. 57 Perguntas e Respostas .............................................................................................................. 63 O que voc aprendeu neste captulo ....................................................................................... 69 Prximo Passo .......................................................................................................................... 69

EXERCCIOS ........................................................................................................................ 70
O que voc ir aprender neste captulo .................................................................................. 70 Rotinas abordadas.................................................................................................................... 70 O que voc aprendeu neste captulo ....................................................................................... 73 Prximo Passo .......................................................................................................................... 73

PONTOS DE ENTRADAS .......................................................................................................... 74


O que voc ir aprender neste captulo .................................................................................. 74 Rotinas Abordadas ................................................................................................................... 74 Pontos de Entrada .................................................................................................................... 74 O que voc aprendeu neste captulo ....................................................................................... 78 Prximo Passo .......................................................................................................................... 78

PROCESSAMENTO ................................................................................................................. 79
O que voc ir aprender neste captulo .................................................................................. 79 Rotinas Abordadas ................................................................................................................... 79 Processa() ................................................................................................................................. 79 O que voc aprendeu neste captulo ....................................................................................... 80 Prximo Passo .......................................................................................................................... 80

DESENHOS DE INTERFACES ....................................................................................................... 81


O que voc ir aprender neste captulo .................................................................................. 81 Rotinas Abordadas ................................................................................................................... 81 Desenhos de Interfaces ........................................................................................................... 81 O que voc aprendeu neste captulo ....................................................................................... 85 Prximo Passo .......................................................................................................................... 85

Anotaes:

4 - SIGAADVPL Advanced Protheus

INTRODUO VISO GERAL DO CURSO


Este curso foi elaborado para capacitar os Analistas e Programadores do Advanced Protheus a utilizarem os recursos da Linguagem de Programao ADVPL, para que seja possvel a aplicao s rotinas de sua empresa, proporcionando a automao no controle das necessidades referentes customizaes futuras dentro do Advanced Protheus.

Objetivos do Curso
O objetivo deste curso ensinar como utilizar as principais Funes de programao Advanced Protheus, utilizando exemplos prticos das Funes apresentadas. Desenvolver programas utilizados em Gatilhos, Cadastros, Consultas em Arquivos, Relatrios, rotinas de Processamento, Pontos de Entradas e criao de Telas de Dilogo, atravs do uso de Utilitrios da prpria Ferramenta.

Metodologia do Curso
O curso da Linguagem de Programao ADVPL ministrado com um Kit de Treinamento composto por: Apostila: Aborda as rotinas do Advanced Protheus, conduzindo o aluno na sua utilizao, atravs de uma srie de exerccios para prtica e reviso da matria. Os exerccios devem ser executados, junto ao Sistema, exatamente da forma como esto apresentados, para que o grau de aprendizado proposto seja obtido; A cada captulo, o aluno posicionado sobre o contedo fornecido e os assuntos complementares que sero expostos; Manual Eletrnico: Para verificar o Manual Eletrnico da Linguagem de Programao ADVPL, posicione no Menu Principal da Ferramenta e pressione a tecla <F1>. Materiais de Apoio: Pasta e Caneta. O aluno deve acompanhar este curso nas instalaes da MICROSIGA ou em uma de suas Franquias, com o direcionamento de um instrutor que conduzir as sesses de treinamento de modo que os objetivos propostos sejam atingidos.

Anotaes:

SIGAADVPL Advanced Protheus - 5

Linguagem de Programao ADVPL


A Linguagem de Programao ADVPL, tem o objetivo de permitir ao usurio do Advanced Protheus, construir seus prprios programas, agreg-los aos Menus dos mdulos e execut-los de uma forma transparente ao operador. De forma anloga, as rotinas escritas pelo usurio tambm podem realizar parte, por meio da Funo ExecBlock() ou U_<Funo>, onde o Advanced Protheus aceita uma expresso que executada em tempo real. O usurio ainda tem a possibilidade de utilizar os recursos de programao adotados pelo Advanced Protheus atravs do uso de um grande nmero de suas Funes desenvolvidas pela prpria MICROSIGA e de Funes da Linguagem de Programao de origem, o que agiliza a criao de novas opes sem que o prprio usurio perceba que esteja utilizando algo que no original. A Linguagem ADVPL teve seu incio em 1994, sendo na verdade uma evoluo na utilizao de linguagens no padro xBase pela Microsiga Software S.A. (Clipper, Visual Objects e depois FiveWin). Com a criao da tecnologia Protheus, era necessrio criar uma linguagem que suportasse o padro xBase para a manuteno de todo o cdigo existente do sistema de ERP SIGA Advanced. Foi ento criada a linguagem chamada Advanced Protheus Language. O ADVPL uma extenso do padro xBase de comandos e funes, operadores, estruturas de controle de fluxo e palavras reservadas, contando tambm com funes e comandos disponibilizados pela MICROSIGA que a torna uma linguagem completa para a criao de aplicaes ERP prontas para a Internet. Tambm uma linguagem orientada a objetos e eventos, permitindo ao programador desenvolver aplicaes visuais e criar suas prprias classes de objetos. Quando compilados, todos os arquivos de cdigo tornam-se unidades de inteligncia bsicas, chamados APOs (Advanced Protheus Objects). Tais APOs so mantidos em um repositrio e carregados dinamicamente pelo Advanced Protheus Server para a execuo. Como no existe a linkedio, ou unio fsica do cdigo compilado a um determinado mdulo ou aplicao, funes criadas em ADVPL podem ser executadas em qualquer ponto do ambiente Advanced Protheus. O compilador e o interpretador da linguagem ADVPL o prprio servidor Advanced Protheus (Advanced Protheus Server), e existe um ambiente visual para desenvolvimento integrado (Advanced Protheus IDE) onde o cdigo pode ser criado, compilado e depurado. Os programas em ADVPL podem conter comandos ou funes de interface com o usurio. De acordo com tal caracterstica, tais programas so subdivididos nas seguintes categorias:

Programao Com Interface Prpria com o Usurio


Nesta categoria entram os programas desenvolvidos para serem executados atravs do terminal remoto do Protheus, o Advanced Protheus7 Remote.

Anotaes:

6 - SIGAADVPL Advanced Protheus

O Advanced Protheus Remote a aplicao encarregada da interface e da interao com o usurio, sendo que todo o processamento do cdigo em ADVPL, o acesso ao banco de dados e o gerenciamento de conexes efetuado no Advanced Protheus7 Server. O Advanced Protheus Remote o principal meio de acesso a execuo de rotinas escritas em ADVPL no Advanced Protheus Server, e por isso permite executar qualquer tipo de cdigo, tenha ele interface com o usurio ou no. Porm nesta categoria so considerados apenas os programas que realizem algum tipo de interface remota utilizando o protocolo de comunicao do Advanced Protheus. Pode-se criar rotinas para a customizao do sistema ERP Advanced Protheus, desde processos adicionais at mesmo relatrios. A grande vantagem aproveitar todo o ambiente montado pelos mdulos do ERP Advanced Protheus. Porm, com o ADVPL possvel at mesmo criar toda uma aplicao, ou mdulo, do comeo. Todo o cdigo do sistema ERP Advanced Protheus escrito em ADVPL.

Programao Sem Interface Prpria com o Usurio


As rotinas criadas sem interface so consideradas nesta categoria porque geralmente tm uma utilizao mais especfica do que um processo adicional ou um relatrio novo. Tais rotinas no tm interface com o usurio atravs do Advanced Protheus Remote, e qualquer tentativa nesse sentido (como a criao de uma janela padro) ocasionar uma exceo em tempo de execuo. Estas rotinas so apenas Processos, ou Jobs, executados no Advanced Protheus Server. Algumas vezes, a interface destas rotinas fica a cargo de aplicaes externas, desenvolvidas em outras linguagens, que so responsveis por iniciar os processos no servidor Advanced Protheus, atravs dos meios disponveis de integrao e conectividade no Advanced Protheus. De acordo com a utilizao e com o meio de conectividade utilizado, estas rotinas so subcategorizadas assim:

Programao por Processos


Rotinas escritas em ADVPL podem ser iniciadas como processos individuais (sem interface) no Advanced Protheus Server, atravs de duas maneiras: Iniciadas por outra rotina ADVPL atravs da chamada de funes como StartJob ou CallProc ou iniciadas automaticamente na inicializao do Advanced Protheus Server (quando propriamente configurado).

Programao de RPC
Atravs de uma Biblioteca de Funes disponvel no Advanced Protheus (uma Advanced Protheus de comunicao), pode-se executar rotinas escritas em ADVPL diretamente no Advanced Protheus Server, atravs de aplicaes externas escritas em outras linguagens. Isto o que se chama de RPC (de Remote Procedure Call, ou Chamada de Procedimentos Remota).
Anotaes:

SIGAADVPL Advanced Protheus - 7

O servidor Advanced Protheus tambm pode executar rotinas em ADVPL em outros servidores Advanced Protheus atravs de conexo TCP/IP direta, utilizando o conceito de RPC. Do mesmo modo, Aplicaes Externas, podem requisitar a execuo de rotinas escritas em ADVPL atravs de conexo TCP/IP direta.

Programao Web
O Advanced Protheus Server pode tambm ser executado como um servidor Web, respondendo a requisies HTTP. No momento destas Requisies, pode executar rotinas escritas em ADVPL como processos individuais, enviando o resultado das funes como retorno das Requisies para o cliente HTTP (como por exemplo um Browser de Internet). Qualquer rotina escrita em ADVPL que no contenha Comandos de Interface pode ser executada atravs de Requisies HTTP. O Advanced Protheus permite a compilao de Arquivos HTML contendo Cdigo ADVPL embutido. So os chamados Arquivos ADVPL ASP, para a criao de Pginas Dinmicas.

Programao TelNet
TelNet parte da gama de Protocolos TCP/IP que permite a conexo a um computador remoto atravs de uma aplicao cliente deste protocolo. O Advanced Protheus Server pode emular um Terminal TelNet, atravs da execuo de rotinas escritas em ADVPL. Ou seja, pode-se escrever Rotinas ADVPL cuja interface final ser um Terminal TelNet ou um Coletor de Dados mvel.

Anotaes:

8 - SIGAADVPL Advanced Protheus

CONFIGURANDO A FERRAMENTA IDE


O que voc ir aprender neste captulo
Neste captulo, aprenderemos como devero ser feitas as configuraes bsicas da Ferramenta IDE, para um melhor aproveitamento de seus recursos.

Rotinas Abordadas
Preferncias; Configuraes.

Preferncias
Na opo de Preferncias onde so definidas as informaes que influenciam no comportamento do Advanced Protheus IDE, ou seja, o Perfil de Teclas utilizado, Cores dos Fontes, Tabulao, etc...

Exerccio 01 Como configurar Preferncias da Ferramenta IDE, para inicializar os exerccios: 1. Carregue o Advanced Protheus Server, atravs do Atalho no Desktop; 2. 3. 4. 5. 6. 7. 8. 9. Acesse a Ferramenta IDE, da mesma maneira; Selecione as seguintes opes Arquivo + Preferncias; Na pasta Geral, em Padro de teclas utilizado, selecione a opo Delphi; Em Configuraes do Editor, mantenha a Configurao Padro; Marque a opo Ignorar todos os fontes no encontrados, que est localizada na parte inferior; Na pasta Cdigo, verifique as cores que sero utilizadas durante a Digitao do Fonte; Na pasta Controle de Verso, informe o Caminho do Software utilizado para realizar o Controle de Verses dos Fontes, caso seja utilizado algum; Na pasta Compilao, dever ser informado o Nmero de Processadores, existentes no Servidor de Aplicao, para que haja Ganhos de Performance durante a Compilao dos Programas;

10. Aps verificar todas as Preferncias, confirme.


Anotaes:

SIGAADVPL Advanced Protheus - 9

Configuraes
Aps a definio de todas as Preferncias que sero utilizadas, deveremos ento Configurar o Ambiente de Trabalho que ser utilizado pelo Compilador, ou seja, qual o caminho que dever ser usado pela Ferramenta IDE, para atualizar um determinado RPO, durante a Compilao dos Fontes.

Exerccio 02 Como Configurar a Ferramenta IDE: 1. 2. 3. 4. Selecione as seguintes opes Arquivo + Configuraes; Clique na opo Adicionar; No Campo Descrio:, informe o Nome do Ambiente a ser utilizado, no caso, Environment, ou um nome relacionado ao curso, como Curso ADVPL; Na pasta Compilao, informe no Campo Ambiente, o Nome do Ambiente a ser utilizado pelo Compilador;

Obs.: Dever ser um Ambiente Vlido no Arquivo de Inicializao do Advanced Protheus Server (AP7SRV.INI), no caso, Environment. 5. No Campo Conexo:, informe o Protocolo Vlido, para a Conexo com o Advanced Protheus Server, que dever ser TCP; 6. E por fim, no Campo Diretrio de Includes, informe o caminho das Pastas, onde se encontram os Arquivos de Cabealhos de Programas (*.CH), esse caminho dever ser C:\Ap7AdvPl\Include, depois confirme a Configurao de Ambientes.

O que voc aprendeu neste captulo


Neste captulo aprendemos a definir as Preferncias e Configuraes necessrias para iniciarmos a utilizao do ambiente de desenvolvimento do Protheus.

Prximo Passo
No prximo captulo, iremos aprender como utilizar Gatilhos aplicando Funes nas regras.

Anotaes:

10 - SIGAADVPL Advanced Protheus

FUNES

APLICADAS EM GATILHOS

O que voc ir aprender neste captulo


Neste captulo, aprenderemos como criar Funes em ADVPL e utiliz-las atravs do uso de Gatilhos, ou seja, como disparar um programa customizado atravs do preeenchimento de um determinado Campo em uma tela de digitao de dados, como por exemplo, um cadastro.

Rotinas Abordadas
Funes em Gatilhos.

Funes em Gatilhos
A utilizao de Gatilhos em cadastros muito grande, pois atravs deles poderemos automatizar o preenchimento de muitos Campos durante a digitao de apenas um nico Campo de Origem, considerado o Campo de Disparo. Um Gatilho deve ser utilizado sempre que se fizer necessrio a atualizao automtica de Campos dependentes na tela de digitao (Cadastros ou Movimentaes), atravs do preenchimento de um Campo de Origem.

Exerccio 03 Como criar Projetos de Trabalho: 1. 2. Acesse as opes Projetos + Novo; Ser apresentado uma tela (Projeto), onde deveremos definir o nome do mesmo no quadro Novo Grupo de Projetos, que dever ser um nome sugestivo Customizao que ser iniciada, neste caso, Curso ADVPL; Selecione as opes Projetos + Salvar, salve o Novo Projeto, com o nome de Curso ADVPL e confirme; Logo abaixo, existe outro quadro, onde poderemos detalhar ainda mais o nosso projeto, daremos o nome de ADVPL, clicando com o boto direito do mouse e selecionando a opo Renomear, depois confirme.

3. 4.

Dicas: Nunca se esquea que para se Compilar um Programa, ser necessrio a utilizao de um Projeto de Trabalho, sempre;

Anotaes:

SIGAADVPL Advanced Protheus - 11

Para facilitar a Visualizao, durante a elaborao de programas, no se esquea de fixar a Caixa de Projetos ao rodap do Advanced Protheus IDE; Para isto basta clicar sobre o Cabealho da Caixa e arrast-lo at o rodap, juntamente com as pastas de Mensagens e Comandos.

Exerccio 04 Como criar Funes, para utilizao em Gatilhos: 1. 2. Selecione as seguintes opes Arquivo + Novo Arquivo; Na Pgina de Edio, informe o Programa a seguir: #Include Rwmake.ch User Function Exerc01() c_Nome:=Microsiga MsgAlert(Exemplo de Funo em Gatilhos.) Return(c_Nome) 3. 4. 5. Selecione as seguintes opes Arquivo + Salvar; Selecione a pasta C:\AP7AdvPl\Rdmake\, salve o programa como Exerc01 e confirme; Adicione o Programa ao projeto em uso, clicando com o boto direito do mouse sobre a pasta Fontes do mesmo, selecionando a opo Adicionar arquivo, posicionando o cursor sobre o programa e confirmando; Compile-o, clicando com o boto direito do mouse sobre o programa em questo e selecionando a opo Compilar arquivo...; Ser solicitada o Usurio, no caso, Administrador e a Senha, em branco.

6. 7.

Dicas: Existe na MICROSIGA, um padro para a definio da nomenclatura dos Tipos de Variveis, como por exemplo:
c_Var n_Var d_Var l_Var m_Var a_Var Caracter Numrica Data Lgica Memo Array

Toda Funo, utilizada em um Gatilho, sempre dever ter como Parmetro de Retorno, uma Varivel associada ao programa, para que o Gatilho tenha efeito.

Anotaes:

12 - SIGAADVPL Advanced Protheus

Exerccio 05 Como criar Gatilhos, para Implementao de Funes: 1. 2. 3. Acesse o Mdulo Configurador; Selecione as seguintes opes Base de Dados + Dicionrio + Gatilhos; Clique na opo Incluir e informe os dados a seguir:
Campo: Sequncia: Contra Domnio: Tipo Regra: A1_END 001 A1_ENDCOB 1=Primrio EXECBLOCK("EXERC01") ou U_EXERC01()

4.

Confira os dados e confirme o cadastro de Gatilhos.

Dicas: A Funo Execblock(), uma Funo Master do Advpl, que executa um Programa Customizado que estiver Compilado no RPO em uso pelo ambiente e em seguida retorna execuo normal do sistema; Sempre poderemos utilizar a chamada a uma Funo das duas maneiras descritas acima, ou seja, atravs da Funo Execblock() ou diretamente pelo nome da User Function, que est compilada no RPO em uso.

Exerccio 06 Como Testar o Gatilho: 1. 2. 3. 4. Acesse o Mdulo Financeiro; Selecione as seguintes opes Atualizao + Cadastro + Clientes; Clique na opo Incluir; No Campo Endereo, informe um Endereo sua escolha e pressione a tecla <Enter>;

Obs.: Note que a Mensagem de Aviso ser disparada, isso demonstra que o Gatilho foi disparado. 5. Em seguida, clique na pasta Adm/Fin. e verifique o Resultado do Gatilho no Campo End. Cobrana, que dever estar preenchido com Microsiga.

Anotaes:

SIGAADVPL Advanced Protheus - 13

Exerccio 07 Como criar Funes, para retornar a Varivel em Memria do Campo: 1. Altere o Programa Exerc01 com as seguintes informaes: #Include Rwmake.ch User Function Exerc01() c_Nome:=M->A1_END MsgAlert(Exemplo de Funo em Gatilhos.) Return(c_Nome) 2. 3. Selecione as seguintes opes Arquivo + Salvar e compile-o novamente; Realize o Teste, acessando novamente o Mdulo Financeiro e executando o Cadastro de Cliente, como no exemplo anterior.

Dica: Lembre-se que quando a informao est sendo digitada, a mesma encontra-se no Buffer, ento devemos tratar como M-><campo>, que identifica que a informao de retorno est na memria e quando a informao j est gravada, deveremos ento tratar como <Alias>-><Campo>.

Exerccio 08 Como utilizar Funes com Retorno a partir de uma determinada Condio de Preenchimento do Campo: Crie um programa com o nome de Exerc02, que dever atualizar o Campo Bairro do Cadastro de Clientes, para Centro, quando o Campo CEP, for igual a 00000-000. 1. Digite o programa a seguir: #Include "Rwmake.ch" User Function Exerc02() If M->A1_CEP=="00000000" c_Bairro:="Centro" Else c_Bairro:=M->A1_BAIRRO Endif Return(c_Bairro) 2. Salve o Programa, adicione-o ao Projeto e Compile-o.

Anotaes:

14 - SIGAADVPL Advanced Protheus

Exerccio 09 Como criar o Gatilho: 1. Agora, crie o Gatilho, para a Funo acima, da seguinte maneira:
Campo: Sequncia: Contra Domnio: Tipo Regra: A1_CEP 001 A1_BAIRRO 1=Primrio U_EXERC02()

Exerccio 10 Como Testar o Gatilho: 1. 2. 3. Acesse o Mdulo Financeiro; Selecione as seguintes opes Atualizaes + Cadastros + Clientes; Clique na opo Incluir e informe 00000000 no Campo CEP e observe que o retorno no Campo Bairro, foi disparado.

Exerccio 11 Como criar Funes, utilizando mais de uma Condio de Disparo: Crie um programa com o nome de Exerc03, que dever atualizar o Campo Valor do Ttulo do cadastro de Contas a Receber, com 10% a mais sobre o Valor Digitado, quando o Campo Tipo, for igual a DP, o Campo Cliente, for igual a 000001 e o Campo Loja, for igual a 01. Digite o programa a seguir: #Include "Rwmake.ch" User Function Exerc03() If M->E1_TIPO="DP".and.M->E1_CLIENTE="000001".and.M->E1_LOJA="01" n_Valor:=M->E1_VALOR*1.1 Else n_Valor:=M->E1_VALOR Endif Return(n_Valor) 2. Salve o Programa, adicione-o ao Projeto e Compile-o;

1.

Anotaes:

SIGAADVPL Advanced Protheus - 15

Exerccio 12 Como Criar o Gatilho: 1. Crie o seguinte Gatilho, para a Funo acima:
Campo: Sequncia: Contra Domnio: Tipo Regra: E1_VALOR 011 E1_VALOR 1=Primrio U_EXERC03()

Exerccio 13 Como Testar o Gatilho: 1. 2. 3. Acesse o Mdulo Financeiro; Selecione as seguintes opes Atualizaes + Contas a Receber + Contas a Receber; Clique na opo Incluir, preencha o Campo Tipo com DP, no Campo Cliente, pressione a tecla <F3> e informe os dados a seguir:
Cdigo: Loja: Nome: N Fantasia: Tipo: Endereo: Municpio: Estado: 000001 01 Cliente 01 Cliente 01 R=Revendedor Avenida Braz Leme, 1631 So Paulo SP

4.

Selecione-o e continue o cadastro, preenchendo o Campo Vlr. Ttulo com 100,00 e verifique que o mesmo ser alterado com 10% a mais sobre o Valor Digitado.

Exerccio 14 Como criar Funes utilizando Matriz: Crie um programa com o nome de Exerc04, que dever atualizar o Campo DDD do Cadastro de Clientes, dependendo da Unidade Federativa, que for preenchida no Campo Estado. Digite o programa a seguir: #Include "Rwmake.ch" User Function Exerc04() Local aFone := {} Local nP := 0 Local cRet := ""
Anotaes:

1.

16 - SIGAADVPL Advanced Protheus

aAdd( aFone, {"SP","11"} ) aAdd( aFone, {"RJ","21"} ) aAdd( aFone, {"MG","31"} ) aAdd( aFone, {"AM","91"} ) aAdd( aFone, {"BA","71"} ) nP := aScan( aFone, {|x|x[1]==M->A1_EST}) If nP <> 0 cRet := aFone[nP][2] Endif Return( cRet ) 2. Salve o Programa, adicione-o ao Projeto e Compile-o;

Exerccio 15 Como Criar o Gatilho: 1. Crie o Gatilho a seguir, para a Funo acima:
Campo: Sequncia: Contra Domnio: Tipo Regra: A1_EST 001 A1_DDD 1=Primrio U_EXERC04()

Exerccio 16 Como Testar o Gatilho: 1. 2. 3. 4. Acesse o Mdulo Financeiro; Selecione as seguintes opes Atualizaes + Cadastros + Clientes; Clique na opo Incluir e preencha o Campo Estado, com SP; Verfique que o Campo DDD, ser atualizado de acordo com o retorno da Matriz, utilizada na Funo disparada pelo Gatilho.

Anotaes:

SIGAADVPL Advanced Protheus - 17

O que voc aprendeu neste captulo


Neste captulo aprendemos a criar Gatilhos com utilizao de Funes.

Prximo Passo
No prximo captulo, iremos aprender como criar Telas de Cadastros utilizando as Funes da Microsiga e tambm desenvolver Programas de Validao e Relacionamento entre arquivos.

Anotaes:

18 - SIGAADVPL Advanced Protheus

FUNES PARA CADASTROS


O que voc ir aprender neste captulo
Neste captulo, aprenderemos como criar Telas para Cadastros, utilizando para isso as Funes definidas pela MICROSIGA. Veremos tambm, Funes Customizadas, para Validaes em Arquivos e Relacionamentos.

Rotinas Abordadas
Funes para Cadastros: AxCadastro(); MBrowse(); Modelo2(); Modelo3().

AxCadastro() Cadastro Padro


Esta Funo utilizada para a Criao de Telas de cadastros padronizados da MICROSIGA, onde poderemos ter apenas as opes de Pesquisar, Visualizar, Alterar, Incluir e Excluir, sendo que os mesmo no podero ser modificados. Sintaxe: AxCadastro(cAlias,cTitulo,cDel,cOk); Parmetros: cAlias = Alias do Arquivo para o cadastro, deve obrigatoriamente ter a sua Estrutura definida no SX3; cTitulo = Ttulo da Janela; cDel = Funo para validar a Excluso; cOK = Nome de Funo para Validao da Tela.

Exerccio 17 Como criar Telas de Cadastros, com utilizao de Arquivo Padro: Crie uma Tela de Cadastro Padro, para o arquivo de Cadastro de Produtos e adicione-o ao menu do Mdulo de Faturamento. Utilize para isso um programa com o nome de Exerc05. Crie o Programa a seguir:

1.
Anotaes:

SIGAADVPL Advanced Protheus - 19

#Include "Rwmake.ch" User Function Exerc05() Axcadastro("SB1","Exerc05") Return 2. Salve o Programa, adicione ao Projeto e Compile-o.

Exerccio 18 Como Adicionar Programas ao Menu: 1. 2. 3. 4. 5. 6. Acesse o Mdulo Configurador; Selecione as seguintes opes Ambiente + Cadastros + Menus; Desmarque a opo Todos os Menus; Marque apenas a opo Faturamento e confirme; Posicione com o cursor sobre a opo Faturamento, ao lado esquerdo da tela e clique na opo Adicionar; Aps a Cpia do Menu, posicione com o cursor na opo Atualizaes ao lado direito da tela, clique na opo Novo Grupo e insira o Novo Grupo a seguir:
Descrio (Portugus): Curso AdvPL

7.

Aps a criao do novo grupo, clique na opo Novo tem e insira o Novo Item a seguir:
Descrio (Portugus): Mdulo: Tipo: Programa: Tabelas: Exerc05 Faturamento Funo de Usurio Exerc05 SB1

8. 9.

Confirme e verifique que o Novo tem, foi inserido no Menu, como ltima Opo; Clique na opo Gerar e salve-o com o mesmo nome do menu original, neste caso, SIGAFAT;

Obs.: Ser exibido um Aviso, informando que esta opo j existe. 10. Confirme e clique na opo Fechar, duas vezes; 11. Clique na opo Cancelar e saia do Mdulo Configurador.

Obs.: Lembre-se de que, Jamais, deveremos utilizar um Menu Original, para nossas customizaes, o correto gerarmos uma Cpia, para que no se perca as configuraes do menu original.
Anotaes:

20 - SIGAADVPL Advanced Protheus

Exerccio 19 Como Testar o Cadastro: 1. 2. 3. Acesse o Mdulo de Faturamento; Selecione as seguintes opes Atualizao + Cadastros + Exerc05; Clique na opo Incluir e cadastre os Produtos a seguir:
Cdigo: Descrio: Tipo: Unidade: Armazem Pad: Cdigo: Descrio: Tipo: Unidade: Armazem Pad: 100.100-01 CANETA AZUL MC PC 01 100.200-01 CANETA VERMELHA MC PC 01

4.

Confira os dados, confirme e saia do Cadastro de Produtos.

Exerccio 20 Como cadastrar a Previso de Vendas: 1. 2. Selecione as seguintes opes Atualizao + Cenrios de Venda + Previso de Vendas; Clique na opo Incluir e informe as Previses a seguir:
Produto: Almoxarifado: Quantidade: Produto: Almoxarifado: Quantidade: 100.100-01 1 1,00 100.200-01 1 1,00

3.

Confira os dados e confirme o Cadastro de Previso de Vendas.

Exerccio 21 Como Verificar a Integridade Relacional entre os dois Cadastros: 1. 2. 3. Selecione as seguintes opes Atualizaes + Cadastro + Produtos; Posicione com o cursor sobre o Produto 100.100-01; Clique a opo Excluir;

Anotaes:

SIGAADVPL Advanced Protheus - 21

Obs.: Note que o sistema no ir realizar a Excluso, devido a amarrao deste Produto ao cadastro de Previso de Vendas. 4. Saia deste Cadastro e selecione as seguintes opes Atualizaes + Cadastro + Exerc05; 5. 6. Posicione com o cursor sobre o Produto 100.100-01; Clique na opo Excluir.

Obs.: Observe que desta vez o sistema realizou a Excluso; A Excluso do Registro foi possvel devido ao fato de que ainda no h nenhuma Validao, para verificar a Integridade Relacional entre os dois arquivos no nosso programa.

Exerccio 22 Como criar Programas, para verificar a Excluso de Produtos: Crie um programa para verificar se o registro selecionado para Excluso no Cadastro Exerc05, poder ou no ser Excludo. Para isso, ser necessrio verificar se o mesmo no se encontra relacionado no cadastro de Previso de Vendas. Crie o Programa a seguir com o nome de Vdel: #Include "Rwmake.ch" User Function Vdel() Local c_Area := Alias(), n_Rec:=Recno(), c_ind:=IndexOrd() Local c_Cod:=SB1->B1_COD, l_Del:=.T. Msgbox("Verificando amarracao do produto" + c_Cod,"Atencao!!!") Dbselectarea("SC4") If Dbseek(Xfilial("SC4")+c_Cod) Msgbox("Produto nao pode ser excluido!!!") l_Del:=.F. Endif DbSelectArea(c_Area) DbSetOrder(c_ind) DbGoTo(n_Rec) Return(l_Del)

1.

Anotaes:

22 - SIGAADVPL Advanced Protheus

2.

Salve o Programa, adicione ao Projeto e Compile-o.

Exerccio 23 Como Alterar o Programa, para Validao da Excluso: 1. 2. Faa as seguintes modificaes no Programa Exerc05: AxCadastro(SB1,Exerc05,Execblock(Vdel),.F.) Salve o Programa e Compile-o, novamente.

Exerccio 24 Como Testar Validaes de Excluses: 1. 2. 3. 4. Acesse o Mdulo de Faturamento; Selecione as seguintes opes Atualizao + Cadastros + Exerc05; Posicione com o cursor sobre o Produto 100.200-01; Clique na opo Excluir;

Obs.: Verifique que a Excluso, no ser realizada, pois agora existe uma Validao, para essa rotina; 5. Saia do cadastro de Produtos; 6. 7. 8. Selecione as seguintes opes Atualizaes + Cenrios de Venda + Previso de Vendas; Posicione com o cursor sobre a Previso 100.200-01, clique na opo Excluir e confirme; Retorne ao Cadastro Exerc05 e execute novamente a Rotina de Excluso.

Obs.: Verifique que desta vez a rotina ser executada, pois no existe mais nenhuma amarrao deste registro com o cadastro de Previso de Vendas. Obs.: No poderemos mais incluir registros atravs da opo Exerc05, pois o mesmo foi modificado, para retornar Falso no parmetro responsvel pela incluso.

Anotaes:

SIGAADVPL Advanced Protheus - 23

Exerccio 25 Como criar Programas de Excluso de Registros em Sequncia: Crie um Programa que durante a Excluso de um registro no Exerc05 seja verificado se o mesmo est amarrado ao cadastro de Previso de Vendas, caso esteja, dever ocorrer a Excluso deste registro em ambos os cadastros. Realize as seguintes modificaes no Programa Vdel: #Include "RwMake.CH" User Function vDel() //Local c_Area := Alias(), n_Rec:=Recno(), c_ind:=IndexOrd() Local aArea := GetArea() //Substitui a linha acima Local cCod := SB1->B1_COD, lDel:=.T. MsgBox("Verificando amarracao do produto " + cCod, "Atencao!!!") DbSelectArea("SC4") If DbSeek(xFilial("SC4")+cCod) // Verifica se existe Previso de Vendas If MsgBox("Deseja excluir a Previso de Vendas","Previso de Vendas","YESNO") lDel := .T. If RecLock("SC4") DbDelete() Else MsgBox("Registro em uso, o produto no ser excluido!") lDel := .F. EndIf Else MsgBox("Produto no ser excludo!") lDel := .F. EndIf EndIf //DbSelectArea(cArea) //DbSetOrder(cInd) //DbGoTo(nRec) RestArea(aArea) // Substitui as 3 linhas acima Return(lDel)
Anotaes:

1.

24 - SIGAADVPL Advanced Protheus

2.

Salve o Programa e Compile-o, novamente.

Exerccio 26 Como Testar a Validao, para Excluso de Registros em Sequncia: 1. 2. 3. Acesse o Mdulo de Faturamento; Selecione as seguintes opes Atualizao + Cadastros + Produtos; Clique na opo Incluir e informe os dados a seguir:
Cdigo: Descrio: Tipo: Unidade: Armazem Pad: 100.100-01 CANETA AZUL MC PC 01

4. 5. 6.

Confira os dados, confirme e saia do cadastro de Produtos; Selecione as seguintes opes Atualizao + Cenrios de Venda + Previso de Vendas; Clique na opo Incluir e informe os dados a seguir:
Produto: Almoxarifado: Quantidade: 100.100-01 1 1,00

7.

Confira os dados e confirme o cadastro de Previso de Vendas.

Exerccio 27 Como Testar a Excluso de Registros em Sequncia: 1. 2. 3. 4. 5. Selecione as seguintes opes Atualizao + Cadastros + Exerc05; Posicione com o cursor sobre o Produto 100.100-01; Clique na opo Excluir e saia do cadastro de Produtos; Selecione as seguintes opes Atualizaes + Cenrios de Venda + Previso de Vendas; Verifique que a Previso de Vendas, cadastrada para o Produto 100.100-01, tambm foi Excluda.

Exerccio 28 Como criar Cadastros com Arquivos Customizados: Crie um Programa, denominado Exerc06 que ser utilizado como Cadastro de Softwares. Crie tambm um Arquivo Customizado, para este cadastro, seus repectivos Campos e Chaves de ndices.

Anotaes:

SIGAADVPL Advanced Protheus - 25

1. 2. 3.

Acesse o Mdulo Configurador; Selecione as seguintes opes Base de Dados + Dicionrio + Arquivos; Clique na opo Incluir e informe os dados a seguir:
Prefixo: Path: Nome: Descrio: Modo Acesso: SZ1 \DADOSADV\ SZ1990 CADASTRO DE SOFTWARES 1=Compartilhado

4. 5.

Confira os dados e confirme o Cadastro; Clique na opo Atualizar Base de Dados, confirme e quando todas as Alteraes forem Salvas, saia do cadastro.

Exerccio 29 Como Criar e Validar os Campos: 1. 2. 3. 4. 5. 6. Selecione as seguintes opes Base de Dados + Dicionrio + Base de Dados; Ao lado esquerdo da tela, posicione com o cursor sobre a opo Dicionrio de Dados e clique na opo Pesquisar; No Campo de Pesquisa, informe SZ1 e confirme; Quando o arquivo for encontrado, clique na opo Editar, posicionado com o cursor sobre a pasta Campos; Clique na opo Incluir; Na pasta Campo, informe os dados a seguir:
Campo: Tipo: Tamanho: Contexto: Propriedade: Z1_CODIGO 1=Caracter 6 1=Real 2=Visualizar

7.

Na pasta Informaes, informe os dados a seguir:


Ttulo: Descrio: Help: Cdigo Cdigo do Software Digite o cdigo do software.

8. 9.

Na pasta Opes, informe os dados a seguir:


Inic. Padro: GETSXENUM("SZ1","Z1_CODIGO")

Na pasta Validaes, informe os dados a seguir:


Val. Usurio: EXISTCHAV("SZ1")

10. Na pasta Uso, marque as seguintes opes Obrigatrio, Usado e Browse; 11. Na pasta Mdulos, deixe a opo Utilizado por todos os mdulos marcada;

Anotaes:

26 - SIGAADVPL Advanced Protheus

12. Confira os dados e confirme a Criao do Campo; 13. Clique novamente na opo Incluir e crie o prximo Campo. 14. Na pasta Campo, informe os dados a seguir:
Campo: Tipo: Tamanho: Formato: Contexto: Propriedade: Z1_NOME 1=Caracter 15 @! 1=Real 1=Alterar

15. Na pasta Informaes, informe os dados a seguir:


Ttulo: Descrio: Help: Nome Nome do Software Digite o nome do Software

16. Na pasta Uso, marque as seguintes opes Usado e Browse; 17. Na pasta Mdulos, deixe a opo Utilizado por todos os mdulos marcada; 18. Confira os dados e confirme a Criao do Campo; 19. Clique novamente na opo Incluir; 20. Na pasta Campo, informe os dados a seguir:
Campo: Tipo: Tamanho: Formato: Contexto: Propriedade: Z1_DTCOM 4=Data 8 @D 1=Real 2=Visualizar

21. Na pasta Informaes, informe os dados a seguir:


Ttulo: Descrio: Help: Data Compra Data da compra Digite a data da compra

22. Na pasta Opes, informe os dados a seguir:


Inic. Padro: DATE()

23. Na pasta Uso, marque as seguintes opes Usado e Browse; 24. Na pasta Mdulos, deixe a opo Utilizado por todos os mdulos marcada e confirme toda a Criao dos Campos; 25. Clique na opo Atualizar Base de Dados, para que todas as Alteraes tenham efeito e confirme; 26. Assim que todo o Processo de Atualizao for concludo, clique na opo Cancelar.

Anotaes:

SIGAADVPL Advanced Protheus - 27

Obs: Todos os detalhes referentes Criao de Campos e Manuteno das Estruturas de um Arquivo so vistos com maiores detalhes no curso do Mdulo Configurador. Dicas: Caso queira criar mais campos, o procedimento o mesmo, e se desejar Criar Campos que tenham, as caractersticas semelhantes a de outro campo, basta verificar, como est definida a Estrutura do Campo, que se deseja Copiar e cri-la onde desejar; Sempre que confirmamos a Alterao da Estrutura de um Arquivo, o Advanced Protheus, gera um Backup, automtico do Dicionrio de Dados, como no exemplo a seguir: SX3990.#DB (Nas verses ADS e Codebase), ou SX3990.BKP (Nas verses SQL).

Exerccio 30 Como Criar Chaves de ndices para Novos Arquivos: 1. 2. 3. 4. 5. 6. 7. 8. 9. Aps a Atualizao da Estrutura do Arquivo; Clique na opo ndices, localizada ao lado esquerdo da tela; Clique na opo Incluir e em seguida no boto Consultar Campos; Selecione o Campo Z1_FILIAL e confirme; Repita o mesmo procedimento e selecione o Campo Z1_CODIGO; No Campo Descrio:, informe Cdigo e confirme; Clique novamente no boto Incluir e em seguida no boto Consultar Campos; Selecione o Campo Z1_FILIAL e confirme; Repita o mesmo procedimento e selecione o Campo Z1_NOME;

10. No Campo Descrio:, informe Nome e confirme;

Exerccio 31 Como Criar Novas Chaves de ndices para Arquivos Padres: 1. 2. 3. 4. 5. 6. Clique na opo Pesquisar; No Campo Perquisar por:, informe SA1 e confirme; Assim que o Arquivo for encontrado, clique na opo Editar; Clique na opo ndices, localizada ao lado esquerdo da tela; Clique na opo Incluir e em seguida no boto Consultar Campos; Selecione o Campo A1_FILIAL e confirme;

Anotaes:

28 - SIGAADVPL Advanced Protheus

7. 8. 9. 11.

Repita o mesmo procedimento e selecione o Campo A1_MUN; No Campo Descrio:, informe Municpio e confirme; Saia do cadastro. Assim que todo o Processo de Atualizao for concludo, clique na opo Cancelar e saia do cadastro.

10. Clique no boto Atualizar base de dados e confirme;

Exerccio 32 Entendendo o que Aconteceu: 1. 2. 3. 4. 5. 6. 7. 8. 9. D um duplo clique no Atalho do Remote; No Campo Programa Inicial, informe APSDU e confirme Ser solicitado um Usurio (Administrador) e Senha (Em Branco); Selecione as seguintes opes File + Open; Selecione o Driver DBF (DBFCDXADS/DBFCDXAX); Clique na opo + da opo Servidor ao lado direito da caixa e posicione com o cursor sobre a pasta \Sigaadv\; Posicione com o cursor sobre o Arquivo SIX990.dbf, que se encontra ao lado direito da caixa; Selecione as seguintes opes Find + Seek; No Campo Expression, informe SZ1 e confirme, para verificar o resultado;

10. Repita o procedimento, para verificar a nova Chave de Pesquisa, criada para o Arquivo SA1; 11. Aps a verificao, saia da Ferramenta SDU.

Dicas: Conforme verificamos, o Arquivo Responsvel pelo controle das chaves de ndices do sistema o SIX, sendo que o mesmo possui um controle individual por empresa.

Exerccio 33 Como Criar Programas de Cadastros, atravs do Assistente de Cdigo, da Ferramenta IDE: 1. Acesse a Ferramenta IDE; 2. 3. Selecione as seguintes opes Ferramentas + Assistente de Cdigo; Marque a opo Cadastro;

Anotaes:

SIGAADVPL Advanced Protheus - 29

4. 5. 6. 7. 8. 9. 11.

Clique na opo Avanar>>; Marque a opo Arquivo Padro; No Campo Alias, informe o Arquivo SZ1; Marque a opo Utiliza ndice Padro; Clique nas seguintes opes Avanar>> + Avanar>>; Marque a opo AxCadastro; Clique na opo Finalizar; User Function Exerc06

10. Na pasta Configuraes, no Campo Ttulo, informe Cadastro de Softwares; 12. Realize a seguinte Correo no programa: 13. Salve o Programa, tambm com o nome de Exerc06, adicione ao Projeto e Compile-o. 14. Adicione-o ao menu do Modulo Faturamento. 15. Insira os dados a seguir:
Cdigo: Nome: Data Compra: Cdigo: Nome: Data Compra: Cdigo: Nome: Data Compra: 000001 Office 2000 Data de hoje 000002 SQL Server Data de hoje 000003 Windows XP Data de hoje

16. Confira os dados e saia do Cadastro.

Exerccio 34 Como Criar Cadastros, para Usurios de Softwares: Crie um Programa denominado Exerc07 que ser utilizado como Cadastro de Usurios de Softwares. Crie tambm um Arquivo Customizado para este cadastro, seus repectivos Campos e Chaves de ndices. Acesse o Mdulo Configurador; Selecione as seguintes opes Base de Dados + Dicionrio + Arquivos; Clique na opo Incluir e crie o Arquivo a seguir:

1. 2. 3.

Anotaes:

30 - SIGAADVPL Advanced Protheus

Prefixo: Path: Nome: Descrio: Modo Acesso:

SZ2 \DADOSADV\ SZ2990 USUARIOS DE SOFTWARES 1=Compartilhado

4. 5.

Confira os dados e confirme o Cadastro; Clique na opo Atualizar Base de Dados, confirme e assim que todas as Alteraes forem salvas, saia do Cadastro.

Exerccio 35 Como Criar e Validar os Campos: 1. 2. 3. 4. 5. 6. Selecione as seguintes opes Base de Dados + Dicionrio + Base de Dados; Ao lado esquerdo da tela, posicione com o cursor sobre a opo Dicionrio de Dados e clique na opo Pesquisar; No Campo de Pesquisa, informe SZ2 e confirme; No Arquivo SZ2, posicionado o cursor sobre a pasta Campos, clique na opo Editar; Clique na opo Incluir; Na pasta Campo, informe os dados a seguir:
Campo: Tipo: Tamanho: Contexto: Propriedade: Z2_CODIGO 1=Caracter 6 1=Real 2=Visualizar

7.

Na pasta Informaes, informe os dados a seguir:


Ttulo: Descrio: Help: Cdigo Cdigo do usurio Informe o cdigo do usurio

8. 9.

Na pasta Opes, informe os dados a seguir:


Inic. Padro: GETSXENUM("SZ2","Z2_CODIGO")

Na pasta Validaes, informe os dados a seguir:


Val. Usurio: EXISTCHAV("SZ2")

10. Na pasta Uso, marque as seguintes opes Obrigatrio, Usado e Browse; 11. Na pasta Mdulos, deixe a opo Utilizado por todos os mdulos marcada; 12. Confira os dados e confirme a Criao do Campo; 13. Clique novamente na opo Incluir e crie o prximo campo; 14. Na pasta Campo, informe os dados a seguir:

Anotaes:

SIGAADVPL Advanced Protheus - 31

Campo: Tipo: Tamanho: Formato: Contexto: Propriedade:

Z2_NOME 1=Caracter 15 @! 1=Real 1=Alterar

15. Na pasta Informaes, informe os dados a seguir:


Ttulo: Descrio: Help: Nome Nome do usurio Informe o nome do usurio

16. Na pasta Uso, marque as seguintes opes Usado e Browse; 17. Na pasta Mdulos, deixe a opo Utilizado por todos os mdulos marcada; 18. Confira os dados e confirme a Criao do Campo; 19. Clique novamente na opo Incluir ; 20. Na pasta Campo, informe os dados a seguir:
Campo: Tipo: Tamanho: Formato: Contexto: Propriedade: Z2_DTEMP 4=Data 8 @D 1=Real 2=Visualizar

21. Na pasta Informaes, informe os dados a seguir:


Ttulo: Descrio: Help: Data Emp. Data do emprstimo Informe data do emprstimo

22. Na pasta Opes, informe os dados a seguir:


Inic. Padro: DDATABASE

23. Na pasta Uso, marque as seguintes opes Usado e Browse; 24. Na pasta Mdulos, deixe a opo Utilizado por todos os mdulos marcada; 25. Confira os dados e confirme a Criao do Campo; 26. Clique novamente na opo Incluir ; 27. Na pasta Campo, informe os dados a seguir:
Campo: Tipo: Tamanho: Formato: Contexto: Propriedade: Z2_HORA 1=Caracter 5 99:99 1=Real 2=Visualizar

28. Na pasta Informaes, informe os dados a seguir:

Anotaes:

32 - SIGAADVPL Advanced Protheus

Ttulo: Descrio: Help:

Hr. Emp. Hora do emprstimo Informe hora do emprstimo

29. Na pasta Opes, informe os dados a seguir:


Inic. Padro: TIME()

30. Na pasta Uso, marque as seguintes opes Usado e Browse; 31. Na pasta Mdulos, deixe a opo Utilizado por todos os mdulos marcada e confirme a Criao de todos os Campos; 32. Clique na opo Atualizar Base de Dados, para que todas as Alteraes tenham efeito e confirme; 33. Assim que todo o Processo de Atualizao for concludo, clique na opo Cancelar.

Exerccio 36 Criando Chaves de ndices: 1. 2. 3. 4. 5. 6. 7. 8. 9. 11. Aps a Atualizao da Estrutura do Arquivo; Clique na opo ndices, localizada ao lado esquerdo da tela; Clique na opo Incluir e em seguida no boto Consultar Campos; Selecione o Campo Z2_FILIAL e confirme; Repita o mesmo procedimento e selecione o Campo Z2_CODIGO; No Campo Descrio:, informe Cdigo e confirme; Clique novamente no boto Incluir e em seguida no boto Consultar Campos; Selecione o Campo Z2_FILIAL e confirme; Repita o mesmo procedimento e selecione o Campo Z2_NOME; Clique no boto Atualizar Base de Dados e confirme;

10. No Campo Descrio:, informe Nome, confirme e saia do Cadastro; 12. Assim que todo o Processo de Atualizao for concludo, clique na opo Cancelar e saia do Cadastro.

Exerccio 37 Como Criar Programas de Cadastros, atravs do Assistente de Cdigos da Ferramenta IDE: 1. Acesse a Ferramenta IDE; 2. 3. Selecione as seguintes opes Ferramentas + Assistente de Cdigo; Marque a opo Cadastro;

Anotaes:

SIGAADVPL Advanced Protheus - 33

4. 5. 6. 7. 8. 9. 11.

Clique na opo Avanar>>; Marque a opo Arquivo Padro; No Campo - Alias informe o Arquivo - SZ2; Marque a opo Utiliza ndice Padro; Clique nas seguintes opes Avanar>> + Avanar>>; Marque a opo AxCadastro; Clique na opo Finalizar; User Function Exerc07.

10. Na pasta Configuraes, no Campo Ttulo, informe Usurios dos Softwares; 12. Realize a seguinte Correo no programa: 13. Confira os dados, salve o Programa tambm com o nome de Exerc07, adicione ao Projeto e Compile-o. 14. Adicione-o ao menu do Modulo Faturamento. 15. Insira os dados a seguir:
Cdigo: Nome: Data Emp: Hr. Emp: Cdigo: Nome: Data Emp: Hr. Emp: Cdigo: Nome: Data Emp: Hr. Emp: 000001 USUARIO 1 Data de hoje Hora atual 000002 USUARIO 2 Data de hoje Hora atual 000003 USUARIO 3 Data de hoje Hora atual

16. Confira os dados, confirme e saia do cadastro de Usurios.

Anotaes:

34 - SIGAADVPL Advanced Protheus

MBrowse()
Esta Funo utilizada para a criao de telas de cadastros padronizados da MICROSIGA, onde poderemos criar at 10 botes, sem a necessidade de utilizarmos os originais. Tambm possvel a utilizao de Legendas durante o cadastro, sendo que as mesmas podero ser definidas atravs de Cores e Condies. Sintaxe: MBrowse(nT,nL,nB,nR,cAlias,aFixe,cCpo,nPosI,cFun,nDefault, aColors,cTopFun,cBotFun) Parmetros: nT = Linha Inicial; nL = Coluna Inicial; nB = Linha Final; nR = Coluna Final; cAlias = Alias do Arquivo; aFixe = Array, contendo os Campos Fixos (A serem mostrados em primeiro lugar no Browse); cCpo = Campo a ser tratado, quando Empty, para informaes de Linhas com Cores; Prioridade 2 nPosI = (Dummy); cFun = Funo para habilitar semforo; Prioridade 3 na execuo; Prioridade 3 nDefault= Nmero da opo do menu a ser executada quando o <Enter> for pressionado; aColors = Array com os Objetos e Cores; Prioridade 1 cTopFun = Funo para filtrar o TOP do Browse; cBotFun = Funo para filtrar o BOTTOM do Browse.

Exerccio 38 Como Criar Telas de Cadastros: Crie um programa denominado Exerc08, utilizando o arquivo de Cadastro de Produtos, onde o mesmo deve possuir uma Opo Customizada, para acessar o Cadastro de Complementos de Produtos. Acesse a Ferramenta IDE; Selecione as seguintes opes Ferramentas + Assistente de Cdigo; Marque a opo Cadastro; Clique na opo Avanar>>; Marque a opo Arquivo Padro; No Campo Alias, informe o Arquivo SB1; Marque a opo Utiliza ndice padro;

1. 2. 3. 4. 5. 6. 7.
Anotaes:

SIGAADVPL Advanced Protheus - 35

8. 9. 11.

Clique nas seguintes opes Avanar>> + Avanar>>; Marque a opo MBrowse; Clique na opo Finalizar; User Function Exerc08 Private aRotina := {{"Pesquisar","AxPesqui",0,1} ,; {"Visualizar","AxVisual",0,2} ,; {"Incluir","AxInclui",0,3} ,; {"Alterar","AxAltera",0,4} ,; {"Excluir","AxDeleta",0,5},; {"Compl. Produtos","Mata180()",0,6}}

10. Na pasta Configuraes, no Campo Ttulo, informe Cadastro de Produtos; 12. Faa as seguintes Correes no Programa:

13. Confira os dados, salve o Programa tambm com o nome de Exerc08, adicione ao Projeto e Compile-o. 14. Adicione-o ao menu do Modulo Faturamento e teste.

Exerccio 39 Como utilizar Legendas nos Cadastros: Crie um Programa, para o Cadastro de Produtos, sendo que o mesmo dever possuir uma Legenda ao lado de cada Registro informando se o Campo Preo de Venda, est ou no Preenchido. Realize a seguinte alterao no Programa Exerc08: mBrowse( 6,1,22,75,cString,,"B1_PRV1") 2. 3. Confira os dados, salve o Programa e Compile-o novamente. Insira os dados a seguir:
Cdigo: Descrio: Tipo: Unidade: Armazm Pad.: Preo Venda: Cdigo: Descrio: Tipo: Unidade: Armazm Pad.: 000000000000001 PRODUTO 1 PA CX 01 1.00 000000000000002 PRODUTO 2 PA CX 01

1.

Anotaes:

36 - SIGAADVPL Advanced Protheus

4. 5.

Cancele a Prxima Incluso; Verifique que o produto que atende Condio estipulada pelo programa est com uma legenda Vermelha e a outra Verde.

Obs.: As Cores Padres das Legendas, sero sempre Vermelha quando a Condio, for Satisfeita e Verde, quando ainda estiver Pendente.

Exerccio 40 Como utilizar Legendas com Condies de Preenchimento dos Campos: Crie um Programa, para o Cadastro de Produtos, sendo que o mesmo dever possuir uma Legenda ao lado de cada registro informando se o Campo Preo de Venda est ou no preenchido com Valor Igual ou Superior a R$ 100,00. Realize a seguinte alterao no Programa Exerc08: mBrowse( 6,1,22,75,cString,,"B1_PRV1>=100") 2. Confira os dados, salve o Programa e Compile-o novamente e teste.

1.

Obs.: Verifique que a Cor do primeiro registro, foi alterada para Verde, pois a Nova Condio ainda no foi Satisfeita; 3. Posicione com o cursor sobre esse mesmo Registro e clique na opo Alterar; 4. 5. Preencha o Campo Preo Venda com um Valor Igual ou Superior a R$ 100,00 e confirme; Verifique que agora a Legenda, mudou novamente para Vermelho, pois a Nova Condio, foi Atendida.

Exerccio 41 Como criar Outra Tela de Cadastros: Crie um Programa denominado Exerc09, utilizando o arquivo de Cadastro de Clientes, onde o mesmo dever possuir uma Legenda, informando se o Campo Tipo, est preenchido como Revendedor. Acesse a Ferramenta IDE; Selecione as seguintes opes Ferramentas + Assistente de Cdigo; Marque a opo Cadastro;

1. 2. 3.

Anotaes:

SIGAADVPL Advanced Protheus - 37

4. 5. 6. 7. 8. 9. 11.

Clique na opo Avanar>>; Marque a opo Arquivo Padro; No Campo Alias, informe o Arquivo SA1; Marque a opo Utiliza ndice padro; Clique na opo Avanar>> + Avanar>>; Marque a opo MBrowse; Clique na opo Finalizar; User Function Exerc09 mBrowse( 6,1,22,75,cString,,"A1_TIPO== 'R")

10. Na pasta Configuraes, no Campo Ttulo, informe Cadastro de Clientes; 12. Realize as seguintes correes no Programa:

13. Confira os dados, salve o Programa, tambm com o nome de Exerc09, adicione ao Projeto e Compile-o. 14. Adicione-o ao menu do Modulo Faturamento e teste. Obs.: Verifique que o Registro existente, possui a legenda em Vermelho, pois a Nova Condio, j se encontra Satisfeita; 15. Clique na opo Alterar, preencha o Campo Tipo, com X=Exportao e confirme; 16. Agora, verifique que a Legenda, passou para a cor Verde, confirmando que a Condio no foi Satisfeita, dessa vez e saia do Cadastro.

Exerccio 42 Como Criar Cadastros com Filtros: Crie um Programa denominado Exerc10, utilizando o Arquivo de Tabelas do Mdulo Configurador, onde o mesmo dever apresentar, apenas os Os Estados da Regio Sudeste, quando o usurio acessar o sistema, porm dever apresentar todos, caso o sistema seja acessado pelo Administrador. Acesse a Ferramenta IDE; Crie o Programa a seguir: #Include "Rwmake.ch" User Function Exerc10() Dbselectarea("SX5") Dbsetorder(1)

1. 2.

Anotaes:

38 - SIGAADVPL Advanced Protheus

cCadastro:="Tabelas" aRotina:={{ "Pesquisar","Axpesqui",0,1},; {"Alterar","AxAltera",0,4}} If Upper(Substr(cUsuario,7,15))<>"ADMINISTRADOR" Set Filter To X5_TABELA == 12 .And. Alltrim(X5_CHAVE) $ SP/RJ/MG/ES Endif Mbrowse(6,1,22,75,"SX5") Set Filter to Return 3. 4. Confira os dados, salve o Programa, com o nome de Exerc10, adicione ao Projeto e Compile-o. Adicione-o ao menu do Modulo Faturamento e teste.

Obs.: Verifique que apenas os Estados da Regio Sudeste, foram exibidos. 5. Saia do Sistema e acesse-o novamente como Administrador, repetindo o Teste; 6. Verifique que todos os Estados sero exibidos e saia do Cadastro.

Exerccio 43 Utilizando o Parametro aFixe da mBrowse: Crie um Programa denominado EXERC11, utilizando o Cadastro de Produtos do Mdulo Faturamento, fixando o campo Descrio na primeira coluna do Browse Acesse a Ferramenta IDE; Crie o programa a seguir; #INCLUDE rwmake.ch User Function Exerc11() Local aCampos Private cCadastro := Cadastro de Produtos Private aRotina := {{Pesquisar,AxPesqui,0,1} ,; {Visualizar,AxVisual,0,2} ,; {Incluir,AxInclui,0,3} ,;

1. 2.

Anotaes:

SIGAADVPL Advanced Protheus - 39

{Alterar,AxAltera,0,4} ,; {Excluir,AxDeleta,0,5} } Private cDelFunc := .T. // Validacao para a exclusao. Pode-se utilizar ExecBlock aCampos := {{Descrio,B1_DESC}} dbSelectArea(SB1) dbSetOrder(1) mBrowse( 6,1,22,75,SB1",aCampos) Return 3. 4. Confira os dados, salve o programa EXERC11, adicione ao Projeto e Compileo. Adicione-o ao menu do Modulo Faturamento e teste.

Exerccio 44 Utilizando o Parametro cFun da mBrowse: 1. 2. Crie um Programa denominado EXERC12, utilizando o Cadastro de Produtos do Mdulo Faturamento, ativando o Semforo a partir do parmetro cFun. Acesse a Ferramenta IDE; Crie o programa a seguir; #INCLUDE rwmake.ch User Function Exerc12() Private cCadastro := Cadastro de Produtos Private aRotina := { {Pesquisar,AxPesqui,0,1} ,; {Visualizar,AxVisual,0,2} ,; {Incluir,AxInclui,0,3} ,; {Alterar,AxAltera,0,4} ,; {Excluir,AxDeleta,0,5} } Private cDelFunc := .T. // Validacao para a exclusao. Pode-se utilizar ExecBlock dbSelectArea(SB1) dbSetOrder(1) mBrowse( 6,1,22,75,SB1",,,,u_PrecoVenda()) Return

Anotaes:

40 - SIGAADVPL Advanced Protheus

User Function PrecoVenda() Return SB1->B1_PRV1 == 0 3. 4. Confira os dados, salve o programa EXERC12, adicione ao Projeto e Compileo. Adicione ao menu do Modulo Faturamento e teste.

Exerccio 45 Criando Legenda para o Semaforo e ativando o mesmo com a tecla <Enter> Crie um Programa denominado EXERC13, utilizando o Cadastro de Produtos do Mdulo Faturamento, para apresentar uma Legenda do Semaforo, este dever chamar o Programa de Legenda quando pressionado o <Enter>, utilizaremos neste exerccio os parmetros cDefault e aCores. 1. 2. Acesse a ferramenta IDE; Crie o programa a seguir; #INCLUDE rwmake.ch User Function Exerc13() Private cCadastro := Cadastro de Produtos Private aRotina := { {Pesquisar,AxPesqui,0,1} ,; {Visualizar,AxVisual,0,2} ,; {Incluir,AxInclui,0,3} ,; {Alterar,AxAltera,0,4} ,; {Excluir,AxDeleta,0,5} ,; {Legenda,u_Legenda(),0,6} } Private cDelFunc := .T. // Validacao para a exclusao. Pode-se utilizar ExecBlock aCores := { {B1_PRV1 == 0,BR_VERMELHO},; {B1_PRV1 > 0 .And. B1_PRV1 <= 100,BR_LARANJA},; {B1_PRV1 > 100 .And. B1_PRV1 <= 200,BR_AZUL},; {B1_PRV1 > 200,BR_VERDE}} dbSelectArea(SB1) dbSetOrder(1) mBrowse( 6,1,22,75,SB1",,,,,6,aCores) Return
Anotaes:

SIGAADVPL Advanced Protheus - 41

User Function Legenda() BrwLegenda(cCadastro,Valores, { {BR_VERMELHO,Preo no informado},; {BR_LARANJA,Preo > 0 e <= 100" },; {BR_AZUL,Preo > 100 e <= 200" },; {BR_VERDE,Preo > 200" }} Return .T. 3. 4. Confira os dados, salve o programa EXERC13, adicione ao Projeto e Compileo. Adicione ao menu do Modulo Faturamento )

Exerccio 46 Criando Filtro com a mBrowse; Crie um Programa denominado EXERC14, utilizando o Cadastro de Produtos do Mdulo Faturamento, o mesmo deve conter um filtro utilizando o primeiro ndice do arquivo. Acesse a ferramenta IDE; Crie o programa a seguir; #INCLUDE rwmake.ch User Function Exerc14() Private cCadastro := Cadastro de Produtos Private aRotina := { {Pesquisar,AxPesqui,0,1} ,; {Alterar,AxAltera,0,4} ,; {Excluir,AxDeleta,0,5}} Private cDelFunc := ".T." // Validacao para a exclusao. Pode-se utilizar ExecBlock DbSelectArea("SB1") DbSetOrder(1) mBrowse( 6,1,22,75,"SB1",,,,,,,"u_FilBof()","u_FilEof()") Return User Function FilBof() Return xFilial(SB1)+000000000000002" User Function FilEof() Return xFilial(SB1)+000000000000004"

1. 2.

Anotaes:

42 - SIGAADVPL Advanced Protheus

3. 4.

Confira os dados, salve o programa EXERC14, adicione ao Projeto e Compileo. Adicione ao menu do Modulo Faturamento e teste.

Modelo2()
Esta Funo utilizada para a Criao de Telas de Cadastros onde poderemos trabalhar com um Esquema Cabealho desenvolvido apenas com a utilizao de Variveis de Memria e logo abaixo uma tela com linhas, utilizada para a digitao dos dados, aparentando estarmos trabalhando com dois arquivos em tela, porm na verdade existir apenas um. Como exemplo, podemos citar o cadastro de Controle de Reservas, existente no Mdulo de Faturamento. Sintaxe: Modelo2(cT,aC,aR,aGd,nOp,cLOk,cTOk, aGetsD, bF4, cIniCpos) Parmetros: lRet = Retorno da funo (.T. se confirmou); cT = Ttulo da Janela; aC = Array com os Campos do Cabealho; aR = Array com os Campos do Rodap; aGd = Array com as posies para edio dos tens (GETDADOS); nOp = Modo de operao (3 ou 4 altera e inclui tens, 6 altera mas no inclui tens, qualquer outro nmero s visualiza os tens); cLOk = Funo para validao da linha; cTOk = Funo para validao de tudo (na confirmao); aGetsD = Array com Gets editveis; bF4 = Bloco de Cdigos, para tecla <F4>; cIniCpos = String com Nome dos Campos que devem ser inicializados ao pressionar a tecla de Seta para Baixo.

Exerccio 47 Como utilizar a Funo Modelo 2, para Cadastros: 1. 2. Acesse a Ferramenta IDE; Adicione os Programas a seguir (Que se encontram na pasta Rdmake), ao Projeto em uso e compile: Exerc15, Md2vlcli, Md2linok, Md2tudok, Md2valid; 3. Adicione o programa Exerc15 ao menu do Modulo Faturamento e teste.

Anotaes:

SIGAADVPL Advanced Protheus - 43

Obs.: Verifique que o Tipo de Cadastro criado totalmente diferente dos utilizados at o momento. 4. Teste-o, verificando as sua Validaes e saia do Cadastro.

Modelo3()
Esta Funo utilizada para a Criao de Telas de Cadastros, onde poderemos trabalhar com um esquema de Dois Arquivos em Tela, ou seja, um para a Criao do Cabealho e outro para a Criao do Corpo do Cadastro, onde iremos utilizar Linhas para a Digitao. Como exemplo, podemos citar o cadastro de Pedidos de Vendas, existente no Mdulo de Faturamento. Sintaxe: Modelo3(cTitulo,cAlias1,cAlias2,aMyEncho,cLinOk,cTudoOk,nOpcE,nOpcG,cFs2,aMyEncho, cLinOk,cTudoOk,nOpcE,nOpcG,cFieldOk,lVirtual,nLinhas,aAltEnchoice) Parmetros: lRet = Retorno .T. Confirma / .F. Abandona; cTitulo = Ttulo da Janela; cAlias1 = Alias da Enchoice; cAlias2 = Alias da GetDados; aMyEncho = Array com campos da Enchoice; cLinOk = LinOk; cTudOk = TudOk; nOpcE = nOpc da Enchoice; nOpcG = nOpc da GetDados; cFieldOk = Validao para todos os campos da GetDados; lVirtual = Permite visualizar campos virtuais na Enchoice; nLinhas = Nmero Mximo de linhas na Getdados; aAltEnchoice = Array com campos da Enchoice Alterveis.

Anotaes:

44 - SIGAADVPL Advanced Protheus

Exerccio 48 Como utilizar a Funo Modelo 3, para Cadastros: 1. 2. 3. Acesse a Ferramenta IDE; Adicione o programa Exerc16 (Que se encontra na pasta Rdmake), ao Projeto em uso e compile-o; Adicione-o ao menu do Modulo Faturamento e teste.

Obs.: Verifique que o Tipo de Cadastro criado parecido com o da Funo anterior, porm, repare que o mesmo utiliza Dois Arquivos, para a sua Criao; 4. Teste-o, inserindo algum Registro e saia do Cadastro.

Exerccio 49 Como Criar Programas utilizando as Funes Mbrowse e Modelo3 juntas: 1. 2. 3. Acesse a Ferramenta IDE; Adicione o Programa Exerc17 (Que se encontra na pasta Rdmake), ao Projeto em uso e compile-o; Adicione-o ao menu do Modulo Faturamento e teste.

Obs.: Verifique que o Cadastro, agora possui todos as Opes. 4. Teste-o, inserindo algum Registro; 5. Verifique tambm que a linha possui uma Validao, que no deixa que a incluso seja confirmada sem o Preenchimento dos Campos ou que seja possvel a repetio de um Centro de Custos, que j foi utilizado em alguma linha anterior; Teste todos as Opes e saia do Cadastro.

6.

O que voc aprendeu neste captulo


Neste captulo aprendemos a utilizar as Funes de Criao de Telas para Cadastros, juntamente com Rotinas de Validaes, utilizadas frequentemente durante a Elaborao de Programas.

Prximo Passo
Na prxima etapa, aprenderemos como criar Consultas Padres do sistema, ou seja, as consultas acionadas atravs da tecla <F3> nos Campos.
Anotaes:

SIGAADVPL Advanced Protheus - 45

CONSULTAS PADRO
O que voc ir aprender neste captulo
Neste captulo, aprenderemos a criar as Consultas Padro.

Rotinas Abordadas
Consultas Padro.

Consultas Padro
Tambm conhecida como (Consulta <F3>), elas so utilizadas pelo Advanced Protheus em Campos dos Cadastros e Movimentaes, a Consulta Padro acionada sempre pela tecla <F3> ou com um existente nos Campos relacionados a ela. clique sobre a opo O Arquivo que possibilita este tipo de consulta o SXB. Para entendermos melhor, necessrio estudarmos os cinco Tipos de Consultas que a compe:

Tipo 1
Identifica o Nome da Consulta e o Alias do Arquivo a ser utilizado. Exemplo:
Campo XB_ALIAS XB_TIPO XB_SEQ XB_COLUNA XB_DESCRI XB_CONTEM Contedo TST 1 01 DB CLIENTES SA1 Definio Nome atribudo "Consulta Padro" do Configurador. Tipo de Registro. Seqncia referente utilizao do Tipo1, sempre "01" Indica Consulta em um Arquivo do Banco de Dados. Ttulo da Consulta. Alias do Arquivo ser Consultado.

Tipo 2
Identifica as Opes no Rodap da Consulta e as Ordens que sero utilizadas. Exemplo:

Anotaes:

46 - SIGAADVPL Advanced Protheus

Campo XB_ALIAS XB_TIPO XB_SEQ XB_COLUNA XB_DESCRI XB_CONTEM

Contedo TST 2 01 01 NOME

Definio Nome da consulta. Tipo de Registro. Primeira Coluna do Rodap (Pesquisar por:). Utiliza a Ordem 01 do Arquivo. Ttulo do Rodap. No utilizado no Registro de Tipo 2.

Tipo 3
Identifica que a Consulta ter uma opo, para Cadastramento de Novos Registros. Caso contrrio, no deve-se utilizar Registro com o Tipo igual a 3. Exemplo:
Campo XB_ALIAS XB_TIPO XB_SEQ XB_COLUNA XB_DESCRI XB_CONTEM Contedo Definio TST Nome da consulta. 3 Tipo de Registro. 01 Sempre "01". 01 Default (Sempre "01"). CADASTRA NOVO Funo que habilita a opo de "Incluir". 01 Default (Sempre "01").

Tipo 4
Utilizado para a Montagem das Colunas do Browse. Exemplo:
Campo XB_ALIAS XB_TIPO XB_SEQ XB_COLUNA XB_DESCRI XB_CONTEM Contedo TST 4 01 01 NOME A1_NOME Definio Nome da Consulta. Tipo de Registro. Tela do Browse. Coluna do Browse. Nome da Coluna. Contedo da Coluna.

Tipo 5
Utilizado para identificar o Retorno da Consulta. Exemplo:
Campo XB_ALIAS XB_TIPO XB_SEQ XB_COLUNA XB_DESCRI XB_CONTEM Contedo TST 5 01 Definio Nome da Consulta. Tipo de Registro. Seqncia de Retorno, podero ser utilizadas at 5. No utilizado. No utilizado. SA1->A1_COD Retorno da Consulta.

Anotaes:

SIGAADVPL Advanced Protheus - 47

Tipo 6
Utilizado para montar o Filtro da Consulta. Exemplo:
Campo XB_ALIAS XB_TIPO XB_SEQ XB_COLUNA XB_DESCRI XB_CONTEM Contedo TST 6 01 Definio Nome da Consulta. Tipo de Registro. Seqncia do Filtro, poder existir apenas 1. No utilizado. No utilizado. SA1->A1_TIPO=="R" Sintaxe (Xbase) utilizada na Criao do Filtro.

Exerccio 50 Como Criar Consultas Padro, utilizando o Arquivo de Cadastro de Clientes: 1. 2. 3. 4. 5. Acesse o Mdulo Configurador Selecione as seguintes opes Base de Dados + Dicionrio + Base de Dados; Posicione com o cursor sobre a opo Consultas Padro e clique na opo Incluir; Na caixa Tipo de Consulta, marque a opo Consulta Padro; Na caixa Informaes, informe os dados a seguir:
Consulta: Descrio: TST Clientes

6. 7. 8. 9.

Clique na opo Avanar; Na prxima tela, marque a opo Habilitar Incluso; No Browse, posicione com o cursor sobre o Arquivo SA1 Cadastro de Clientes e clique na opo Avanar; Na prxima tela, clique na opo Adicionar ndice, que se encontra abaixo da Caixa ndices direita; Repita a operao, selecionando agora a Terceira Chave de ndice;

10. Posicione com o cursor sobre a Primeira Chave de ndice e confirme; 11. 12. Posicione com o cursor sobre a Primeira Linha e clique na opo Adicionar Colunas, localizado ao lado direito da tela, na caixa Colunas, 13. No Campo Expresso, clique na opo Consultar Campos, selecione o Campo A1_COD e confirme; 14. No Campo Descrio, clique na opo Consultar Ttulos, selecione o Ttulo Cdigo e confirme; 15. Confira os dados e confirme o Cadastro; 16. Clique novamente na opo Adicionar Colunas;
Anotaes:

48 - SIGAADVPL Advanced Protheus

17. No Campo Expresso, clique na opo Consultar Campos, selecione o Campo A1_NOME e confirme; 18. No Campo Descrio, clique na opo Consultar Ttulos, selecione o Ttulo Nome e confirme; 19. Confira os dados e confirme o Cadastro; 20. Voltando para a caixa ndices, ao lado esquerda da tela, posicione com o cursor sobre a Segunda Linha; 21. Clique na opo Adicionar Colunas, localizado ao lado direito da tela, na caixa Colunas; 22. No Campo Expresso, clique na opo Consultar Campos, selecione o Campo A1_CGC e confirme; 23. No Campo Descrio, clique na opo Consultar Ttulos, selecione o Ttulo CNPJ/CPF e confirme; 24. Confira os dados e confirme o Cadastro; 25. Clique novamente na opo Adicionar Colunas; 26. No Campo Expresso, clique na opo Consultar Campos, selecione o Campo A1_NOME e confirme; 27. No Campo Descrio, clique na opo Consultar Ttulos, selecione o Ttulo Nome e confirme; 28. Confira os dados e confirme o Cadastro; 29. Clique na opo Avanar; 30. No Campo Filtro, informe a Sintaxe a seguir: SA1->A1_TIPO==R 31. Clique na opo Adicionar Retorno no rodap da tela; 32. Clique na opo Consultar Campos, selecione a opo SA1->A1_COD, confirme o cadastro e clique na opo Finalizar; 33. Clique na opo Pesquisar, no Campo Procurar Por:, informe TST e confirme; 34. Assim que a Pesquisa for concluda, clique na opo Preview, para verificar como ficar a Consulta, quando for utilizada na prtica; 35. Cancele a Visualizao e saia do Mdulo de Faturamento, clicando na opo Sair. Obs.: Devido ao fato de j existir no arquivo uma Consulta, para o Cadastro de Clientes, tivemos que criar o Identificador desta consulta, utilizando a sigla TST apenas como sugesto, pois no podemos ter duas Consultas com o mesmo nome.

Anotaes:

SIGAADVPL Advanced Protheus - 49

Exerccio 51 Entendendo o que Aconteceu: 1. 2. 3. 4. 5. 6. 7. 8. 9. D um duplo clique no Atalho do Remote; No Campo Programa Inicial, informe APSDU e confirme Ser solicitado um Usurio (Administrador) e Senha (Em Branco); Selecione as seguintes opes File + Open; Selecione o Driver DBF(DBFCDXADS/DBFCDXAX); Clique na opo + da opo Servidor ao lado direito da caixa e posicione com o cursor sobre a pasta \Sigaadv\; Posicione com o cursor sobre o Arquivo SXB990.dbf, que se encontra ao lado direito da caixa; Selecione as seguintes opes Find + Seek; No Campo Expression, informe TST e confirme;

10. Assim que a Pesquisa for concluda, verifique o resultado e saia do Aplicativo.

Exerccio 52 Como Criar Campos no Sistema, para utilizao das Consultas Padro: 1. 2. 3. 4. 5. 6. Acesse o Mdulo Configurador; Selecione as seguintes opes Base de Dados + Dicionrio + Base de Dados; Ao lado esquerdo da tela, posicione com o cursor sobre a opo Dicionrio de Dados e clique na opo Pesquisar; No Campo de Pesquisas, informe SC4 e confirme; Posicionando com o cursor sobre a pasta Campos e na opo Editar, clique na opo Incluir; Na pasta Campo, informe os dados a seguir:
Campo: Tipo: Tamanho: Formato: Contexto: Propriedade: C4_CLIENTE 1=Caracter 6 @! 1=Real 1=Alterar

7.

Na pasta Informaes, informe os dados a seguir:


Ttulo: Descrio: Help: Cliente Cdigo do cliente Informe o cdigo do cliente

Anotaes:

50 - SIGAADVPL Advanced Protheus

8. 9. 11.

Na pasta Opes, informe os dados a seguir:


Cons. Padro: TST - Clientes

Na pasta Uso, marque as seguintes opes Usado e Browse; Confira os dados e confirme a Criao do Campo;

10. Na pasta Mdulos, deixe a opo Utilizado por todos os mdulos, marcada; 12. Clique na opo Atualizar base de dados, confirme o Processo de Atualizao, saia do Cadastro de Base de Dados e do Mdulo Configurador.

Exerccio 53 Como Testar Consultas Padro: 1. 2. 3. Acesse o Mdulo de Faturamento; Selecione as seguintes opes Atualizaes + Cenrios de Vendas + Previso de Vendas; Clique na opo Incluir, posicione com o cursor sobre o Campo Cliente e clique na opo ou pressione a tecla <F3>;

Obs.: Verifique que a Consulta Padro, para o arquivo de Cadastro de Clientes, est funcionando perfeitamente 4. Saia do Cadastro de Clientes e do Mdulo de Faturamento.

Exerccio 54 Como Criar Consultas Padro, para Arquivos Customizados: 1. 2. 3. 4. 5. Acesse o Mdulo Configurador; Selecione as seguintes opes Base de Dados + Dicionrio + Base de Dados; Posicione com o cursor sobre a opo Consultas Padro e clique na opo Incluir; Na caixa Tipo de Consulta, marque a opo Consulta Padro; Na caixa Informaes, informe os dados a seguir:
Consulta: Descrio: SZ1 Softwares

6. 7. 8.

Clique na opo Avanar; Na prxima tela, marque a opo Habilitar Incluso; No Browse, posicione com o cursor sobre o Arquivo SZ1 Cadastro de Softwares e clique na opo Avanar;

Anotaes:

SIGAADVPL Advanced Protheus - 51

9.

Na prxima tela, clique na opo Adicionar ndice, que se encontra abaixo da caixa ndices direita; Repita a operao, selecionando agora a Segunda Chave de ndice;

10. Posicione o cursor sobre a Primeira Chave de ndice e confirme; 11. 12. Posicione o cursor sobre a Primeira Linha e clique na opo Adicionar Colunas localizado ao lado direito da tela, na caixa Colunas, 13. No Campo Expresso, clique na opo Consultar Campos, selecione Campo Z1_CODIGO e confirme; 14. No Campo Descrio, clique na opo Consultar Ttulos, selecione o Ttulo Cdigo, confirme e confirme o cadastro tambm; 15. Clique novamente no boto Adicionar Colunas; 16. No Campo Expresso, clique na opo Consultar Campos, selecione o Campo Z1_NOME e confirme; 17. No Campo Descrio, clique na opo Consultar Ttulos, selecione o Ttulo Nome, confirme e confirme o cadastro tambm; 18. Voltando para a caixa ndices, ao lado esquerda da tela, posicione com o cursor sobre a Segunda Linha; 19. Clique na opo Adicionar Colunas, localizado ao lado direito da tela, na caixa Colunas, 20. No Campo Expresso, clique na opo Consultar Campos, selecione o Campo Z1_NOME e confirme; 21. No Campo Descrio, clique na opo Consultar Ttulos, selecione o Ttulo Nome, confirme e confirme o cadastro tambm; 22. Clique novamente no boto Adicionar Colunas; 23. No Campo Expresso, clique na opo Consultar Campos, selecione o Campo Z1_CODIGO e confirme; 24. No Campo Descrio, clique na opo Consultar Ttulos, selecione o Ttulo Cdigo, confirme e confirme o cadastro tambm; 25. Clique na opo Avanar; 26. Clique na opo Adicionar Retorno no rodap da tela; 27. Clique na opo Consultar Campos, selecione a opo SZ1->Z1_CODIGO, confirme o cadastro e clique na opo Finalizar; 28. Clique na opo Pesquisar, no Campo Procurar Por:, informe SZ1 e confirme; 29. Assim que a Pesquisa for concluda, clique na opo Preview, para verificar como ficar a consulta quando for utilizada na prtica. 30. Cancele a Visualizao e clique na opo Sair.

Anotaes:

52 - SIGAADVPL Advanced Protheus

Exerccio 55 Como Criar Campos no Sistema, para utilizao de Consultas Padro: 1. 2. 3. 4. 5. 6. 7. Acesse o Mdulo Configurador; Selecione as seguintes opes Base de Dados + Dicionrio + Base de Dados; Ao lado esquerdo da tela, posicione com o cursor sobre a opo Dicionrio de Dados e clique na opo Pesquisar; No Campo de Pesquisas, informe SZ2 e confirme; Posicionando o cursor sobre a pasta Editar, clique na opo Campos; Clique na opo Incluir; Na pasta Campo, informe os dados a seguir:
Campo: Tipo: Tamanho: Formato: Contexto: Propriedade: Z2_SOFT 1=Caracter 6 @! 1=Real 1=Alterar

8.

Na pasta Informaes, informe os dados a seguir:


Ttulo: Descrio: Help: Software Cdigo do software Informe o cdigo do software

9.

Na pasta Opes, informe os dados a seguir:


Cons. Padro: SZ1- Softwares

10. Na pasta Validaes, informe os dados a seguir:


Val. Usurio: VAZIO().OR.EXISTCPO("SZ1")

11.

Na pasta Uso, marque as seguintes opes Usado e Browse;

12. Na pasta Mdulos, deixe a opo Utilizado por todos os mdulos marcada; 13. Confira os dados e confirme a Criao do Campo; 14. Clique na opo Atualizar base de dados, confirme e saia do cadastro e do Mdulo Configurador.

Exerccio 56 Como Testar Consultas Padro: 1. 2. 3. Acesse o Mdulo de Faturamento; Selecione as seguintes opes Atualizaes + Cadastros + Exerc07; Clique na opo Incluir, posicione com o cursor sobre o Campo Software e clique na opo
Anotaes:

ou pressione a tecla <F3>;

SIGAADVPL Advanced Protheus - 53

Obs.: Verifique que a Consulta Padro, para o arquivo de Cadastro de Softwares, est configurada; 4. Aps realizar os Testes, saia do cadastro e do Mdulo de Faturamento.

O que voc aprendeu neste captulo


Neste captulo, voc aprendeu a configurar as Consultas Padro, para os Arquivos.

Prximo Passo
No prximo captulo, iremos aprender a criar Relatrios para os cadastros, verificaremos tambm, o Arquivo de Perguntas, para a Configurao dos Parmetros dos mesmos.

Anotaes:

54 - SIGAADVPL Advanced Protheus

RELATRIOS
O que voc ir aprender neste captulo
Neste captulo, aprenderemos a criar Relatrios Customizados.

Rotinas abordadas
Funes, para Relatrios: SetPrint(); SetDefault(); Pergunte(); SetRegua(); RptStatus(); IncRegua(). Criao de Relatrios Customizados; Criao de Relatrios com Relacionamento; Configurao do Arquivo de Perguntas e Respostas.

SetPrint()
Essa Funo a responsvel pela criao da tela do dispositivo de impresso dos relatrios, montando a interface com o usurio. Sintaxe: SetPrint(ExpC2, ExpC3, ExpC4, ExpC5, ExpC6, ExpC7, ExpC8, ExpL1, ExpA1, ExpL2, ExpC9). Parmetros: ExpC2 = Alias do Arquivo Principal (Se existir); ExpC3 = Nome Padro do Relatrio; ExpC4 = Nome do Grupo de Perguntas; ExpC5 .. ExpC8 = Descrio do Relatrio; ExpL1 = Habilita o Dicionrio de Dados: .T. => Habilita (S utilizar em conjunto com a Funo ImpCadast); .F. => Desabilita. ExpA1 = Array contendo as Ordens de Indexao do Arquivo Principal; ExpL2 = Habilita a Alterao da Compresso do Relatrio; .T. => Habilita;
Anotaes:

SIGAADVPL Advanced Protheus - 55

ExpC9

.F. => Desabilita. Classificao do Relatrio por Tamanho ( "G", "M" ou "P" ): P = 80 colunas; M = 132 colunas; G = 220 colunas.

SetDefault()
Esta Funo permite Habilitar os Padres definidos pela Funo Set Print(). Sintaxe: SetDefault(Array,Alias). Parmetros: Array = Array aReturn, preenchido pelo SetPrint; Array1 = Reservado para o Formulrio; Array2 = Reservado para N de Vias; Array3 = Destinatrio; Array4 = Formato (1Comprimido, 2Normal); Array5 = Mdia a ser Descarregada (1Comprimido, 2Normal); Array6 = Porta da Printer ou Arquivo (1LPT1, 4Com1); Array7 = Expresso ou Filtro de Dados; Array8 = Ordem a ser Selecionada; Array9 = 1 Campo a Processar; Array10 = 2 Campo a Processar; Array11 = 3 Campo a Processar; ArrayN = 4 Campo a Processar; Alias = Alias do Arquivo a ser Impresso.

Pergunte()
Esta Funo permite acessar e editar um Grupo de Perguntas de Programas, baseando-se no Arquivo de Perguntas e Respostas do Sistema (Sx1), conhecido tambm como Parmetros de Relatrios. Mostra uma tela contendo um Lote de Parmetros a serem respondidos e em seguida confirmados pelo usurio. Sintaxe: Pergunte(cPergunta,lAsk). Parmetros: cPergunta = Cdigo da Pergunta no SX1 conforme o Programa / Nome do Grupo de Perguntas;

Anotaes:

56 - SIGAADVPL Advanced Protheus

lAsk

Mostrar a Tela de Perguntas ou simplesmente carrega os Valores Default. .F. = Devolve Contedo da Variveis, no apresentando a Janela de Per guntas; .T. = Permite Alterao das Variveis apresentando a Janela.

SetRegua()
Inicializa a Rgua Padro, para acompanhar a Evoluo do Processamento dos Relatrios. Sintaxe: SetRegua(n1). Parmetros: <n1> = Numrico, Nmero de registros que sero processados.

RptStatus()
Executa a Funo de Detalhes do Relatrio, ou seja, a Impresso da Pgina propriamente dita. Sintaxe: RptStatus(b1). Parmetros: <b1> = Bloco de Cdigo que define a Funo a ser executada. Comentrios: Pode ser utilizada com o Parmetro: RptStatus( { | | ("Nome da Funo") } )

IncRegua()
Incrementa a Rgua Padro de Processamento em Relatrios, ou seja, a responsvel por sincronizar a Barra de Progresso de acordo com o nmero de registros selecionados para a impresso. Sintaxe: IncRegua(). Parmetros: Nil.

Relatrios
A Criao de Relatrios no Advanced Protheus muito facilitado pelo Assistente de Cdigo, porm sempre haver a necessidade de Complementos Adicionais, pois a ferrramenta cria apenas o Fonte Padro.

Anotaes:

SIGAADVPL Advanced Protheus - 57

Exerccio 57 Como Criar Relatrios, para Cadastro de Softwares, atravs do Assistente de Cdigo da Ferramenta IDE: 1. Acesse a Ferramenta IDE; 2. 3. 4. 5. 6. 7. 8. 9. 11. Selecione as seguintes opes Ferramentas + Assistente de Cdigo + Relatrio; Clique na opo Avanar>>; Selecione a opo Arquivo Padro; No Campo Alias, informe SZ1; Selecione a opo Utiliza ndice Padro; No Campo Ordem, informe 1 e clique na opo Avanar>>; No Campo Chave, informe RSZ1; Clique na opo "Avanar>>"; No Campo Cabec1, informe Cdigo Nome;

10. No Campo Ttulo, informe Relatrio de Softwares; 12. No Campo Cabec2, informe ------ ---------------; 13. Selecione a opo Normal; 14. No Campo Tamanho, selecione 80 Colunas; 15. Na pasta Ordem, posicione com o cursor sobre o Campo Ordem, informe Cdigo e clique na opo adicionar; 16. Na sequncia, informe tambm Nome e clique na opo adicionar; 17. Nas pastas Habilitaes, deixe tudo selecionado e clique na opo Finalizar.

Exerccio 58 Como realizar Alteraes necessrias nos Fontes: 1. Realize as Alteraes necessrias, seguindo o exemplo a seguir, de acordo com o Texto em Negrito: #Include rwmake.ch ***************************************************************************** * Programa | RPAD | Autor | Ferramenta IDE | Data | 99/99/99 ***************************************************************************** * Descrio | Cdigo gerado pelo Advanced Protheus7 IDE. *****************************************************************************

Anotaes:

58 - SIGAADVPL Advanced Protheus

User Function Exerc18 Private cString Local aOrd Private CbTxt Local cDesc1 Local cDesc2 Local cDesc3 Local cPict Private lEnd Private lAbortPrint Private limite Private tamanho Private nomeprog Private nTipo Private aReturn Private nLastKey Private cPerg Local titulo Local nLin Local Cabec1 Local Cabec2 Private cbtxt Private cbcont Private CONTFL Private m_pag Local imprime Private wnrel Private cString dbSelectArea(SZ1) dbSetOrder(1) pergunte(cPerg,.F.)
Anotaes:

:= := := := := := := := := := := := := := := := := := := := := := := := := :=

{} Este programa tem como objetivo imprimir relatrios de acordo com os parmetros informados pelo usurio. Cadastro de Software .F. .F. 80 P Exerc18 // Coloque aqui o Nome do Programa para impresso no cabealho 18 { Zebrado, 1, Administrao, 2, 2, 1, , 1} 0 RSZ1 // Nomo do Grupo de Perguntas Cadastro de Software 80 Codigo Nome Space(10) 00 01 01 .T. Exerc18 // Coloque aqui o Nome do Arquivo usado para impresso em disco. SZ1

SIGAADVPL Advanced Protheus - 59

***************************************************************************** * Monta a interface padro com o usurio... ***************************************************************************** wnrel If nLastKey == 27 Return Endif SetDefault(aReturn,cString) If nLastKey == 27 Return Endif nTipo := If(aReturn[4]==1,15,18) ***************************************************************************** * Processamento. RPTSTATUS monta janela com a rgua de processamento. ***************************************************************************** RptStatus({|| RunReport(Cabec1,Cabec2,Titulo,nLin) },Titulo) RETURN ***************************************************************************** * Funo | RUNREPORT | Autor | Advanced Protheusx IDE | Data | 99/99/99 ***************************************************************************** * Descrio | Funo auxiliar chamada pela RPTSTATUS. A funo RPTSTATUS * | monta a janela de processamento ***************************************************************************** Static Function RunReport(Cabec1,Cabec2,Titulo,nLin) Local nOrdem dbSelectArea(cString) dbSetOrder(1) ***************************************************************************** | * SETREGUA -> Indica quantos registros sero processados para a rgua ***************************************************************************** SetRegua(RecCount()) := SetPrint(cString,NomeProg,cPerg,@titulo,cDesc1, cDesc2,cDesc3,.T.,aOrd,.T.,Tamanho,,.T.)

Anotaes:

60 - SIGAADVPL Advanced Protheus

***************************************************************************** * Posicionamento do primeiro registro e loop principal. * Pode-se criar a lgica da seguinte maneira: * Posiciona-se na filial corrente e processa enquanto a filial do registro for a filial * corrente. * Por exemplo, substitua o dboTop() e o While !EOF() abaixo pela sintaxe: * dbSeek(xFilial(SA1)) * While !EOF() .And. xFilial(SA1) == A1_Filial ***************************************************************************** * O tratamento dos parmetros deve ser realizado dentro da lgica do seu relatrio. * Geralmente a chave principal e a filial (Isto vale principalmente se o arquivo for * um arquivo padro). Posiciona-se o primeiro registro pela filial + pela chave * secundria (cdigo por exemplo), e processa enquanto estes valores estiverem dentro * dos parmetros definidos. Suponha por exemplo o uso de dois parmetros: * mv_par01 -> Indica o cdigo inicial a processar * mv_par02 -> Indica o cdigo final a processar * dbSeek(xFilial(SA1)+mv_par01,.T.) // Posiciona no 1 reg. satisfatrio * While !EOF() .And. xFilial(SA1) == A1_Filial .And. A1_Cod <= mv_par02 * Assim o processamento ocorrer enquanto o cdigo do registro posicionado for * menor ou igual ao parmetro mv_par02, que indica o cdigo Limite * para o processamento. Caso existam outros parmetros a serem checados, isto * deve ser realizado dentro da estrutura de lao (WHILE): * mv_par01 -> Indica o cdigo inicial a processar * mv_par02 -> Indica o cdigo final a processar * mv_par03 -> Considera qual estado? * dbSeek(xFilial(SA1)+mv_par01,.T.) // Posiciona no 1 reg. satisfatrio * While !EOF() .And. xFilial(SA1) == A1_Filial .And. A1_Cod <= mv_par02 * * * * If A1_EST <> mv_par03 dbSkip() Loop Endif

*****************************************************************************

Anotaes:

SIGAADVPL Advanced Protheus - 61

dbGoTop() DBSEEK(xFilial(SZ1)+mv_par01,.T.) While !EOF() .and. SZ1->Z1_Codigo <= MV_Par02 ***************************************************************************** * Verifica o cancelamento pelo usurio... ***************************************************************************** If lAbortPrint @nLin,00 PSAY *** Cancelado pelo Operador *** Exit Endif ***************************************************************************** * Impresso do cabealho do relatrio. . . ***************************************************************************** If nLin > 55 // Salto de Pgina. Neste caso o formulrio tem 55 linhas... Cabec(Titulo,Cabec1,Cabec2,NomeProg,Tamanho,nTipo) nLin := 8 Endif * Coloque aqui a lgica da impresso do seu programa.Utilize PSAY para sada na impressora. Por exemplo:* @nLin,00 PSAY SA1->A1_Cod nLin := nLin + 1 // Avana a linha de impresso @ nLin, 01 Psay SZ1->Z1_Codigo @ nLin, 08 Psay SZ1->Z1_Nome dbSkip() // Avana o ponteiro do registro no arquivo Incregua() EndDo ***************************************************************************** * Finaliza a execucao do relatrio... ***************************************************************************** SET DEVICE TO SCREEN // Retorna para a Tela If aReturn[5]==1 dbCommitAll() // Se impresso em disco, chama o gerenciador de impresso...

Anotaes:

62 - SIGAADVPL Advanced Protheus

SET PRINTER TO OurSpool(wnrel) Endif MS_FLUSH() // Limpa o Buffer de Impresso Return 2. 3. 4. Confira os dados, salve o Programa com o nome de Exerc18; Adicione ao Projeto em uso e Compile-o. Adicione-o ao menu do Modulo Faturamento e teste.

Perguntas e Respostas
Todos os Relatrios existentes no Advanced Protheus necessitam de Perguntas, para imprimir corretamente os dados, ou seja, necessrio Configurarmos um Arquivo, para parametrizar o que desejamos imprimir. O Arquivo responsvel por essa Configurao o (Sx1) e ele servir tanto para as Perguntas e Respostas de Relatrios, quanto para as Rotinas de Processamentos.

Exerccio 59 Como Criar Perguntas: 1. 2. 3. 4. 5. Ainda no Mdulo Configurador; Selecione as seguintes opes Base de Dados + Dicionrio + Base de Dados; Posicione com o cursor sobre a opo Perguntas e clique na opo Incluir; No Campo Grupo, informe RSZ1; Nas Linhas Abaixo, crie as perguntas a seguir:
Ordem Pergunta Tipo Tamanho Decimal Objeto Consulta Padro (Edit) 01 De Cdigo? 1=Caracter 6 0 1=Edit SZ1 - Softwares 02 At Cdigo? 1=Caracter 6 0 1=Edit SZ1 - Softwares

6. 7. 8. 9.

Confira os dados e confirme a Criao das Perguntas; Clique na opo Pesquisar; No Campo Procurar por:, informe RSZ1 e confirme; Verifique se as Perguntas, foram includas corretamente no Arquivo;

10. Aps a verificao, saia do cadastro e do Mdulo Configurador.

Anotaes:

SIGAADVPL Advanced Protheus - 63

Exerccio 60 Entendendo o que Aconteceu: 1. 2. 3. 4. 5. 6. 7. 8. 9. D um duplo clique no Atalho do Remote; No Campo Programa Inicial, informe APSDU e confirme Ser solicitado um Usurio (Administrador) e Senha (Em Branco); Selecione as seguintes opes File + Open; Selecione o Driver DBF (DBFCDXADS/DBFCDXAX); Clique na opo + da opo Servidor ao lado direito da caixa e posicione com o cursor sobre a pasta \Sigaadv\; Posicione com o cursor sobre o Arquivo SX1990.dbf, que se encontra ao lado direito da caixa; Selecione as seguintes opes Find + Seek; No Campo Expression, informe RSZ1 e confirme;

10. Assim que a Pesquisa for concluda, verifique o Resultado e saia do Aplicativo.

Exerccio 61 Como Testar Relatrios: 1. 2. 3. 4. Acesse o Mdulo de Faturamento; Selecione as seguintes opes Relatrios + Cadastros + Exerc18; Na pasta Impresso, selecione a opo Em Disco; Clique na opo Parmetros ao lado direito da tela e defina a impresso dos registros, informando os dados a seguir:
De Cdigo?: At Cdigo?: 000001 000003 (F3 Disponvel) (F3 Disponvel)

5.

Confira os dados, confirme os Parmetros e a Emisso do Relatrio, para Verificao do Resultado.

Dica: Para anular a Impresso dos Parmetros dos Relatrios, acesse o Cadastro de Parmetros, no Mdulo Configurador e configure os Parmetros MV_IMPSX1, MV_SALTPAG e MV_CANSALT, com o Contedo igual a N, dessa maneira as Perguntas, no sero mais impressas e tambm no haver Saltos e tampouco emisso de Pginas em Branco.

Anotaes:

64 - SIGAADVPL Advanced Protheus

Exerccio 62 Como Criar Relatrios, para Cadastros de Usurios, com utilizao de Matriz, para Criao de Perguntas automaticamente: 1. Acesse a Ferramenta IDE; 2. 3. 4. 5. 6. 7. 8. 9. 11. Selecione as seguintes opes Ferramentas + Assistente de Cdigo + Relatrio; Clique na opo Avanar>>; Selecione a opo Arquivo Padro; No Campo Alias, informe SZ2; Selecione a opo Utiliza ndice Padro; No Campo Ordem, informe 1 e clique na opo Avanar>>; No Campo Chave, informe RSZ2; Clique na opo "Avanar>>"; No Campo Cabec1, informe Cdigo Nome;

10. No Campo Ttulo, informe Relatrio de Usurios; 12. NoCampo Cabec2, informe ------ ---------------; 13. Selecione a opo Normal; 14. No Campo Tamanho, selecione 80 Colunas; 15. Na pasta Ordem, posicione com o cursor no Campo Ordem, informe Cdigo e clique na opo adicionar; 16. Na sequncia, informe tambm o Nome e clique na opo adicionar; 17. Nas pastas Habilitaes, deixe tudo selecionado e clique na opo Finalizar.

Exerccio 63 Como realizar Alteraes necessrias nos Fontes e criar Funes, para a Criao de Perguntas automaticamente: 1. Realize as Alteraes necessrias, seguindo o exemplo do relatrio anterior; 2. Na seqncia, crie a seguinte Funo, logo abaixo da ltima Linha do fonte do relatrio: ***************************************************************************** * Funo | VALIDPERG | Autor | Ferramenta IDE | Data | 99/99/99 * Descrio | Verifica a existncia das perguntas criando-as caso seja necessrio * (caso no existam). *****************************************************************************
Anotaes:

SIGAADVPL Advanced Protheus - 65

* Uso

| Programa principal

***************************************************************************** Static Function ValidPerg Local _sAlias := Alias() Local aRegs := {} Local i,j dbSelectArea(SX1) dbSetOrder(1) cPerg := PADR(cPerg,6) //Grupo/Ordem/Pergunta/Variavel/Tipo/Tamanho/Decimal/Presel/GSC/Valid/Var01/ Def01/Cnt01/Var02/Def02/Cnt02/Var03/Def03/Cnt03/Var04/Def04/Cnt04/Var05/ Def05/Cnt05 aAdd(aRegs,{cPerg,01",DE,DE,DE,mv_ch1",C,6,0,0,G,, mv_par01",,,,,,,,,,,,,,}) aAdd(aRegs,{cPerg,02",ATE,ATE,ATE,mv_ch2",C,6,0,0,G,, mv_par02",,,,,,,,,,,,,,}) For i:=1 to Len(aRegs) If !dbSeek(cPerg+aRegs[i,2]) RecLock(SX1,.T.) For j:=1 to FCount() If j <= Len(aRegs[i]) FieldPut(j,aRegs[i,j]) Endif Next MsUnlock() Endif Next dbSelectArea(_sAlias) Return 3. Insira a Chamada da Funo no programa, aps a Linha 55, antes da Chamada da Funo Pergunte(cPerg,.F.), como no exemplo a seguir: dbSelectArea("SZ1") dbSetOrder(1)
Anotaes:

66 - SIGAADVPL Advanced Protheus

ValidPerg() pergunte(cPerg,.F.) 4. Confira os dados, salve o Programa, com o nome de Exerc19, adicione ao Projeto e Compile-o e teste.

Exerccio 64 Como Criar Relatrios com Relacionamento entre Arquivos: 1. 2. 3. 4. 5. 6. 7. 8. 9. 11. Acesse a Ferramenta IDE; Selecione as seguintes opes Ferramentas + Assistente de Cdigo + Relatrio; Clique na opo Avanar>>; Selecione a opo Arquivo Padro; No Campo Alias, informe SB1; Selecione a opo Utiliza ndice Padro; No Campo Ordem, informe 1 e clique na opo Avanar>>; No Campo Chave, informe RSB1; Clique na opo "Avanar>>"; No Campo Cabec1, informe Cdigo Descrio Vlr. Previso;

10. No Campo Ttulo, informe Relatrio de Produtos x Previso; 12. No Campo Cabec2 informe --------------- ------------------------------ --------------; 13. Selecione a opo Normal; 14. No Campo Tamanho, selecione 80 Colunas; 15. Na pasta Ordem, posicione com o cursor sobre o Campo Ordem, informe Cdigo e clique na opo adicionar; 16. Nas pastas Habilitaes, deixe tudo selecionado e clique na opo Finalizar.

Exerccio 65 Como realizar Alteraes necessrias nos Programas: 1. 2. Realize as Alteraes necessrias, seguindo o exemplo do relatrio anterior, utilizando tambm a Funo Validperg(); Imprima os seguintes registros, como no exemplo a seguir: @nLin,01 Psay SB1->B1_COD @nLin,17 Psay SB1->B1_DESC @nLin,50 Psay Posicione("SC4",1,Xfilial("SC4")+SB1->B1_COD,"C4_VALOR")

Anotaes:

SIGAADVPL Advanced Protheus - 67

3.

Confira os dados, salve o Programa, com o nome de Exerc20, adicione ao Projeto em uso e Compile-o.

Dica: A Funo Posicione() responsvel pelo relacionamento entre os arquivos.

Exerccio 66 Como cadastrar Produtos, para verificar Relacionamentos: 1. 2. 3. Acesse o Mdulo de Faturamento; Selecione as seguintes opes Atualizao + Cadastros + Produtos; Clique na opo Incluir e informe os dados a seguir:
Cdigo: Descrio: Tipo: Unidade: Armazm Pad: Cdigo: Descrio: Tipo: Unidade: Armazm Pad: 100.100-01 CANETA AZUL MC PC 01 100.200-01 CANETA VERMELHA MC PC 01

4.

Confira os dados, confirme e saia do cadastro de Produtos.

Exerccio 67 Como cadastrar Previses de Vendas, para verificar Relacionamentos: 1. 2. Selecione as seguintes opes Atualizao + Cenrios de Venda + Previso de Vendas; Clique na opo Incluir e informe os dados a seguir:
Produto: Almoxarifado: Quantidade: Valor: Produto: Almoxarifado: Quantidade: Valor: 100.100-01 1 1,00 5,00 100.200-01 1 1,00 10.00

3. 4.

Confira os dados, confirme e saia do cadastro de Previses de Vendas. Teste o relatrio com os relacionamentos criados.

Anotaes:

68 - SIGAADVPL Advanced Protheus

O que voc aprendeu neste captulo


Neste captulo, voc aprendeu a criar Relatrios Personalizados com a utilizao de um ou mais Arquivos Relacionados, atravs de Funes da prpria linguagem.

Prximo Passo
No prximo captulo, iremos relembrar tudo que vimos at o momento, atravs de exerccios prticos e rotinas utilizadas no dia a dia em customizaes.

Anotaes:

SIGAADVPL Advanced Protheus - 69

EXERCCIOS
O que voc ir aprender neste captulo
Neste captulo, iremos relembrar tudo que vimos at o momento atravs de Exerccios de Fixao. Estes Exerccios abrangem todos os tpicos analisados at o momento e visam fixar os exemplos propostos em curso.

Rotinas abordadas
Criao de Arquivos Customizados; Configurao e Validao de Campos; Criao de ndices; Funes, para Cadastros; Configurao de Consultas Padro; Criao de Relatrios; Configurao do Arquivo de Perguntas e Respostas.

Exerccio 68 Exerccios Complementares (1): Desenvolva uma Customizao, que dever ser implementada no menu do Mdulo de Faturamento, utilizando a Funo AxCadastro() de acordo com as seguintes necessidades: Um Cadastro de Visitantes (SZ5), o nome do programa dever ser Exerc21, que possua as principais informaes sobre os mesmos, sendo que: O Cdigo do Cadastro, dever ser gerado automaticamente; Dever existir um Campo, para informar a qual Setor o mesmo pertence (Dever ser criada uma Lista de Opes), como por exemplo: 1=Administrao; 2=Comercial; 3=Industrial; A Pesquisa do Cadastro, dever disponibilizar a Consulta por Cdigo e Nome; O Nome do Visitante e da Empresa, devero ser de Preenchimento Obrigatrio; Um Relatrio para emitir os dados, como por exemplo: Cdigo, Nome e Empresa. O nome do relatrio dever ser Exerc21r.

1.

Anotaes:

70 - SIGAADVPL Advanced Protheus

Exemplo de Estrutura:
Campo Z5_CODIGO Z5_NOME Z5_EMPRESA Z5_SETOR Z5_CARGO Z5_RAMAL Tipo Caracter Caracter Caracter Caracter Caracter Caracter Tamanho 6 15 15 1 10 4 Ttulo Codigo Nome Empresa Setor Cargo Ramal

2.

Desenvolva um Cadastro de Controle de Visitantes (SZ6), o nome do programa dever ser Exerc22, para controlar as pessoas que esto tendo acesso a empresa sendo que: O Cdigo do Cadastro, dever ser gerado automaticamente; Um Campo, para identificar o Status do Visitante, dentro da empresa (Atravs de uma Lista de Opes), como por exemplo: E=Entrada; S=Sada; Dever existir um Campo, para controlar o Motivo da Visita (Atravs de uma Lista de Opes), como por exemplo: 1=Pessoal; 2=Profissional; A Pesquisa do Cadastro, dever disponibilizar a consulta por Cdigo, Nome e Data de Entrada; Dever existir um Campo, para gravar o Nome do Operador do sistema, o mesmo dever ser preenchido automaticamente. Dever existir um Campo relacionado a uma Consulta Padro, para acessar o Cadastro de Visitantes, essa consulta dever possuir no Browse os campos Cdigo, Nome e Setor, disponveis para Visualizao; Criao de Campos, para controlar a Hora, Data de Entrada e Sada, sendo que os Dados de Entrada, devero ser preenchidos automaticamente pelo sistema; Um Relatrio, para emitir os dados, como por exemplo: Cdigo, Operador, Cdigo do Visitante, Data de Entrada, Data de Sada e Motivo da Visita. O nome do relatrio dever ser Exerc22r. Exemplo da Estrutura:
Campo Z6_CODIGO Z6_OPER Z6_VISIT Z6_DTENT Z6_HRENT Z6_DTSAIDA Z6_HRSAIDA Z6_MOTIVO Z6_STATUS Tipo Caracter Caracter Caracter Data Caracter Data Caracter Caracter Caracter Tamanho 6 15 6 8 5 8 5 1 1 Ttulo Cdigo Operador Visitante Dt. Entrada Hr. Entrada Dt. Sada Hr. Sada Motivo Status

3.

Assim que toda a Customizao estiver encerrada, acesse o Mdulo de Faturamento e realize os respectivos Testes.

Anotaes:

SIGAADVPL Advanced Protheus - 71

Exerccio 69 Exerccios complementares (2): Desenvolva uma Customizao, que dever ser implementada no menu do Mdulo de Faturamento, utilizando a Funo Mbrowse() de acordo com as seguintes necessidades: Um Cadastro de Usurios (SZ7), o Nome do Programa, dever ser Exerc23; Apenas o Administrador, dever ter acesso ao mesmo. Um Cadastro de Controle, para Chamados Tcnicos (SZ8), o nome do programa dever ser Exerc24; Esse Cadastro, dever controlar os Chamados Tcnicos, realizados pelos Usurios; Cada Usurio, poder visualizar apenas os seus Chamados cadastrados e o Administrador poder Visualizar Todos, fim de controlar os Chamados Atendidos e Solucionados; O campo destinado para a Soluo do Problema, poder ser preenchido apenas pelo Administrador, porm o campo dever estar disponvel a todos os Usurios, para Visualizao; Os Registros, devero conter uma Legenda ao lado, informando se o Chamado foi Atendido (Vermelho) ou No (Verde), dever exisitir tambm um boto para informar o significado de cada cor na legenda; Caso o Chamado j tenha sido atendido e o campo destinado a Descrever a Soluo esteja preenchido, a Excluso do Registro, no poder ser Concluda; Criar um Relatrio, para o Cadastro de Chamados Tcnicos, sendo que a opo para impresso, dever estar disponvel na tela de cadastro, atravs de um boto, o nome do programa dever ser Exerc24r. Devero ser impressos apenas os seguintes campos: Cdigo do Chamado, Nome do Usurio, Setor, Data do Chamado, Data da Soluo, Problema e a Soluo. Assim que toda a Customizao estiver encerrada, acesse o Mdulo Configurador e cadastre mais um Usurio, para que seja possvel executarmos todos os Testes.

1. 2.

3.

Obs.: Os Arquivos, Campos e Programas, para a realizao do exerccio acima j se encontram na base de dados, sendo necessrio apenas a Compilao e Anlise dos mesmos.

Anotaes:

72 - SIGAADVPL Advanced Protheus

O que voc aprendeu neste captulo


Neste captulo realizamos alguns Exerccios Complementares, recapitulando tudo que vimos at o momento, utilizando alguns exemplos prticos.

Prximo Passo
Neste captulo aprenderemos como devero ser criados os Pontos de Entradas e a implementao dos mesmos, junto as rotinas padres do sistema.

Anotaes:

SIGAADVPL Advanced Protheus - 73

PONTOS DE ENTRADAS
O que voc ir aprender neste captulo
Neste captulo, aprenderemos a criar e implementar Pontos de Entradas, junto as rotinas padres do sistemas.

Rotinas Abordadas
Ferramentas de Auxlio na implementao de Pontos de Entradas (Quark); Criao de Pontos de Entradas; Implementao de Pontos de Entradas, junto as rotinas padres.

Pontos de Entrada
O conceito utilizado para a Criao de um Ponto de Entrada o mesmo da herana adotado nas linguagens para Banco de Dados, ou seja, (Store Procedures). So chamadas de Programas colocadas em pontos estratgicos nas funes padres do sistema e que originalmente no fazem nada. Assim que o desenvolvedor identificar a necessidade de uma interveno nestes pontos, basta criar a rotina, dar a ela o nome especfico citado na documentao do Advanced Protheus e compil-la. No momento em que a Rotina Padro for disparada e passar pela customizao do Ponto de Entrada, o mesmo tambm ser executado. Podemos dizer que esta a maneira mais prtica de interveno aos Programas Padres do sistema sem a necessidade de alterao dos mesmos, fazendo com que estas implementaes passem despercebidas pelo usurio no momento de sua execuo. Porm necessrio que saibamos muito bem sobre a Lgica do Programa em questo e at mesmo qual a situao de memria utilizada naquele momento.

Exerccio 70 Como Identificar os Nomes dos Pontos de Entradas: 1. 2. Desenvolva um Ponto de Entrada, para o Cadastro de Clientes, sendo que o mesmo dispare uma Mensagem Padro, aps a Confirmao do Cadastro. Atravs de um Editor de Textos, edite o menu do Mdulo de Faturamento e anote o Nome da Funo, utilizada para o Cadastro de Clientes; Na seqncia, execute a Ferramenta Quark.exe, que se encontra na pasta AP7\Rdmake\Quark;

Anotaes:

74 - SIGAADVPL Advanced Protheus

3.

Acesse a opo Pontos de Entrada, pressione as teclas <Alt> + P, selecione a opo Pesquisar por Programa e informe o Nome do Programa, responsvel pelo Cadastro de Clientes; Assim que o sistema posicionar sobre os Pontos de Entrada, disponveis para essa rotina, anote o Nome do Responsvel, pela execuo aps a Incluso do Cliente e saia da Ferramenta Quark.

4.

Obs.: A Ferramenta Quark, utilizada em curso de uso interno da MICROSIGA e pelo suporte externo, para a utilizao deste recurso ser necessrio acessar o site que contm todas as informaes disponibilizadas para clientes e apoio Consultorias no seguinte endereo: WWW.MICROSIGA.COM.BR, acessando o link Utilidades + Quark; importante lembrar que para acess-lo necessrio o uso do SenhaP.

Exerccio 71 Como Criar Pontos de Entrada: 1. 2. Acesse a Ferramenta IDE; Crie o seguinte Programa: #Include "Rwmake.ch" User Function m030inc() MsgBox("O Cliente foi cadastrado com sucesso!") Return 3. 4. Confira os dados e salve o Programa na pasta Rdmake com o mesmo nome dado a Funo, para que fique fcil a sua identificao posteriormente; Compile o Programa e saia da Ferramenta IDE.

Exerccio 72 Como Testar Pontos de Entrada: 1. 2. 3. Acesse o Mdulo de Faturamento; Selecione as seguintes opes Atualizao + Cadastros + Clientes; Clique na opo Incluir e informe os dados a seguir:
Cdigo: Loja: Nome: N Fantasia: Tipo: Endereo: Municpio: Estado:
Anotaes:

000002 01 Cliente 02 Cliente 02 R=Revendedor Avenida Braz Leme, 1399 So Paulo SP

SIGAADVPL Advanced Protheus - 75

4. 5.

Confira os dados, confirme o cadastro de Clientes e verifique que neste momento o Ponto de Entrada ser disparado, trazendo a mensagem definida no programa; Cancele o prximo cadastro e saia do Mdulo de Faturamento.

Exerccio 73 Como criar outro Ponto de Entrada: Desenvolva um Ponto de Entrada, para o Cadastro de Clientes, sendo que o mesmo dispare uma Mensagem Padro, aps a Excluso de um registro no Cadastro de Clientes. Execute os procedimentos utilizados no exerccio anterior, para identificar o Nome do Ponto de Entrada, que se enquadra nesta customizao; Na seqncia, acesse a Ferramenta IDE e crie o seguinte programa: #Include "Rwmake.ch" User Function m030exc() MsgBox("O Cliente foi excluido com sucesso!") Return 3. 4. Confira os dados, salve o programa na pasta Rdmake, com o mesmo nome dado a Funo, para que fique fcil a sua identificao posteriormente; Compile o Programa e saia da Ferramenta IDE.

1. 2.

Exerccio 74 Como Testar Pontos de Entradas: 1. 2. 3. Acesse o Mdulo de Faturamento; Selecione as seguintes opes Atualizao + Cadastros + Clientes; Posicione com o cursor sobre o Cliente 000002, clique na opo Excluir e verifique que neste momento o Ponto de Entrada ser disparado, trazendo a mensagem definida no programa; Confira os dados e abandone o Mdulo de Faturamento.

4.

Exerccio 75 Como Criar outro Ponto de Entrada: Desenvolva um Ponto de Entrada para o Cadastro de Produtos, sendo que no momento da Confirmao do Cadastro, a rotina dispare uma Atualizao dos Dados, para o Cadastro de Complementos de Produtos. Execute os procedimentos utilizados no exerccio anterior, para identificar o Nome do Ponto de Entrada, que se enquadra nesta customizao;

1.

Anotaes:

76 - SIGAADVPL Advanced Protheus

2.

Na seqncia, acesse a Ferramenta IDE e crie o programa a seguir: #Include "Rwmake.ch" User Function mt010inc() Local aArea := GetArea() If MsgBox("Confirma a Gerao do Complemento",Complemento de Produtos",; "YESNO") DbSelectArea("SB5") If RecLock("SB5",.T.) SB5->B5_FILIAL := SB1->B1_FILIAL SB5->B5_COD Else MsgAlert("No foi possivel travar o registro!") EndIf MsUnLock("SB5") := SB1->B1_COD SB5->B5_CEME := SB1->B1_DESC

EndIf RestArea(aArea) Return 3. 4. Confira os dados, salve o programa na pasta Rdmake, com o mesmo nome dado a Funo, para que fique fcil a sua identificao posteriormente; Compile o Programa e saia da Ferramenta IDE.

Exerccio 76 Como Testar o Ponto de Entrada: 1. 2. 3. Acesse o Mdulo de Faturamento; Selecione as seguintes opes Atualizao + Cadastros + Produtos; Clique na opo Incluir e informe os dados a seguir:
Cdigo: Descrio: Tipo: Unidade: Armazm Pad.: 000003 PRODUTO 3 PA CX 01

4.

Confira os dados, confirme o cadastro de Produtos e verifique que neste momento o Ponto de Entrada ser disparado, trazendo a mensagem definida no programa;

Anotaes:

SIGAADVPL Advanced Protheus - 77

5.

Na seqncia, saia do Cadastro de Produtos, acesse a opo Complem. Produtos e verifique que os Dados do Produto cadastrado anteriormente, foram atualizados tambm neste outro arquivo; Saia do Cadastro de Complemento de Produtos e do Mdulo de Faturamento.

6.

O que voc aprendeu neste captulo


Neste captulo aprendemos a consultar, criar e utilizar os Pontos de Entrada, disponveis para Customizaes, onde haja a necessidade de interveno junto a Funes Padres do sistema.

Prximo Passo
No prximo captulo aprenderemos como Criar Funes, para rotinas de processamento.

Anotaes:

78 - SIGAADVPL Advanced Protheus

PROCESSAMENTO
O que voc ir aprender neste captulo
Neste captulo, aprenderemos a criar rotinas de Interface com processamentos.

Rotinas Abordadas
Funes para Processamentos: Processa().

Processa()
Esta Funo utilizada para criar uma Barra de Progresso, durante a execuo de rotinas de processamento. Descrio: Executa Funo de Processamento. Sintaxe: Processa(b1). Parmetros: <b1> = Bloco de Cdigos, que define a Funo a ser executada.

Exerccio 77 Como Criar Funes, para Processamento: 1. 2. 3. Crie uma Funo de Processamento, que seja executada durante a contagem do Nmero de Registros, existentes no Arquivo SX3. Acesse a Ferramenta IDE; Adicione o Programa Exerc25, que j se encontra na Pasta Rdmake ao Projeto; Confira os dados e compile o Programa.

14. Adicione-o ao menu do Modulo Faturamento e teste.

Anotaes:

SIGAADVPL Advanced Protheus - 79

O que voc aprendeu neste captulo


Neste captulo aprendemos a criar Rotinas de Interface, para serem utilizadas junto a Funes de Processamentos.

Prximo Passo
No prximo captulo aprenderemos como utilizar os recursos do Utilitrio, para Desenhos de Interfaces.

Anotaes:

80 - SIGAADVPL Advanced Protheus

DESENHOS DE INTERFACES
O que voc ir aprender neste captulo
Neste captulo, aprenderemos como utilizar os recursos de Desenhos de Interfaces, utilizado para facilitar as telas de Entradas de Dados, que trabalham com Objetos (Botes) e Dilogos (Forms).

Rotinas Abordadas
Desenhos de Interfaces, com utilizao de Objetos e Forms;

Desenhos de Interfaces
Esta Ferramenta foi criada com a finalidade de facilitar o Desenvolvimento de Telas, para Entradas de Dados que utilizem Dilogos, Forms e Objetos, dispensando assim a necessidade de customizlas manualmente atravs de Fontes Estruturados.

Exerccio 78 Como utilizar o Desenhador de Interfaces (1): Crie uma Tela de Dilogo, que utilize dois botes, quando o Boto Ok for confirmado, dever ser exibido o Cadastro de Produtos e o Boto Cancelar, dever Encerrar o Programa. Selecione as seguintes opes Arquivo + Novo Dilogo; Na Barra de Objetos Bsicos, clique duas vezes sobre o Boto Ok;

1. 2.

Obs.: Observe que os Botes, foram inseridos na Tela de Dilogo; 3. Alinhe os Dois Botes, lateralmente na Tela de Dilogo e posicione com o cursor sobre o Boto, denominado oSBtn2; 4. Agora, no Editor de Propriedades, na Pasta Propriedades, clique no Campo nType, informe 2, pressione a tecla <Enter> e observe que o Desenho do Boto, ser alterado; Ainda posicionado com o cursor sobre o Boto oSBtn2, clique na Pasta Eventos, do Editor de Propriedades, no Campo bAction, informe oDlg:End() e pressione a tecla <Enter>;

5.

Anotaes:

SIGAADVPL Advanced Protheus - 81

6.

Posicione com o cursor sobre o Boto oSBtn1, clique na Pasta Eventos, do Editor de Propriedades, no Campo bAction, informe Mata010() e pressione a tecla <Enter>; Posicione o cursor na Tela de Dilogo, clique com o boto direito do mouse e selecione a opo Gerar Cdigo; Ser gerado automaticamente o Cdigo-Fonte da nossa Tela de Dilogo; Clique sobre o Dilogo, no Editor de Propriedades, na pasta Propriedades, selecione o Campo ICentered, altere para .T. e pressione a tecla <Enter>, para Centralizar a Tela de Dilogo, no momento de sua Execuo; User Function Exerc26

7. 8. 9.

10. Altere o nome da funo para; 11. Selecione as seguintes opes Arquivo + Salvar e salve o programa na pasta Rdmake, localizada do Diretrio Raiz do Advanced Protheus, com o nome de Exerc26.prw; Em seguida, salve tambm o Fonte do Desenho do Dilogo, com o nome de Exerc26.prv;

11.

12. Adicione o programa Exerc26.prw ao Projeto em Uso e Compile-o. 13. Adicione-o ao menu do Modulo Faturamento e teste. Dicas: Sempre que criarmos um programa pelo Desenhador de Telas, nunca deveremos esquecer de salvar os dois Fontes gerados, ou seja, o Prw e o Prv. O segundo Fonte, trata o Desenho da Tela, sendo assim, sempre que se fizer necessrio a Manuteno dos Objetos, basta abrir o Arquivo de Tela e nele alterar ou inserir Novos Objetos e em seguida, gerar outro Programa, que dever substituir o anterior que foi compilado.

Exerccio 79 Como utilizar o Desenhador de Interfaces (2): Crie uma Tela de Dilogo, que utilize dois botes, quando o Boto Ok for confirmado, dever ser executada a Funo Exerc25 e o Boto Cancelar dever Encerrar o Programa. Selecione as seguintes opes Arquivo + Novo Dilogo; Na Barra de Objetos Bsicos, clique duas vezes sobre o Boto Ok; Observe que os Botes, foram inseridos na Tela de Dilogo; Alinhe os Dois Botes, lateralmente na Tela de Dilogo e posicione com o cursor sobre o Boto oSBtn2;

1. 2. 3. 4.

Anotaes:

82 - SIGAADVPL Advanced Protheus

5.

No Editor de Propriedades, na pasta Propriedades, clique no Campo nType, informe 2, pressione a tecla <Enter> e observe que o Desenho do Boto, ser alterado; Ainda posicionado com o cursor sobre o Boto oSBtn2, clique na pasta Eventos, do Editor de Propriedades, no Campo bAction, informe oDlg:End() e pressione a tecla <Enter>; Posicione com o cursor sobre o Boto oSBtn1, clique na pasta Eventos, do Editor de Propriedades, no Campo bAction, informe u_Exerc25() e pressione a tecla <Enter>; Posicione o cursor na Tela de Dilogo, clique com o boto direito do mouse e selecione a opo Gerar Cdigo;

6.

7.

8.

Obs.: Ser gerado automaticamente o Cdigo-Fonte, da Tela de Dilogo; 9. Clique sobre o Dilogo, no Editor de Propriedades, na pasta Propriedades, selecione o Campo ICentered, altere para .T. e pressione a tecla <Enter>, para Centralizar a Tela de Dilogo, no momento de sua Execuo; 10. Altere o nome da funo para; User Function Exerc27 11. Selecione as seguintes opes Arquivo + Salvar e salve o programa na pasta Rdmake, localizada do Diretrio Raiz do Advanced Protheus, com o nome de Exerc27.prw;

12. Salve tambm o Fonte do Desenho do Dilogo, com o nome de Exerc27.prv; 13. Adicione o programa Exerc27.prw ao Projeto em Uso e Compile-o; 14. Adicione-o ao menu do Modulo Faturamento e teste.

Exerccio 80 Como utilizar o Desenhador de Interfaces (3): 1. 2. 3. 4. Acesse a Ferramenta IDE; Selecione as seguintes opes Arquivo + Abrir; Selecione a pasta Rdmake, no Campo Arquivos do tipo, selecione a opo Arquivos de Cdigo Visual(*.PRV); Abra o Programa Exerc28, adicione-o ao Projeto em uso, clicando sobre o Fonte, com o boto direito do mouse, arrastando-o at o Projeto, logo abaixo e Compile-o.

Anotaes:

SIGAADVPL Advanced Protheus - 83

Dica: A nica maneira de inserirmos um Fonte de Tela ao Projeto em uso seguindo o exemplo acima, pois se tentarmos inser-lo da maneira convencional, o mesmo no ser vlido para o Compilador.

Exerccio 81 Como Testar o Dilogo: 1. 2. 3. 4. Na Barra de Ferramentas, ao lado direito da tela, informe o Nome da Funo Compilada, neste caso u_Exerc28; Selecione as seguintes opes Executar + Executar; Verifique e analise o Resultado do exerccio, clicando sobre os botes existentes na Caixa de Dilogo; Na seqncia, cancele a operao, clicando na opo Cancelar.

Exerccio 82 Como utilizar o Desenhador de Interfaces (4): 1. 2. 3. 4. 5. Acesse a Ferramenta IDE; Selecione as seguintes opes Arquivo + Abrir; Selecione a Pasta Rdmake; No Campo Arquivos do Tipo, selecione a opo Arquivos de Cdigo Visual(*.PRV); Abra o Programa Exerc29, adicione-o ao Projeto em uso, clicando sobre o Fonte, com o boto direito do mouse, arrastando-o at o Projeto logo abaixo e Compile-o.

Exerccio 83 Como Testar o Dilogo: 1. 2. 3. 4. Na Barra de Ferramentas, ao lado direito da tela, informe o Nome da Funo compilada, neste caso u_Exerc29; Selecione as seguintes opes Executar + Executar; Verifique e analise o Resultado do exerccio, digitando os Valores, para as Notas 1 e 2, confirmando na sequncia; Aps o Teste, cancele a operao.

Anotaes:

84 - SIGAADVPL Advanced Protheus

Exerccio 84 Como utilizar o Desenhador de Interfaces (5): 1. 2. 3. 4. 5. 6. Acesse a Ferramenta IDE; Selecione as seguintes opes Arquivo + Abrir; Selecione a pasta Rdmake; No Campo Arquivos do tipo, selecione a opo Arquivos de Cdigo Visual (*.PRV); Abra o Programa Exerc30; Adicione-o ao Projeto em uso, clicando sobre o fonte com o boto direito do mouse, arrastando-o at o Projeto logo abaixo e Compile-o.

Exerccio 85 Como Testar o Dilogo: 1. 2. 3. 4. Na Barra de Ferramentas, ao lado direito da tela, informe o Nome da Funo compilada, neste caso u_Exerc30; Selecione as seguintes opes Executar + Executar; Verifique e analise o Resultado do Exerccio, seguindo as orientaes do programa; Aps o Teste, cancele a operao.

O que voc aprendeu neste captulo


Neste captulo, aprendemos a utilizar os recursos do utilitrio, para Desenhos de Interface, criando Telas de Dilogo, com exemplos variados.

Prximo Passo
Esperamos que voc tenha conhecido e aprendido melhor sobre os principais recursos da Linguagem de Programao ADVPL. Mantenha esta apostila como roteiro para seu trabalho dirio. Se tiver alguma sugesto para melhoria do nosso material, utilize o nosso e-mail: microsigaeducacao@microsiga.com.br. Teremos satisfao em receb-la e analisaremos a viabilidade de aplic-la ao nosso material. Agora, o prximo passo : Aplicar o contedo apresentado rotina de trabalho de sua empresa!

Anotaes:

SIGAADVPL Advanced Protheus - 85

Nmero do Registro: 7100110030910 - APL


Anotaes:

86 - SIGAADVPL Advanced Protheus

Vous aimerez peut-être aussi