- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Funções AdvPL
- Rertornar Soma de uma query em uma variavel
Perguntas Rertornar Soma de uma query em uma variavel
- simoes
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 51
- Obrigados Recebidos: 0
8 anos 2 meses atrás - 8 anos 2 meses atrás #31192
por simoes
Rertornar Soma de uma query em uma variavel foi criado por simoes
Boa tarde
Galera alguém pode me dar uma ajuda??
Fiz essa função e preciso retornar o resultado de uma soma feita por uma query para uma variavel
ate ai beleza, só que na hora que eu vou testar na primeira vez é me apresentado a seguinte mensgem "variable does not exist cSoma"
se eu informar outro cliente ai aparece outra mensagem "Alias already in use: cSoma"
Resumindo na primeira vez o sistema fala que a variavel não existe e na segunda ele fala que a variavel ta em uso, mas se não existe como ta em uso
Alguem pode me dar uma força?
#include 'protheus.ch'
#include 'rwmake.ch'
#include 'topconn.ch'
user function LimFunMes()
local cQry := ""
local nLimite := GetMv("MV_LIMFUN") //parametro que contem limite de credito,esse limite não é o que esta no cadastro do cliente.
local dFim := M->C5_EMISSAO
local dPri := FirstDate(dFim) //recebe o primeiro dia do mês
local nTot := 0
local cCodCli := M->C5_CLIENTE
local cLojaCli:= M->C5_LOJACLI
local cNomCli := POSICIONE("SA1",1,XFILIAL("SA1")+M->C5_CLIENTE + C5_LOJACLI,"A1_NOME")
local cFuncio := POSICIONE("SA1",1,XFILIAL("SA1")+M->C5_CLIENTE + C5_LOJACLI,"A1_FUNCION")
if(cFuncio == 'S') //se for funcionario
cQry := " SELECT "
cQry += " SUM(F2_VALMERC) AS VLR_TOTAL" // preciso retornar VLR_TOTAL em na variavel nTot
cQry += " FROM "
cQry += " " +RetSQLName('SF2')+" SF2 "
cQry += " WHERE "
cQry += " F2_CLIENTE = '"+ cCodCli +"' "
cQry +=" AND F2_LOJA = '"+ cLojaCli+"' "
cQry += " AND F2_EMISSAO >= '"+ dToS(dPri)+"' "
cQry += " AND F2_EMISSAO <= '"+ dToS(dFim)+"' "
cQry += " AND SF2.D_E_L_E_T_ = ' '"
cQry += ChangeQuery(cQry)
TcQuery cQry NEW ALIAS 'cSoma'
DbSelectArea('cSoma')
nTot := (cSoma)-> VLR_TOTAL
cSoma->(DbCloseArea())
if(nTot >= nLimite)
MsgInfo("Funcionario "+altrim(cNomCli)+" excedeu limite de R$ "+alltrim(nLimite)+" neste mês!","Aviso")
endif
endif
return ""
Galera alguém pode me dar uma ajuda??
Fiz essa função e preciso retornar o resultado de uma soma feita por uma query para uma variavel
ate ai beleza, só que na hora que eu vou testar na primeira vez é me apresentado a seguinte mensgem "variable does not exist cSoma"
se eu informar outro cliente ai aparece outra mensagem "Alias already in use: cSoma"
Resumindo na primeira vez o sistema fala que a variavel não existe e na segunda ele fala que a variavel ta em uso, mas se não existe como ta em uso
Alguem pode me dar uma força?
#include 'protheus.ch'
#include 'rwmake.ch'
#include 'topconn.ch'
user function LimFunMes()
local cQry := ""
local nLimite := GetMv("MV_LIMFUN") //parametro que contem limite de credito,esse limite não é o que esta no cadastro do cliente.
local dFim := M->C5_EMISSAO
local dPri := FirstDate(dFim) //recebe o primeiro dia do mês
local nTot := 0
local cCodCli := M->C5_CLIENTE
local cLojaCli:= M->C5_LOJACLI
local cNomCli := POSICIONE("SA1",1,XFILIAL("SA1")+M->C5_CLIENTE + C5_LOJACLI,"A1_NOME")
local cFuncio := POSICIONE("SA1",1,XFILIAL("SA1")+M->C5_CLIENTE + C5_LOJACLI,"A1_FUNCION")
if(cFuncio == 'S') //se for funcionario
cQry := " SELECT "
cQry += " SUM(F2_VALMERC) AS VLR_TOTAL" // preciso retornar VLR_TOTAL em na variavel nTot
cQry += " FROM "
cQry += " " +RetSQLName('SF2')+" SF2 "
cQry += " WHERE "
cQry += " F2_CLIENTE = '"+ cCodCli +"' "
cQry +=" AND F2_LOJA = '"+ cLojaCli+"' "
cQry += " AND F2_EMISSAO >= '"+ dToS(dPri)+"' "
cQry += " AND F2_EMISSAO <= '"+ dToS(dFim)+"' "
cQry += " AND SF2.D_E_L_E_T_ = ' '"
cQry += ChangeQuery(cQry)
TcQuery cQry NEW ALIAS 'cSoma'
DbSelectArea('cSoma')
nTot := (cSoma)-> VLR_TOTAL
cSoma->(DbCloseArea())
if(nTot >= nLimite)
MsgInfo("Funcionario "+altrim(cNomCli)+" excedeu limite de R$ "+alltrim(nLimite)+" neste mês!","Aviso")
endif
endif
return ""
Ultima edição: 8 anos 2 meses atrás por simoes.
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
8 anos 2 meses atrás #31193
por kanaamlrr
Respondido por kanaamlrr no tópico Rertornar Soma de uma query em uma variavel
tente dessa forma:
#include 'protheus.ch'
#include 'rwmake.ch'
#include 'topconn.ch'
user function LimFunMes()
local cQry := ""
local nLimite := GetMv("MV_LIMFUN") //parametro que contem limite de credito,esse limite não é o que esta no cadastro do cliente.
local dFim := M->C5_EMISSAO
local dPri := FirstDate(dFim) //recebe o primeiro dia do mês
local nTot := 0
local cCodCli := M->C5_CLIENTE
local cLojaCli:= M->C5_LOJACLI
local cNomCli := POSICIONE("SA1",1,XFILIAL("SA1")+M->C5_CLIENTE + C5_LOJACLI,"A1_NOME")
local cFuncio := POSICIONE("SA1",1,XFILIAL("SA1")+M->C5_CLIENTE + C5_LOJACLI,"A1_FUNCION")
Local cSoma := GetNextAlias()
if(cFuncio == 'S') //se for funcionario
cQry := " SELECT "
cQry += " SUM(F2_VALMERC) AS VLR_TOTAL" // preciso retornar VLR_TOTAL em na variavel nTot
cQry += " FROM "
cQry += " " +RetSQLName('SF2')+" SF2 "
cQry += " WHERE "
cQry += " F2_CLIENTE = '"+ cCodCli +"' "
cQry +=" AND F2_LOJA = '"+ cLojaCli+"' "
cQry += " AND F2_EMISSAO >= '"+ dToS(dPri)+"' "
cQry += " AND F2_EMISSAO <= '"+ dToS(dFim)+"' "
cQry += " AND SF2.D_E_L_E_T_ = ' '"
cQry += ChangeQuery(cQry)
TcQuery cQry NEW ALIAS cSoma
DbSelectArea(cSoma)
nTot := (cSoma)-> VLR_TOTAL
cSoma->(DbCloseArea())
if(nTot >= nLimite)
MsgInfo("Funcionario "+altrim(cNomCli)+" excedeu limite de R$ "+alltrim(nLimite)+" neste mês!","Aviso")
endif
endif
return ""
Por favor Acessar ou Registrar para participar da conversa.
- simoes
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 51
- Obrigados Recebidos: 0
8 anos 1 mês atrás - 8 anos 1 mês atrás #31233
por simoes
Respondido por simoes no tópico Rertornar Soma de uma query em uma variavel
Bom dia,
Não deu certo não, depois que executo é me apresentado a seguinte mensagem "Alias does not exist SCGN000002".
Não deu certo não, depois que executo é me apresentado a seguinte mensagem "Alias does not exist SCGN000002".
Ultima edição: 8 anos 1 mês atrás por simoes. Razão: Informação estava errada.
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
- simoes
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 51
- Obrigados Recebidos: 0
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
8 anos 1 mês atrás #31238
por kanaamlrr
Se der erro, verifique em qual linha que o erro é apresentado e coloque aqui..
Respondido por kanaamlrr no tópico Rertornar Soma de uma query em uma variavel
#include 'protheus.ch'
#include 'rwmake.ch'
#include 'topconn.ch'
user function LimFunMes()
local cQry := ""
local nLimite := GetMv("MV_LIMFUN") //parametro que contem limite de credito,esse limite não é o que esta no cadastro do cliente.
local dFim := M->C5_EMISSAO
local dPri := FirstDate(dFim) //recebe o primeiro dia do mês
local nTot := 0
local cCodCli := M->C5_CLIENTE
local cLojaCli:= M->C5_LOJACLI
local cNomCli := POSICIONE("SA1",1,XFILIAL("SA1")+M->C5_CLIENTE + C5_LOJACLI,"A1_NOME")
local cFuncio := POSICIONE("SA1",1,XFILIAL("SA1")+M->C5_CLIENTE + C5_LOJACLI,"A1_FUNCION")
Local cSoma := GetNextAlias()
if(cFuncio == 'S') //se for funcionario
cQry := " SELECT "
cQry += " SUM(F2_VALMERC) AS VLR_TOTAL" // preciso retornar VLR_TOTAL em na variavel nTot
cQry += " FROM "
cQry += " " +RetSQLName('SF2')+" SF2 "
cQry += " WHERE "
cQry += " F2_CLIENTE = '"+ cCodCli +"' "
cQry +=" AND F2_LOJA = '"+ cLojaCli+"' "
cQry += " AND F2_EMISSAO >= '"+ dToS(dPri)+"' "
cQry += " AND F2_EMISSAO <= '"+ dToS(dFim)+"' "
cQry += " AND SF2.D_E_L_E_T_ = ' '"
cQry += ChangeQuery(cQry)
PlsQuery(cQry,cSoma)
nTot := (cSoma)->VLR_TOTAL
cSoma->(DbCloseArea())
if(nTot >= nLimite)
MsgInfo("Funcionario "+altrim(cNomCli)+" excedeu limite de R$ "+alltrim(nLimite)+" neste mês!","Aviso")
endif
endif
return ""
Se der erro, verifique em qual linha que o erro é apresentado e coloque aqui..
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Funções AdvPL
- Rertornar Soma de uma query em uma variavel
Tempo para a criação da página:0.139 segundos