Tipo: Processamento
Executa cadastro semelhante ao cadastro de Pedidos de Venda, cabeçalho variável com itens.
Sintaxe
Modelo3(cTitulo,cAliasEnchoice,cAliasGetD,aCpoEnchoice,cLinOk,cTudOk,nOpcE,nOpcG,cFieldOk,
[lVirtual,nLinhas,aAltEnchoice])
Parâmetros
cTitulo – Título da janela
cAliasEnchoice – Álias do cabeçalho
cAliasGetd – Álias dos itens
aCpoEnchoice – Array com os campos que serão mostrados
cLinOk – Função para validar a mudança de linha nos itens.
cTudOk – Função para validar todos os itens.
nOpce – Número da opção do menu para o cabeçalho (Enchoice)
nOpcG – Número da opção do menu para o itens (GetDados)
cFieldOk – Função para validar os campos dos itens (GetDados)
lVirtual – Permite visualizar campos virtuais na enchoice.
Default = .F.
nLinhas – Limita o número máximo de linhas (GetDados)
Default = 99.
aAltEnchoice – Array com campos alteráveis (Enchoice)
Default = Todos.
Retorna
lRet – Retorno da função modelo3. Se True a operação foi confirmada.
Exemplo
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:=”VISUALIZAR”
Do Case
Case cOpcao==”INCLUIR”; nOpcE:=3 ; nOpcG:=3
Case cOpcao==”ALTERAR”; nOpcE:=3 ; nOpcG:=3
Case cOpcao==”VISUALIZAR”; nOpcE:=2 ; nOpcG:=2
EndCase
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Cria variaveis M->????? da Enchoice ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
RegToMemory(“SC5”,(cOpcao==”INCLUIR”))
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Cria aHeader e aCols da GetDados ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
nUsado:=0
dbSelectArea(“SX3”)
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), 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:=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.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()
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,aCpoEnchoice,cLinOk,cTudOk,nOpcE,nOpcG,cFieldOk)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Executar processamento ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If _lRet
Aviso(“Modelo3()”,”Confirmada operacao!”,{“Ok”})
Endif
Endif
Return
Estude para provas de certificações em TI com os simulados Bynem