Copiar de una tabla a otra
Hola... Ya a pasado bastante tiempo.. Je je
Bueno el problema es que tengo una tabla (T1) con los campos Num_emp y Num_cst, los cuales debo buscar en la tabla (T2). Si lo encuentra debe de verificar en la T1 si los campos mes_et, mes_jop, mes_asist, mes_final son = 0. Si lo son debe copiar de T2 a T1. Y así con cada uno de los empleados registrados en T1. Si no lo encuentra el num_emp y num_cst en T2, pues no hace nada, y pasa al siguiente empleado en T1... Aquí te pongo el código que llevo.. Para que verifiques cual es el error que tengo..
set exact on
fecini1=thisform.text1.value **aqui pongo el rango de fecha
fecter1=thisform.text2.value
x=year(fecini1)
y=year(fecter1)
if ( empty(fecini1) .or. Empty(fecter1) .or. X<2002 .or. Y<2002 .or. Fecini1>fecter1)
messagebox("fecha incorrecta... Favor de introducir la fecha del periodo a evaluar...",0+64,"sistema de eficiencia (evaluación)")
thisform.refresh
return
endif
fec=upper(alltrim(cmonth(fecini1))) **aqui extraigo el mes
tablita =getfile('dbf') **busco la tabla de la cual se copiaran los campos, esta seria (T2)
select 55
use (tablita)
*****************por administrador de plazas de cobro*********************
if apc=1
select 1 **esta sería (T1)
go top
scan
n=alltrim(numemp)
cst=alltrim(num_cst)
select 55
go top
scan
locate for alltrim(numemp)=n .and. Alltrim(num_cst)=cst
if found()
if (fec="septiembre" .or. Fec="september")
select 1
if(sep_et=0 .and. Sep_jop=0 .and. Sep_asist=0 .and. Sep_final=0)
select 55
replace por_apc2.sep_et with sep_et
replace por_apc2.sep_jop with sep_jop
replace por_apc2.sep_asist with sep_asist
replace por_apc2.sep_final with sep_final
endif
endif
if (fec="octubre" .or. Fec="october")
select 1
if(oct_et=0 .and. Oct_jop=0 .and. Oct_asist=0 .and. Oct_final=0)
select 55
replace por_apc2.oct_et with oct_et
replace por_apc2.oct_jop with oct_jop
replace por_apc2.oct_asist with oct_asist
replace por_apc2.oct_final with oct_final
endif
endif
if (fec="noviembre" .or. Fec="november")
select 1
if(nov_et=0 .and. Nov_jop=0 .and. Nov_asist=0 .and. Nov_final=0)
select 55
replace por_apc2.nov_et with nov_et
replace por_apc2.nov_jop with nov_jop
replace por_apc2.nov_asist with nov_asist
replace por_apc2.nov_final with nov_final
endif
endif
if (fec="diciembre" .or. Fec="december")
select 1
if(dic_et=0 .and. Dic_jop=0 .and. Dic_asist=0 .and. Dic_final=0)
select 55
replace por_apc2.dic_et with dic_et
replace por_apc2.dic_jop with dic_jop
replace por_apc2.dic_asist with dic_asist
replace por_apc2.dic_final with dic_final
endif
endif
endif
endscan
endscan
endif
Saludos y gracias por tu ayuda
Bueno el problema es que tengo una tabla (T1) con los campos Num_emp y Num_cst, los cuales debo buscar en la tabla (T2). Si lo encuentra debe de verificar en la T1 si los campos mes_et, mes_jop, mes_asist, mes_final son = 0. Si lo son debe copiar de T2 a T1. Y así con cada uno de los empleados registrados en T1. Si no lo encuentra el num_emp y num_cst en T2, pues no hace nada, y pasa al siguiente empleado en T1... Aquí te pongo el código que llevo.. Para que verifiques cual es el error que tengo..
set exact on
fecini1=thisform.text1.value **aqui pongo el rango de fecha
fecter1=thisform.text2.value
x=year(fecini1)
y=year(fecter1)
if ( empty(fecini1) .or. Empty(fecter1) .or. X<2002 .or. Y<2002 .or. Fecini1>fecter1)
messagebox("fecha incorrecta... Favor de introducir la fecha del periodo a evaluar...",0+64,"sistema de eficiencia (evaluación)")
thisform.refresh
return
endif
fec=upper(alltrim(cmonth(fecini1))) **aqui extraigo el mes
tablita =getfile('dbf') **busco la tabla de la cual se copiaran los campos, esta seria (T2)
select 55
use (tablita)
*****************por administrador de plazas de cobro*********************
if apc=1
select 1 **esta sería (T1)
go top
scan
n=alltrim(numemp)
cst=alltrim(num_cst)
select 55
go top
scan
locate for alltrim(numemp)=n .and. Alltrim(num_cst)=cst
if found()
if (fec="septiembre" .or. Fec="september")
select 1
if(sep_et=0 .and. Sep_jop=0 .and. Sep_asist=0 .and. Sep_final=0)
select 55
replace por_apc2.sep_et with sep_et
replace por_apc2.sep_jop with sep_jop
replace por_apc2.sep_asist with sep_asist
replace por_apc2.sep_final with sep_final
endif
endif
if (fec="octubre" .or. Fec="october")
select 1
if(oct_et=0 .and. Oct_jop=0 .and. Oct_asist=0 .and. Oct_final=0)
select 55
replace por_apc2.oct_et with oct_et
replace por_apc2.oct_jop with oct_jop
replace por_apc2.oct_asist with oct_asist
replace por_apc2.oct_final with oct_final
endif
endif
if (fec="noviembre" .or. Fec="november")
select 1
if(nov_et=0 .and. Nov_jop=0 .and. Nov_asist=0 .and. Nov_final=0)
select 55
replace por_apc2.nov_et with nov_et
replace por_apc2.nov_jop with nov_jop
replace por_apc2.nov_asist with nov_asist
replace por_apc2.nov_final with nov_final
endif
endif
if (fec="diciembre" .or. Fec="december")
select 1
if(dic_et=0 .and. Dic_jop=0 .and. Dic_asist=0 .and. Dic_final=0)
select 55
replace por_apc2.dic_et with dic_et
replace por_apc2.dic_jop with dic_jop
replace por_apc2.dic_asist with dic_asist
replace por_apc2.dic_final with dic_final
endif
endif
endif
endscan
endscan
endif
Saludos y gracias por tu ayuda
1 Respuesta
Respuesta de ikz0f7
1