Utilizacion de la funcion SetItemStatus

Hola Tengo un datawindow y quiero grabar, modificar, eliminar, la informacion dependiendo del estado de las filas, Tambien Quiero cambiar el estado de las mismas.
Tengo el siguente codigo
de antemano gracias por tu ayuda
date vfechaprod,fecha_act
double produccion,prodiaria1
dwItemStatus l_status,sta_codart,sta_prod, statusrow
long lnumdoc
string s_codart, s_codcla, s_codusu, s_nacional, s_codemp, s_numdoc, s_codalm1
string s_estado,s_puncor, s_codcol, s_tipemp, s_nomart, s_tipflo, s_numsec
double r_prod_diaria
date d_fecha_plantas, d_fechacarga, d_fecult, d_fechaprod, d_fecsec
integer n_cod_invernadeo, n_codarea, n_talla, n_tambun, n_uxcaja
fecha_act=today()
fila_act = dw_mandat.rowcount()
dw_2.AcceptText()
s_CodAlm = dw_2.GetItemString( 1, "codalm")
for i= 1 to fila_act
l_status = dw_mandat.GetItemStatus(i,0, Primary!)
// modificacion de una existente
if l_status=DataModified! THen
aqui hare una actualizacion dependiendo del estado de la fiña
end if
// Si es nueva la fila
if l_status=NewModified! Then
Prodiaria = dw_mandat.getitemnumber(i,'Prod_diaria')
s_codart=dw_mandat.getitemstring(i,"codart")
s_codcla=dw_mandat.getitemstring(i,"codcla")
s_codusu=dw_mandat.getitemstring(i,"codusu")
s_nacional=dw_mandat.getitemstring(i,"nacional")
s_codemp=dw_mandat.getitemstring(i,"codemp")
//s_numdoc=dw_mandat.getitemstring(i,"num_doc")
s_codalm1=dw_mandat.getitemstring(i,"codalm")
s_estado=dw_mandat.getitemstring(i,"estado")
s_puncor=dw_mandat.getitemstring(i,"puncor")
s_codcol=dw_mandat.getitemstring(i,"codcol")
s_tipemp=dw_mandat.getitemstring(i,"tipemp")
s_nomart=dw_mandat.getitemstring(i,"nomart")
s_tipflo=dw_mandat.getitemstring(i,"tipflo")
//s_numsec = dw_mandat.getitemstring(i,"numsec")
n_cod_invernadeo=dw_mandat.getitemnumber(i,"cod_invernadeo")
n_codarea=dw_mandat.getitemnumber(i,"codarea")
n_talla=dw_mandat.getitemnumber(i,"talla")
n_tambun=dw_mandat.getitemnumber(i,"tambun")
n_uxcaja=dw_mandat.getitemnumber(i,"uxcaja")
r_prod_diaria=dw_mandat.getitemnumber(i,"prod_diaria")
d_fecha_plantas=date(dw_mandat.getitemdatetime(i,"fecha_plantas"))
d_fechacarga=date(dw_mandat.getitemdatetime(i,"fechacarga"))
d_fecult=date(dw_mandat.getitemdatetime(i,"fecult"))
d_fechaprod=date(dw_mandat.getitemdatetime(i,"fechaprod"))
FOR l = 1 TO Prodiaria
DECLARE sp_secuenciabonches1 PROCEDURE FOR sp_secuenciabonches @EMPRESA = :gs_Codemp,
@CODART = :s_codart;
EXECUTE sp_secuenciabonches1;
FETCH sp_secuenciabonches1 INTO :s_numsec;
CLOSE sp_secuenciabonches1;
commit;
DECLARE sp_secuenciabonchesnumdoc1 PROCEDURE FOR sp_secuenciabonchesnumdoc @EMPRESA = :gs_Codemp ;
EXECUTE sp_secuenciabonchesnumdoc1;
FETCH sp_secuenciabonchesnumdoc1 INTO :s_numdoc;
CLOSE sp_secuenciabonchesnumdoc1;
commit;
INSERT INTO fpsp.dbo.produccion_diaria
(codemp, codarea, cod_invernadeo, fechacarga, codcla, fecha_plantas,
codart, fechaprod, num_doc, talla, prod_diaria, nacional, tambun, codusu,
fecult, codalm, estado, puncor, tipemp, uxcaja, codcol, nomart, tipflo, numren, numsec)
VALUES(:gs_codemp, :n_codarea, :n_cod_invernadeo, :d_fechacarga,:s_codcla,
:d_fecha_plantas, :s_codart,:d_fechaprod, :s_numdoc, :n_talla, 1,
:s_nacional, :n_tambun,:s_codusu, :d_fecult, :s_codalm,:s_estado,:s_puncor,
:s_tipemp, :n_uxcaja, :s_codcol, :s_nomart, :s_tipflo,'0',:s_numsec);
commit;
next
dw_mandat.setitemstatus(i,0,primary!,NotModified!)
end if
next
return 0

1 respuesta

Respuesta
1
No se cual es la pregunta finalmente.
Por las dudas te comento que cuando use stored procedures para hacer los updates, los llamaba desde el evento sqlpreview que se ejecuta justo antes de que pb mande la sentencia sql a la BD. En ese evento capturas el tipo de operacion, tomas los datos y llamas al procedure. Es similar a lo que tenes.
Aldob

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas