Perguntas Soma de valores

Mais
7 anos 9 meses atrás #31788 por diegoo_martins
Pessoal, bom dia.

Preciso retornar o valor da variável nTotMao após a soma na query.
A query está funcionando. POrém, o retorno sempre está sendo 0.

Segue fonte.

User Function CalcMOD()

Local nTotMao := 0
Local cQuery := ""

While SZ1->(!EOF())

//Trecho da Query
cQuery := " SELECT Z1_FILIAL,Z1_ITEM, Z1_NUM, Z1_COD,Z1_DESCR,Z1_UM,Z8_NUM, Z1_QUANT, Z1_VALOR, Z1_PRCUNIT, "
cQuery += " SUM(Z1_VALOR) AS nTotMao "
cQuery += " FROM " + RetSqlName("SZ1") + " SZ1 "
cQuery += " JOIN " + RetSqlName("SZ8") + " SZ8 "
cQuery += " ON SZ1.Z1_NUM = SZ8.Z8_NUM"
cQuery += " WHERE SZ1.D_E_L_E_T_ = '' "
cQuery += " GROUP BY Z1_FILIAL,Z1_ITEM, Z1_NUM, Z1_COD,Z1_DESCR,Z1_UM,Z8_NUM, Z1_QUANT, Z1_VALOR, Z1_PRCUNIT "
cQuery += " ORDER BY Z1_NUM "

TcQuery cQuery new alias "SZ1"
DbSelectArea("SZ1")
SZ1->(DbGoTop())

If Select("SZ1") > 0
dbSelectArea("SZ1")
dbCloseArea()
EndIf

//Fim do trecho
nTotMao += Z1_VALOR
Enddo

MsgAlert( "R$: " + cValToChar(nTotMao) )

Return

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 9 meses atrás #31794 por admin
Respondido por admin no tópico Soma de valores
Código Refeito:
[code]User Function CalcMOD()

Local nTotMao := 0
Local cQuery := ""

//Trecho da Query
cQuery := " SELECT Z1_FILIAL,Z1_ITEM, Z1_NUM, Z1_COD,Z1_DESCR,Z1_UM,Z8_NUM, Z1_QUANT, Z1_VALOR, Z1_PRCUNIT, "
cQuery += " SUM(Z1_VALOR) AS TOTAL "
cQuery += " FROM " + RetSqlName("SZ1") + " SZ1 "
cQuery += " JOIN " + RetSqlName("SZ8") + " SZ8 "
cQuery += " ON SZ1.Z1_NUM = SZ8.Z8_NUM"
cQuery += " WHERE SZ1.D_E_L_E_T_ = '' "
cQuery += " GROUP BY Z1_FILIAL,Z1_ITEM, Z1_NUM, Z1_COD,Z1_DESCR,Z1_UM,Z8_NUM, Z1_QUANT, Z1_VALOR, Z1_PRCUNIT "
cQuery += " ORDER BY Z1_NUM "

TcQuery cQuery new alias "TMP1"
DbSelectArea("TMP1")
TMP1->(DbGoTop())

nTotMao := 0
While TMP1->(!EOF())

     nTotMao += TMP1->TOTAL

     TMP1->(dbSkip(1))
Enddo

MsgAlert( "R$: " + cValToChar(nTotMao) )

TMP1->(dbCloseArea())

Return
[/code]

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 9 meses atrás #31797 por diegoo_martins
Respondido por diegoo_martins no tópico Soma de valores
Perfeito!!
Muito Obrigado.

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 9 meses atrás #31799 por diegoo_martins
Respondido por diegoo_martins no tópico Soma de valores
Só mais um detalhe....

Preciso utilizar o resultado da variável nTotMAO em outra função dentro do mesmo fonte e desta forma abaixo retorna o valor 0,00.

User Function CalcTot()

Local nTotal := 0
Local nTotMao := 0
Local nTotMer := 0

nTotal := nTotMao + nTotMer

MsgAlert( "R$: " + cValToChar(nTotal) )

Return

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 9 meses atrás #31801 por admin
Respondido por admin no tópico Soma de valores
User Function CalcMOD()

Local nTotMao := 0
Local cQuery := ""

//Trecho da Query
cQuery := " SELECT Z1_FILIAL,Z1_ITEM, Z1_NUM, Z1_COD,Z1_DESCR,Z1_UM,Z8_NUM, Z1_QUANT, Z1_VALOR, Z1_PRCUNIT, "
cQuery += " SUM(Z1_VALOR) AS TOTAL "
cQuery += " FROM " + RetSqlName("SZ1") + " SZ1 "
cQuery += " JOIN " + RetSqlName("SZ8") + " SZ8 "
cQuery += " ON SZ1.Z1_NUM = SZ8.Z8_NUM"
cQuery += " WHERE SZ1.D_E_L_E_T_ = '' "
cQuery += " GROUP BY Z1_FILIAL,Z1_ITEM, Z1_NUM, Z1_COD,Z1_DESCR,Z1_UM,Z8_NUM, Z1_QUANT, Z1_VALOR, Z1_PRCUNIT "
cQuery += " ORDER BY Z1_NUM "

TcQuery cQuery new alias "TMP1"
DbSelectArea("TMP1")
TMP1->(DbGoTop())

nTotMao := 0
While TMP1->(!EOF())

     nTotMao += TMP1->TOTAL

     TMP1->(dbSkip(1))
Enddo

MsgAlert( "R$: " + cValToChar(nTotMao) )

TMP1->(dbCloseArea())

Return nTotMao

User Function CalcTot(nTotMao)
Local nTotal := 0
Local nTotMer := 0

DEFAULT nTotMao := 0

nTotal := nTotMao + nTotMer

MsgAlert( "R$: " + cValToChar(nTotal) )

Return



nTotMao := U_CalcMOD()

U_CalcTot(nTotMao)

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 9 meses atrás #31805 por diegoo_martins
Respondido por diegoo_martins no tópico Soma de valores
Desculpa a demora na resposta..Coloquei desta forma e deu erro

User Function CalcTot(nTotMao,nTotMer)

Local nTotal := 0
Local nTotMer := 0

DEFAULT nTotMao := 0
DEFAULT nTotMer := 0

nTotal := (nTotMao + nTotMer) // LINHA COM ERRO

MsgAlert( "R$: " + cValToChar(nTotal) )

Return

=> type mismatch on + on U_CALCTOT(HWORCA.PRW) 15/02/2017 11:59:20 line : 377

Por favor Acessar ou Registrar para participar da conversa.

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