** 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 Invertir el orden de clasificación
guarracuco Ver desplegable
Moderador
Moderador


Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3239
Enlace directo a este mensaje Tema: Barra de Progreso de un periodo de tiempo
    Enviado: 01/Agosto/2020 a las 17:27
Regalamos conocimientos, pero no tiempo. Filosofica, teorica y prácticamente hablando, el tiempo es intangible, inmensurable, ni siquiera podemos decir que no disponemos de, porque realmente no se puede 'tener'.
Vaya, que me he puesto ha filosofar.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14027
Enlace directo a este mensaje Enviado: 26/Julio/2020 a las 09:28
Publicado originalmente por Ixtlacihuatl Ixtlacihuatl escribió:

Esa fue la manera muy básica como lo resolví, de acuerdo a mis pocos conocimientos. Obviamente si alguien profesional me hubiera ayudado, podría haber sido de otra manera.
Gracias a todos.

Ixtlacihuatl

¿Has tenido en cuenta para pedir ayuda, la diferencia de fees que se cobran en España / Europa y el cambio entre el Euro y el Peso Mexicano?

Digamos, que yo te paso un presupuesto, una jornada de trabajo, 8 horas a 40 € hora son 320 €, digamos 300 para dejarlo redondo y por ser mi primer trabajo para ti.

Suponiendo que no tenga que cobrarte el IVA (el impuesto general sobre el valor añadido) al cambio quedaría 300 € * 26,0167 pesos por euro = 7.805,02 pesos.

¿Estás conforme con el presupuesto?, si es que sí no tienes más que decirlo y me pongo a ello. Wink

Esto es un problema que me he / nos hemos encontrado al intentar realizar desarrollos para cualquier país no europeo.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
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: 26/Julio/2020 a las 00:41
Hola!

Mira que con el ejemplo de Marta que te adapté, te lo puse en bandeja para hacerlo como querías inicialmente. En Fin!
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: 25/Julio/2020 a las 23:49
Olvidé la barra de progreso porque mi objetivo principal era mostrar como un ghant del tiempo que dura un ciclo de lavado que depende del procedimiento de lavado(lavado ligero, lavado pesado) y dejé el tiempo fijo sin representar el avance. 
  • Hice una función de un ciclo de 24 veces (horas) donde le pongo una "X" a cada hora que estará ocupada la lavadora (Ho,H1,..H24)  (si comienza a las 9:00 y el ciclo dura una hora y 40 minutos) actualizo H9 y H10 con una "X"
  • En el encabezado del formulario el operador ingresa los datos para utilizar una lavadora y después de actualizar el peso, agrego un registro a la bitácora de lavado utilizando la función para almacenar una "X" en el campo de hora que estará ocupada.
  • En el formulario puse todos los campos (H0,H1,..H24) ocultos (muy juntos).
  • En el formulario multiregistro de la bitácora hice una regla con el formato condicional sobre los campos de la hora para poner el fondo de color cuando el campo tenga una "X"
https://youtu.be/f3beuVtVGUg

Esa fue la manera muy básica como lo resolví, de acuerdo a mis pocos conocimientos. Obviamente si alguien profesional me hubiera ayudado, podría haber sido de otra manera.
Gracias a todos.
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: 3865
Enlace directo a este mensaje Enviado: 24/Julio/2020 a las 22:07
¿Y nos podrías decir como se solucionó?


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: 24/Julio/2020 a las 00:06
Ya pueden cerrar esto. 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: 15/Julio/2020 a las 03:49
Gracias, entiendo. Voy a intentar resolverlo.
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: 14/Julio/2020 a las 19:56
Hola!

He tenido un poco de tiempo y te he adaptado el ejemplo "Reloj" con otro ejemplo que tenía yo guardado a tus necesidades.

http://www.filebig.net/files/4fQn45rhPT

Nota:- No hace falta guardar todas las horas, en el ejemplo te guarda el tiempo de inicio y final.

No te voy hacer más por varios motivos:-
1- No dispongo de la estructura de tu base de datos.
2- tienes que hacerlo tú mismo.

Sí tienes alguna duda o problema aquí estaremos.



Editado por mounir - 14/Julio/2020 a las 19:59
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
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: 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
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 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 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
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
 Responder Responder Página  12>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable