Função: Modelo3
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 e uma getdados.
Programa Fonte:
MATXATU.PRW
Sintaxe:
Modelo3 ( cTitulocAliascAlias2 [ aMyEncho ] [ cLinhaOk ] [ cTudoOk ] [ nOpcE ] [ nOpcG ] [ cFieldOk ] [ lVirtual ] [ nLinhas ] [ aAltEnchoice ] [ nFreeze ] [ aButtons ] [ aCordW ] [ nSizeHeader ] ) --> lRet
Retorno:
lRet (logico)
Retorno .T. Confirma / .F. Abandona
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
cTitulo | Caracter | Titulo da janela | X | ||||||||||||||
cAlias | Caracter | Alias da Enchoice | X | ||||||||||||||
cAlias2 | Caracter | Alias da Getdados | X | ||||||||||||||
aMyEncho | Vetor | Array com campos da enchoice | |||||||||||||||
cLinhaOk | Caracter | Função para validação da linha | |||||||||||||||
cTudoOk | Caracter | Função para validação na confirmação | |||||||||||||||
nOpcE | Numérico | nOpc da Enchoice | |||||||||||||||
nOpcG | Numérico | nOpc da Getdados | |||||||||||||||
cFieldOk | Caracter | Validação para todos os campos da GetDados | |||||||||||||||
lVirtual | Lógico | Permite visualizar campos virtuais na enchoice | |||||||||||||||
nLinhas | Numérico | Número máximo de linhas na getdados | |||||||||||||||
aAltEnchoice | Vetor | Array com campos alteráveis da Enchoice | |||||||||||||||
nFreeze | Numérico | Congelamento das colunas. | |||||||||||||||
aButtons | Vetor | Array com botões de usuário na enchoicebar | |||||||||||||||
aCordW | Vetor | Coordenadas da janela | |||||||||||||||
nSizeHeader | Numérico | Altura da enchoice |
Exemplo:
#include "protheus.ch" #include "rwmake.ch" User Function RDMOD3() Local cOpcao as character Local nOpcE as numeric Local nOpcG as numeric Local nUsado as numeric Local _ni as numeric Private aHeader as array Private aRotina as array Private aCols as array aRotina := {{ "Pesquisa","AxPesqui", 0 , 1}, { "Visual","AxVisual", 0 , 2}, { "Inclui","AxInclui", 0 , 3}, { "Altera","AxAltera", 0 , 4, 20 }, { "Exclui","AxDeleta", 0 , 5, 21 }} //+--------------------------------------------------------------+ //| Opcoes de acesso para a Modelo 3 | //+--------------------------------------------------------------+ cOpcao:= "INCLUIR" Do Case Case cOpcao=="INCLUIR"; nOpcE:=3 ; nOpcG:=3 Case cOpcao=="ALTERAR"; nOpcE:=3 ; nOpcG:=3 Case cOpcao=="VISUALIZAR"; nOpcE:=2 ; nOpcG:=2 EndCase DbSelectArea("SC5") DbSetOrder(1) DbGotop() //+--------------------------------------------------------------+ //| Cria variaveis M->????? da Enchoice | //+--------------------------------------------------------------+ RegToMemory("SC5", (cOpcao=="INCLUIR")) //+--------------------------------------------------------------+ //| Cria aHeader e aCols da GetDados | //+--------------------------------------------------------------+ nUsado := 0 dbSelectArea("SX3") DbSetOrder(1) DbSeek("SC6") aHeader := {} While !Eof() .And. (X3_ARQUIVO == "SC6") If Alltrim(X3_CAMPO) == "C6_ITEM" dbSkip() Loop Endif If X3USO(X3_USADO) .And. cNivel >= X3_NIVEL nUsado := nUsado+1 Aadd(aHeader,{ TRIM(X3_TITULO),; AllTrim(X3_CAMPO),; X3_PICTURE,; X3_TAMANHO,; X3_DECIMAL,; "AllwaysTrue()",; X3_USADO,; X3_TIPO,; X3_ARQUIVO,; X3_CONTEXT } ) Endif dbSkip() EndDo If cOpcao == "INCLUIR" aCols:={Array(nUsado+1)} aCols[1, nUsado+1] := .F. For _ni := 1 to nUsado aCols[1, _ni] := CriaVar(aHeader[_ni, 2]) Next Else aCols := {} dbSelectArea("SC6") dbSetOrder(1) dbSeek(xFilial()+M->C5_NUM) While !eof() .and. SC6->C6_NUM == M->C5_NUM AADD(aCols, Array(nUsado+1)) For _ni := 1 to nUsado aCols[Len(aCols), _ni] := FieldGet(FieldPos(aHeader[_ni, 2])) Next aCols[Len(aCols), nUsado+1] := .F. dbSkip() EndDo Endif If Len(aCols) > 0 //+--------------------------------------------------------------+ //| Executa a Modelo 3 | //+--------------------------------------------------------------+ cTitulo := "Teste de Modelo3" cAliasEnchoice := "SC5" cAliasGetD := "SC6" cLinOk := "AllwaysTrue()" cTudOk := "AllwaysTrue()" cFieldOk := "AllwaysTrue()" _lRet:= Modelo3(cTitulo, cAliasEnchoice, cAliasGetD,, cLinOk, cTudOk, nOpcE, nOpcG, cFieldOk) //+--------------------------------------------------------------+ //| Executar processamento | //+--------------------------------------------------------------+ If _lRet Aviso("Modelo3()", "Confirmada operacao!", {"Ok"}) Endif Endif Return
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas