Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programar las graficas estadísticas para las preguntas ¿Cuál es la actividad comercial de la empresa?,
¿Cómo está constituida la empresa?, ¿Está dispuesto a asociarse con otras personas?, ¿Tiene acceso al
sistema financiero Nacional?, ¿Ha recibido asesoría técnica?, ¿Tiene conocimiento sobre canales de
distribución?; se debe escribir una instrucción SQL de resumen que obtiene el numero de respuestas de
esa pregunta (Select Actividad, count(Actividad) as Total from Empresas group by
Actividad), y se genera la fuente de datos para mostrar la grafica, este paso es igual para las demás
preguntas solo cambiando el nombre del campo.
Pero en las opciones de selección múltiple como lo es la pregunta ¿En qué otras actividades comerciales
desea invertir?, aquí se debe contar el número de empresas que han marcado por cada una de las
opciones, en casos como estos que se quiere crear la grafica estadística de “Actividades comerciales a
invertir”, se debe programar para alimentar el esquema de tablas en el DataSet de VB.NET, para
generar la grafica que muestre el número de empresas que piensan invertir en Turismo, Ecoturismo, etc..
Para tal fin comenzaremos por el formulario, las propiedades que deberá modificar serán:
Propiedad Valor
Name frmGraficaporActividades
MinimizeBox False
StartPosition CenterScreen
Text Grafica de Actividades comerciales a
invertir
Al Formulario agregue el objeto Button, del Cuadro de Herramientas, sección Controles comunes, y
cambie las siguientes propiedades:
Propiedad Valor
Name Cmdactualizar
Anchor Bottom, Right
Text Actualizar
La propiedad Anchor es para que el objeto al que se configura, mantenga la posición al maximizar o
restaurar el formulario.
El tipo de grafica a mostrar es pastel, al generar la grafica se mostraran los valores de cada categoría, el
objeto ChartControlcuenta con una propiedad dentro de las series para que los valores de la grafica se
muestren en porcentaje, pero la suma de este porcentaje no resulta en 100%, por tanto agregare un
código que permita esa opción, mientras tanto agregue un objeto CheckBoxdel Cuadro de
Herramientas, sección Controles comunes, y modifique las siguientes propiedades:
Propiedad Valor
Name chkPorcentajes
Anchor Bottom, Right
Text Ver Porcentajes
Cuando la propiedad Checked de este objeto se encuentre activada (True), entonces la grafica mostrara
los porcentajes representativos de cada pieza del pastel, ahora agregue el objeto Chart del Cuadro de
Herramientas, sección Datos, y modifique las propiedades:
Propiedad Valor
Name oGrafico
Anchor Top, Bottom, Left, Righ
Ahora procederemos a configurar el conjunto de datos que alimentara la grafica, para esto abra
su DataSet, sino tiene uno haga el nuevo DataSet y le escribe el nombredsTablas, dentro del DataSet,
clic derecho en una zona limpia y selecciona Agregar/Table de Datos, al objeto nuevo que se ha creado
llámele EmpresasGrafico, cambiando la propiedad Name de la ventana de propiedades.
Luego haga clic derecho sobre la tabla creada y seleccionesAgregar/Columna, a la columna llámele
Categoria y su tipo de dato (DataType) será System.String todo desde la ventana de propiedades,
después de eso, haga clic derecho sobre la Columna Categoria y selecciona Agregar/Clave, se apareceré
una ventana en la cual deberá cambiar algunos datos como se muestra en la imagen.
Una vez hecha la clave principal, agregue una nueva columna y le llama Total, con tipo de
datoSystem.Int16.
Si no se configura la clave principal, no se podrá hacer uso del método Find( ) del objeto DataRow
La siguiente imagen muestra como deberá quedar su conjunto de datos dentro del DataSet.
Una vez configurado el formulario y la tabla dentro del conjunto de datos, procedemos a programar el
código para crear la grafica, pero recuerde que siempre, para programar se debe tener un camino a seguir
para llegar a la solución.
Cabe recordar que para generar las graficas donde la pregunta es selección única (en las respuestas), se
realiza con la instrucción SQL-Select ( Select Actividad, count(Actividad) as Total from
Empresas group by Actividad ), y esta creara una tabla de información para la grafica donde muestra:
Actividad Total
Si ##
Pero para construir nuestra grafica de Actividades comerciales a invertir, nuestra tabla de datos deberá
quedar formada de la siguiente forma:
Categoria Total
Turismo ##
Caficultur ##
a
Ganaderia ##
. .
. .
. .
Para crear una tabla de información con los datos anteriores, usaremos la instrucción SQL-Select
(Select Turismo, count(Turismo) as Total from Empresas group by Turismo ), y los datos
devueltos por esta instrucción se almacenaran en la tabla del DataSet, EmpresasGrafico, y luego
continuaremos de la misma forma solo que cambiando la actividad comercial, todo esto se puede hacer
manualmente, pero ¿Cómo actualizar los datos del grafico cuando se agregue nueva información a la
tabla?, si se está construyendo una aplicación, se debe de programar todo el código necesario para
construir la grafica, y para ello seguiremos un procedimiento o secuencia de pasos que nos ayudaran a
formar nuestra grafica estadística.
1. Realizar un array o vector donde se almacenen todos los rubros (Turismo, Caficultura, …)
2. Crear un ciclo repetitivo que recorra el array o vector de los rubros.
2.1. Crear una instrucción SQL-Select que obtenga los datos de cada uno de los rubros por separado.
2.2. Alimentar los datos del DataSet con los datos devueltos por la instrucción SQL-Select de cada rubro.
3. Generar la grafica.
Procedimiento:
Haga clic derecho sobre el formulario y seleccione la opción Ver Código, y antes del
comando Public ClassfrmGraficaporActividades, presione la tecla ENTER y escriba
Imports System.Data.OleDb
Esta línea de código es para adjuntar referencias a la librería de clases OleDb, la cual nos permite objetos
para trabajar con tablas de Access.
Durante el procedimiento haremos uso del Objeto DataRow, el cual representa una fila primaria de una
tabla, a la cual se le pueden asignar valores para agregar o actualizar en la tabla. Un DataRow tiene una
estructura de la tabla, en nuestro caso de la tabla EmpresasGrafico, y se representa de la siguiente forma:
Categoria Total
Información que guarda
el DataRow
Luego presione las teclas Shift + F7, para ir a la parte grafica del formulario, y estando aquí, haga doble
clic sobre el botón actualizar y escriba el siguiente código:
'Limpiar el contenido del grafico antes de enlazar con los nuevos datos
oGrafico.Series.Clear()
oGrafico.Titles.Clear()
'Mostrar como etiqueta de datos, los valores totales que alimentan la grafica
oGrafico.Series(0).IsValueShownAsLabel = True
La declaración del Array Valores, esta creada de la siguiente forma, y usted la deberá ubicar en el lugar
que le corresponde como se muestra en la imagen
Creo que explicar cada línea de código del botón Actualizar seria redundante, debido a que rotule cada
una Asi que solo explicara la
Como el usuario puede pedir que se muestren los porcentajes que representa cada pieza del pastel, se
agrego el CheckBox Ver Porcentajes para tal fin, vuelva a la parte grafica del formulario (Shift + F7) y
haga doble clic sobre el CheckBox Ver Porcentajes, y en el editor de código escriba las siguientes
líneas:
Dim aRubros As String() =
{"Turismo", "Caficultura", "Ganaderia", "Artesanias", "Horticultura", "Pisicultura", "Ecoturismo","A
piario", "Floricultura", "Otros", "Ninguno"}
Dim Sumatoria As Integer = 0
'Obtener 1ro una sumatoria de todos los valores visualizados en la grafica
For i As Integer = 0 To Valores.Count - 1
Sumatoria += Valores(i)
Next
If chkPocentajes.Checked = True Then
'Se trabajara con la actualizacion de los totales en el dataset
For i As Integer = 0 To aRubros.Count - 1
Dim Fila As DataRow
'Se buscara cada uno de los rubros para obtener el porcentaje que representa
' en la grafica, para eso se hizo la clave principal Categoria
Fila = DsTablas.EmpresasGrafico.Rows.Find(aRubros(i))
If Fila IsNot Nothing Then
'Si se ha encontrado la categoria, entonces se calcula el porcentaje
Fila("Total") = (Int(Fila("Total")) / Sumatoria) * 100
End If
Next
oGrafico.Series.Clear()
oGrafico.Titles.Clear()
oGrafico.ChartAreas(0).Area3DStyle.Enable3D = True
oGrafico.Titles.Add("Otras actividades comerciales a invertir, valores en porcentajes")
oGrafico.Titles(0).Font = New Font("Tahoma", 15, FontStyle.Bold)
oGrafico.ChartAreas(0).Area3DStyle.Rotation = 20
oGrafico.ChartAreas(0).Area3DStyle.PointDepth = 75
oGrafico.ChartAreas(0).Area3DStyle.PointGapDepth = 35
DsTablas.EmpresasGrafico.AcceptChanges()
oGrafico.DataBindTable(EmpresasGraficoBindingSource, "Categoria")
oGrafico.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Pie
oGrafico.Series(0).IsValueShownAsLabel = True
Else
Call cmdActualizar_Click(Nothing, Nothing)
'Si el usuario no quiere porcentajes, se hace el llamado del evento clic del botón Actualizar
End If
Ademas recuerde estas lineas de codigo pueden variar, es importante que usted sepa lo que
está haciendo o tratando de hacer con cada una de ellas, ya que ningun programa es igual
con otro, al igual que las soluciones con las operaciones matemáticas, existen muchos
caminos para llegar a la solucion, solo es que usted elija el indicado.
Bien para eso necesitamos arrastrar de la toolbox en control Chart, hacia el formulario
respectivo
Luego de Eso programamos el evento Load del formulario.
Luego de eso Agregamos la Lógica respectiva referente al Grafico, como son: el tipo
de gráfico a usar. si se muestra en 3 D, los valores para los ejes X, Y, entre otras
propiedades. Una observación importante, el objeto grafico, hace referencia al control
que arrastramos desde la toolbox.
Si ejecutamos la aplicación, nuestro gráfico tendrá el siguiente aspecto:
SI bien es cierto que este ejemplo es relativamente sencillo, se puede mejorar en varios
aspectos, como por ejemplo el gráfico puede ser dinámico, se puede usar otro tipo
de gráficos como puede ser el de Lineas para obtener tendencias, etc. Sin embargo
espero que con este ejemplo sirva para poder tener una referencia para cuando se vean
con la necesidad de usar gráficos en nuestro desarrollo. El control chart tiene otras
propiedades interesantes que perfectamente pueden estudiar.
Ejecutamos nuestro reporte con F5 para ver los campos ingresados en nuestra conexión
desde la base de datos en Access
Hemos finalizado nuestro Reporte.
Dim cSQL As String = "Select puesto, count(precio) as total from productos
group by modelo"
oconexion.Open()
oGrafico.ChartAreas.Clear()
oGrafico.Series.Clear()
oGrafico.Titles.Clear()
oGrafico.ChartAreas.Add(0)
oGrafico.ChartAreas(0).Area3DStyle.Enable3D = True
oconexion.Close()
Después programamos nuestro combo box. Aquí programamos para visualizar los
distintos tipos de grafica.
Private Sub cmbtipo_SelectedIndexChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles cmbtipo.SelectedIndexChanged
Case 0
ografico.Series(0).ChartType =
DataVisualization.Charting.SeriesChartType.Area
Case 1
ografico.Series(0).ChartType =
DataVisualization.Charting.SeriesChartType.Bar
Case 2
ografico.Series(0).ChartType =
DataVisualization.Charting.SeriesChartType.Column
Case 3
ografico.Series(0).ChartType =
DataVisualization.Charting.SeriesChartType.Pie
Case 4
ografico.Series(0).ChartType =
DataVisualization.Charting.SeriesChartType.Point
ografico.Series(0).ChartType =
DataVisualization.Charting.SeriesChartType.Line
End Class
.
GRAFICA DE COLUMNAS
GRAFICA DE PASTEL
GRAFICA DE PUNTOS
Hemos finalizado nuestra grafica espero que este tutorial les sea de gran ayuda para sus
trabajos en visual basic.net