GRÁFICO RECEITA E DESPESA

 Tópico anterior Próximo tópico Novo tópico

GRÁFICO RECEITA E DESPESA

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#485790 - 06/12/2018 13:30:14

APRENDENDOVB
JOINVILLE
Cadast. em:Novembro/2018


 Anexos estao visíveis somente para usuários registrados

Senhores,

Criei um form onde mostra a receita do 1º Trimestre do ano.
Até tudo certo, porém não consigo colocar mais a despesa (mais um Y).

Abaixo o código de deu certo da receita.
  Public Class frm_grafico
    Dim Y_receita() As Double = {25000, 30000, 40000}

    Dim xPaises() As String = {"Janeiro", "Fevereiro", "Marco"}

    Private Sub frm_grafico_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Chart1.Series(0).Points.DataBindXY(xPaises, Y_receita)
    End Sub
End Class



Tentei colocar mais um Y (despesa) na série no gráfico, mas não deu certo.
Abaixo a tentativa sem sucesso
  Public Class frm_grafico
    Dim Y_receita() As Double = {25000, 30000, 40000}
    Dim Y_Despesa() As Double = {5000, 5000, 7000}
    Dim xPaises() As String = {"Janeiro", "Fevereiro", "Marco"}

    Private Sub frm_grafico_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Chart1.Series(0).Points.DataBindXY(xPaises, Y_receita, Y_Despesa)
    End Sub
End Class


O que eu estou fazendo de errado?




#485798 - 06/12/2018 16:56:41

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Acredito que isto dê uma luz na seu propósito.
http://www.macoratti.net/16/04/vbn_datgraf1.htm



#485802 - 06/12/2018 22:32:28

NICKOSOFT
SANTO ANDRE
Cadast. em:Maio/2009


nas propriedades do chart, em series vc deve adicionar qnts series precisa......
depois no codigo vc pode alimentar os valores



#485894 - 10/12/2018 23:50:47

APRENDENDOVB
JOINVILLE
Cadast. em:Novembro/2018


Citação:
:
nas propriedades do chart, em series vc deve adicionar qnts series precisa......
depois no codigo vc pode alimentar os valores


Deu certo

      Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim Y_receita() As Double = {25000, 30000, 40000}
        Dim Y_despesa() As Double = {22000, 24000, 38000}

        Dim xPaises() As String = {"Janeiro", "Fevereiro", "Marco"}

        Chart1.Series(0).Points.DataBindXY(xPaises, Y_receita)
        Chart1.Series(1).Points.DataBindXY(xPaises, Y_despesa)
    End Su




#485895 - 10/12/2018 23:53:32

APRENDENDOVB
JOINVILLE
Cadast. em:Novembro/2018


Citação:
:
Acredito que isto dê uma luz na seu propósito.
http://www.macoratti.net/16/04/vbn_datgraf1.htm


Obrigado pela dica,

Mas tentei falar a mesma coisa com o banco de dados Mysql, porme não estou conseguindo
Abaixo o código pra puxar as despeas

  
Imports System.Data.OleDb
Imports MySql.Data.MySqlClient

Public Class frm_rel_crp
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Chart1.Series.Add("Despesas")
        'Chart1.Series.Add("Vendas")

        Dim sql As String = ""

        Using con As MySqlConnection = GetConnection_MYSQL()
            Try
                con.Open()

                sql = "SELECT Mes, Valor FROM despesas"

                Dim cmd As MySqlCommand = New MySqlCommand(sql, con)
                Dim da As MySqlDataAdapter = New MySqlDataAdapter(cmd)
                Dim dt As DataTable = New DataTable
                da.Fill(dt)

                Chart1.Series("Despesas").Points.AddXY(dt("Mes").ToString, dt("Valor").ToString)

            Catch ex As Exception
                MsgBox("Menssagem de erro:" &
                       ex.Message, MsgBoxStyle.Critical, "Atenção!")

            Finally
                con.Close()

            End Try
        End Using

    End Sub




#485898 - 11/12/2018 08:32:17

NICKOSOFT
SANTO ANDRE
Cadast. em:Maio/2009


nao entendi bem o q nao deu certo nessa ultima postagem sobre alimentar o grafico, mas vc deve seguir o mesmo padrao

Dim Y_receita() As Double = {25000, 30000, 40000}
        Dim Y_despesa() As Double = {22000, 24000, 38000}

        Dim xPaises() As String = {"Janeiro", "Fevereiro", "Marco"}

        Chart1.Series(0).Points.DataBindXY(xPaises, Y_receita)
        Chart1.Series(1).Points.DataBindXY(xPaises, Y_despesa)

primeira coisa alimente o array de receitas mes a mes, e faca o mesmo com as despesas, (as duas primeiras linhas, ai vc tem q trabalhar a logica de como os dados estao na sua base) depois alimente o array dos meses (terceira linha), com os 3 arrays alimentados vc formaliza o grafico (as duas ultimas linhas)



#485913 - 11/12/2018 18:07:10

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Acho que não vai conseguir nada com este Datable.
Use o Datareader.
Use uma soma do Valor com Group by tipo.
  Dim cmd As MySqlCommand = New MySqlCommand("SELECT Mes, Sum(Valor) as Tot FROM Despesas Group by mes ", con)
            Dim dr As MySqlDataReader = cmd.ExecuteReader
            While dr.Read
                Chart1.Series("Despesas").Points.AddXY(dr("Mes").ToString, dr("Valor"))
            End While
Quanto ao o Bloco Using não tem a necessidade de fechar o Banco.
É fechado de forma automática.



#486228 - 27/12/2018 13:22:17

APRENDENDOVB
JOINVILLE
Cadast. em:Novembro/2018


 Anexos estao visíveis somente para usuários registrados

Citação:
:
Acho que não vai conseguir nada com este Datable.
Use o Datareader.
Use uma soma do Valor com Group by tipo.
  Dim cmd As MySqlCommand = New MySqlCommand("SELECT Mes, Sum(Valor) as Tot FROM Despesas Group by mes ", con)
            Dim dr As MySqlDataReader = cmd.ExecuteReader
            While dr.Read
                Chart1.Series("Despesas").Points.AddXY(dr("Mes").ToString, dr("Valor"))
            End While
Quanto ao o Bloco Using não tem a necessidade de fechar o Banco.
É fechado de forma automática.


Amigão, estou descobri qual é o erro do "Valor" no gráfico.

Abaixo o código:
      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Chart1.Series.Add("Despesas")
        'Chart1.Series.Add("Vendas")

        Dim sql As String = ""

        Using con As MySqlConnection = GetConnection_MYSQL()
            Try
                con.Open()

                Dim cmd As MySqlCommand = New MySqlCommand("SELECT Mes, Sum(Valor) as Total FROM despesas Group by mes ", con)
                Dim dr As MySqlDataReader = cmd.ExecuteReader
                While dr.Read
                    Chart1.Series("Despesas").Points.AddXY(dr("Mes").ToString, dr("Valor"))
                End While

            Catch ex As Exception
                MsgBox("Menssagem de erro:" &
                       ex.Message, MsgBoxStyle.Critical, "Atenção!")

            Finally
                con.Close()

            End Try
        End Using
    End Sub




#486229 - 27/12/2018 15:30:43

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Chart1.Series.Add("Despesas")
        'Chart1.Series.Add("Vendas")

        Dim sql As String = ""

        Using con As MySqlConnection = GetConnection_MYSQL()
            Try
                con.Open()

              Dim cmd As MySqlCommand = New MySqlCommand("SELECT Mes, Sum(Valor) as Total FROM despesas Group by mes ", con)
ou então
Dim cmd As MySqlCommand = New MySqlCommand("SELECT Mes, Sum(Valor) as Valor FROM despesas Group by mes ", con)
          Dim dr As MySqlDataReader = cmd.ExecuteReader
                While dr.Read
                    Chart1.Series("Despesas").Points.AddXY(dr("Mes").ToString, dr("Total")) ' Foi mudado  as Total
                   'Chart1.Series("Despesas").Points.AddXY(dr("Mes").ToString, dr("Valor")) ' Foi mudado  as Valor
                End While

            Catch ex As Exception
                MsgBox("Menssagem de erro:" &
                       ex.Message, MsgBoxStyle.Critical, "Atenção!")

            Finally
                con.Close()

            End Try
        End Using
    End Sub



#486241 - 28/12/2018 09:18:57

APRENDENDOVB
JOINVILLE
Cadast. em:Novembro/2018


 Anexos estao visíveis somente para usuários registrados

Citação:
:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Chart1.Series.Add("Despesas")
        'Chart1.Series.Add("Vendas")

        Dim sql As String = ""

        Using con As MySqlConnection = GetConnection_MYSQL()
            Try
                con.Open()

              Dim cmd As MySqlCommand = New MySqlCommand("SELECT Mes, Sum(Valor) as Total FROM despesas Group by mes ", con)
ou então
Dim cmd As MySqlCommand = New MySqlCommand("SELECT Mes, Sum(Valor) as Valor FROM despesas Group by mes ", con)
          Dim dr As MySqlDataReader = cmd.ExecuteReader
                While dr.Read
                    Chart1.Series("Despesas").Points.AddXY(dr("Mes").ToString, dr("Total")) ' Foi mudado  as Total
                   'Chart1.Series("Despesas").Points.AddXY(dr("Mes").ToString, dr("Valor")) ' Foi mudado  as Valor
                End While

            Catch ex As Exception
                MsgBox("Menssagem de erro:" &
                       ex.Message, MsgBoxStyle.Critical, "Atenção!")

            Finally
                con.Close()

            End Try
        End Using
    End Sub



Perfeito OMAR2011
Deu certo,

Preciso fazer outro gráfico para outra tabela,
Montei os códigos conforme sua orientação, deu certo também, porém eu preciso agrupar por mês a coluna    dataVen
Conforme imagem,  a tabela cad_cr2   ,

      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Chart1.Series.Add("Despesas")
        'Chart1.Series.Add("Vendas")

        Dim sql As String = ""

        Using con As MySqlConnection = GetConnection_MYSQL()
            Try
                con.Open()

                Dim cmd As MySqlCommand = New MySqlCommand("SELECT dataVen, Sum(valorTotal) as valorTotal FROM cad_cr2 Group by dataVen ", con)
                Dim dr As MySqlDataReader = cmd.ExecuteReader
                While dr.Read
                    Chart1.Series("Despesas").Points.AddXY(dr("dataVen").ToString, dr("valorTotal")) ' Foi mudado  as Valor
                End While

            Catch ex As Exception
                MsgBox("Menssagem de erro:" &
                       ex.Message, MsgBoxStyle.Critical, "Atenção!")

            Finally
                con.Close()

            End Try
        End Using
    End Sub




#486249 - 28/12/2018 10:55:50

APRENDENDOVB
JOINVILLE
Cadast. em:Novembro/2018


Coloquei um Group by MONTH(dataVen), mas ficou a mesma coisa,

Dim cmd As MySqlCommand = New MySqlCommand("SELECT dataVen, Sum(valorTotal) as valorTotal FROM cad_cr2 Group by MONTH(dataVen) ", con)






 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por APRENDENDOVB em 21/05/2019 20:45:12