Normalmente prefiero usar una clase, pero en este ejemplo usamos una estructura.
' gambas class file
Public Struct Ficha
nombre As String
hafichado As Boolean
vacaciones As Boolean
baja As Boolean
End Struct
Public Sub Form_Open()
Dim entrada As Ficha
Dim trabajodiario As New Ficha[]
entrada = New Ficha
With entrada
.nombre = "Juan"
.hafichado = True
.vacaciones = False
.baja = False
End With
trabajodiario.Add(entrada)
entrada = New Ficha
With entrada
.nombre = "Antonio"
.hafichado = False
.vacaciones = True
.baja = False
End With
trabajodiario.Add(entrada)
entrada = New Ficha
With entrada
.nombre = "Manuel"
.hafichado = False
.vacaciones = False
.baja = True
End With
trabajodiario.Add(entrada)
entrada = New Ficha
With entrada
.nombre = "Benito"
.hafichado = False
.vacaciones = False
.baja = False
End With
trabajodiario.Add(entrada)
For Each entrada In trabajodiario
Print Quehace(entrada)
Next
End
Public Function Quehace(empleado As Ficha) As String
Dim estado As String
Select Case empleado.hafichado
Case True
estado = " está trabajando."
Case False
estado = " ha faltado al trabajo."
If empleado.baja Then estado &= "Está de baja"
If empleado.vacaciones Then estado &= "Está de vacaciones"
If Not empleado.baja And Not empleado.vacaciones Then estado &= "Está vagueando!." & empleado.nombre & "!"
End Select
Return empleado.nombre & estado
End
Public Struct Ficha
nombre As String
hafichado As Boolean
vacaciones As Boolean
baja As Boolean
End Struct
Public Sub Form_Open()
Dim entrada As Ficha
Dim trabajodiario As New Ficha[]
entrada = New Ficha
With entrada
.nombre = "Juan"
.hafichado = True
.vacaciones = False
.baja = False
End With
trabajodiario.Add(entrada)
entrada = New Ficha
With entrada
.nombre = "Antonio"
.hafichado = False
.vacaciones = True
.baja = False
End With
trabajodiario.Add(entrada)
entrada = New Ficha
With entrada
.nombre = "Manuel"
.hafichado = False
.vacaciones = False
.baja = True
End With
trabajodiario.Add(entrada)
entrada = New Ficha
With entrada
.nombre = "Benito"
.hafichado = False
.vacaciones = False
.baja = False
End With
trabajodiario.Add(entrada)
For Each entrada In trabajodiario
Print Quehace(entrada)
Next
End
Public Function Quehace(empleado As Ficha) As String
Dim estado As String
Select Case empleado.hafichado
Case True
estado = " está trabajando."
Case False
estado = " ha faltado al trabajo."
If empleado.baja Then estado &= "Está de baja"
If empleado.vacaciones Then estado &= "Está de vacaciones"
If Not empleado.baja And Not empleado.vacaciones Then estado &= "Está vagueando!." & empleado.nombre & "!"
End Select
Return empleado.nombre & estado
End
Saludos