Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
1. INTRODUO
O objetivo desse tutorial mostrar de forma simples alguns comandos em ADVPL
(linguagem utilizada pelos sistemas da Dadalto). O tutorial ainda est em fase de
desenvolvimento, assim sendo pode haver alguns erros ou coisas incompletas.
O ADVPL roda em cima de uma plataforma que possui varias coisas prontas, como
botes, telas, controle de mensagens, acesso ao banco de dados, controle de usurio, entre
outras coisas... Mostraremos algumas dessas funcionalidades aqui.
2. ADVERTNCIAS
As variveis no necessitam ser tipadas, sendo assim a Microsiga aconselha o uso de
caracteres identificando qual o tipo da varivel.
n para tipo numrico (isso mesmo, no existe diferena entre int, float, Double,
real,...);
c para char ou string;
b para boolean;
d para datas;
a para arrays;
o para objeto;
3. COMO UTILIZAR
1) V a pasta \\joaquim\Desenvolvimento\ADVPL e descompacte o arquivo
remotePromov.rar em qualquer local da maquina (sugiro em C:\Protheus);
2) Abra o executvel mp8ide.exe, esse ser seu ambiente de desenvolvimento;
3) Crie um projeto e um novo arquivo, voc deve associar esse os arquivos ao seu
projeto, ento basta abrir o gerenciador de projetos (Shift + Ctrl + G), crie uma pasta
no seu projeto (basta clicar com o boto direito em cima do seu projeto e aparecer
a opo) e clique com o boto direto do mouse em cima do seu arquivo e o arraste
para a pasta que voc acabou de criar, dessa forma quando voc compilar seu
projetos, seus arquivos tambm sero compilados;
4) Com os arquivos adicionados basta compilar o projeto (Ctrl + Alt + F9), caso
aparea um pedido de login e senha estes so: MICROSIG (login) e MICROSIG
(senha);
5) Para executar basta colocar o nome da funo que voc deseja executar no textbox
no cabealho do programa MP8 IDE, e apertar F5;
6) Para debugar basta apertar F9 na linha desejada, e para visualizar o valor de uma
varivel voc deve arrast-la com o boto direto do mouse para a rea de texto da
aba Comando (fica no mesmo menu que a aba Gerenciador de Projeto, para
visualizar a aba toda basta apertar F2)
4. CLASSE
5. WEBSERVICE
A. SERVIDOR
Para criar um WebService no lado servidor, bata criar uma struct (linha 5 a
9) onde ser o objeto que carregar as informaes que sero utilizadas nos
seus mtodos.
Da mesma forma que voc cria a classe, voc criar um objeto
WSService onde este possuir as variveis e o mtodos(linha 12 a 16).
Depois da declarao basta voc desenvolver os mtodos, lembrando
que o WSMethod deve sempre retornar .T. e o verdadeiro retorno da funo na
verdade uma varivel do WSService e esta est declarada na chamada do
WSMethod como WSEnd (linha 18).
B. Cliente
Para consumirmos um WebService, basta seguir as seguintes instrues:
1) Crie um novo arquivo;
2) Associe-o ao projeto;
3) V em Ferramentas->Gerar Cliente WebServices;
4) Na caixa de dialogo que aparecer ponha o endereo do WSDL do
WebService que voc deseja consumir (Ex:
http://tifdsv15.dacasa.com.br/wscaixa/Caixa.asmx?wsdl);
5) Clique em ok e os mtodos estaro dispostos;
C. Consumindo um WebService
A. Select
Method VerificaLancamento( NrLancamento ) Class Lancamento
dbSelectArea("PBK")
PBK->(dbSetOrder(3)) //PBK_NRLANC+PBK_DTLANC
Return PBK->( dbSeek( StrZero(NrLancamento,10) ) )
Essa funo verifica se existe certo lanamento.
Linha 1: Ele seleciona a tabela PBK
Linha 2: Seta o indice, como ele ir buscar, primeiro pelo numero do
lanamento deepois pela data de lanamento.
Linha 3: Vai para linha onde o Nmero do lanamento igual ao
NrLancamento, retorna verdadeiro ou falso(dbSeek).
B. Insert
Method InsereLancamento() Class Lancamento //Metodo privado.
Reclock("PBK",.T.)
PBK->PBK_FILIAL:= xFilial("PBK")
PBK->PBK_USUCOD := ::CdCaixa
PBK->PBK_USUNOM := ::NmCaixa
PBK->PBK_NRLANC := ::NrLancamento
PBK->PBK_VLLANC := ::VlLancamento
PBK->PBK_DTLANC := Date()
PBK->PBK_VLDINH := ::VlDinheiro
PBK->PBK_VLCHEQ := ::VlCheque
PBK->PBK_TIPO := ::FlTipo
PBK->PBK_CALANC := ""
PBK->PBK_SITUA := ::Situacao
PBK->(MsUnlock())
return
Esse mtodo insere uma lanamento no tabela PBK, o Reclock(PBK, .T.)
cria uma nova linha na tabela e deixa a referencia PBK apontando para a linha
criado para que possa ser atribudo os valores desejados.
PBK->(MsUnlock()) fecha o arquivo PBK salvando assim a nova linha.
C. Update
Method EstornoLancamento(NrLanc, VlLancamento, NrLancCanc) Class
Lancamento
dbSelectArea("PBK")
PBK->(dbSetOrder(3)) //PBK_NRLANC+PBK_DTLANC
If PBK->( dbSeek( StrZero(NrLancamento,10) ) )
Reclock("PBK",.F.)
PBK->PBK_CALANC := strzero(NrLanc, 10)
PBK->(MsUnlock())
Else
Return (.F.)
EndIf
::NrLancamento := strzero(NrLanc,10)
::VlLancamento := VlLancamento
::FlTipo := "2"
::Situacao := "RX"
::InsereLancamento()
return (.T.)
O update uma mistura do select com o insert, deve-se fazer uma
pesquisa como o select e quando for alterar os dados tem-se que executar o
comando Reclock(PBK, .F.) para que possamos alterar os dados da linha que
PBK est apontando. Aps as modificaes basta fechar o arquivo (PBK>(MsUnlock())).
7. FORMS
Na criao de telas bom que seja feita internamente, junto com uma classe,
pois fica de mais fcil manuteno, tendo em vista que suas variveis sero vista por
todos os mtodos. Variveis privadas resolveriam esse problema, contudo caso
acontea um erro durante a execuo do seu programa, perderemos o StackTrace
dessa varivel.
Este mtodo apenas mostra uma telinha para troco na tela do caixa da Dacasa
na Dadalto. Atravs do @ estamos criando labels e textbox por referncia e os valores
desse textbox est indo para a varivel vltotal, esta varivel inicializada com espaces
(spaces(10)) ou seja, possui um tamanho mximo de dez caracteres.
H certos eventos foram atribudas algumas funes, v-se que no
necessria a passagem de parmetros para essas funes, tendo em vista que essas
funes so funes da classe CaixaDacasa e elas enxergam as variveis vlTotal,
vlRecebido,...
8. FUNES
2) Static Function:
Est s vista no arquivo em que ela est descrita.