FRANCISCO
Publicado por Edgar (87 intervenciones) el 17/06/2010 23:18:14
Amigo Panchito buenas tardes tengo este problema espero me puedas ayudar, mira tengo una ventana triple:
1. Cabecera …… Código del mes , Tipo Rol, Estado
a. En esta ventana se indica en que mes quiero hacer el rol
2. Detalle de acuerdo al tipo del Rol seleccionado se pasan todos los empleados que pertenezcan a este tipo de rol
3. Pie….. de acuerdo al empleado buscamos el tipo de contrato y los rubros que tiene asignado ese empleado.
Yo tengo la programación pero resulta que por cada empleado que es nuevo en este rol me presenta:
- mensaje de que existe nuevos empleados para este rol
- mensaje de que se van a eliminar los rubros y se importaran nuevamente etc…..
Programación evento click botón actualizar empleados.
string ls_codtrol,ls_empleado,ls_empl,ls_caro,ls_codmes
long ll_fila,ll_empleado,ll_i,ll_emplrol,ll_j,ll_existe,ll_elimina
long ll_mensaje,ll_insert
date ld_finicio,ld_final,ld_fingreso
dw_1.AcceptText()
ll_fila=dw_1.getrow()
ls_codtrol=dw_1.getitemstring(ll_fila,"codigo_tiro")
ls_caro=dw_1.getitemstring(ll_fila,"codigo_caro")
//Crea datastore para obtener los empleados de acuerto al tipo de rol
u_ds_general lds_empleado
lds_empleado = create u_ds_general
lds_empleado.dataobject="ds_empleado_rol"
lds_empleado.settransobject( gnv_base.itr_transacc )
lds_empleado.of_retrieve( ls_codtrol)
//Total empleados por tipo de rol
ll_empleado=lds_empleado.rowcount( )
//Crea datastore para obtener los empleados de la tabla nom_emplaedo_rol
u_ds_general lds_emplrol
lds_emplrol = create u_ds_general
lds_emplrol.dataobject="ds_nom_empleado_rol"
lds_emplrol.settransobject( gnv_base.itr_transacc )
lds_emplrol.of_retrieve( ls_caro)
//Total empleados en la tabla nom_empleado_rol
ll_emplrol=lds_emplrol.rowcount()
for ll_i=1 to ll_empleado
ls_empleado=lds_empleado.getitemstring(ll_i,"codigo_empl")
ld_fingreso =lds_empleado.getitemdate(ll_i,"fecha_ingreso_empl")
ll_existe=lds_emplrol.find("codigo_empl= '" +ls_empleado + "'",1,lds_emplrol.rowcount())
if ll_existe = 0 then
//if ll_mensaje=1 then
//Verificar que el empleado no este fuera de la fecha del rol
ls_codmes=dw_1.getitemstring(ll_fila,"codigo_mes")
// Obtengo las fecha del Rol
select gen_mes.fecha_inicial_mes,gen_mes.fecha_final_mes
into :ld_finicio, :ld_final
from gen_mes
where gen_mes.codigo_mes= :ls_codmes
using gnv_base.itr_transacc;
if ld_finicio<ld_fingreso then
if ld_final >ld_fingreso then
ll_mensaje=Messagebox("Atención","Existen nuevos empleados en este rol,desea Agregarlos",Question!,YesNo!)
if ll_mensaje = 1 then
ll_elimina=messagebox("Atención","Se eliminaran todos los datos de este Rol e importar nuevamente,los empleados y Rubros",Question!,YesNo!)
if ll_elimina=1 then
delete
from nom_emplado_rol
where nom_empleado_rol.codigo_caro= :ls_caro and
nom_empleado_rol.codigo_empl= :ls_empleado
using gnv_base.itr_transacc;
end if
ll_insert=dw_2.insertrow(0)
dw_2.setitem(ll_insert,"codigo_empl",ls_empleado)
end if
end if
else
messagebox("","Ingreso Despues del Cierre de Rol")
end if
end if
next
1. Cabecera …… Código del mes , Tipo Rol, Estado
a. En esta ventana se indica en que mes quiero hacer el rol
2. Detalle de acuerdo al tipo del Rol seleccionado se pasan todos los empleados que pertenezcan a este tipo de rol
3. Pie….. de acuerdo al empleado buscamos el tipo de contrato y los rubros que tiene asignado ese empleado.
Yo tengo la programación pero resulta que por cada empleado que es nuevo en este rol me presenta:
- mensaje de que existe nuevos empleados para este rol
- mensaje de que se van a eliminar los rubros y se importaran nuevamente etc…..
Programación evento click botón actualizar empleados.
string ls_codtrol,ls_empleado,ls_empl,ls_caro,ls_codmes
long ll_fila,ll_empleado,ll_i,ll_emplrol,ll_j,ll_existe,ll_elimina
long ll_mensaje,ll_insert
date ld_finicio,ld_final,ld_fingreso
dw_1.AcceptText()
ll_fila=dw_1.getrow()
ls_codtrol=dw_1.getitemstring(ll_fila,"codigo_tiro")
ls_caro=dw_1.getitemstring(ll_fila,"codigo_caro")
//Crea datastore para obtener los empleados de acuerto al tipo de rol
u_ds_general lds_empleado
lds_empleado = create u_ds_general
lds_empleado.dataobject="ds_empleado_rol"
lds_empleado.settransobject( gnv_base.itr_transacc )
lds_empleado.of_retrieve( ls_codtrol)
//Total empleados por tipo de rol
ll_empleado=lds_empleado.rowcount( )
//Crea datastore para obtener los empleados de la tabla nom_emplaedo_rol
u_ds_general lds_emplrol
lds_emplrol = create u_ds_general
lds_emplrol.dataobject="ds_nom_empleado_rol"
lds_emplrol.settransobject( gnv_base.itr_transacc )
lds_emplrol.of_retrieve( ls_caro)
//Total empleados en la tabla nom_empleado_rol
ll_emplrol=lds_emplrol.rowcount()
for ll_i=1 to ll_empleado
ls_empleado=lds_empleado.getitemstring(ll_i,"codigo_empl")
ld_fingreso =lds_empleado.getitemdate(ll_i,"fecha_ingreso_empl")
ll_existe=lds_emplrol.find("codigo_empl= '" +ls_empleado + "'",1,lds_emplrol.rowcount())
if ll_existe = 0 then
//if ll_mensaje=1 then
//Verificar que el empleado no este fuera de la fecha del rol
ls_codmes=dw_1.getitemstring(ll_fila,"codigo_mes")
// Obtengo las fecha del Rol
select gen_mes.fecha_inicial_mes,gen_mes.fecha_final_mes
into :ld_finicio, :ld_final
from gen_mes
where gen_mes.codigo_mes= :ls_codmes
using gnv_base.itr_transacc;
if ld_finicio<ld_fingreso then
if ld_final >ld_fingreso then
ll_mensaje=Messagebox("Atención","Existen nuevos empleados en este rol,desea Agregarlos",Question!,YesNo!)
if ll_mensaje = 1 then
ll_elimina=messagebox("Atención","Se eliminaran todos los datos de este Rol e importar nuevamente,los empleados y Rubros",Question!,YesNo!)
if ll_elimina=1 then
delete
from nom_emplado_rol
where nom_empleado_rol.codigo_caro= :ls_caro and
nom_empleado_rol.codigo_empl= :ls_empleado
using gnv_base.itr_transacc;
end if
ll_insert=dw_2.insertrow(0)
dw_2.setitem(ll_insert,"codigo_empl",ls_empleado)
end if
end if
else
messagebox("","Ingreso Despues del Cierre de Rol")
end if
end if
next
Valora esta pregunta
0