Power Builder - Cantidad de Rows por Página

 
Vista:

Cantidad de Rows por Página

Publicado por Kenia (1 intervención) el 28/05/2007 23:54:55
Buenas, existe la posibilidad de una vez cargado un datawindow e irlo recorriendo poder conocer la cantidad de rows por cada página (según lo voy recorriendo)?
Es decir, independientemente de la fila donde me encuentre del dw poder consultar en qué página estoy y cuantas filas hay en la misma.
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

RE:Cantidad de Rows por Página

Publicado por luis (50 intervenciones) el 01/06/2007 01:23:31
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,
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

RE:Cantidad de Rows por Página

Publicado por Leopoldo Taylhardat (710 intervenciones) el 06/06/2007 00:49:21
Saludos...
Creo que es más facil así...

----Rows Desde-Hasta ----

Crear un campo calculado y pegar lo siguiente en la expresión….
If( RowCount() = 0,
'No hay datos!',
If( Describe("datawindow.firstrowonpage") =
Describe("datawindow.lastrowonpage"),
'Registro ' +
Describe("datawindow.firstrowonpage") +
' de ' + RowCount(),
'Registro ' +
Describe("datawindow.firstrowonpage") +
' a ' +
Describe("datawindow.lastrowonpage") +
' de ' +
RowCount()
)
)

Espero que te sirva...
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