Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

DTPicker1 marque fechas

Estas en el tema de DTPicker1 marque fechas en el foro de Visual Basic clásico en Foros del Web. holas, es posible que un DTPicker marque las fechas que contiene la base de datos? por ejemplo con plomo, ya que rojo es la fecha ...
  #1 (permalink)  
Antiguo 06/07/2010, 18:38
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación DTPicker1 marque fechas

holas,
es posible que un DTPicker marque las fechas que contiene la base de datos?


por ejemplo con plomo, ya que rojo es la fecha actual
grax

Última edición por carnero; 07/07/2010 a las 12:46
  #2 (permalink)  
Antiguo 07/07/2010, 11:07
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: DTPicker1 marque fechas

Hola Carnero:

No entendi bien tu pregunta, te refieres a que aparezca todo el calendario y te muestre en color negro las fechas de la base de datos????
  #3 (permalink)  
Antiguo 07/07/2010, 12:46
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: DTPicker1 marque fechas

claro o en cualquier color, pero que tengan alguna marca las fechas que estan ingresadas en la base de datos
  #4 (permalink)  
Antiguo 09/07/2010, 20:21
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: DTPicker1 marque fechas

Se puede o no??
  #5 (permalink)  
Antiguo 09/07/2010, 23:52
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: DTPicker1 marque fechas

Hola, hasta donde yo se no es posible ya que yo tenía una necesidad similar en una gestión de visitas y al final tuve que 'fabricarme' un simulacro de calendario todo de modo manual.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #6 (permalink)  
Antiguo 10/07/2010, 01:20
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: DTPicker1 marque fechas

"simulacro de calendario todo de modo manual." como seria eso¿
  #7 (permalink)  
Antiguo 10/07/2010, 04:13
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: DTPicker1 marque fechas

Hombre, pues hacer un form con un calendario, formar el calendario con cada mes, ponerle botones de avance, retroceso, etc, todo, todo, o sea que al final de simulacro no tiene nada es un calendario lo que ocurre que adaptado integramente a una aplicación.

El problema para pasar el código aqui es que está tan integrado con la aplicación a la que iba destinado que indivisualmente no sirve de nada.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #8 (permalink)  
Antiguo 10/07/2010, 08:24
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: DTPicker1 marque fechas

Hola Carnero, esto podría ser una idea (mejorable por supuesto) si te convence.

Necesitas tan sólo un MsFlexGrid llamado Grid o cambia el nombre donde te convenga, por lo demás creo que el código es suficientemente explicativo con los comentarios que le pongo.

Código vb:
Ver original
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.   ' Dimensionamos el Grid/Calendario
  5.  Dim Dia As Integer
  6.   Grid.Cols = 32             ' Porque el mayor día del mes es 31
  7.  Grid.Rows = 1              ' Dejamos sólo la linea de Cabeceras
  8.  Grid.ColWidth(0) = 800     ' Ancho de la Columna 0 yyyy/mm
  9.  For Dia = 1 To 31          ' Ponemos número de día como título
  10.    Grid.TextMatrix(0, Dia) = Dia
  11.     Grid.ColWidth(Dia) = Grid.RowHeight(0)
  12.   Next
  13. End Sub
  14.  
  15. Private Sub CargarCalendario()
  16.   ' Funcion que carga las fechas en el Grid/Calendario
  17.  ' Evidentemente esta función debes codificarla según tus ficheros
  18.  Dim Registro As Single
  19.   Grid.Redraw = False           ' Evitamos el parpadeo del Grid
  20.  Do
  21.     ' Las siguientes lineas están como comentarios porque dependen del aplicativo
  22.    ' Registro = Registro + 1
  23.    ' FicheroDIARIO Registro
  24.    ' If Registro = -1 Then Exit Do
  25.    ' If Not RegistroSuprimido("DIARIO") Then GridAdd CDate(FechaGMD4(RegistroDiario.Fecha))
  26.  Loop
  27.   Grid.Col = 0                  ' Columna 0 yyyy/mm
  28.  Grid.Sort = 1                 ' Ordenamos por Año/Mes
  29.  Grid.Redraw = True            ' Redibujamos el Grid
  30. End Sub
  31.  
  32. Private Sub GridAdd(Fecha As Date)
  33.   ' Marcamos el Grid/Calendario segñun la fecha recibida
  34.  Dim Fila As Single, AñoMes As String, Dia As Integer
  35.   AñoMes = Format(Fecha, " yyyy/mm")    ' Ponemos un espacio en blanco delante centrar y forzar alfanumérico
  36.  Dia = Day(Fecha)
  37.   For Fila = 1 To Grid.Rows - 1
  38.     ' Si Año/Mes está ya creado, salimos a PonerDia
  39.    If Grid.TextMatrix(Fila, 0) = AñoMes Then GoTo PonerDia
  40.   Next
  41.   ' Si Año/Mes no es´aba, añadimos una Fila y lo ponemos ahí
  42.  Grid.Rows = Fila + 1
  43.   Grid.TextMatrix(Fila, 0) = AñoMes
  44. PonerDia:
  45.   ' Si la casilla del día no está marcada, la marcamos
  46.  If Grid.TextMatrix(Fila, Dia) = "" Then
  47.     Grid.Col = Dia
  48.     Grid.Row = Fila
  49.     Grid.CellFontName = "Wingdings 2"
  50.     Grid.CellFontSize = 12
  51.     Grid.Text = "P"
  52.   End If
  53. End Sub

De todos modos, si te convence, cualquier duda comentas.

Posibles mejoras, que en vez de la marca de Visto, indique cuantos registros hay en cada fecha, colores segun número de registros, etc.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Etiquetas: dtpicker, fechas, marque
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:09.