ID | Asunto | Fecha | Nick | |
57378 | crear datagrid con filas y columnas | 21/11/13 12:24 | oktubre1989 | | |
Hola,que tal.Necesito ayuda.Quisiera saber si hay alguna forma de crear un Datagrid con filas y columnas y que interactue con una tabla en una BD.Se necesita para llenar planillas de turnos diarios de canchas de futbol. Quizas haya otro control que me permita realizarlo mejor,por ej un msflex grid. Debe tener fecha,hora,3 canchas y cada una con su importe.Cada turno se compone de 2 equipos y cada uno paga, y al sumarlo me da el importe total de cada cancha |
|
ID | Asunto | Fecha | Nick | |
57410 | Re: crear datagrid con filas y columnas (Resp: 57378) | 26/12/13 10:02 | artemi | | |
Hola, según lo que cuentas en tu enunciado, debes de diferenciar tres aspectos diferentes en tu proyecto.
1º - Diseñar la Base de Datos con las Tabla necesarias que pudas necesitar.
2º - Diseñar las Pantallas necesarias para poder guardar los datos para despues poder opera con ellos, eso incluye las pantallas de visualización de los datos y las pantallas de entrada de Datos
Yo, lo haria con un MsFlexGrid, dado que la forma de poder presentar los Datos es muy Versatil y puedes configurar la presentación de 10.000 maneras diferentes.
Si deseas que te ayude, ponte en contacto con migo al correo y te explicaré como hacerlo.
Felices Navidades y un mejor Año 2014.
Artemi.
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
ID | Asunto | Fecha | Nick | |
57411 | Re: crear datagrid con filas y columnas (Resp: 57378) | 26/12/13 10:07 | artemi | | |
Disculpame, he olvidado la 3ª parte :
3ª - Ordenar desde la Presentación del programa hasta su cierre, todas las pantallas (Interfaces) con sus procedimientos de una forma ordenada y coherente (facil de comprender para el usuario).
Saludos.
Artemi.
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
ID | Asunto | Fecha | Nick | |
57418 | Re: crear datagrid con filas y columnas (Resp: 57411) | 02/01/14 13:21 | oktubre1989 | | |
Hola Artemi!! Muchas gracias por responder y disculpa lo que yo tardé en hacerlo.El proyecto que estoy haciendo administra un club de deportes.La parte que me causa problemas es la del registro de turnos diarios.Tengo que emular con una grilla lo que en ese club se hace con un excel.Efectivamente usé un MsFlexGrid.Yo lo divido en dos partes: 1.-Traer datos desde la tabla hasta la grilla,filtrados por fecha.(Al elegir una fecha, en la grilla se cargan todos los turnos reservados para ese dia.O sea que en la grilla pueden quedar celdas en blanco) 2.-Agregar o modificar datos desde la grilla y guardarlos en la tabla. La parte 1 ya la tengo hecha,quizas se pueda mejorar un poco. La parte 2 es la que me falta. Te adjunto el codigo de la parte 1, y de nuevo muchas gracias por tu tiempo!! Aclaracion:La base de datos tiene los siguientes campos:cod_tur (autonumerico),fecha (numero),eq_1 (texto), eq_2 (texto), imp_1 (numero), imp_2 (numero), cancha (numero), saldo_1 y saldo_2 (a estos ultimos todavia no les di funcionalidad) En un modulo va esto: Global base As New ADODB.Connection Global rsturnos As New ADODB.Recordset Codigo de parte 1: Private Sub Command1_Click() Dim var_fecha As Date
MSHFlexGrid1.Clear MSHFlexGrid1.TextArray(0) = "Cancha 1" MSHFlexGrid1.TextArray(1) = "Imp" MSHFlexGrid1.TextArray(2) = "Cancha 2" MSHFlexGrid1.TextArray(3) = "Imp" MSHFlexGrid1.TextArray(4) = "Cancha 3" MSHFlexGrid1.TextArray(5) = "Imp" var_fecha = DTPicker1.Value
'ABRE LA BASE DE DATOS With base If .State = 1 Then .Close .CursorLocation = adUseClient .Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\base.mdb;Persist Security Info=False" End With
'CONECTARME A LA TABLA With rsturnos If .State = 1 Then .Close .Open "Select * from turnos where Format(Fecha,'yyyymmdd')=Format('" & DTPicker1.Value & "','yyyymmdd') order by hora,cancha", base, adOpenStatic, adLockOptimistic End With Dim var_hora, i, vi As Integer Dim vector(11) As Integer
var_hora = 8
With rsturnos 'If .BOF Or .EOF Then Exit Sub .Requery .Find "hora='" & var_hora & "'"
While var_hora <= 15 If .BOF Or .EOF Then Exit Sub If !hora = var_hora Then 'CARGA DE VECTOR Select Case var_hora Case 8: vi = 5 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend Case 9: vi = 17 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend Case 10: vi = 29 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend Case 11: vi = 41 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend Case 12: vi = 53 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend Case 13: If vi <> vector(11) Then vi = 65 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend End If Case 14: vi = 77 i = 0
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
ID | Asunto | Fecha | Nick | |
57419 | Re: crear datagrid con filas y columnas (Resp: 57418) | 02/01/14 13:23 | oktubre1989 | | |
Codigo de parte 1 (completo): Private Sub Command1_Click() Dim var_fecha As Date
MSHFlexGrid1.Clear MSHFlexGrid1.TextArray(0) = "Cancha 1" MSHFlexGrid1.TextArray(1) = "Imp" MSHFlexGrid1.TextArray(2) = "Cancha 2" MSHFlexGrid1.TextArray(3) = "Imp" MSHFlexGrid1.TextArray(4) = "Cancha 3" MSHFlexGrid1.TextArray(5) = "Imp" var_fecha = DTPicker1.Value
'ABRE LA BASE DE DATOS With base If .State = 1 Then .Close .CursorLocation = adUseClient .Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\base.mdb;Persist Security Info=False" End With
'CONECTARME A LA TABLA With rsturnos If .State = 1 Then .Close .Open "Select * from turnos where Format(Fecha,'yyyymmdd')=Format('" & DTPicker1.Value & "','yyyymmdd') order by hora,cancha", base, adOpenStatic, adLockOptimistic End With Dim var_hora, i, vi As Integer Dim vector(11) As Integer
var_hora = 8
With rsturnos 'If .BOF Or .EOF Then Exit Sub .Requery .Find "hora='" & var_hora & "'"
While var_hora <= 15 If .BOF Or .EOF Then Exit Sub If !hora = var_hora Then 'CARGA DE VECTOR Select Case var_hora Case 8: vi = 5 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend Case 9: vi = 17 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend Case 10: vi = 29 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend Case 11: vi = 41 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend Case 12: vi = 53 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend Case 13: If vi <> vector(11) Then vi = 65 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend End If Case 14: vi = 77 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend Case 15: vi = 89 i = 0 While i < 12 vector(i) = vi + 1 i = i + 1 vi = vi + 1 Wend End Select Select Case !cancha
Case 1: MSHFlexGrid1.TextArray(vector(0)) = !eq_1 MSHFlexGrid1.TextArray(vector(1)) = !imp_1 MSHFlexGrid1.TextArray(vector(6)) = !eq_2 MSHFlexGrid1.TextArray(vector(7)) = !imp_2 rsturnos.AbsolutePosition = rsturnos.AbsolutePosition + 1 GoTo nota Exit Sub Case 2: MSHFlexGrid1.TextArray(vector(2)) = !eq_1 MSHFlexGrid1.TextArray(vector(3)) = !imp_1 MSHFlexGrid1.TextArray(vector() = !eq_2 MSHFlexGrid1.TextArray(vector(9)) = !imp_2 rsturnos.AbsolutePosition = rsturnos.Absolu
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
ID | Asunto | Fecha | Nick | |
57420 | Re: crear datagrid con filas y columnas (Resp: 57419) | 02/01/14 13:25 | oktubre1989 | | |
Codigo de parte 1 (completo): Select Case !cancha
Case 1:
MSHFlexGrid1.TextArray(vector(0)) = !eq_1
MSHFlexGrid1.TextArray(vector(1)) = !imp_1
MSHFlexGrid1.TextArray(vector(6)) = !eq_2
MSHFlexGrid1.TextArray(vector(7)) = !imp_2
rsturnos.AbsolutePosition = rsturnos.AbsolutePosition + 1
GoTo nota
Exit Sub
Case 2:
MSHFlexGrid1.TextArray(vector(2)) = !eq_1
MSHFlexGrid1.TextArray(vector(3)) = !imp_1
MSHFlexGrid1.TextArray(vector(<img src='imagenes/smiles/rie_gafas.png' border='0' alt='rie_gafas' />) =
!eq_2
MSHFlexGrid1.TextArray(vector(9)) = !imp_2
rsturnos.AbsolutePosition = rsturnos.AbsolutePosition + 1
GoTo nota
Exit Sub
Case 3:
MSHFlexGrid1.TextArray(vector(4)) = !eq_1
MSHFlexGrid1.TextArray(vector(5)) = !imp_1
MSHFlexGrid1.TextArray(vector(10)) = !eq_2
MSHFlexGrid1.TextArray(vector(11)) = !imp_2
rsturnos.AbsolutePosition = rsturnos.AbsolutePosition + 1
GoTo nota
Exit Sub
End Select
Else
var_hora = var_hora + 1
End If
nota:
Wend
End With
End Sub
Private Sub Form_Load()
'CONFIGURACION POR DEFECTO DE LA GRILLA
MSHFlexGrid2.RowHeight(0) = 350
MSHFlexGrid1.RowHeight(0) = 350
MSHFlexGrid2.RowHeight(1) = 475
MSHFlexGrid2.RowHeight(2) = 475
MSHFlexGrid2.RowHeight(3) = 475
MSHFlexGrid2.RowHeight(4) = 475
MSHFlexGrid2.RowHeight(5) = 475
MSHFlexGrid2.RowHeight(6) = 475
MSHFlexGrid2.RowHeight(7) = 475
MSHFlexGrid2.RowHeight(<img src='imagenes/smiles/rie
_gafas.png' border='0' alt='rie_gafas' /> = 475
MSHFlexGrid2.TextArray(0) = "Hora"
MSHFlexGrid1.TextArray(0) = "Cancha 1"
MSHFlexGrid1.TextArray(1) = "Imp"
MSHFlexGrid1.TextArray(2) = "Cancha 2"
MSHFlexGrid1.TextArray(3) = "Imp"
MSHFlexGrid1.TextArray(4) = "Cancha 3"
MSHFlexGrid1.TextArray(5) = "Imp"
MSHFlexGrid2.ColWidth(1) = 2500
MSHFlexGrid2.TextArray(1) = "8"
MSHFlexGrid2.TextArray(2) = "9"
MSHFlexGrid2.TextArray(3) = "10"
MSHFlexGrid2.TextArray(4) = "11"
MSHFlexGrid2.TextArray(5) = "12"
MSHFlexGrid2.TextArray(6) = "13"
MSHFlexGrid2.TextArray(7) = "14"
MSHFlexGrid2.TextArray(<img src='imagenes/smiles/rie
_gafas.png' border='0' alt='rie_gafas' /> = "15"
End Sub
Private Sub MSHFlexGrid1_KeyPress(KeyAscii As Integer)
If KeyAscii >= 32 And KeyAscii <= 127 Then
MSHFlexGrid1.Text = MSHFlexGrid1.Text & Chr(KeyAscii)
End If
End Sub
Private Sub MSHFlexGrid1
_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyDelete
MSHFlexGrid1.Text = ""
Case vbKeyBack
If Len(MSHFlexGrid1.Text) > 0 Then
MSHFlexGrid1.Text = Left(MSHFlexGrid1.Text, Len(MSHFlexGrid1.Text) - 1)
End If
End Select
End Sub
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |