Tiempo aproximado de lectura: 00:05:00 min
Duda
¿Para que sirve la función Modelo3()?
Ambiente
Cross Segmentos - TOTVS Backoffice (Línea Protheus) - MI - ADVPL - Todas las versiones 12
Solución
La función Modelo3() Muestra un formulario de registro que contiene una enchoice y una opción para obtener datos getdados
Sintaxis
Modelo3 ( cTitulocAliascAlias2 [ aMyEncho ] [ cLinhaOk ] [ cTudoOk ] [ nOpcE ] [ nOpcG ] [ cFieldOk ] [ lVirtual ] [ nLinhas ] [ aAltEnchoice ] [ nFreeze ] [ aButtons ] [ aCordW ] [ nSizeHeader ] ) --> lRet
Ejemplo
#include "protheus.ch"#include "rwmake.ch" User Function RDMOD3()Local cOpcao as characterLocal nOpcE as numericLocal nOpcG as numericLocal nUsado as numericLocal _ni as numericPrivate aHeader as arrayPrivate aRotina as arrayPrivate aCols as arrayaRotina := {{ "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
EndCaseDbSelectArea("SC5")DbSetOrder(1)DbGotop()//+--------------------------------------------------------------+//| Cria variaveis M->????? da Enchoice |//+--------------------------------------------------------------+RegToMemory("SC5", (cOpcao=="INCLUIR"))//+--------------------------------------------------------------+//| Cria aHeader e aCols da GetDados |//+--------------------------------------------------------------+nUsado := 0dbSelectArea("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()
EndDoIf 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
Conozca más
0 Comentarios