RE:Cantidad de Rows por Página
crea una funcion.
////////////////////////////////////////////////////////////////////
// Funcion:
// Sirve para saber el numero de registros (rows , filas ) que va a traer la data window
// usando el retrieve se pasan de 200 (limite standard puede modificar dependiendo del
// tipo de aplicacion).
////////////////////////////////////////////////////////////////////
long ll_place_nbr1, ll_Count
int li_net, li_pos
string ls_query, ls_query2, Stringvar, Sqlstatement, ls_query3, ls_mensaje
//En este bloque asigno el query de la Dw a la variable ls_query
//luego la manipulo y en ls_query3 dejo ya el query de la siguiente forma:
// Select count(*) from XX Where YY..........
ls_query = dw_datos.GetSQLSelect()
ll_place_nbr1 = PosA(ls_query, "FROM")
ls_query2 = MidA(ls_query, ll_place_nbr1)
ls_query3 = 'SELECT COUNT (*)' + " " + ls_query2
//En este bloque primero preparo el Objeto de transacción SQLSA de Oracle a un
//Query dinámico luego describo(asigno) el objeto de transacción de Oracle SQLCA
//a un objeto de transición SQLDA. Seguidamente declaro un cursor dinámico y le
//asigno el objeto de transacción SQLSA, abro el cursor dinámico usando el
//descriptor SQLDA como objeto dinámico de transición y por último voy a traer el
//resultado aplicando la instrucción Fetch al cursor usando el descriptor SQLDA
//como objeto dinámico de transición.
PREPARE SQLSA FROM :ls_query3;
DESCRIBE SQLSA INTO SQLDA ;
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;
OPEN DYNAMIC my_cursor USING DESCRIPTOR SQLDA ;
FETCH my_cursor USING DESCRIPTOR SQLDA ;
//Le asigno a ll_Count el valor que retorna el cursor dinámico usando el Objeto de
//transición SQLDA por medio de la función GetDynamicNumber! esto porque yo se que
//el valor que va a retornar en numérico. Pero si no supiera que valor me va a
//retornar podría hacer uso del Choose Case para determinar si es GetDynamicstring!
//o GetDynamicDate, etc. Y cierro el cursor.
ll_Count = SQLDA.GetDynamicNumber(1)
CLOSE my_cursor ;
if ll_Count > 200 then
ls_mensaje = 'Cantidad de tuplas que se obtendrán: ' + string(ll_Count)
li_Net = MessageBox("Atención:", ls_mensaje, Exclamation!,OKCancel!, 1)
elseif ll_Count > 0 then
li_Net = 1
end if
return li_Net
si quieres habres una nueva ventana enviandole los paramentros.
cualquier otra cosa me cuentas,