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 Linha Protheus - ADVPL - Exemplo Modelo 3

time.pngTempo aproximado para leitura: 00:03:00 min

Dúvida

Exemplo Modelo3

Ambiente
Cross Segmentos - TOTVS Backoffice Linha Protheus – ADVPL – A partir da versão 11.80

Solução
Exibe formulário para cadastro contendo uma enchoice e uma getdados.

#include "rwmake.ch"

User Function RDMOD3()
Local _ni
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")
IfAlltrim(x3_campo)=="C6_ITEM"
dbSkip()
Loop
Endif

If X3USO(x3_usado).And.cNivel>=x3_nivel
nUsado:=nUsado+1
Aadd(aHeader,{ TRIM(x3_titulo), x3_campo, x3_picture,;
x3_tamanho, x3_decimal,"AllwaysTrue()",;
x3_usado, x3_tipo, x3_arquivo, x3_context } )
Endif

dbSkip()
End

If cOpcao=="INCLUIR"
aCols:={Array(nUsado+1)}
aCols[1,nUsado+1]:=.F.
For _ni:=1to 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:=1to nUsado
aCols[Len(aCols),_ni]:=FieldGet(FieldPos(aHeader[_ni,2]))
Next

aCols[Len(aCols),nUsado+1]:=.F.

dbSkip()

End
Endif

If Len(aCols)>0

//+--------------------------------------------------------------+
//| Executa a Modelo 3 |
//+--------------------------------------------------------------+

cTitulo:="Teste de Modelo3()"
cAliasEnchoice:="SC5"
cAliasGetD:="SC6"
cLinOk:="AllwaysTrue()"
cTudOk:="AllwaysTrue()"
cFieldOk:="AllwaysTrue()"

// aCpoEnchoice:={}
//{"C5_CLIENTE"}
_lRet:=Modelo3(cTitulo,cAliasEnchoice,cAliasGetD,,cLinOk,cTudOk,nOpcE,nOpcG,cFieldOk)

//+--------------------------------------------------------------+
//| Executar processamento |
//+--------------------------------------------------------------+

If _lRet
Aviso("Modelo3()","Confirmada operacao!",{"Ok"})
Endif
Endif

Return
Saiba mais
 
Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

1 Comentários

  • Avatar
    Daniel Oliveira

    Depois da chamada a função Modelo3 é necessário implementar a gravação dos dados nas tabelas, correto? 

    Ou seja, no caso de utilizar a opção 3 (incluir) ao retornar da chamada da Modelo3 os dados não estarão gravados na tabela, sendo necessário implementar a gravação... correto?

     

    0
    Ações de comentário Permalink
Por favor, entre para comentar.
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 _

Preencha os campos abaixo para iniciar o atendimento:

Chat _