Visual Basic - Duda para Juan!!!

Life is soft - evento anual de software empresarial
 
Vista:

Duda para Juan!!!

Publicado por Carmen Ivette (28 intervenciones) el 22/08/2003 05:23:28
Hola, antes que nada perdona el atrevimiento de escribirte, mira estoy desesperada porque me urge terminar un programa que estoy haciendo y por mas que he buscado en los manuales no termino de concretar mis dudas, hace días tu me hiciste favor de indicar que con el control MSchart podía graficar una serie de datos, pero ahora el problema consiste en que por lo que he leido esa serie de datos debe estar en un DataGrid, mi duda consiste en cómo puedo hacer para: primero-realizar los cálculos para generar esa serie de datos y ya que los tenga calculos insertarlos en el Data Grid. Te agradecería muchisisisimo que me ayudaras, te repito estoy desesperada y no sé que hacer, además no tengo los discos de MSDN y pues más se me dificulta (no los he podido conseguir), y aunque ya busque en la página Web, no entendí muy bien, como te darás cuenta no tengo nada de experiencia en la programación y con trabajos he ido sacando poco a poco el programa pero estoy atoradisisima en eso. De ante mano, gracias.
Carmen Ivette Arzate Echeverría
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda para Juan!!!

Publicado por Juan (284 intervenciones) el 22/08/2003 10:32:44
No es necesario que los datos esten en un dataGrid ni nada parecido, se pueden insertar mediante código a través de algunas propiedades del MSChart. De momento te pongo un ejemplo que viene en la ayuda, donde se muestra la forma de asignar los datos que previamente se insertaron en un array:

Option Explicit
Option Base 1

Private Sub Form_Load()
Dim arrData(3, 1 To 3) 'El array es de tipo variant para poder poner las
'etiquetas que son cadenas de texto

arrData(1, 1) = "Ene" ' Establece las etiquetas en la primera serie.
arrData(2, 1) = "Feb"
arrData(3, 1) = "Mar"

arrData(1, 2) = 8 ' Inserta los valores numéricos
arrData(2, 2) = 4
arrData(3, 2) = 0.3

arrData(1, 3) = 0.2
arrData(2, 3) = 3
arrData(3, 3) = 6.3
MSChart1.ChartData = arrData ' Asigna los datos
End Sub

P.D.: de momento te conformas con esto hasta que te prepare algún ejemplillo de mi cosecha
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda para Juan!!!

Publicado por Juan (284 intervenciones) el 22/08/2003 11:46:21
Bueno pues ya tengo un ejemplo que mete datos de otra forma, también por código, sin bases de datos ni nada. El código te lo pondré en el siguiente mensaje porque me ha quedado un poco largo y no va a caber detrás de esta explicación.

Para que funcione necesitas insertar en un formulario los siguientes controles:
1. Un control MSChart llamado MSChart1.
2. Un commandButton llamado cmdFilasColumnas.
3. Otro commandButton, este llamado cmdValor.

Lo que hace el ejemplo es pedirte el nº de filas y columnas de MSChart con un inputBox, verás que te límita a un máximo de 9, lo he hecho así por comodidad, no es una limitación del MSChart. Esto lo hace al pinchar sobre cmdFilasColumnas.

Cuando pinchas sobre cmdValor te pide , también con un inputBox, el índice de la fila y la columna y un valor para insertar en ella.

Bueno, hasta aquí la explicación del ejemplo, como te he dicho el código te lo pongo en otro mensaje, tiene bastantes comentarios así que supongo que lo entenderás
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El código

Publicado por Juan (284 intervenciones) el 22/08/2003 11:47:54
Private Sub cmdFilasColumnas_Click()
Dim auxStr As String 'Recoge la cadena itroducida
Do
auxStr = InputBox("Inserta el nº de filas y columnas separados por coma(sólo valores de 1 a 9)")
'Pregunta hasta que la cadena coincida con el patron
Loop While Not (auxStr Like "[1-9],[1-9]")
'Establece nº de filas
MSChart1.RowCount = Val(Left$(auxStr, 1))
'Establece nº de columnas
MSChart1.ColumnCount = Val(Right$(auxStr, 1))
End Sub
Private Sub cmdValor_Click()
Dim auxStr As String 'Recoge la cadena itroducida
Dim patron As String 'Patron para verificar la introducción de datos
Dim msg As String 'Mensaje pregunta
'Construye el mensaje para la pregunta
msg = "Debes especificar 3 parámetros separados por comas." & vbNewLine
msg = msg & "1. Fila: un nº de 1 a " & Format(MSChart1.RowCount) & vbNewLine
msg = msg & "2. Columna: un nº de 1 a " & Format(MSChart1.ColumnCount) & vbNewLine
msg = msg & "3. Valor : cualquier cadena, si es númerico insertará dicho valor, si no se interpretará como una etiqueta"
'Construye el patron para filtrar la respuesta
patron = "[1-" & Format(MSChart1.RowCount) & "],[1-" & Format(MSChart1.ColumnCount) & "],*"
Do
auxStr = InputBox(msg)
'Pregunta hasta que la cadena coincida con el patron
Loop While Not (auxStr Like patron)
'Establece la fila activa
MSChart1.Row = Val(Left$(auxStr, 1))
'Establece la columna activa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Salió cortado, te pongo lo k falta

Publicado por Juan (284 intervenciones) el 22/08/2003 11:49:39
'Establece la columna activa
MSChart1.Column = Val(Mid$(auxStr, 3, 1))
'Se queda con el 3º parámetro introducido
auxStr = Right(auxStr, Len(auxStr) - 4)
If IsNumeric(auxStr) Then
'Si es nº lo asigna como dato
MSChart1.Data = Val(auxStr)
Else
'Si es texto lo asigna como etiqueta
MSChart1.RowLabel = auxStr
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar