Função: Modelo2 - Formulário para cadastro
Versões: | Microsiga Protheus 8.11 , Protheus 10 |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Nível de Acesso: | Nível 1 (Acesso Clientes) |
Idiomas: | Espanhol , Inglês |
Descrição:
Exibe formulário para cadastro contendo: uma enchoice, uma getdados e uma área que pode ser utilizada para apresentar totalizadores ou outros dados mais reelevantes.
Programa Fonte:
MATXATU.PRW
Sintaxe:
Modelo2 - Formulário para cadastro ( cTitulo [ aC ] [ aR ] [ aGd ] [ nOp ] [ cLinhaOk ] [ cTudoOk ]aGetsD [ bF4 ] [ cIniCpos ] [ nMax ] [ aCordW ] [ lDelGetD ] [ lMaximazed ] [ aButtons ] )
Retorno:
-
()
Observações
Parâmetros
aC
- aC[n,1] = Nome da Variável Ex.:"cCliente"
- aC[n,2] = Array com coordenadas do Get [x,y], em Windows estão em PIXEL
- aC[n,3] = Titulo do Campo
- aC[n,4] = Picture
- aC[n,5] = Validação
- aC[n,6] = F3
- aC[n,7] = Se campo é editavel .T. se não .F.
aR
- aR[n,1] = Nome da Variável Ex.:"cCliente"
- aR[n,2] = Array com coordenadas do Get [x,y], em Windows estão em PIXEL
- aR[n,3] = Titulo do Campo
- aR[n,4] = Picture
- aR[n,5] = Validação
- aR[n,6] = F3
- aR[n,7] = Se campo é editavel .T. se não .F.
Exemplos
#include "protheus.ch"User Function Md2()nOpcx:=3//+-----------------------------------------------+//¦ Montando aHeader para a Getdados ¦//+-----------------------------------------------+dbSelectArea("Sx3")dbSetOrder(1)dbSeek("SX5")nUsado:=0aHeader:={}While !Eof() .And. (x3_arquivo == "SX5") IF X3USO(x3_usado) .AND. cNivel >= x3_nivel nUsado:=nUsado+1 AADD(aHeader,{ TRIM(x3_titulo),x3_campo,; x3_picture,x3_tamanho,x3_decimal,; "ExecBlock('Md2valid',.f.,.f.)",x3_usado,; x3_tipo, x3_arquivo, x3_context } ) Endif dbSkip()End//+-----------------------------------------------+//¦ Montando aCols para a GetDados ¦//+-----------------------------------------------+aCols:=Array(1,nUsado+1)dbSelectArea("Sx3")dbSeek("SX5")nUsado:=0While !Eof() .And. (x3_arquivo == "SX5") IF X3USO(x3_usado) .AND. cNivel >= x3_nivel nUsado:=nUsado+1 IF nOpcx == 3 IF x3_tipo == "C" aCOLS[1][nUsado] := SPACE(x3_tamanho) Elseif x3_tipo == "N" aCOLS[1][nUsado] := 0 Elseif x3_tipo == "D" aCOLS[1][nUsado] := dDataBase Elseif x3_tipo == "M" aCOLS[1][nUsado] := "" Else aCOLS[1][nUsado] := .F. Endif Endif Endif dbSkip()EndaCOLS[1][nUsado+1] := .F.//+----------------------------------------------+//¦ Variaveis do Cabecalho do Modelo 2 ¦//+----------------------------------------------+cCliente:=Space(6)cLoja :=Space(2)dData :=Date()//+----------------------------------------------+//¦ Variaveis do Rodape do Modelo 2//+----------------------------------------------+nLinGetD:=0//+----------------------------------------------+//¦ Titulo da Janela ¦//+----------------------------------------------+cTitulo:="TESTE DE MODELO2"//+----------------------------------------------+//¦ Array com descricao dos campos do Cabecalho ¦//+----------------------------------------------+aC:={}#IFDEF WINDOWS AADD(aC,{"cCliente" ,{15,10} ,"Cod. do Cliente","@!",'ExecBlock("MD2VLCLI",.F.,.F.)',"SA1",}) AADD(aC,{"cLoja" ,{15,200},"Loja","@!",,,}) AADD(aC,{"dData" ,{27,10} ,"Data de Emissao",,,,})#ELSE AADD(aC,{"cCliente" ,{6,5} ,"Cod. do Cliente","@!",'ExecBlock("MD2VLCLI",.F.,.F.)',"SA1",}) AADD(aC,{"cLoja" ,{6,40},"Loja","@!",,,}) AADD(aC,{"dData" ,{7,5} ,"Data de Emissao",,,,})#ENDIF//+-------------------------------------------------+//¦ Array com descricao dos campos do Rodape ¦//+-------------------------------------------------+aR:={}#IFDEF WINDOWS AADD(aR,{"nLinGetD" ,{120,10},"Linha na GetDados", "@E 999",,,.F.})#ELSE AADD(aR,{"nLinGetD" ,{19,05},"Linha na GetDados","@E 999",,,.F.})#ENDIF//+------------------------------------------------+//¦ Array com coordenadas da GetDados no modelo2 ¦//+------------------------------------------------+#IFDEF WINDOWS aCGD:={44,5,118,315}#ELSE aCGD:={10,04,15,73}#ENDIF//+----------------------------------------------+//¦ Validacoes na GetDados da Modelo 2 ¦//+----------------------------------------------+cLinhaOk := "ExecBlock('Md2LinOk',.f.,.f.)"cTudoOk := "ExecBlock('Md2TudOk',.f.,.f.)"//+----------------------------------------------+//¦ Chamada da Modelo2 ¦//+----------------------------------------------+// lRet = .t. se confirmou// lRet = .f. se canceloulRet:=Modelo2(cTitulo,aC,aR,aCGD,nOpcx,cLinhaOk,cTudoOk)Return
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
cTitulo | Caracter | Titulo da janela | X | ||||||||||||||
aC | Vetor | Array com os campos do cabeçalho | |||||||||||||||
aR | Vetor | Array com os campos do rodapé | |||||||||||||||
aGd | Vetor | Array com as posições para edição dos itens (GETDADOS) | |||||||||||||||
nOp | Numérico | Modo de operação (3 ou 4 altera e inclui itens, 6 altera mas não inclui itens, qualquer outro número só visualiza os itens) | 3 | ||||||||||||||
cLinhaOk | Caracter | Função para validação da linha. | |||||||||||||||
cTudoOk | Caracter | Função para validação na confirmação. | |||||||||||||||
aGetsD | Vetor | Array com gets editáveis | X | ||||||||||||||
bF4 | Bloco de código | bloco de código para tecla F4 | |||||||||||||||
cIniCpos | Caracter | String com nome dos campos que devem ser inicializados ao teclar seta para baixo. | |||||||||||||||
nMax | Numérico | Quantidade Máxima de ítens da GetDados | |||||||||||||||
aCordW | Vetor | Coordenadas para montagem da dialog | |||||||||||||||
lDelGetD | Lógico | Determina se as linas da GetDados podem ser deletadas ou não | .T. | ||||||||||||||
lMaximazed | Lógico | Se a tela virá Maximizada | |||||||||||||||
aButtons | Vetor | Array com botões do usuário |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas