- Fórum
- Protheus/Microsiga/Totvs
- Módulos do Protheus
- Módulo Faturamento
- Relatório Ranking Venda por Produto
Perguntas Relatório Ranking Venda por Produto
- Faccio
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 19
- Obrigados Recebidos: 0
11 anos 8 meses atrás #12088
por Faccio
Relatório Ranking Venda por Produto foi criado por Faccio
boa tarde colegas.
Alguém conhece ou desenvolveu algum relatório que tragas as informações do Ranking de Vendas por Produto em determinado período?
Se puder me ajudar agradeço.
Alguém conhece ou desenvolveu algum relatório que tragas as informações do Ranking de Vendas por Produto em determinado período?
Se puder me ajudar agradeço.
Por favor Acessar ou Registrar para participar da conversa.
- henry.charriere
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 492
- Obrigados Recebidos: 0
11 anos 7 meses atrás #12101
por henry.charriere
Respondido por henry.charriere no tópico Relatório Ranking Venda por Produto
Flavio, bom dia! Pode usar essa consulta e agrupar da forma que vc quizer! Acho que vai lhe antender, no meu caso estou pegando por item, mas como vc vai agrupar não tem problema.
Lembrando que pego por grupo de produtos aqui na minha empresa, qualquer coisa vc pode tirar.
SELECT
*
FROM dbo.SB1010 PRO
INNER JOIN dbo.SD2010 ITN ON PRO.B1_COD = ITN.D2_COD
INNER JOIN dbo.SF2010 NFS ON ITN.D2_DOC = NFS.F2_DOC AND ITN.D2_SERIE = NFS.F2_SERIE AND ITN.D2_CLIENTE = NFS.F2_CLIENTE AND ITN.D2_LOJA = NFS.F2_LOJA AND ITN.D2_FILIAL = NFS.F2_FILIAL
INNER JOIN dbo.SA1010 CLI ON NFS.F2_CLIENTE = CLI.A1_COD AND NFS.F2_LOJA = CLI.A1_LOJA
INNER JOIN dbo.SC6010 ITP ON ITN.D2_PEDIDO = ITP.C6_NUM AND ITN.D2_ITEMPV = ITP.C6_ITEM AND ITN.D2_FILIAL = ITP.C6_FILIAL
INNER JOIN dbo.SF4010 NAT ON ITN.D2_TES = NAT.F4_CODIGO
WHERE (ITN.D2_GRUPO = '052' OR ITN.D2_GRUPO = '050' OR ITN.D2_GRUPO = '051' OR ITN.D2_GRUPO = '053') AND (NFS.D_E_L_E_T_ <> '*') AND
(ITN.D_E_L_E_T_ <> '*') AND (NAT.F4_TIPO = 'S') AND (NAT.D_E_L_E_T_ <> '*') AND NFS.D_E_L_E_T_ <> '*' AND CLI.D_E_L_E_T_ <> '*'
Sem uso esse modelo de rel. como parametro;
#include "protheus.ch"
#Include "TopConn.ch"
#Include "Colors.ch"
User Function VENDVEND()
Local oReport
If TRepInUse()
dGet3 := FirstDay(dDatabase)
dGet4 := LastDay(dDatabase)
Pergunte("MTS0000002",.F.)
oReport := ReportDef()
oReport:PrintDialog()
EndIf
Return
Static Function ReportDef()
Local oReport
Local oSection
Local oBreak
Local sTitulo := "Vendas por vendedor - Período de " + dtoc(mv_par01) + ' a ' + dtoc(mv_par02)
oReport := TReport():New("VENDVEND", sTitulo ,"MTS0000002",{|oReport| PrintReport(oReport)},"Vendas por Vendedor")
oSection := TRSection():New(oReport,"Vendas por Vendedor",{"SD2"})
TRCell():New(oSection,"VENDEDOR","SD2")
/*TRCell():New(oSection,"DATA","SD2")
TRCell():New(oSection,"D2_TES","SD2")
TRCell():New(oSection,"F4_FINALID","SD2")
TRCell():New(oSection,"D2_DOC","SD2")
TRCell():New(oSection,"D2_CLIENTE","SD2")
TRCell():New(oSection,"A1_NOME","SD2")
TRCell():New(oSection,"D2_COD","SD2")
TRCell():New(oSection,"B1_DESC","SD2")
TRCell():New(oSection,"D2_UM","SD2")
TRCell():New(oSection,"D2_QUANT","SD2")
TRCell():New(oSection,"D2_PRCVEN","SD2")
TRCell():New(oSection,"D2_TOTAL","SD2") */
Return oReport
Static Function PrintReport(oReport)
Local oSection := oReport:Section(1)
Local cPart
Local cFiltro
#IFDEF TOP
MakeSqlExpr("MTS0000002")
oSection:BeginQuery()
BeginSql alias "QRYSD2"
//coloque sua query aqui
EndSql
oSection:EndQuery(mv_par04)
#ELSE
MakeAdvplExpr("MTS0000002")
#ENDIF
oSection:Print()
Return
Lembrando que pego por grupo de produtos aqui na minha empresa, qualquer coisa vc pode tirar.
SELECT
*
FROM dbo.SB1010 PRO
INNER JOIN dbo.SD2010 ITN ON PRO.B1_COD = ITN.D2_COD
INNER JOIN dbo.SF2010 NFS ON ITN.D2_DOC = NFS.F2_DOC AND ITN.D2_SERIE = NFS.F2_SERIE AND ITN.D2_CLIENTE = NFS.F2_CLIENTE AND ITN.D2_LOJA = NFS.F2_LOJA AND ITN.D2_FILIAL = NFS.F2_FILIAL
INNER JOIN dbo.SA1010 CLI ON NFS.F2_CLIENTE = CLI.A1_COD AND NFS.F2_LOJA = CLI.A1_LOJA
INNER JOIN dbo.SC6010 ITP ON ITN.D2_PEDIDO = ITP.C6_NUM AND ITN.D2_ITEMPV = ITP.C6_ITEM AND ITN.D2_FILIAL = ITP.C6_FILIAL
INNER JOIN dbo.SF4010 NAT ON ITN.D2_TES = NAT.F4_CODIGO
WHERE (ITN.D2_GRUPO = '052' OR ITN.D2_GRUPO = '050' OR ITN.D2_GRUPO = '051' OR ITN.D2_GRUPO = '053') AND (NFS.D_E_L_E_T_ <> '*') AND
(ITN.D_E_L_E_T_ <> '*') AND (NAT.F4_TIPO = 'S') AND (NAT.D_E_L_E_T_ <> '*') AND NFS.D_E_L_E_T_ <> '*' AND CLI.D_E_L_E_T_ <> '*'
Sem uso esse modelo de rel. como parametro;
#include "protheus.ch"
#Include "TopConn.ch"
#Include "Colors.ch"
User Function VENDVEND()
Local oReport
If TRepInUse()
dGet3 := FirstDay(dDatabase)
dGet4 := LastDay(dDatabase)
Pergunte("MTS0000002",.F.)
oReport := ReportDef()
oReport:PrintDialog()
EndIf
Return
Static Function ReportDef()
Local oReport
Local oSection
Local oBreak
Local sTitulo := "Vendas por vendedor - Período de " + dtoc(mv_par01) + ' a ' + dtoc(mv_par02)
oReport := TReport():New("VENDVEND", sTitulo ,"MTS0000002",{|oReport| PrintReport(oReport)},"Vendas por Vendedor")
oSection := TRSection():New(oReport,"Vendas por Vendedor",{"SD2"})
TRCell():New(oSection,"VENDEDOR","SD2")
/*TRCell():New(oSection,"DATA","SD2")
TRCell():New(oSection,"D2_TES","SD2")
TRCell():New(oSection,"F4_FINALID","SD2")
TRCell():New(oSection,"D2_DOC","SD2")
TRCell():New(oSection,"D2_CLIENTE","SD2")
TRCell():New(oSection,"A1_NOME","SD2")
TRCell():New(oSection,"D2_COD","SD2")
TRCell():New(oSection,"B1_DESC","SD2")
TRCell():New(oSection,"D2_UM","SD2")
TRCell():New(oSection,"D2_QUANT","SD2")
TRCell():New(oSection,"D2_PRCVEN","SD2")
TRCell():New(oSection,"D2_TOTAL","SD2") */
Return oReport
Static Function PrintReport(oReport)
Local oSection := oReport:Section(1)
Local cPart
Local cFiltro
#IFDEF TOP
MakeSqlExpr("MTS0000002")
oSection:BeginQuery()
BeginSql alias "QRYSD2"
//coloque sua query aqui
EndSql
oSection:EndQuery(mv_par04)
#ELSE
MakeAdvplExpr("MTS0000002")
#ENDIF
oSection:Print()
Return
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- Módulos do Protheus
- Módulo Faturamento
- Relatório Ranking Venda por Produto
Tempo para a criação da página:0.116 segundos