- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Dedo duro Alteração de TES
×
Linguagem de Programação ADVPL
Perguntas Dedo duro Alteração de TES
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 11 meses atrás #19189
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Dedo duro Alteração de TES
Acrescenta esta linha aqui:
User Function MT080GRV()
If !INCLUI .And. ALTERA
_aUsuInc := {}
AaDd(_aUsuInc,__cUserId)
PswOrder(1)
User Function MT080GRV()
If !INCLUI .And. ALTERA
_aUsuInc := {}
AaDd(_aUsuInc,__cUserId)
PswOrder(1)
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- tyudice
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
10 anos 11 meses atrás #19201
por tyudice
Respondido por tyudice no tópico Dedo duro Alteração de TES
Luiz,
Muito obrigado funcionou tudo certinho agora.
Só tenho mais uma duvida, tem algum meio de eu filtrar pra só enviar os campos que foram alterados com os devidos conteudos. Porque no caso esse ta enviando a TES inteira.
Muito obrigado funcionou tudo certinho agora.
Só tenho mais uma duvida, tem algum meio de eu filtrar pra só enviar os campos que foram alterados com os devidos conteudos. Porque no caso esse ta enviando a TES inteira.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 11 meses atrás #19205
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Dedo duro Alteração de TES
Testa ai é outro ponto de entrada, ele faz o que precisa, fiz algumas modificações para atender vc
#include "rwmake.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ MA080VLD ºAutor ³ Marcos Candido º Data ³ 18/09/08 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Ponto de entrada ativado no botao "OK" do cadastro do º±±
±±º ³ TES. (Inclusao / Alteracao / Exclusao). º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function MA080VLD
Local lRetorno := .T.
Local aInfo := {}
Local aOpc := PARAMIXB
If aOpc[1] == 3
aadd(aInfo , "O TES abaixo acaba de ser incluido no sistema pelo usuário: "+Substr(cUsuario,7,15) )
aadd(aInfo , " " )
aadd(aInfo , "Código: "+M->F4_CODIGO )
aadd(aInfo , "Texto Padrão: "+M->F4_TEXTO )
aadd(aInfo , "Finalidade: "+M->F4_FINALID )
ElseIf aOpc[1] == 4
dbSelectArea("SF4")
dbSetOrder(1)
dbSeek(xFilial("SF4")+M->F4_CODIGO)
For j:=1 to FCount()
If FieldGet(FieldPos(FieldName(j))) <> &("M->"+(FieldName(j)))
If Len(aInfo) == 0
aadd(aInfo , "Os seguintes campos foram alterados no cadastro de TES: " +M->F4_CODIGO )
aadd(aInfo , "pelo usuário: "+Substr(cUsuario,7,15) )
aadd(aInfo , " " )
Endif
If ValType(FieldGet(FieldPos(FieldName(j)))) == "N"
cOld := Str(FieldGet(FieldPos(FieldName(j))))
cNew := Str(&("M->"+(FieldName(j))))
Elseif ValType(FieldGet(FieldPos(FieldName(j)))) == "D"
cOld := DtoC(FieldGet(FieldPos(FieldName(j))))
cNew := DtoC(&("M->"+(FieldName(j))))
Elseif ValType(FieldGet(FieldPos(FieldName(j)))) == "C"
cOld := FieldGet(FieldPos(FieldName(j)))
cNew := &("M->"+(FieldName(j)))
Else
cOld := ""
cNew := ""
Endif
aadd(aInfo , FieldName(j) )
aadd(aInfo , "Conteúdo Anterior: "+cOld )
aadd(aInfo , "Novo Conteúdo : "+cNew )
Endif
Next
Else
aadd(aInfo , "O TES abaixo acaba de ser excluido no sistema pelo usuário: "+Substr(cUsuario,7,15) )
aadd(aInfo , " " )
aadd(aInfo , "Código: "+SF4->F4_CODIGO )
aadd(aInfo , "Texto Padrão: "+SF4->F4_TEXTO )
aadd(aInfo , "Finalidade: "+SF4->F4_FINALID )
Endif
AaDd(_aUsuInc,__cUserId)
PswOrder(1)
For _nX := 1 To Len(_aUsuInc)
If PswSeek(_aUsuInc[_nX])
_cEmail := PswRet(1)[1,14]
_cProEmail := SF4->F4_CODIGO+" - "+Alltrim(SF4->F4_TEXTO)+Chr(13)+Chr(10)
_cProEmail += "Usuário Alteração: "+UsrRetName(__cUserID)+Chr(13)+Chr(10)
_cProEmail += "Data: "+DTOC(Date())+" Hora: "+Time()+Chr(13)+Chr(10)+Chr(13)+Chr(10)
_cAliasCampos := "SF4"
For _nX2 := 1 To Len(aInfo)
_cProEmail += aInfo[_nX2]
Next
U_EnvMail("Cadastro de TES: "+SF4->F4_CODIGO, _cProEmail, _cEmail, "", Nil, Nil)
Endif
Next
Return(lRetorno)
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³DIVERSOS ºAutor ³Ewerton NetConnect º Data ³ 07/11/07 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Rotina de envio de emails º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function EnvMail(_cSubject, _cBody, _cMailTo, _cCC, _cAnexo, _cConta, _cSenha)
Local _cMailS := GetMv("MV_RELSERV")
Local _cAccount := GetMV("MV_RELACNT") //IIf(_cConta=Nil,GetMV("MV_RELACNT"),_cConta)
Local _cPass := GetMV("MV_RELFROM") //IIf(_cSenha=Nil,GetMV("MV_RELFROM"),_cSenha)
Local _cSenha2 := GetMV("MV_RELPSW")
Local _cUsuario2 := GetMV("MV_RELACNT")
Local lAuth := GetMv("MV_RELAUTH",,.F.)
ConOut("Enviando e-mail - " + _cSubject + " - para " + _cMailTo)
Connect Smtp Server _cMailS Account _cAccount Password _cPass RESULT lResult
If lAuth // Autenticacao da conta de e-mail
lResult := MailAuth(_cUsuario2, _cSenha2)
If !lResult
ConOut("Nao foi possivel autenticar a conta - " + _cUsuario2)
Return()
EndIf
EndIf
_xx := 0
lResult := .F.
do while !lResult
If !Empty(_cAnexo)
Send Mail From _cAccount To _cMailTo CC _cCC Subject _cSubject Body _cBody ATTACHMENT _cAnexo RESULT lResult
Else
Send Mail From _cAccount To _cMailTo CC _cCC Subject _cSubject Body _cBody RESULT lResult
Endif
_xx++
if _xx > 2
Exit
Else
Get Mail Error cErrorMsg
ConOut(cErrorMsg)
EndIf
EndDo
Return
#include "rwmake.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ MA080VLD ºAutor ³ Marcos Candido º Data ³ 18/09/08 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Ponto de entrada ativado no botao "OK" do cadastro do º±±
±±º ³ TES. (Inclusao / Alteracao / Exclusao). º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function MA080VLD
Local lRetorno := .T.
Local aInfo := {}
Local aOpc := PARAMIXB
If aOpc[1] == 3
aadd(aInfo , "O TES abaixo acaba de ser incluido no sistema pelo usuário: "+Substr(cUsuario,7,15) )
aadd(aInfo , " " )
aadd(aInfo , "Código: "+M->F4_CODIGO )
aadd(aInfo , "Texto Padrão: "+M->F4_TEXTO )
aadd(aInfo , "Finalidade: "+M->F4_FINALID )
ElseIf aOpc[1] == 4
dbSelectArea("SF4")
dbSetOrder(1)
dbSeek(xFilial("SF4")+M->F4_CODIGO)
For j:=1 to FCount()
If FieldGet(FieldPos(FieldName(j))) <> &("M->"+(FieldName(j)))
If Len(aInfo) == 0
aadd(aInfo , "Os seguintes campos foram alterados no cadastro de TES: " +M->F4_CODIGO )
aadd(aInfo , "pelo usuário: "+Substr(cUsuario,7,15) )
aadd(aInfo , " " )
Endif
If ValType(FieldGet(FieldPos(FieldName(j)))) == "N"
cOld := Str(FieldGet(FieldPos(FieldName(j))))
cNew := Str(&("M->"+(FieldName(j))))
Elseif ValType(FieldGet(FieldPos(FieldName(j)))) == "D"
cOld := DtoC(FieldGet(FieldPos(FieldName(j))))
cNew := DtoC(&("M->"+(FieldName(j))))
Elseif ValType(FieldGet(FieldPos(FieldName(j)))) == "C"
cOld := FieldGet(FieldPos(FieldName(j)))
cNew := &("M->"+(FieldName(j)))
Else
cOld := ""
cNew := ""
Endif
aadd(aInfo , FieldName(j) )
aadd(aInfo , "Conteúdo Anterior: "+cOld )
aadd(aInfo , "Novo Conteúdo : "+cNew )
Endif
Next
Else
aadd(aInfo , "O TES abaixo acaba de ser excluido no sistema pelo usuário: "+Substr(cUsuario,7,15) )
aadd(aInfo , " " )
aadd(aInfo , "Código: "+SF4->F4_CODIGO )
aadd(aInfo , "Texto Padrão: "+SF4->F4_TEXTO )
aadd(aInfo , "Finalidade: "+SF4->F4_FINALID )
Endif
AaDd(_aUsuInc,__cUserId)
PswOrder(1)
For _nX := 1 To Len(_aUsuInc)
If PswSeek(_aUsuInc[_nX])
_cEmail := PswRet(1)[1,14]
_cProEmail := SF4->F4_CODIGO+" - "+Alltrim(SF4->F4_TEXTO)+Chr(13)+Chr(10)
_cProEmail += "Usuário Alteração: "+UsrRetName(__cUserID)+Chr(13)+Chr(10)
_cProEmail += "Data: "+DTOC(Date())+" Hora: "+Time()+Chr(13)+Chr(10)+Chr(13)+Chr(10)
_cAliasCampos := "SF4"
For _nX2 := 1 To Len(aInfo)
_cProEmail += aInfo[_nX2]
Next
U_EnvMail("Cadastro de TES: "+SF4->F4_CODIGO, _cProEmail, _cEmail, "", Nil, Nil)
Endif
Next
Return(lRetorno)
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³DIVERSOS ºAutor ³Ewerton NetConnect º Data ³ 07/11/07 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Rotina de envio de emails º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function EnvMail(_cSubject, _cBody, _cMailTo, _cCC, _cAnexo, _cConta, _cSenha)
Local _cMailS := GetMv("MV_RELSERV")
Local _cAccount := GetMV("MV_RELACNT") //IIf(_cConta=Nil,GetMV("MV_RELACNT"),_cConta)
Local _cPass := GetMV("MV_RELFROM") //IIf(_cSenha=Nil,GetMV("MV_RELFROM"),_cSenha)
Local _cSenha2 := GetMV("MV_RELPSW")
Local _cUsuario2 := GetMV("MV_RELACNT")
Local lAuth := GetMv("MV_RELAUTH",,.F.)
ConOut("Enviando e-mail - " + _cSubject + " - para " + _cMailTo)
Connect Smtp Server _cMailS Account _cAccount Password _cPass RESULT lResult
If lAuth // Autenticacao da conta de e-mail
lResult := MailAuth(_cUsuario2, _cSenha2)
If !lResult
ConOut("Nao foi possivel autenticar a conta - " + _cUsuario2)
Return()
EndIf
EndIf
_xx := 0
lResult := .F.
do while !lResult
If !Empty(_cAnexo)
Send Mail From _cAccount To _cMailTo CC _cCC Subject _cSubject Body _cBody ATTACHMENT _cAnexo RESULT lResult
Else
Send Mail From _cAccount To _cMailTo CC _cCC Subject _cSubject Body _cBody RESULT lResult
Endif
_xx++
if _xx > 2
Exit
Else
Get Mail Error cErrorMsg
ConOut(cErrorMsg)
EndIf
EndDo
Return
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- tyudice
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
10 anos 11 meses atrás #19223
por tyudice
Respondido por tyudice no tópico Dedo duro Alteração de TES
Luiz,
Não deu certo....
Toda a vez que o programa identifica o aOpc[1]=2 por isso ele sempre acha que estou excluindo o registro pois ele cai no ultimo else desta função mesmo que aOpc[1]=2 seja visualização, quando na verdade eu estou alterando que seria aOpc[1] = 4 ou incluindo aOpc[1]=3.
Não deu certo....
Toda a vez que o programa identifica o aOpc[1]=2 por isso ele sempre acha que estou excluindo o registro pois ele cai no ultimo else desta função mesmo que aOpc[1]=2 seja visualização, quando na verdade eu estou alterando que seria aOpc[1] = 4 ou incluindo aOpc[1]=3.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Dedo duro Alteração de TES
Tempo para a criação da página:0.151 segundos