- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Chamada tela modelo 2
×
Linguagem de Programação ADVPL
Perguntas Chamada tela modelo 2
- praalencar
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 1
- Obrigados Recebidos: 0
10 anos 1 mês atrás - 10 anos 1 mês atrás #25426
por praalencar
Chamada tela modelo 2 foi criado por praalencar
Boa tarde!
Sou novo em programação ADVPL, e estou com algumas dificuldades.
Criei uma tela modelo 2 para atender uma necessidade da empresa que trabalho atualmente porém quando clico no botão que faz a chamada da tela modelo 2 os campos não aparecem.
Segue abaixo o meu código e em anexo print da tela e tabelas SX's.
Se alguém puder me ajudar ficaria muito agradecido.
User Function FAT007()
//Local lLibera := F
Local nPosNumero := 0
//INCLUSAO
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
// Opcao de acesso para o Modelo 2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
// 3,4 Permitem alterar getdados e incluir linhas
// 6 So permite alterar getdados e nao incluir linhas
// Qualquer outro numero so visualiza
nOpcx := 20
PRIVATE QZE_NUMERO := 0
PRIVATE QZE_DESCRI := 0
PRIVATE QZE_PROC := 0
PRIVATE QZE_FORNEC := 0
PRIVATE QZE_MOEDA := 0
PRIVATE QZE_FOB := 0
PRIVATE QZE_IPI := 0
PRIVATE QZE_ICMS := 0
PRIVATE QZE_PISC := 0
PRIVATE QZE_CREIPI := 0
PRIVATE QZE_CRICMS := 0
PRIVATE QZE_CRPISC := 0
PRIVATE QZE_CUSTO := 0
PRIVATE QZE_MGN := 0
PRIVATE QZE_PREMAR := 0
PRIVATE QZE_IPISAI := 0
PRIVATE QZE_ICMSSA := 0
PRIVATE QZE_PRPITE := 0
PRIVATE QZE_QTD1 := 0
PRIVATE QZE_FOPRPR := 0
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Montando aHeader ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DbSelectArea("SX3")
DbSetOrder(1)
DbSeek("QZE")
aDuplic := {}
nUsado := 0
aHeader := {}
While !Eof() .And. (x3_arquivo == "QZE")
nNumero := 0
//nNumero := Ascan(aCampos, X3_CAMPO)
If X3USO(x3_usado) .AND. cNivel >= x3_nivel .and. nNumero <> 0
nUsado := nUsado+1
If TRIM(x3_campo) <> 'QZE_NUMERO'
AADD(aHeader,{ TRIM(x3_titulo), x3_campo, x3_picture, x3_tamanho, x3_decimal,, x3_usado, x3_tipo, x3_arquivo, x3_context } )
Else
AADD(aHeader,{ 'Numero', x3_campo, x3_picture, x3_tamanho, x3_decimal,, x3_usado, x3_tipo, x3_arquivo, x3_context } )
EndIf
EndIf
DbSkip()
End
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Montando aCols ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aCols := Array(1,nUsado+1)
nUsado := 0
DbSelectArea("SX3")
DbSeek("QZE")
While !Eof() .And. (x3_arquivo == "QZE")
nNumero := 0
// nNumero := Ascan(aCampos, X3_CAMPO)
If X3USO(x3_Usado) .AND. cNivel >= x3_nivel .and. nNumero <> 0
nUsado := nUsado+1
If x3_tipo == "C"
aCOLS[1][nNumero] := space(x3_tamanho)
ElseIf x3_tipo == "N"
aCOLS[1][nNumero] := 0
ElseIf x3_tipo == "D"
aCOLS[1][nNumero] := dDataBase
ElseIf x3_tipo == "M"
aCOLS[1][nNumero] := ""
Else
aCOLS[1][nNumero] := .F.
EndIf
EndIf
DbSkip()
Enddo
aCOLS[1][nUsado+1] := .F.
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Variaveis de Posicionamento no aCols ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//nNumero PV := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_NUMERO" })
//cDescricao := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_DESCRI" })
cProc := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_PROC" })
cFornecedor := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_FORNEC" })
nMoeda := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_MOEDA" })
nFob := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_FOB" })
nIPI := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_IPI" })
nICMS := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_ICMS" })
nPisc := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_PISC" })
nCreipi := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_CREIPI" })
nCricms := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_CRICMS" })
nCrpisc := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_CRPISC" })
nCusto := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_CUSTO" })
nMgn := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_MGN" })
nPremar := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_PREMAR" })
nIpisai := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_IPISAIDA" })
nIcmssa := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_ICMSSA" })
nPrpite := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_PRPITE" })
nQtd1 := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_QTD1" })
nFoprpr := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_FOPRPR" })
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Titulo da Janela ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cTitulo := "PROJETO PV "
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Array com descricao dos campos do Cabecalho do Modelo 2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aC := { }
// aC[n,1] = Nome da Variavel Ex.:"cCliente"
// aC[n,2] = Array com coordenadas do Get [x,y], em Windows estao em PIXEL
// aC[n,3] = Titulo do Campo
// aC[n,4] = Picture
// aC[n,5] = Validacao
// aC[n,6] = F3
// aC[n,7] = Se campo e' editavel .t. se nao .f.
//cNum := IIF(Empty(nNum),NextNumero("QZE",1,"QZE_NUMERO",.T.),nNumero)
//cNumero := QZE->QZE_NUMEMRO
cFilial := Space (2)
nNumero := Space (6)
cDescri := Space(20)
cProc := Space(18)
cFornec := Space(25)
nMoeda := Space(10)
cFob := Space(25)
nIpi := Space(5)
nIcms := Space(5)
nPisc := Space(10)
nCreipi := Space(
nCricms := Space(10)
nCrpisc := Space(10)
nCusto := Space (10)
nMgn := Space(10)
cPremar := Space(10)
nIpisaida := Space(10)
nIcmssa := Space(10)
//nPrpite : Space(10)
nQtd1 := Space(10)
nFoprpr := Space(15)
// 1 linha de dialogo
//AADD(aC,{"QZE_NUMERO" ,{20,010} ,"Numero PV ","@!","ExecBlock('',.f.,.f.)",,.F.})
//AADD(aC,{"QZE_DESCRI" ,{20,70} ,"Descricao ","@!",,,.f.,})
//AADD(aC,{"QZE_PROC" ,{20,130} ,"Proc",,,,.F.})
//AADD(aC,{"QZE_FORNEC" ,{20,190} ,"Fornecedor","@!","ExecBlock('A130VLDT',.F.,.F.)","",})
//AADD(aC,{"QZE_MOEDA" ,{20,260} ,"Moeda","@!","ExecBlock(",".F.,.F.)","",})
//AADD(aC,{"QZE_FOB" ,{20,400} ,"Fob","@!","ExecBlock('A130NAC',.F.,.F.)","",})
// 2 Linha dialogo
//AADD(aC,{"QZE_FILIAL",{37,010}, "Filial ", "@!","ExecBlock('',.F.,.F.)",""})
//AADD(aC,{"QZE_IPI",{37,010} ,"Ipi ","@!","ExecBlock('',.F.,.F.)",""})
//AADD(aC,{"QZE_ICMS" ,{37,110} ,"Icms ","@!","ExecBlock(',.F.,.F.)","",})
//AADD(aC,{"QZE_PISC",{37,170} ,"Pis Cofins","@!",,,.f.,})
// 3 Linha dialogo
//AADD(aC,{"QZE_CREIPI",{54,010} ,"Credito Ipi","@!","ExecBlock('',.F.,.F.)","",})
//AADD(aC,{"QZE_CRICMS",{54,170} ,"Credito Icms","@!",,,.f.,})
//4 linha Dialogo
//AADD(aC,{"QZE_CRPISC",{71,010} ,"Cred Pis Cof ","@!",,,.f.,})
//AADD(aC,{"QZE_CUSTO",{71,170} ,"Custo","@!",,,.f.,})
//AADD(aC,{"QZE_MGN" ,{71,300} ,"Dt.Garantia","@!",,,.f.,})
//AADD(aC,{"QZE_PREMAR",{71,380} ,"Preco Margem.","@!",,,.f.,})
//5 linha dialogo
//AADD(aC,{"QZE_IPISAI" ,{88,010} ,"Ipi Saida ","@!",,,.f.,})
//AADD(aC,{"QZE_ICMSSA",{88,75} ,"Icms Saida","@!",,,.f.,})
//AADD(aC,{"QZE_PRPIRE" ,{88,290} ,"Pre Por Item","@!","ExecBlock(',.F.,.F.)","",})
//AADD(aC,{"QZE_QTD1",{88,75} ,"Quantidade","@!",,,.f.,})
//AADD(aC,{"QZE_FOPRPR",{88,75} ,"For Pre Prod","@!",,,.f.,})
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Array com descricao dos campos do Rodape do Modelo 2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aR := { }
// aR[n,1] = Nome da Variavel Ex.:"cCliente"
// aR[n,2] = Array com coordenadas do Get [x,y], em Windows estao em PIXEL
// aR[n,3] = Titulo do Campo
// aR[n,4] = Picture
// aR[n,5] = Validacao
// aR[n,6] = F3
// aR[n,7] = Se campo e' editavel .t. se nao .f.
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Array com coordenadas da GetDados no modelo2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//aCGD := {01 , 04 , 16 , 74}
aCGD := {01 , 04 , 16 , 74}
//c-Testcc := .T.
//c-Testop := .T.
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Validacoes na GetDados da Modelo 2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cLinhaOk := " "
cTudoOk := " "
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Chamada da Modelo2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
// IRetmod2 = .t. se confirmou
// IRetmod2 = .f. se cancelou
//_nNUMERO := aScan (aHeader, {x x[2] =="QZE_NUMERO"})
IRetMod2 := Modelo2(cTitulo,aC,aR,aCGD,nOpcx, cLinhaOk, cTudoOk)
If IRetmod2 // Exclusao. . .
For _I := 1 To Len (aCols)
dbselectArea ("QZE")
dbsetOrder(1)
If dbSeek (xFilial("QZE")+cDescricao+aCols [_1, _nNumero] )
// RecLock("QZE", . F .)
dbDelete ( )
msUnLock
Endif
Next
Endif
dbGoTop()
Return
Sou novo em programação ADVPL, e estou com algumas dificuldades.
Criei uma tela modelo 2 para atender uma necessidade da empresa que trabalho atualmente porém quando clico no botão que faz a chamada da tela modelo 2 os campos não aparecem.
Segue abaixo o meu código e em anexo print da tela e tabelas SX's.
Se alguém puder me ajudar ficaria muito agradecido.
User Function FAT007()
//Local lLibera := F
Local nPosNumero := 0
//INCLUSAO
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
// Opcao de acesso para o Modelo 2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
// 3,4 Permitem alterar getdados e incluir linhas
// 6 So permite alterar getdados e nao incluir linhas
// Qualquer outro numero so visualiza
nOpcx := 20
PRIVATE QZE_NUMERO := 0
PRIVATE QZE_DESCRI := 0
PRIVATE QZE_PROC := 0
PRIVATE QZE_FORNEC := 0
PRIVATE QZE_MOEDA := 0
PRIVATE QZE_FOB := 0
PRIVATE QZE_IPI := 0
PRIVATE QZE_ICMS := 0
PRIVATE QZE_PISC := 0
PRIVATE QZE_CREIPI := 0
PRIVATE QZE_CRICMS := 0
PRIVATE QZE_CRPISC := 0
PRIVATE QZE_CUSTO := 0
PRIVATE QZE_MGN := 0
PRIVATE QZE_PREMAR := 0
PRIVATE QZE_IPISAI := 0
PRIVATE QZE_ICMSSA := 0
PRIVATE QZE_PRPITE := 0
PRIVATE QZE_QTD1 := 0
PRIVATE QZE_FOPRPR := 0
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Montando aHeader ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DbSelectArea("SX3")
DbSetOrder(1)
DbSeek("QZE")
aDuplic := {}
nUsado := 0
aHeader := {}
While !Eof() .And. (x3_arquivo == "QZE")
nNumero := 0
//nNumero := Ascan(aCampos, X3_CAMPO)
If X3USO(x3_usado) .AND. cNivel >= x3_nivel .and. nNumero <> 0
nUsado := nUsado+1
If TRIM(x3_campo) <> 'QZE_NUMERO'
AADD(aHeader,{ TRIM(x3_titulo), x3_campo, x3_picture, x3_tamanho, x3_decimal,, x3_usado, x3_tipo, x3_arquivo, x3_context } )
Else
AADD(aHeader,{ 'Numero', x3_campo, x3_picture, x3_tamanho, x3_decimal,, x3_usado, x3_tipo, x3_arquivo, x3_context } )
EndIf
EndIf
DbSkip()
End
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Montando aCols ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aCols := Array(1,nUsado+1)
nUsado := 0
DbSelectArea("SX3")
DbSeek("QZE")
While !Eof() .And. (x3_arquivo == "QZE")
nNumero := 0
// nNumero := Ascan(aCampos, X3_CAMPO)
If X3USO(x3_Usado) .AND. cNivel >= x3_nivel .and. nNumero <> 0
nUsado := nUsado+1
If x3_tipo == "C"
aCOLS[1][nNumero] := space(x3_tamanho)
ElseIf x3_tipo == "N"
aCOLS[1][nNumero] := 0
ElseIf x3_tipo == "D"
aCOLS[1][nNumero] := dDataBase
ElseIf x3_tipo == "M"
aCOLS[1][nNumero] := ""
Else
aCOLS[1][nNumero] := .F.
EndIf
EndIf
DbSkip()
Enddo
aCOLS[1][nUsado+1] := .F.
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Variaveis de Posicionamento no aCols ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//nNumero PV := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_NUMERO" })
//cDescricao := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_DESCRI" })
cProc := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_PROC" })
cFornecedor := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_FORNEC" })
nMoeda := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_MOEDA" })
nFob := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_FOB" })
nIPI := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_IPI" })
nICMS := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_ICMS" })
nPisc := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_PISC" })
nCreipi := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_CREIPI" })
nCricms := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_CRICMS" })
nCrpisc := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_CRPISC" })
nCusto := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_CUSTO" })
nMgn := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_MGN" })
nPremar := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_PREMAR" })
nIpisai := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_IPISAIDA" })
nIcmssa := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_ICMSSA" })
nPrpite := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_PRPITE" })
nQtd1 := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_QTD1" })
nFoprpr := aScan(aHeader,{|x| Alltrim(Upper(x[2])) == "QZE_FOPRPR" })
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Titulo da Janela ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cTitulo := "PROJETO PV "
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Array com descricao dos campos do Cabecalho do Modelo 2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aC := { }
// aC[n,1] = Nome da Variavel Ex.:"cCliente"
// aC[n,2] = Array com coordenadas do Get [x,y], em Windows estao em PIXEL
// aC[n,3] = Titulo do Campo
// aC[n,4] = Picture
// aC[n,5] = Validacao
// aC[n,6] = F3
// aC[n,7] = Se campo e' editavel .t. se nao .f.
//cNum := IIF(Empty(nNum),NextNumero("QZE",1,"QZE_NUMERO",.T.),nNumero)
//cNumero := QZE->QZE_NUMEMRO
cFilial := Space (2)
nNumero := Space (6)
cDescri := Space(20)
cProc := Space(18)
cFornec := Space(25)
nMoeda := Space(10)
cFob := Space(25)
nIpi := Space(5)
nIcms := Space(5)
nPisc := Space(10)
nCreipi := Space(
nCricms := Space(10)
nCrpisc := Space(10)
nCusto := Space (10)
nMgn := Space(10)
cPremar := Space(10)
nIpisaida := Space(10)
nIcmssa := Space(10)
//nPrpite : Space(10)
nQtd1 := Space(10)
nFoprpr := Space(15)
// 1 linha de dialogo
//AADD(aC,{"QZE_NUMERO" ,{20,010} ,"Numero PV ","@!","ExecBlock('',.f.,.f.)",,.F.})
//AADD(aC,{"QZE_DESCRI" ,{20,70} ,"Descricao ","@!",,,.f.,})
//AADD(aC,{"QZE_PROC" ,{20,130} ,"Proc",,,,.F.})
//AADD(aC,{"QZE_FORNEC" ,{20,190} ,"Fornecedor","@!","ExecBlock('A130VLDT',.F.,.F.)","",})
//AADD(aC,{"QZE_MOEDA" ,{20,260} ,"Moeda","@!","ExecBlock(",".F.,.F.)","",})
//AADD(aC,{"QZE_FOB" ,{20,400} ,"Fob","@!","ExecBlock('A130NAC',.F.,.F.)","",})
// 2 Linha dialogo
//AADD(aC,{"QZE_FILIAL",{37,010}, "Filial ", "@!","ExecBlock('',.F.,.F.)",""})
//AADD(aC,{"QZE_IPI",{37,010} ,"Ipi ","@!","ExecBlock('',.F.,.F.)",""})
//AADD(aC,{"QZE_ICMS" ,{37,110} ,"Icms ","@!","ExecBlock(',.F.,.F.)","",})
//AADD(aC,{"QZE_PISC",{37,170} ,"Pis Cofins","@!",,,.f.,})
// 3 Linha dialogo
//AADD(aC,{"QZE_CREIPI",{54,010} ,"Credito Ipi","@!","ExecBlock('',.F.,.F.)","",})
//AADD(aC,{"QZE_CRICMS",{54,170} ,"Credito Icms","@!",,,.f.,})
//4 linha Dialogo
//AADD(aC,{"QZE_CRPISC",{71,010} ,"Cred Pis Cof ","@!",,,.f.,})
//AADD(aC,{"QZE_CUSTO",{71,170} ,"Custo","@!",,,.f.,})
//AADD(aC,{"QZE_MGN" ,{71,300} ,"Dt.Garantia","@!",,,.f.,})
//AADD(aC,{"QZE_PREMAR",{71,380} ,"Preco Margem.","@!",,,.f.,})
//5 linha dialogo
//AADD(aC,{"QZE_IPISAI" ,{88,010} ,"Ipi Saida ","@!",,,.f.,})
//AADD(aC,{"QZE_ICMSSA",{88,75} ,"Icms Saida","@!",,,.f.,})
//AADD(aC,{"QZE_PRPIRE" ,{88,290} ,"Pre Por Item","@!","ExecBlock(',.F.,.F.)","",})
//AADD(aC,{"QZE_QTD1",{88,75} ,"Quantidade","@!",,,.f.,})
//AADD(aC,{"QZE_FOPRPR",{88,75} ,"For Pre Prod","@!",,,.f.,})
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Array com descricao dos campos do Rodape do Modelo 2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aR := { }
// aR[n,1] = Nome da Variavel Ex.:"cCliente"
// aR[n,2] = Array com coordenadas do Get [x,y], em Windows estao em PIXEL
// aR[n,3] = Titulo do Campo
// aR[n,4] = Picture
// aR[n,5] = Validacao
// aR[n,6] = F3
// aR[n,7] = Se campo e' editavel .t. se nao .f.
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Array com coordenadas da GetDados no modelo2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//aCGD := {01 , 04 , 16 , 74}
aCGD := {01 , 04 , 16 , 74}
//c-Testcc := .T.
//c-Testop := .T.
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Validacoes na GetDados da Modelo 2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cLinhaOk := " "
cTudoOk := " "
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Chamada da Modelo2 ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
// IRetmod2 = .t. se confirmou
// IRetmod2 = .f. se cancelou
//_nNUMERO := aScan (aHeader, {x x[2] =="QZE_NUMERO"})
IRetMod2 := Modelo2(cTitulo,aC,aR,aCGD,nOpcx, cLinhaOk, cTudoOk)
If IRetmod2 // Exclusao. . .
For _I := 1 To Len (aCols)
dbselectArea ("QZE")
dbsetOrder(1)
If dbSeek (xFilial("QZE")+cDescricao+aCols [_1, _nNumero] )
// RecLock("QZE", . F .)
dbDelete ( )
msUnLock
Endif
Next
Endif
dbGoTop()
Return
Ultima edição: 10 anos 1 mês atrás por praalencar. Razão: Não coloquei os anexos.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Chamada tela modelo 2
Tempo para a criação da página:0.077 segundos