Power Builder - cursores explisitos power builder

 
Vista:
sin imagen de perfil

cursores explisitos power builder

Publicado por SANDRA (3 intervenciones) el 12/08/2014 20:50:55
/////////inicio

DECLARE REGISTROS CURSOR FOR //
SELECT VDR_NO,
SUM ( nvl(DECODE("TAGMGL02"."DRCR_CLSFCT",'2',
DECODE("TAGMGL02"."VAT_CLSFCT",'6',"TAGMGL02"."AMT" + "TAGMGL02"."VAT_AMT","TAGMGL02"."AMT"),''), 0) + FUNC_GET_IVA_SALES(cmpy_code , yyyy, msect_code, "TAGMGL02"."REG_DEPT_CODE", "TAGMGL02"."HEAD_NO", "TAGMGL02"."LINE_NO", "TAGMGL02"."DETAL_NO")) cr_amt,
SUM( TO_NUMBER( DECODE(FUNC_GET_MNGITM(cmpy_code , yyyy, '10', "TAGMGL02"."REG_DEPT_CODE", "TAGMGL02"."HEAD_NO", "TAGMGL02"."LINE_NO", "TAGMGL02"."DETAL_NO", '07' ),' ', '0',
FUNC_GET_MNGITM(cmpy_code , yyyy, '10', "TAGMGL02"."REG_DEPT_CODE", "TAGMGL02"."HEAD_NO", "TAGMGL02"."LINE_NO", "TAGMGL02"."DETAL_NO", '07' ) ) )) qty

//into :ls_vdr_no, :ldb_cr_amt,:ldb_qty
FROM "TAGMGL02"
WHERE ( "TAGMGL02"."CMPY_CODE" = '1000' )
AND ( "TAGMGL02"."MSECT_CODE" = '10' )
AND ( "TAGMGL02"."BLT_DT" between :ls_base_from AND :ls_base_to )
AND ( RTRIM("TAGMGL02"."ACCT_CODE") IN ('5110144','5110145','5110241') )
AND SETL_YN = 'Y'
AND DRCR_CLSFCT = '2'
GROUP BY VDR_NO;

///1
open REGISTROS ;

if sqlca.sqlcode <> 0 then
MESSAGEBOX('INFORMACION',STRING (SQLCA.SQLCODE) + ' ' +SQLCA.SQLERRTEXT)
end if

fetch REGISTROS into :ls_vdr_no, :ldb_cr_amt,:ldb_qty


////-1

DO WHILE SQLCA.SQLCODE = 0

li_row2 = tab_1.tabpage_3.dw_3.InsertRow(0)
tab_1.tabpage_3.dw_3.object.vdr_no[li_row2] = ls_vdr_no
tab_1.tabpage_3.dw_3.object.model[li_row2] = "N/A"
tab_1.tabpage_3.dw_3.object.qty[li_row2] = ldb_qty
tab_1.tabpage_3.dw_3.object.price[li_row2] = 0
tab_1.tabpage_3.dw_3.object.amt_2[li_row2] = ldb_cr_amt
tab_1.tabpage_3.dw_3.object.exch_rt[li_row2] = tab_1.tabpage_3.dw_3.object.exch_rt[li_row2 - 1]



fetch REGISTROS into :ls_vdr_no, :ldb_cr_amt,:ldb_qty
loop
close REGISTROS ;


me marca error el loop, y en do while

alguien sabe porque les agradeceria me contestaran...buen dia
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
Imágen de perfil de mvvconnect

cursores explisitos power builder

Publicado por mvvconnect (25 intervenciones) el 13/08/2014 18:23:17
Hola,

Primero, te recomiendo que envíes información precisa para tomar una acción y para que te puedan ayudar ( i.e: El mensaje de error que te responde el sistema ).

Lo segundo, recuerda que cuando defines un cursor, la composición de éste, está basada en función de la recuperación de datos que explicitas en su definición y sus respectivos atributos. Entonces si te fijas, existe incongruencia entre la definición del cursor y las variables que asignas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

cursores explisitos power builder

Publicado por angel (54 intervenciones) el 16/08/2014 00:20:46
Mi recomendaciones es JAMAS usar cursores y menos aun en powerbuilder.. pero si ya no existe otra opción que usar un cursor ,es hacerlo dentro de un store procedure en la base de datos y llamar al procedimiento en powerbuilder.

Una jugada que se puede hacer para evitar el uso del cursor declarativo es usar un datawindow y barrerse en datawindow con un for.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 821
Oro
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

cursores explisitos power builder

Publicado por Leonardo Daniel A. (481 intervenciones) el 03/10/2014 16:08:52
copia y pega el select en el DB painter y ejecutalo a ver si funciona..

por ahi vi esto


"TAGMGL02"."DETAL_NO", '07' ) ) )) qty

//into :ls_vdr_no, :ldb_cr_amt,:ldb_qty
FROM "TAGMGL02"


ese // lo sigues teniendo ahi ????? esta cortando el select del cursor, si lo tienes, no se porque no te marca error, pero quita esa linea y no puede haber lineas en blanco en la declaracion del cursor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar