Tema: FAQ's de VB6
Ver Mensaje Individual
  #171 (permalink)  
Antiguo 03/01/2008, 07:46
Avatar de culd
culd
 
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 21 años, 1 mes
Puntos: 19
Re: FAQ's de VB6

Este es un ejemplo que te dice cuantas horas semanales trabajaste normales, extras, festivas, totales...

Lo pidio "jose28bnc" y se lo desarrolle por que me gusto la idea y para sumar puntos para que me hagan moderador ;)

Lo que el necesitaba era lo siguiente:

Cita:
Iniciado por jose28bnc
hola culd, te explico mejor, tengo siete texbox para cada dia de la semana, luego tengo cuatro mas, uno con las horas totales de toda la semana, otro con las horas extras de toda la semana, otro con las hora normales de toda la semana y otro con las horas festivas de toda la semana.
Lo que trato de hacer es lo siguiente, si el lunes trabajo 12 horas, en el textbox de horas extras me tienen que aparecer todas las horas que pasen de 8 en este caso serian 4, en el textbox de las horas normales me tendrian que salir las horas normales que en este caso son ocho, en el de textbox festivas ninguna por que el lunes no es festivo, y en el textbox totales todas las horas que he trabajado en este caso 12. y asi con todos los dias de la semana, en los texbox de totales se van sumando todos los dias en el de horas normales todas las horas de la semana, y asi en los demas.
El ejemplo que desarrolle se pone en un proyecto nuevo y listo.

Código:
'--------------- EJEMPLO PROGRAMADO POR CULD PARA jos28bcn ------------------
'Y para todo ForosDelWeb
'Disfrutenlo ;)
'----------------------------------------------------------------------------
Private Sub Form_Load()
On Error Resume Next
Dim Dia(1 To 7) As Long
Dim Totales(1 To 4) As Long
'Totales(1) = HORAS NORMALES
'Totales(2) = HORAS EXTRAS
'Totales(3) = HORAS FESTIVAS
'Totales(4) = TODAS LAS HORAS
Dim HorasDiarias As Long
Dim X As Integer

HorasDiarias = CLng(InputBox("Por favor, ingrese cuantas horas diarias usted trabaja", "Programado por CULD"))

'----- Primero le pido las cantidades de horas que trabajo cada dia -----
For X = 1 To 7
    Dia(X) = CLng(InputBox("Ingrese la Cantidad de Horas que Trabajo el dia: " & WeekdayName(X, False, vbMonday), "Programado por CULD"))
Next X

'----- Calculo los Totales -----
For X = 1 To 7
    If X <= 5 Then
        If Dia(X) > HorasDiarias Then                           'Verifico que sea dia entre semana
            Totales(1) = Totales(1) + HorasDiarias              'Sumo las horas normales
            Totales(2) = Totales(2) + (Dia(X) - HorasDiarias)   'Como paso el limite va a extras
            Totales(4) = Totales(4) + Dia(X)                    'Sumo el total de todo
        Else
            Totales(1) = Totales(1) + Dia(X)                    'Sumo las horas que trabajo normales
            Totales(4) = Totales(4) + Dia(X)                    'Sumo el total de todo
        End If
    Else                                                        'Fin se semana seria festivo
        If Dia(X) > HorasDiarias Then
            Totales(3) = Totales(3) + HorasDiarias
            Totales(2) = Totales(2) + (Dia(X) - HorasDiarias)
            Totales(4) = Totales(4) + Dia(X)
        Else
            Totales(3) = Totales(3) + Dia(X)
            Totales(4) = Totales(4) + Dia(X)
        End If
    End If
Next X

MsgBox "*-*-*-*-*-*-* RESULTADOS *-*-*-*-*-*-*" & vbNewLine & _
"Total Horas Normales: " & Totales(1) & vbNewLine & _
"Total Horas Extras: " & Totales(2) & vbNewLine & _
"Total Horas Festivas: " & Totales(3) & vbNewLine & _
"Total Horas TODO: " & Totales(4) & vbNewLine, vbExclamation, "Programado por CULD"
End
End Sub