** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Barra de Progreso de un periodo de tiempo
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoBarra de Progreso de un periodo de tiempo

 Responder Responder Página  12>
Autor
Mensaje
Ixtlacihuatl Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 20/Mayo/2020
Localización: México
Estado: Sin conexión
Puntos: 49
Enlace directo a este mensaje Tema: Barra de Progreso de un periodo de tiempo
    Enviado: 09/Junio/2020 a las 04:26
Buenas noches, necesito mostrar graficamente el tiempo que una lavadora está procesando un lavado de prendas durante 8 horas de un turno. He investigado ejemplos y encontré como se muestra un porcentaje de progreso, solo que no aplica para lo que necesito. Tengo un formulario multiregistro donde muestro todas las lavadoras. Algunas de elllas estan ocupadas lavando prendas y de acuerdo al proceso que estan haciendo tienen un tiempo de inicio al cual se le agrega un tiempo en el que debería terminar por ejemplo 1.5 horas. de manera que quiero mostrar una barra por cada lavadora en un periodo de 8 horas. y mostrar cuando inició a lavar, el tiempo en que debería terminar a paritr de la hora en que inició, para que gráficamente el operador vea en que momento una lavadora estará disponible. 

Ismael G.H.
Saludos desde México
Arriba
maxpro Ver desplegable
Colaborador
Colaborador


Unido: 04/Marzo/2006
Localización: Argentina
Estado: Sin conexión
Puntos: 1556
Enlace directo a este mensaje Enviado: 09/Junio/2020 a las 04:40
Hola.

Fijate si te sirve este ejemplo y si lo puede adaptar.

http://www.mvp-access.es/juanmafan/trucos/progresando.htm

Saludos
-------Maxpro-------

San Luis - Argentina
Arriba
Ixtlacihuatl Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 20/Mayo/2020
Localización: México
Estado: Sin conexión
Puntos: 49
Enlace directo a este mensaje Enviado: 09/Junio/2020 a las 04:59
estoy tratando de poner una imagen de mi formulario, pero no se puede ver...


ya vi el ejemplo. solo que no se como ponerlo sobre una barra de 8 horas.
Ismael G.H.
Saludos desde México
Arriba
maxpro Ver desplegable
Colaborador
Colaborador


Unido: 04/Marzo/2006
Localización: Argentina
Estado: Sin conexión
Puntos: 1556
Enlace directo a este mensaje Enviado: 09/Junio/2020 a las 05:04
Hola.

De la pagina del maestro Emilio Sancha!

http://www.mvp-access.es/emilio/busqueda.asp?Palabra=Progreso

Despues iras adaptando!

Saludos

EDITO: En este foro todos hemos aprendido viendo codigos que nos han provisto y de ahi solo depende de nosotros lograr el objetivo entendiendolos y escribiendolos a nuestro modo! dar todo servido no enseña y no seria tu objetivo que es aprender!


Editado por maxpro - 09/Junio/2020 a las 05:12
-------Maxpro-------

San Luis - Argentina
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 09/Junio/2020 a las 15:01
Hola Ixtlacihuati

Cuando dices que el ejemplo del porcentaje no aplica a lo que necesitas de 8 horas, ¿por qué no aplica?

¿Puedes ponernos lo que tienes hecho para que veamos nosotros también donde está el problema y podamos orientarte un poco más? (Y si pones además una explicación, mejor que mejor)

Un saludo.

Luis

El Búho es un pajarraco
Arriba
Ixtlacihuatl Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 20/Mayo/2020
Localización: México
Estado: Sin conexión
Puntos: 49
Enlace directo a este mensaje Enviado: 10/Julio/2020 a las 05:17
No he podido resolver el problema que tengo de la barra de progreso y ya no tengo tanto tiempo para resolverlo, por lo que si alguien me puede ayudar a hacerlo obviamente pagando sus honorarios me ayudaría mucho. espero que pueda verse este link: https://1drv.ms/b/s!As0Fy4KTOVH3jtEw-Cb3W5PIUS2-kA
Ismael G.H.
Saludos desde México
Arriba
Ixtlacihuatl Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 20/Mayo/2020
Localización: México
Estado: Sin conexión
Puntos: 49
Enlace directo a este mensaje Enviado: 10/Julio/2020 a las 15:31
Como pensé resolverlo es:
1. Tengo una tabla "Bitacora_Lavado"  con un campo tipo texto  "Progreso"
2. En el formulario dibujar este campo de 12 cm de largo pensando que cada centímetro es una hora
3. Hacer una función que en base a la "hora de inicio" del ciclo de lavado, se posicione en el centímetro correspondiente del campo. Luego en base a el "tiempo del Ciclo de lavado" incremente el numero de centímetros que corresponde a las horas.


Ismael G.H.
Saludos desde México
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 10/Julio/2020 a las 20:26
Vamos a olvidarnos de los centímetros, hablamos de pantallas y cada una puede variar de tamaño, así que si no te importa me lo traduzco como 12 cuadrados en línea, donde cada cuadrado representa una hora.

Hasta aquí bastante fácil

Una función que en base a la hora de inicio... esto ya queda menos claro.

¿Quieres decir que si empieza a las 8 de la mañana hay que ir al cuadrado 8?

O quizás es que tienes 12 horas de servicio, que este servicio empieza (por ejemplo( a las 7 de la mañana y termina a las 7 de la tarde y cada cuadrado representa una hora?



Seguimos, Luego en base a el "tiempo del Ciclo de lavado" incremente el numero de centímetros que corresponde a las horas.

Aquí me pierdo, ¿quieres decir que si el ciclo e lavado dura (por ejemplo), 7 horas y empieza en la última hora tengo que añadir otros 7 cuadrados, haciendo un total de 19 cuadrados?

Y otra pregunta, ¿tienes solo un lavado cada vez o puedes tener, no sé, 20 o 30 a la vez y necesitas 20 o 30 gráficos=

Porque para mí, sería mucho más fácil crear  una línea en la base que tenga las horas, y cada lavado como si fuese una tartar de una duración estimada... como un GANTT pero para lavados.

Es solo mi idea, claro, pero por si te da nuevas ideas.

Un saludo.

Luis


El Búho es un pajarraco
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
Enlace directo a este mensaje Enviado: 10/Julio/2020 a las 21:45
Hola!

En la página de la master Marta hay un ejemplo de reloj, su formato se podría adaptar a tus necesidades.

Un Saludo.
Arriba
Ixtlacihuatl Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 20/Mayo/2020
Localización: México
Estado: Sin conexión
Puntos: 49
Enlace directo a este mensaje Enviado: 12/Julio/2020 a las 02:45
Si es correcto. tengo un campo de fondo que representa 12 horas (de 8AM a 8pm) y si tengo 12 campos que representan cada hora. lo que requiero es que si el ciclo de lavado comienza a las 9:00 am y el proceso dura 1 hora con 30 minutos. Debería ir al campo 9 e incrementar su tamaño 1 centimetro con 30 milimetros. Tengo 10 lavadoras y se muestran todas a la vez para que graficamente el operador sepa cuando termina un ciclo de lavado, para poner la lavadora disponible y usarla de nuevo. no sé si el link que puse se pueda ver. Sí es como un gant y cada renglón es una lavadora.

Editado por Ixtlacihuatl - 12/Julio/2020 a las 02:50
Ismael G.H.
Saludos desde México
Arriba
Ixtlacihuatl Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 20/Mayo/2020
Localización: México
Estado: Sin conexión
Puntos: 49
Enlace directo a este mensaje Enviado: 12/Julio/2020 a las 02:47
Voy a revisarlo., gracias.
Ismael G.H.
Saludos desde México
Arriba
Ixtlacihuatl Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 20/Mayo/2020
Localización: México
Estado: Sin conexión
Puntos: 49
Enlace directo a este mensaje Enviado: 12/Julio/2020 a las 03:00
Gracias. Esto es lo más cercano de lo que necesito.
Ismael G.H.
Saludos desde México
Arriba
Ixtlacihuatl Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 20/Mayo/2020
Localización: México
Estado: Sin conexión
Puntos: 49
Enlace directo a este mensaje Enviado: 12/Julio/2020 a las 05:50
Revisando el codigo de la maestra Martha, que me comentaron, lo puse en mi subformulario
agregué a la tabla "Bitacora_Lavado" los campos (H0, H1, H2 ... H24) y en el formulario utilicé las funciones del ejemplo. pero no funciona con los campos, solamente funciona con campos independientes, me podrían decir porque?

Este es el código de mi formulario.
Option Compare Database

Private Sub cerrar_Click()
DoCmd.Quit
End Sub
Private Sub Form_Close()
 Me.TimerInterval = 0
End Sub

Private Sub Form_Current()
 xHoras
 Me.TimerInterval = 1000
End Sub

Private Sub Form_Load()
 Segundos
 Minutos
 Horas
 Me.TimerInterval = 1000
End Sub

Private Sub Form_Timer()
Me.xReloj.Value = Format(Time, "HH:mm:ss AM/PM")

If Second(Time) = 0 Then
   Call Limpia("s")
   Minutos
End If

If Minute(Time) = 0 Then
   Call Limpia("m")
   Horas
End If

If Hour(Time) = 0 Then
   Call Limpia("h")
End If

   Segundos
Me.Caption = Time()
End Sub

Private Sub ST_Lavado_Click()
If ST_Lavado.OldValue = "Ocupada" Then
Hora_Fin = Time()
ST_Lavado = "Disponible"
Else
    ST_Lavado = ST_Lavado.OldValue
End If
Recalc
End Sub

Private Sub xKilos_AfterUpdate()
Dim xCliente As String
Dim xInicio As Date
Dim xDuracion As Double
Dim xMinuto As Long
Dim xHora As Long
Dim HoraFin As Date

Set db = DBEngine(0)(0)

xCliente = xPlanta.Column(1)
xInicio = Now()
xDuracion = DLookup("Duracion", "Procedimiento", "Procedimiento=" & xProcedimiento)
xHora = Hora_Proceso(xDuracion)
xMinuto = Minutos_Proceso(xDuracion)
HoraFin = Agrega_Tiempo(xInicio, xHora, xMinuto)
xInicio = Format(xInicio, "hh:nn:ss")

strSQL = "INSERT INTO Bitacora_Lavado Values("
strSQL = strSQL & xLavadora & ",'"  'Maquina
strSQL = strSQL & Date & "','"    'Fecha_Lavado
strSQL = strSQL & xInicio & "','"  'Hora_Inicio
strSQL = strSQL & xCliente & "','"  'Cliente
strSQL = strSQL & xPlanta.Column(0) & "',"  'Planta
strSQL = strSQL & 0 & ","  'Ruta
strSQL = strSQL & 0 & ",'"  'Pedido
strSQL = strSQL & "" & "',"  'Tipo_Proceso
strSQL = strSQL & xProcedimiento & ","   'Procedimiento
strSQL = strSQL & xDuracion & "," 'Tiempo de Proceso
strSQL = strSQL & xKilos & ",'" 'Peso_Lavado
strSQL = strSQL & HoraFin & "','"  'Hora_Fin
strSQL = strSQL & Usr & "','"  'Operador
strSQL = strSQL & "Ocupada" & "','"  'St_Lavado
strSQL = strSQL & "" & "','"  'Hora 0
strSQL = strSQL & "" & "','"  'Hora 1
strSQL = strSQL & "" & "','"  'Hora 2
strSQL = strSQL & "" & "','"  'Hora 3
strSQL = strSQL & "" & "','"  'Hora 4
strSQL = strSQL & "" & "','"  'Hora 5
strSQL = strSQL & "" & "','"  'Hora 6
strSQL = strSQL & "" & "','"  'Hora 7
strSQL = strSQL & "" & "','"  'Hora 8
strSQL = strSQL & "" & "','"  'Hora 9
strSQL = strSQL & "" & "','"  'Hora 10
strSQL = strSQL & "" & "','"  'Hora 11
strSQL = strSQL & "" & "','"  'Hora 12
strSQL = strSQL & "" & "','"  'Hora 13
strSQL = strSQL & "" & "','"  'Hora 14
strSQL = strSQL & "" & "','"  'Hora 15
strSQL = strSQL & "" & "','"  'Hora 16
strSQL = strSQL & "" & "','"  'Hora 17
strSQL = strSQL & "" & "','"  'Hora 18
strSQL = strSQL & "" & "','"  'Hora 19
strSQL = strSQL & "" & "','"  'Hora 20
strSQL = strSQL & "" & "','"  'Hora 21
strSQL = strSQL & "" & "','"  'Hora 22
strSQL = strSQL & "" & "','"  'Hora 23
strSQL = strSQL & "" & "')"  'Hora 24
db.Execute (strSQL)
xPlanta = Null
xLavadora = Null
xProcedimiento = Null
xKilos = 0
xTerminar = Null
Recalc
End Sub

Private Sub xProcedimiento_GotFocus()
xProcedimiento.Dropdown
End Sub

Private Sub xTerminar_AfterUpdate()
Set db = DBEngine(0)(0)
strSQL = "UPDATE Bitacora_Lavado set Hora_Fin = '" & Time & "', St_Lavado='Disponible'"
strSQL = strSQL & " WHERE Maquina=" & xTerminar & " And St_Lavado='Ocupada'"
db.Execute (strSQL)
Requery
End Sub

Private Sub xTerminar_GotFocus()
xTerminar.Dropdown
End Sub

Private Sub xHoras()
Dim ctrControl As Control
Dim ctrForm As Form
Dim NombreControl As String
Dim Contador As Integer

Contador = 0

Set ctrForm = Me

For Each ctrControl In ctrForm
    With ctrControl

    NombreControl = "h0" & Contador
    If .Name = NombreControl Then   '
       If Contador < Hour(Time) Then Contador = Contador + 1
         .BackColor = 8388608
         .ForeColor = 8388608
       End If
     End With
Next ctrControl
End Sub

Private Sub Horas()
Dim ctrControl As Control
Dim ctrForm As Form
Dim NombreControl As String
Dim Contador As Integer

Contador = 0

Set ctrForm = Me

For Each ctrControl In ctrForm
    With ctrControl

    NombreControl = "h" & Contador
    If .Name = NombreControl Then '
       If Contador < Hour(Time) Then Contador = Contador + 1
         .BackColor = 8388608
         .ForeColor = 8388608
       End If
     End With
Next ctrControl
End Sub

Private Sub Minutos()
Dim ctrControl As Control
Dim ctrForm As Form
Dim NombreControl As String
Dim Contador As Integer

Contador = 0
Set ctrForm = Me

For Each ctrControl In ctrForm
    NombreControl = "m" & Contador
    With ctrControl
    If .Name = NombreControl Then  '
       If Contador < Minute(Time) Then Contador = Contador + 1
          .BackColor = 32768
          .ForeColor = 32768
     End If
    End With
Next ctrControl
End Sub

Private Sub Segundos()
Dim ctrControl As Control
Dim ctrForm As Form
Dim NombreControl As String
Dim Contador As Integer

Contador = 0

Set ctrForm = Me

For Each ctrControl In ctrForm
    NombreControl = "s" & Contador
    With ctrControl
      
    If .Name = NombreControl Then
      If Contador < Second(Time) Then Contador = Contador + 1
       .BackColor = 255
       .ForeColor = 255
     End If
    End With
    
Next ctrControl
End Sub

Private Function Limpia(NombreControl As String)
Dim ctrControl As Control
Dim ctrForm As Form
Dim Control As String
Dim Contador As Integer

Control = NombreControl

Set ctrForm = Me
    Contador = 1
For Each ctrControl In ctrForm
    NombreControl = Control & Contador
    With ctrControl
    If .Name = NombreControl Then '
       Contador = Contador + 1
       .BackColor = 16777215
       .ForeColor = 16777215
     End If
     End With
Next ctrControl
End Function


Ismael G.H.
Saludos desde México
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
Enlace directo a este mensaje Enviado: 12/Julio/2020 a las 16:15
Hola!

Si te he entendido bien no hace falta agregar los controles de la hora (H0,H1,....H24). Creo que deberías tener dos campos en tu tabla, uno es hora_Inicio y otro hora_Final de forma que al terminar el funcionamiento te lo graba en la tabla. y Dejas el interface sólo como estético.

Una pregunta, Cuando se cambia el día que pasaría con el subformulario?, se pone a cero los registros?
Un Saludo.
Arriba
Ixtlacihuatl Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 20/Mayo/2020
Localización: México
Estado: Sin conexión
Puntos: 49
Enlace directo a este mensaje Enviado: 13/Julio/2020 a las 15:52
La tabla "Bitacora_Lavado" almacena todos los ciclos de lavado como un historico. No tengo un cierre dl día como tal, solo agregan ciclos de lavado y se van almacenando. pero en el formulario se muestran todas las lavadoras y el tiempo que se están utilizando. En el encabezado del formulario tengo un control donde se puede seleccionar la lavadora que ya terminó su ciclo de lavado real (manualmente el operador selecciona la lavadora) y en ese momento se almacena la hora en que terminó el ciclo. entonces se inicializa la barra de progreso y el operador puede utilizar nuevamente esa lavadora disponible. La razón por la que agregué los 24 campos (H0,H1,H3...H24) es porque el formulario es multi-registro y al no saber como manejarlo con controles independientes, me repite el ultimo valor en todos los registros. En la tabla "Bitacora_Lavado" tengo estos campos: 
  • Maquina
  • Fecha_Lavado
  • Hora_Inicio
  • Cliente
  • Planta
  • Tipo_Proceso
  • Procedimiento
  • Tiempo_Proceso
  • Peso_Lavado
  • Hora_Fin
  • Operador
  • ST_Lavado
  • H0
  • H1
  • ...
Ismael G.H.
Saludos desde México
Arriba
 Responder Responder Página  12>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable