FoxPro/Visual FoxPro - como mostrar el total de registros que hay en un grid?

   
Vista:

como mostrar el total de registros que hay en un grid?

Publicado por Joel (40 intervenciones) el 15/02/2016 20:48:50
quisiera saber con exactitud como puedo mostrar el total de registros que tengo en un grid y este muestre el total en un label. Me explico mejor, Cuantas filas tiene la grid en el momento de mostrar los datos de la tabla. Si hay 100 registros en un grid, esto me lo muetre en un label, si mas adelante creo otro registro, el label me diga que hay 101?
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

como mostrar el total de registros que hay en un grid?

Publicado por Juan R. (101 intervenciones) el 16/02/2016 01:15:21
Buenas Joel

Si buscas por el foro seguro que encontrarías la respuesta. En cualquier caso, te pego los links a dos hilos similares a éste por si te puedan ayudar:

http://www.lawebdelprogramador.com/foros/FoxPro-Visual-FoxPro/88433-Como-saber-cuantos-registros-tiene-una-grid.html
http://www.lawebdelprogramador.com/foros/FoxPro-Visual-FoxPro/331004-URGENTE-filas-de-un-grid.html

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

como mostrar el total de registros que hay en un grid?

Publicado por Joel (40 intervenciones) el 16/02/2016 14:38:49
Buenas Juan, Gracias por responder.

si men he chequeado esos post anteriormente por eso hice uno nuevo, los que hay no lo entendí muy bien. por lo tanto quisiera que ese total de registros me lo mostrara en un label como dije anteriormente.
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

como mostrar el total de registros que hay en un grid?

Publicado por Joel (40 intervenciones) el 16/02/2016 19:08:04
ALGO ASI

pnhjh
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

como mostrar el total de registros que hay en un grid?

Publicado por Fidel José (321 intervenciones) el 16/02/2016 23:25:32
Para evitar que se mueva el cursor, al crear el grid y cada vez que agregas o marcas para borrar un registro en el cursor asociado:

SELECT COUNT(*) FROM (thisform.grid1.RecordSource) WHERE !DELETED() INTO ARRAY laCount
IF _TALLY > 0
Thisform.Label1.Caption = TRansform(laCount[1,1])
ENDIF
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

como mostrar el total de registros que hay en un grid?

Publicado por Foxshin (34 intervenciones) el 17/02/2016 00:25:47
Hola

En los enlaces esta dicho, pero bueno en resumido y aumentado tienes varias formas de hacerlo.
1. Mediante el comando COUNT
2. Mediante la funcion RECCOUNT()
3. Mediante una instruccion SELECT - SQL
4. Mediante la variable de memoria _TALLY (Luego de una instrucción SELECT - SQL)
5. Mediante un bucle y una variable que sirva de contador (pero no te recomiendo ésta forma)
6. Y me imagino hará otras formas, aunque en éste momento no se me ocurra alguna más.

Entonces haremos las siguientes suposiciones:
Nombre de la tabla asociada al grid: TablaX
Nombre de tu label: lblTotCon
Procedimiento donde estará el código (que tendrás que invocar cuando se agregue o eliminen registros): Refresh de lblTotCon

Las instrucciones serían (usando el método 3):
LOCAL lcTotalRegistros && Creamos una variable local para albergar el resultado obtenido
SELECT COUNT(*) FROM TablaX INTO ARRAY aCount

lcTotalRegistros = TRANSFORM(IIF(TYPE("aCount(1)")="N",aCount(1),0))
This.Caption = "Total Registros: " + lcTotalRegistros
RELEASE lcTotalRegistros && Liberamos la variable


Ahora si fuera que quieres usar el método 2 entonces sería:
LOCAL lcTotalRegistros && Creamos una variable local para albergar el resultado obtenido

lcTotalRegistros = TRANSFORM(RECCOUNT("TablaX"))
This.Caption = "Total Registros: " + lcTotalRegistros
RELEASE lcTotalRegistros && Liberamos la variable

Analízalo y lo adecuas al caso que necesitas.
Espero te sirva por lo menos de guía.

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

como mostrar el total de registros que hay en un grid?

Publicado por Joel (40 intervenciones) el 17/02/2016 15:11:11
Buenas Foxshin, Gracias.

ahora bien me funciono el método 2.

Otra pregunta. y si quisiera que me aparezcan solo los que están en el grid, por ejemplo busco con el nombre "Juan" solo me aparezcan el total de las ordenes medicas que se presentan en el grid.??

Ejemplo 1; si solo busco a Juan hay 5 registros me diga el total es 5.
Ejemplo 2; si busco el paciente Pedro y tiene 8 consultas registradas en el grid me diga el total es 8.
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

como mostrar el total de registros que hay en un grid?

Publicado por Fidel José (321 intervenciones) el 17/02/2016 15:42:57
Joel:
1) Reccount() te dará el total de registros de la tabla o cursor, con independencia de si están marcados para borrar (deleted() ) o no.
La información es del registro de cabecera de la tabla, por eso es extremadamente rápido. Pero en algunos casos puede no ser lo que se necesita.
2) El control grid no es un registro. Es un objeto complejo que permite mostrar un cursor o tabla. Tu generas un cursor y lo asocias a un grid para mostrar cierta información. Pero la información está en el cursor y los resultados de cualquier valor que se consulte dependen estrictamente de la posición del puntero de registro.

Ejemplo malo (aunque dé un resultado correcto)
lcTemaPaciente = Thisform.pageFrame1.Page3.Grid2.Column5.Text1.Value

Ejemplo correcto
loGrid = Thisform.pageFrame1.Page3.Grid2
lcCampo = "Tema"
lcTemaPaciente = Evaluate( loGrid.RecordSource + "." + lcCampo)

O, si conoces el nombre del cursor y el campo
lcTemaPaciente = curPaciente.Tema

De paso, esta forma te permte consultar campos del cursor o tabla que no se muestran en el control Grid.
Dicho de otra forma, te permite mostrar en el control grid, solamente la información que es relevante (e inteligible) para el usuario.

Volviendo al contador de registros, para lo que necesitas, la mejor forma es:

* supongamos que tenemos este grid y que hay alguna tabla o cursor asociado a dicho grid.
LOCAL loGrid as Object
loGrid = Thisform.PageFrame1.Page4.Grid1

SELECT COUNT(*) FROM (loGrid.RecordSource) WHERE !DELETED() INTO ARRAY laCount
thisform.Label1.Caption = IIF(_Tally = 0, "0" , transform(laCount[1,1])

A diferencia de utilizar Count for Not Deleted(), el método enunciado no precisa reposicionar el puntero de registro en el cursor asociado.
De otra forma, para que el puntero no quede en EOF(), generando un efecto desconcertante, sería necesario;
SELECT TABLA
lnRecord = Recno()
COUNT FOR !DELETED() TO lnRegistros
IF lnRecord > 0
Go lnRecord
ELSE
go Top
ENDIF
Thisform.label1.Caption=Transform(lnRegistros)

Nota:
La ventaja de utilizar la propiedad RecordSource del grid de que se trata, es que nos independiza de como se llama el cursor o tabla.
Para una clase Grid, el nombre del cursor o tabla asociada es siempre:
lcTablaGrid = This.RecordSource
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

como mostrar el total de registros que hay en un grid?

Publicado por Foxshin (34 intervenciones) el 17/02/2016 16:51:26
Buenas Joel.

La respuesta a tu pregunta ya lo contestó Fidel José.

Si tienes alguna otra pregunta o inquietud, no dudes en hacerla. :D

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