Autor |
Mensaje |
Miembro
Ocasional
|
#1 Publicado: 4 May 2010 05:51
Hola a todos, por motivo de mi tesis estoy aprendiendo a utilizar Filemaker, tengo un problema y espero me puedan ayudar: Les pongo las tablas q tengo q utilizar y asi les explico lo q deseo hacer
Empleado: Datos generales(nombre, cedula, direccion, edad) y dentro de esta pantalla se encuentra un portal en donde see ingresa el horario del empleado.
HorarioxEmpleado: Se despliega la informacion de codigo horario, fecha de inicio y fecha fin
Horario: Se despliega la informacion de codigo horario, descripción, hora inicio, hora fin y dia!!!
Ahora hice un script que me permite visualizar a todos los empleados dependiendo del codigo de horario que ingreso.
Pero este me funciona unicamente si los empleados no cambian de horario, por ejemplo un empleado empezo trabajando de Lunes a Viernes y ahora desea trabajar Lunes, Miercoles y Viernes
Como hago para listar a los empleados, pero tomando en cuenta el ultimo horario que fue ingresado, ya q los otros ya no son validos y pasan a ser historicos
Espero me puedan ayudar
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Administrador

|
#2 Publicado: 4 May 2010 08:00
Creo que lo tienes mal planteado.
Un trabajador solo puede trabajar con un horario previamente definido, luego no tiene sentido guardar un histórico de horarios de los empleados. Aplica a cada trabajdor un horario, el que tenga en cada momento y listo.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Todo lo que sueñas, se puede diseñar.
FM 11 * VV 6 * PHP 5 * MySQL * Win 8.
|
Miembro
 Constante
  
|
#3 Publicado: 4 May 2010 13:55
Hola.
El portal en el que ingresas el horario del empleado, entiendo que contien los horarios que el empleado ha solicitado. Cuando el empleado tiene un solo horario introducido, la relacion en la que se apoya este portal te proporciona el horario actual, pero cuando tiene varios horarios solicitados ( historial de horarios ) te proporciona el primer horario que solicitó.
Si a esta relacion la llamas "HorarioxEmpleado", "HorarioxEmpleado::codigo horario" te devolvera siempre el "codigo horario" del primer registro de la relacion. Lo que tenemos que hacer es que el primer registro de la relacion corresponda con la ultima peticion de horario del empleado.
El registro que tenga el campo "fecha de inicio" mas grande, correspondera con la ultima peticion, asi que si entramos en la definicion de la relacion "HorarioxEmpleado" y le indicamos a filemaker que ordene la relacion por el campo "fecha de inicio" en sentido descendente, el primer registro de la relacion sera el que tenga "fecha inicio" mas grande y por lo tanto, la ultima peticion del empleado, asi "HorarioxEmpleado::codigo horario" devolvera el codigo horario de esa ultima peticion.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Desde Galicia
FM6, WindowsXP, Ubuntu
|
Miembro
Ocasional
|
#4 Publicado: 4 May 2010 17:57
Muchas gracias poutija
Voy a probar tu recomendacion de organizar los registros!!! Asi evitare tantas vueltas que me estoy dando!!!
Cuaquier cosa te aviso
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Miembro
Ocasional
|
#5 Publicado: 4 May 2010 21:39
Listo, lo que me recomendaste funciono!!!
Ahora se presento otro problema!!!
Empleado: Datos generales(nombre, cedula, direccion, edad) y dentro de esta pantalla se encuentra un portal en donde see ingresa el horario del empleado.
HorarioxEmpleado: Se despliega la informacion de codigo horario, fecha de inicio y fecha fin
HabilidadxEmpleado: (Aqui se almacena ej: Albañil, Básico) Se despliega la informacion de codigo habilidad, experiencia
En la lista quiero desplegar las habilidades que tiene los empleados junto con el horario (problema que solucione anteriormente)
La presentacion pertenece a las habilidades del empleado, porque puede tener varias habilidades.
Pero al momento de buscar una habilidad, experiencia y codigo del horario, me despliega codigos de horario que no cumplen la condicion, no se como solucionar esto!!!
A la presentacion no le puedo hacer de horario porque asi no me salen todas las habilidades del empleado
Espero me puedan ayudar
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Miembro
 Constante
  
|
#6 Publicado: 4 May 2010 23:50
Me imagino que en esa presentacion perteneciente a las habilidades, has dispuesto los campos habilidad, experiencia y el campo relacionado codigo del horario, y lo que quieres es que te informe de que trabajadores dispones con una habilidad, experiencia y horario determinado.
La relacion de la que antes hablabamos, HorarioxEmpleado, la hemos diseñado para que nos muestre en primer lugar el horario mas reciente solicitado por el empleado, pero debemos pensar que el resto de los horarios ( el historial de horarios ) sigue cumpliendo la relacion, y la busqueda se realiza tambien sobre ellos, arrojando resultados no deseados.
Si defines un campo calculado
codigo horario actual=HorarioxEmpleado::codigo horario
en este nuevo campo solo se almacenara el horario mas reciente, y no todos los de la relacion, y es sobre este campo sobre el que debes hacer la busqueda.
En la presentacion perteneciente a las habilidades, debes sustituir el campo codigo del horario por el nuevo campo codigo horario actual.
Espero no equivocarme y hacerte trabajar para nada. 
Ya me contaras.
Un saludo.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Desde Galicia
FM6, WindowsXP, Ubuntu
|
Miembro
Ocasional
|
#7 Publicado: 7 May 2010 23:55
Hola poutija
Te comento que Habilidadesempleado no esta relacionaciona con HorarioEmpleado
La relacion que poseo es:
Habilidadesempleado------------>Empleado---------- -->HorarioEmpleado
Y necesito un informe donde se despliega la informacion:
Datos del empleado, la habilidad con experiencia y el horario que posee; Mmm no puedo realizar la busqueda que necesito porque estoy ingresando en varias campos de diferentes campos y que pertecen a diferentes tablas por eso al ejecutar la busqueda me salen valores que no deberian!!!!
Ingrese un campo horario como me recomendaste, pero no me ayuda!!
Y en la pantalla donde queria desplegar la informacion pertecia a la tabla de habilidadesempleado
No se que me recomiendas para solucionar este problema?
Yo tengo una idea pero no se si funciones, te menciono pa ver si me ayudas o me corriges en algo.....
Queria primero buscar en hablidadempleado los empleados q cumplas con la habilidad y experiencia requerida, luego buscar en horarioempleado el horario requerido y luego con un loop(donde por medio de las cedula verifico si la ced_Empleado q esta en habilidadesempleado sea igual a HorarioEmpleado) y asi conocer los empleados que poseen todas las condiciones de busqueda y sacar en una nueva lista el resultado del loop... Espero me entidas
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Miembro
 Constante
  
|
#8 Publicado: 8 May 2010 01:44
Angelilu: Habilidadesempleado no esta relacionaciona con HorarioEmpleado No creo que necesites esta relacion, el campo "codigo horario" que te sugeria, debe definirse en la tabla de empleados como:
codigo horario actual=HorarioxEmpleado::codigo horario
entendiendo que HorarioxEmpleado es la relacion que has definido entre las tablas empleado y horarioEmpleado ordenada por el campo fecha de inicio en sentido descendente
Asi tendras cada empleado con su horario mas actual guardado en un campo, y su historial de horarios en un portal.
En la presentacion de HabilidadxEmpleado en la que deseabas hacer las busquedas, puedes disponer este nuevo campo calculado "codigo horario actual", haciendo uso de la relacion entre las tablas Habilidadesempleado y Empleado que ya tienes definida.
En cuanto al informe que necesitas, tras la busqueda realizada, un boton que te lleve a una presentacion con subsumarios hara la tarea de forma efectiva y presentable.
Si te interesa un informe por cada empleado, diseña una presentacion con dos subsumarios en el orden "trabajador-habilidad".
Si te interesa un informe por cada habilidade , diseña una presentacion con dos subsumarios en el orden "trabajador-habilidad".
No se si has trabajado en alguna ocasion con susbsumarios, pero para que te hagas una idea, el informe por empleado te daria un listado algo asi:
-Juan Perez Electricista Fontanero
-Luis Rodriguez Fontanero
El informe por habilidades, algo asi:
-Fontanero Juan Perez Luis Rodriguez
-Electricista Juan Perez
Si te hace falta puedes incluir un subsumario por horario.
Debiera funcionarte bien, si no es asi y puedes poner las tablas en este hilo, seguro que encontramos el problema y la solucion.
Un saludo
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Desde Galicia
FM6, WindowsXP, Ubuntu
|
Miembro
Ocasional
|
#9 Publicado: 8 May 2010 05:57
Hola, mmm no se como realizar y obtener lo que quiero...
En este punto creo que me estoy haciendo lio de gana, necesito una mano para buscar una solucion y que mencionen que debo realizar
Espero me puedas ayudar
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Miembro
 Constante
  
|
#10 Publicado: 9 May 2010 02:13 - Editado por: poutija
Vayamos paso por paso.
Define en la tabla Empleado :
Id horario actual=HorarioEmpleado::Id_Horario
entendiendo que la relacion HorarioEmpleado, es la relacion que has definido entre las tablas Empleado y HorarioEmpleado ordenada por el campo Fecha_Inicio en sentido descendente
Id horario actual, debe ser del mismo tipo que "Id_Horario", no almacenado.
Confirmame si este campo funciona correctamente, y almacena el ultimo Id_Horario almacenado para cada empleado.
¿Que version de filemaker usas ?
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Desde Galicia
FM6, WindowsXP, Ubuntu
|
Miembro
Ocasional
|
#11 Publicado: 9 May 2010 18:49
Si, eso funciona bien!!! Filemaker 10
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Miembro
 Constante
  
|
#12 Publicado: 9 May 2010 22:15
En la presentacion correspondiente a Habilidades empleado, pon el campo "Id horario actual".
¿ Puedes buscar por Id_Habilidades, Id_Empleado e Id horario actual desde esa presentacion ?
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Desde Galicia
FM6, WindowsXP, Ubuntu
|
Miembro
Ocasional
|
#13 Publicado: 9 May 2010 23:17
listo eso tambien ya esta
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Miembro
 Constante
  
|
#14 Publicado: 10 May 2010 00:29
Bien, entonces te funciona el calculo del horario actual, y puedes hacer busquedas por horario.
El siguiente paso sera construir informes con subsumarios.
¿ Has relizado en alguna ocasion una presentacion con subsumarios ?
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Desde Galicia
FM6, WindowsXP, Ubuntu
|
Miembro
Ocasional
|
#15 Publicado: 10 May 2010 02:09
No, pero el asistente de informes no es una gran ayuda para realizarlos?
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|
Miembro
 Constante
  
|
#16 Publicado: 10 May 2010 04:47 - Editado por: poutija
Hola.
Creo que seria un poco largo y complicado explicar como construir una presentacion con subsumarios, asi que te he preparado un pequeño video ,sin grandes pretensiones, que es posible que te ayude:
Hechale un vistazo, y recuerda que el orden de los registros es basico en una presentacion con subsumarios, y que solo funcionan en el modo vista previa.
No se cuanto tiempo tarda youtube en publicarlo, pero si lo prefieres te lo envio a algun correo.
Espero que te sirva.
Un saludo.
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
Desde Galicia
FM6, WindowsXP, Ubuntu
|
Miembro
Ocasional
|
#17 Publicado: 10 May 2010 18:32
listo, muchas gracias
Si este mensaje te ha servido de ayuda dale tu voto
, si quieres penalizarlo
|