× Linguagem de Programação ADVPL

Perguntas Ponto de entrada M410LIOK

Mais
11 anos 6 meses atrás #14165 por plautojr
Seguinte amigos, eu criei uma função no ponto de entrada M410LIOK, para agregar insumos aos produtos do pedido,
preciso de uma ajuda nos seguintes pontos,

se eu deletar a linha do pedido, como faço pra não chamar o ponto de entrada ?

e quando confirmo o pedido ele chama novamente o ponto de entrada no ultimo item ... como faço pra não chamar na confirmação, o pessoal do suporte da totvs disse para tratar na função.

alguem me dá uma ajuda ?

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14169 por vision
Respondido por vision no tópico Ponto de entrada M410LIOK
Boa Tarde Plauto,

Posta o fonte que vc esta tratando no ponto de entrada


Abraços

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14170 por plautojr
Respondido por plautojr no tópico Ponto de entrada M410LIOK
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'RWMAKE.CH'
#INCLUDE 'FONT.CH'
#INCLUDE 'COLORS.CH'


User Function M410LIOK


Local nOpc := GD_INSERT+GD_DELETE+GD_UPDATE
Private aColsIni := {}
Private aHeader := {}
Private noBrw1 := 0
Private oGet := 0
Private cItem := Space(TamSx3("Z4_NITEM")[1])
Private cDesc := Space(TamSx3("Z4_DESC")[1])



//Private nPosItem := Space(3)
//Private nPosDesc := Space(30)

//nPosItem := aScan(aHeader,{|X| Alltrim(X[2])=="M->C6_ITEM" })
//nPosDesc := aScan(aHeader,{|X| Alltrim(X[2])=="M->C6_DESCRI"})

//cItem := aCols[N,nPosItem]
//cDesc := aCols[N,nPosDesc]



dbSelectarea ("SB1")
//aqui nao tá funcionando 100 por cento, nao consegui fazer funcionar a função de cima
cItem := SB1->B1_COD
cDesc := SB1->B1_DESC

SetPrvt("oJanela","oSay1","oSay2","oGet1","oGet2","oGet")

oJanela := MSDialog():New( 100,232,586,972,"Insumos",,,.F.,,,,,,.T.,,,.T. )

oJanela:bInit := {||EnchoiceBar(oJanela,{|| GravDad()},{|| oJanela:End()},.F.,)}


oSay1 := TSay():New( 016,024,{||"Código"},oJanela,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,032,008)
oSay2 := TSay():New( 016,120,{||" Item"},oJanela,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,032,008)
oGet1 := TGet():New( 028,024,{|u| If(PCount()>0,cItem:=u,cItem)},oJanela,060,008,'',,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.F.,.F.,,.F.,.F.,"","cGrupo",,)

oGet2 := TGet():New( 028,144,{|u| If(PCount()>0,cDesc:=u,cDesc)} ,oJanela,152,008,'',,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.F.,.F.,,.F.,.F.,"","cDesc",,)
// Funcao monta aheader
MHoBrw1()
//Funcao monta aColsIni
MCoBrw1()
oGet := MsNewGetDados():New(084,5,238,412,nOpc,'AllwaysTrue()','AllwaysTrue()','',,0,99,'AllwaysTrue()','','AllwaysTrue()',oJanela,aHeader,aColsIni )
oGet:Disable()
oGet:delline()
oGet:Enable()
oJanela:Activate(,,,.T.)

Return .T.


/*
user function DelLinha()
dbSelectarea("SZ4")
SZ4->(dbSetOrder(1))
SZ4->(dbSeek(xFilial("SZ4") + M->C5_NUM ))

IF aCols[nAt][Len (aHeader) +1]
BEGIN TRANSACTION
while !SZ4->(EOF()) .AND. M->C5_NUM == M->Z4_NPED TENTEI ISSO AQUI MAS NAO DEU CERTO,
RecLock( "SZ4" , .F. )
SZ4->(dbdelete())
4 SZ4->(MsUnLock())
SZ4->(DBSKIP())

ENDDO

END TRANSACTION

MsgAlert("Insumos Excluidos")
oJanela:Refresh()
oJanela:end()

else

oJanela:Refresh()
oJanela:end()

Return (.t.)*/




Static Function MHoBrw1()

DbSelectArea("SX3")
DbSetOrder(2)


DbSeek("Z4_COD")
Aadd(aHeader,{Trim(X3Titulo()), SX3->X3_CAMPO, SX3->X3_PICTURE, SX3->X3_TAMANHO, SX3->X3_DECIMAL, "", "", SX3->X3_TIPO, "", "" } )

DbSeek("Z4_DESC")
Aadd(aHeader,{Trim(X3Titulo()), SX3->X3_CAMPO, SX3->X3_PICTURE, SX3->X3_TAMANHO, SX3->X3_DECIMAL, "", "", SX3->X3_TIPO, "", "" } )

DbSeek("Z4_QTD")
Aadd(aHeader,{Trim(X3Titulo()), SX3->X3_CAMPO, SX3->X3_PICTURE, SX3->X3_TAMANHO, SX3->X3_DECIMAL, "", "", SX3->X3_TIPO, "", "" } )

DbSeek("Z4_UM")
Aadd(aHeader,{Trim(X3Titulo()), SX3->X3_CAMPO, SX3->X3_PICTURE, SX3->X3_TAMANHO, SX3->X3_DECIMAL, "", "", SX3->X3_TIPO, "", "" } )

DbSeek("Z4_VLRU")
Aadd(aHeader,{Trim(X3Titulo()), SX3->X3_CAMPO,SX3->X3_PICTURE , SX3->X3_TAMANHO, SX3->X3_DECIMAL, "", "", SX3->X3_TIPO, "", "" } )

DbSeek("Z4_VLRT")
Aadd(aHeader,{Trim(X3Titulo()), SX3->X3_CAMPO,SX3->X3_PICTURE, SX3->X3_TAMANHO, SX3->X3_DECIMAL, "", "", SX3->X3_TIPO, "", "" } )



Return





Static Function MCoBrw1()

Local aAux := {}

dbSelectarea("SZ4")
dbSetorder(2)
IF SZ4->(dbSeek(xfilial("SZ4") + M->C5_NUM + aCols[n,1])) //PROCURA DADOS, CASO EXISTA

while M->C5_NUM = SZ4->Z4_NPED .and. SZ4->Z4_NITEM = aCols[n,1] // COMPARA A INCIDENCIA DOS DADOS,

AADD (aColsIni , {SZ4->Z4_COD ,SZ4->Z4_DESC , SZ4->Z4_QTD, SZ4->Z4_UM, SZ4->Z4_VLRU, SZ4->Z4_VLRT,.F.}) // CARREGA CAMPOS ENCONTRADOS ENQUANTO O WHILE FOR .T.

SZ4->(DBSKIP()) // TROCA LINHA

enddo

else


AADD (aColsIni , {Space(TamSx3("Z4_COD")[1]) ,Space(TamSx3("Z4_DESC")[1]) , 0,;
Space(TamSx3("Z4_UM")[1]), 0, 0,.F.})


endif

Return


Static Function GravDad


DbSelectArea("SZ4")
SZ4->(DbSetOrder(1))


For nI := 1 To Len(oGet:Acols)

IF SZ4->(dbSeek(xFilial("SZ4") + M->C5_NUM + oGet:aCols[nI][1] )) // IF PROCURA SE EXISTE, E RETORNA TRUE, SE TRUE
// Altera // RECLOCK .F. ALTERA OU EXCLUI.
// oGetDados:aCols [ Linha que voce quer ] [ Len(oGetDados:aHeader) + 1 ]
RecLock( "SZ4" , .F. )
IF oGet:aCols[nI][Len (aHeader) +1] // LINHAS X COLUNAS + 1 EXCLUIDO (DBDELETE)
SZ4->(dbdelete())
ELSE // ELSE = ALTERA CAMPOS DETERMINADOS.
SZ4->Z4_QTD := oGet:aCols[nI][3]
SZ4->Z4_VLRU := oGet:aCols[nI][5]
SZ4->Z4_VLRT := (oGet:aCols[nI][3]*oGet:aCols[nI][5])

ENDIF
Else // SE DBSEED NAO RETORNA, RECLOCK .T.
// INCLUSÃO
// Inclui
RecLock( "SZ4" , .T. )

//AADD(aColsIni , {Space(TamSx3("Z4_COD")[1]) ,Space(TamSx3("Z4_DESC")[1]) , Space(TamSx3("Z4_QTD")[1]),;
//Space(TamSx3("Z4_UM")[1]), Space(TamSx3("Z4_VLRU")[1]), Space(TamSx3("Z4_VLRT")[1]),.F.})
SZ4->Z4_FILIAL := xFilial("SZ4")
SZ4->Z4_COD := oGet:aCols[nI][1]
SZ4->Z4_DESC := oGet:aCols[nI][2]
SZ4->Z4_QTD := oGet:aCols[nI][3]
SZ4->Z4_UM := oGet:aCols[nI][4]
SZ4->Z4_VLRU := oGet:aCols[nI][5]
SZ4->Z4_VLRT := (oGet:aCols[nI][3]*oGet:aCols[nI][5])
SZ4->Z4_NITEM := aCols[n,1]
SZ4->Z4_NPED := M->C5_NUM

SZ4->(MsUnLock())
EndIf
Next nI
msginfo("Alterado com Sucesso")
oJanela:Refresh()
oJanela:end()
u_DelLinha
u_partediaria()


Return

user function extot(cCampo)
Local nValor := 0
Local nI := 0
IF cCampo = "Z4_QTD"
nValor := M->Z4_QTD * oGet:aCols[oGet:nAt][5]
else
nValor := M->Z4_VLRU * oGet:aCols[oGet:nAt][3]
ENDIF
oGet:refresh()
Return (nValor)


User Function valexist() //ESSA FUNÇÇÃO NAO ESTÁ FUNCIONANDO, EU CHAMEI ELA NA VALIDAÇÃO DO CAMPO MAS NÃO
// TÁ DANDO CERTO
// ELA DEVERIA IMPEDIR QUE REPITA ITENS NA TELA.

DbSelectArea("SZ4")
SZ4->(DbSetOrder(1))
//Z4_FILIAL+Z4_COD+Z4_NPED

For nI := 1 To Len( oGET:aCols )
Private cTxt := ""

cTxt := AllTrim(M->Z4_COD)

//If SZ4->(dbSeek(xFilial("SZ4")+M->Z4_COD+M->C5_NUM ))
If SZ4->(dbSeek(xFilial("SZ4")+M->cTxt+M->C5_NUM ))
MsgAlert ("Insumo Já Cadastrado")
Return .F.
oGet:disable()
Else

Return .T.

EndIf
Next nI
Return ()



/*User Function valexist()
DbSelectArea("SZ4")
SZ4->(DbSetOrder(3))
//Z4_FILIAL+Z4_COD+Z4_NPED
For nI := 1 To Len( oGET:aCols )

//If SZ4->(dbSeek(xFilial("SZ4")+oGet:aCols[nI][1]+M->C5_NUM ))
If SZ4->(dbSeek(xFilial("SZ4")+M->Z4_COD+M->C5_NUM ))


MsgAlert ("Insumo Já Cadastrado")
Return .F.
oGet:disable()
Else

Return .T.
oGet:enable()
EndIf
NEXT
Return ()


TÁ AI... vou anexar o txt tbm... agradeço a ajuda.

Arquivo Anexo:

Nome do Arquivo: M410LIOK.txt
Tamanho do Arquivo:8 KB


Arquivo Anexo:

Nome do Arquivo: M410LIOK.txt
Tamanho do Arquivo:8 KB
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Mais
3 anos 10 meses atrás #32974 por adalbertom
Respondido por adalbertom no tópico Ponto de entrada M410LIOK
Meu amigo, vc teve solução para este seu problema? Esta acontecendo a mesma coisa aqui comigo.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.105 segundos
Joomla templates by a4joomla