Pular para o conteúdo
Início » Advpl Modelo3

Advpl Modelo3

    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