TOTALIZADOR DE OR?AMENTOS ENTRE DATAS POR CLIENTE
Preciso de ajuda para criar um relatório com totalizador de orçamentos gerados entre datas por Cliente. Ex Alguns clientes pagam quando fecha o mês então faço o orçamento dos serviços prestados, só que quando for fechar o mês quero puxar os orçamentos gerados em uma unica via, no form contem 1 DataCombo Cliente , 2 DtPicker Data Inicial e Data Final com cmdimprimir. Banco Mysql , Data Report
Se Puderem fazer um tutorial passo a passo agradeço.
E no relatório tem que conter.
Cliente: Fulano de Tal
-------------------------------------------------------------------------------------------------------------------------------------------------
Data Nº Orç. Descrição Qtde Un/Hr Vlr Unit VlrTotal
-------------------------------------------------------------------------------------------------------------------------------------------------
01/09/2014 10 Serviço de Torno 2 Hr 50,00 100,00
Barra de Ferro 3/8 3 Un 30,00 90,00
--------------------------------------------------------------------------------------------------------------------------------------------------
Total 190,00
-------------------------------------------------------------------------------------------------------------------------------------------------
05/09/2014 10 Serviço de Torno 5 Hr 50,00 250,00
Barra de Ferro 3/8 3 Un 30,00 90,00
Barra de ferro 5/16 2 Un 25,00 50,00
--------------------------------------------------------------------------------------------------------------------------------------------------
Total 390,00
---------------------------------------------------------------------------------------------------------------------------------------------------
Total de Orçamentos: 2 Total Geral 580,00
Se Puderem fazer um tutorial passo a passo agradeço.
E no relatório tem que conter.
Cliente: Fulano de Tal
-------------------------------------------------------------------------------------------------------------------------------------------------
Data Nº Orç. Descrição Qtde Un/Hr Vlr Unit VlrTotal
-------------------------------------------------------------------------------------------------------------------------------------------------
01/09/2014 10 Serviço de Torno 2 Hr 50,00 100,00
Barra de Ferro 3/8 3 Un 30,00 90,00
--------------------------------------------------------------------------------------------------------------------------------------------------
Total 190,00
-------------------------------------------------------------------------------------------------------------------------------------------------
05/09/2014 10 Serviço de Torno 5 Hr 50,00 250,00
Barra de Ferro 3/8 3 Un 30,00 90,00
Barra de ferro 5/16 2 Un 25,00 50,00
--------------------------------------------------------------------------------------------------------------------------------------------------
Total 390,00
---------------------------------------------------------------------------------------------------------------------------------------------------
Total de Orçamentos: 2 Total Geral 580,00
Da uma olha aqui: http://www.macoratti.net/dat_rpt2.htm
Você pode também fazer uma select com totalizador usando o SUM.
Você pode também fazer uma select com totalizador usando o SUM.
Basso,
Dar uma dica do relatório (layout) fica meio dificil, porém se você quiser dicas de como efectuar a consulta é muito mais fácil.
Por exemplo vai depender muito de como você estruturou as tabelas:
Select sum(orcamento) from orcamento where data between [ô][Ô]& data_inicial &[Ô][ô] and [ô][Ô]& data_final &[Ô][ô] and nome_cliente=[ô][Ô]& cmbcliente.tex &[Ô][ô][Ô]
essa linha resolve a questão do somatório dos orçamentos nas no intervalo seleccionado. O resto depende de como vc organizou as tabelas para poder elaborar a consulta para obtenção dos demais dados do cliente.
Dar uma dica do relatório (layout) fica meio dificil, porém se você quiser dicas de como efectuar a consulta é muito mais fácil.
Por exemplo vai depender muito de como você estruturou as tabelas:
Select sum(orcamento) from orcamento where data between [ô][Ô]& data_inicial &[Ô][ô] and [ô][Ô]& data_final &[Ô][ô] and nome_cliente=[ô][Ô]& cmbcliente.tex &[Ô][ô][Ô]
essa linha resolve a questão do somatório dos orçamentos nas no intervalo seleccionado. O resto depende de como vc organizou as tabelas para poder elaborar a consulta para obtenção dos demais dados do cliente.
Esse é o meu código ele esta até funcionando mas não sai a relação completa dos produtos sai somente quando esta 1 produto no orçamento se tiver mais não aparece os outros. Como poderia fazer também para mostrar no relatório o valor total por produto e valor total geral.
Private Sub cmdImprimir_Click()
Dim vDataInicial As String
Dim vDataFinal As String
If DatProdutos.Text = [Ô][Ô] Then
DatProdutos.SetFocus
Exit Sub
End If
[ô]Formata as variáveis para o padrão da instrução SQL
vDataInicial = Format(txtDataInicial.Value, [Ô]yyyy-mm-dd[Ô])
vDataFinal = Format(txtDataFinal.Value, [Ô]yyyy-mm-dd[Ô])
Comando.ActiveConnection = Conexao
Comando.CommandType = adCmdText
[ô]Instrução SQL para impressão do relatório,
[ô]lembrando que a utilização do inner join tem a função de relacionar tabelas.
Comando.CommandText = [Ô]Select ORCAMENTO_CAB.DATA_ORCAMENTO, ORCAMENTO_DET.ID_ORCAMENTO,PRODUTOS.DESCRICAO,VLR_ [Ô] _
& [Ô]ORCAMENTO_DET.QTDE, ORCAMENTO_DET.VLR_UNITARIO [Ô] _
& [Ô]From ORCAMENTO_DET inner join ORCAMENTO_CAB on ORCAMENTO_DET.ID_ORCAMENTO=ORCAMENTO_CAB.ID [Ô] _
& [Ô]inner join CLIENTES on ORCAMENTO_CAB.ID_CLIENTE=CLIENTES.ID [Ô] _
& [Ô]inner join PRODUTOS on PRODUTOS.ID=ORCAMENTO_DET.ID_PRODUTO [Ô] _
& [Ô]Where CLIENTES.RAZAO_NOME = [ô][Ô] & DatProdutos.Text & [Ô][ô] and ORCAMENTO_CAB.DATA_ORCAMENTO [Ô] _
& [Ô]Between [ô][Ô] & vDataInicial & [Ô][ô] And [ô][Ô] & vDataFinal & [Ô][ô][Ô] _
& [Ô] Order By ORCAMENTO_CAB.DATA_ORCAMENTO[Ô]
Comando.Execute
Consulta.CursorLocation = adUseClient
Consulta.Open Comando
Set RelVendaProd.DataSource = Consulta
RelVendaProd.DataMember = [Ô][Ô]
[ô]Atribui cada campo na ordem do SQL a uma caixa de texto do relatório
With RelVendaProd.Sections([Ô]Section1[Ô]).Controls
.Item(1).DataField = Consulta(0).Name [ô]Data
.Item(2).DataField = Consulta(1).Name [ô]NºOrç.
.Item(3).DataField = Consulta(2).Name [ô]Descrição Produto
.Item(5).DataField = Consulta(3).Name [ô]Qtde
.Item(4).DataField = Consulta(4).Name [ô]Vlr Unit
End With
[ô]Atribui a função soma do relatório o campo quantidade para somatória.
RelVendaProd.Sections([Ô]Section5[Ô]).Controls.Item(2).DataField = Consulta(3).Name
RelVendaProd.Sections([Ô]Section4[Ô]).Controls.Item(2).Caption = Format(Now, [Ô]dd/mm/yyyy - hh:mm[Ô])
RelVendaProd.Refresh
RelVendaProd.Show vbModal
Consulta.Close
Unload Me
End Sub
relatório atual esta assim:
Data NºOrç. Descrição Qtde Vlr Unit.
---------------------------------------------------------------------------------------------------------------------------
25/06/2011 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 1 50,00
26/06/2011 18 yyyyyyyyyyyyyyyyyyyyyyyyyy 2 60,00
---------------------------------------------------------------------------------------------------------------------------
Private Sub cmdImprimir_Click()
Dim vDataInicial As String
Dim vDataFinal As String
If DatProdutos.Text = [Ô][Ô] Then
DatProdutos.SetFocus
Exit Sub
End If
[ô]Formata as variáveis para o padrão da instrução SQL
vDataInicial = Format(txtDataInicial.Value, [Ô]yyyy-mm-dd[Ô])
vDataFinal = Format(txtDataFinal.Value, [Ô]yyyy-mm-dd[Ô])
Comando.ActiveConnection = Conexao
Comando.CommandType = adCmdText
[ô]Instrução SQL para impressão do relatório,
[ô]lembrando que a utilização do inner join tem a função de relacionar tabelas.
Comando.CommandText = [Ô]Select ORCAMENTO_CAB.DATA_ORCAMENTO, ORCAMENTO_DET.ID_ORCAMENTO,PRODUTOS.DESCRICAO,VLR_ [Ô] _
& [Ô]ORCAMENTO_DET.QTDE, ORCAMENTO_DET.VLR_UNITARIO [Ô] _
& [Ô]From ORCAMENTO_DET inner join ORCAMENTO_CAB on ORCAMENTO_DET.ID_ORCAMENTO=ORCAMENTO_CAB.ID [Ô] _
& [Ô]inner join CLIENTES on ORCAMENTO_CAB.ID_CLIENTE=CLIENTES.ID [Ô] _
& [Ô]inner join PRODUTOS on PRODUTOS.ID=ORCAMENTO_DET.ID_PRODUTO [Ô] _
& [Ô]Where CLIENTES.RAZAO_NOME = [ô][Ô] & DatProdutos.Text & [Ô][ô] and ORCAMENTO_CAB.DATA_ORCAMENTO [Ô] _
& [Ô]Between [ô][Ô] & vDataInicial & [Ô][ô] And [ô][Ô] & vDataFinal & [Ô][ô][Ô] _
& [Ô] Order By ORCAMENTO_CAB.DATA_ORCAMENTO[Ô]
Comando.Execute
Consulta.CursorLocation = adUseClient
Consulta.Open Comando
Set RelVendaProd.DataSource = Consulta
RelVendaProd.DataMember = [Ô][Ô]
[ô]Atribui cada campo na ordem do SQL a uma caixa de texto do relatório
With RelVendaProd.Sections([Ô]Section1[Ô]).Controls
.Item(1).DataField = Consulta(0).Name [ô]Data
.Item(2).DataField = Consulta(1).Name [ô]NºOrç.
.Item(3).DataField = Consulta(2).Name [ô]Descrição Produto
.Item(5).DataField = Consulta(3).Name [ô]Qtde
.Item(4).DataField = Consulta(4).Name [ô]Vlr Unit
End With
[ô]Atribui a função soma do relatório o campo quantidade para somatória.
RelVendaProd.Sections([Ô]Section5[Ô]).Controls.Item(2).DataField = Consulta(3).Name
RelVendaProd.Sections([Ô]Section4[Ô]).Controls.Item(2).Caption = Format(Now, [Ô]dd/mm/yyyy - hh:mm[Ô])
RelVendaProd.Refresh
RelVendaProd.Show vbModal
Consulta.Close
Unload Me
End Sub
relatório atual esta assim:
Data NºOrç. Descrição Qtde Vlr Unit.
---------------------------------------------------------------------------------------------------------------------------
25/06/2011 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 1 50,00
26/06/2011 18 yyyyyyyyyyyyyyyyyyyyyyyyyy 2 60,00
---------------------------------------------------------------------------------------------------------------------------
Faça seu login para responder