Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmentos - TOTVS Backoffice (Línea Protheus) - MI - ADVPL - Función Modelo3()

time.png 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 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

 

 

Conozca más

Modelo3

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 0 de 0

0 Comentarios

Inicie sesión para dejar un comentario.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Rellene los campos siguientes para iniciar el chat:

Chat _