ELEMENTO GRáFICO (MSCHART)

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

ELEMENTO GRáFICO (MSCHART)

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#497130 - 31/05/2021 17:15:14

CYBERMAC
RIBEIRAO PRETO
Cadast. em:Dezembro/2008


Pessoal, boa tarde!
Mais uma vez peço ajuda dos colegas com a situação abaixo.

Estou usando o MSCHART que já está no VB6, porém, a seguinte situação acontece.

Quando a rotina de montagem do gráfico termina, o VB simplesmente não retorna os dados para o gráfico.
Rodando a rotina no modo 'DEBUG', é visível que ele traz as a informações montando o gráfico de forma correta.
O que pode ser?

Abaixo a rotina que monta o gráfico

   'monta gráfico para pedidos de venda
   txtdata1 = CDate(Date) - 7
   txtdata2 = CDate(Date)
  
   CnxPedido = 'SELECT ID, IDPEDIDO, IDEMPRESA, DATAEMISSAO, SUM(TOTALPEDIDO) AS TOTALPEDIDO ' & _
                         'From PEDIDOS Where DATAEMISSAO Between '' & Format(txtdata1, 'YYYY-MM-DD') & '' AND '' & _
                          Format(txtdata2, 'YYYY-MM-DD') & '' GROUP BY DATAEMISSAO ORDER BY DATAEMISSAO'
   Conexao_Servidor (CnxPedido)
   TPedidos.Open CnxPedido, cn, adOpenDynamic, adLockOptimistic
  
   MSChart5.Visible = True
   MSChart5.chartType = 1
   MSChart5.ColumnCount = 7
   MSChart5.RowCount = 7
   MSChart5.ShowLegend = True
  
   i = 1
   While Not TPedidos.EOF()
         MSChart5.Column = i
         MSChart5.ColumnLabel = Day(TPedidos('DataEmissao'))
         MSChart5.Row = i
         MSChart5.RowLabel = Day(TPedidos('DataEmissao')) & ' - ' & Format(TPedidos('TotalPedido'), '#0.00')
         MSChart5.Data = Format(TPedidos('TotalPedido'), '#0.00')
         TPedidos.MoveNext
         i = i + 1
   Wend
   TPedidos.Close

   datapedido.RecordSource = CnxPedido
   datapedido.Refresh




#497140 - 01/06/2021 02:22:06

DS2T
BARRA MANSA
Cadast. em:Novembro/2010


Boa noite!

Poderia passar mais informações, fazendo o favor?

Pelo que entendi, quando você está debugando funciona. Mas quando você compila a aplicação e roda, no mesmo computador, o MsChart não aparece, correto? Ou seria num computador diferente do de desenvolvimento?


Uma coisa que achei particularmente estranha no código foi essa linha:

         MSChart5.Data = Format(TPedidos('TotalPedido'), '#0.00')


Essa linha não deveria se referir ao valor? Para mostrar no gráfico, ele espera um valor numérico. A partir do momento que você coloca um Format, vira uma String.
Pode testar pra ver se assim vai?


         MSChart5.Data = TPedidos('TotalPedido')





Não nasci pra programar, mas preciso me alimentar...


#497141 - 01/06/2021 08:37:12

CYBERMAC
RIBEIRAO PRETO
Cadast. em:Dezembro/2008


DS2T, bom dia!

Vamos lá.

Estou criando em minha aplicação um DashBoard com alguns gráficos.
Os gráficos devem pegar previsões financeiras, saldos bancários, total de pedidos faturados por semana.
Comecei pelo pessoal do Depto Comercial que então seria o gráfico de pedidos faturados na semana. Esse gráfico deve mostrar os últimos 7 dias e seus valores correspondentes.

Marcando na rotina os pontos de 'debug', clicando em F5, o VB vai rodando linha a linha, assim dá para ir vendo como a aplicação vai se comportando e assim vejo que dessa forma as informações do gráfico são montadas corretamente.
O gráfico possui 7 colunas, sendo uma para cada dia da semana e 7 linha, sendo uma para cada valor somado e agrupado por dia conforme a instrução do sql acima.
Ao chegar na rotina de montagem de gráfico, a aplicação roda o select perfeitamente, logo após entra no 'loop' e é aí que está o problema.
Quando ele está no looping montando as coluna e valores, no modo 'debug', ou seja com as linhas marcadas para depuração é possível perceber que o gráfico vai tomando forma, porém, quando a aplicação encerra o looping o VB simplesmente 'desmonta' os dados do gráfico.

Fiz a alteração na linha como você comentou mas não surtiu efeito.

Tem mais alguma ideia do que pode ser?

Abcs,



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


Tópico encerrado, respostas não sao permitidas
Encerrado por CYBERMAC em 18/06/2021 16:21:46