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

  • Sem rótulos