Power Builder - Problemas al Grabar

 
Vista:
sin imagen de perfil

Problemas al Grabar

Publicado por Edgar (87 intervenciones) el 24/02/2006 15:31:56
Amigos tengon miren tengo una funcion que al grabar la informacion de un datawindow origen a un destino lo hace bien lo pone en su status como insertadado, pero al modificar uno de los campos ya grabados en el destino el status cambia pero no solo del campo modificado si no de todos es decir en status lo ponen a todos M.
Me pueden ayudar por favor aqui esta el script de la funcion.

// Declaracion de variables
long ll_aux,ll_fila,ll_numfildestino,ll_contador,ll_encontrado
string ls_codper,ls_codpro,ls_codpla,ls_codact
integer li_valmin,li_valeva

// Creacion de Datastore
datastore lds_destino

lds_destino = create datastore
lds_destino.dataobject ='d_pro_m_evaluacion_actividad'
lds_destino.settransobject(sqlca)

//Lectura del campo pev_codper de que se encuentra en el dw_mandat
ls_codper=adw_mandat.GetitemString(adw_mandat.getrow(),'pev_codper')

ll_numfildestino = lds_destino.Retrieve(ls_codper)

if sqlca.sqlcode < 0 then
return "Error al Recuperar datos del Sistema " + sqlca.sqlerrtext
end if
for ll_aux = 1 to adw_boton.rowcount()

ls_codact = adw_boton.GetitemString(ll_aux,'apr_codact')
ls_codpro = adw_boton.GetitemString(ll_aux,'pit_codpro')
ls_codpla = adw_boton.GetitemString(ll_aux,'pop_codpla')

// Busco si existe informacion
ll_encontrado = lds_destino.find("trim(upper(apr_codact)) = '" + ls_codact + "'",1,lds_destino.RowCount())


choose case ll_encontrado
case 0
//No existe información, ingresar un nuevo registro
ll_fila = lds_destino.insertrow(0)
lds_destino.SetItem(ll_fila,'apr_codact',ls_codact)
lds_destino.SetItem(ll_fila,'pit_codpro',ls_codpro)
lds_destino.SetItem(ll_fila,'pop_codpla',ls_codpla)
lds_destino.SetItem(ll_fila,'eac_valmin',adw_boton.GetItemNumber(ll_aux,'eac_valmin'))
lds_destino.Setitem(ll_fila,'pev_codper',ls_codper)
lds_destino.Setitem(ll_fila,'codusu',gs_codusu)
lds_destino.Setitem(ll_fila,'fecult',today())
lds_destino.Setitem(ll_fila,'estado','VIG')
lds_destino.Setitem(ll_fila,'status','I')

case 1 to ll_numfildestino
//existe información en el registro y actualizo
lds_destino.SetItem(ll_encontrado,'eac_valmin',adw_boton.GetItemNumber(ll_aux,'eac_valmin'))
lds_destino.Setitem(ll_encontrado,'codusu',gs_codusu)
lds_destino.Setitem(ll_encontrado,'fecult',today())
lds_destino.Setitem(ll_encontrado,'status','M')

end choose
next
If lds_destino.Update () <> 1 Then
Rollback using sqlca;
Return "Error al actualizar los datos "
else
commit using sqlca;
End if
return ""
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder