× Linguagem de Programação ADVPL

Perguntas Dedo duro Alteração de TES

Mais
10 anos 11 meses atrás #19189 por lalberto
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)

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.

Mais
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.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 11 meses atrás #19205 por lalberto
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

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.

Mais
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.

Por favor Acessar ou Registrar para participar da conversa.

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