PDA

Ver la Versión Completa : Ver solo un grupo en el DBGrid


sisne
13-04-2010, 00:17:22
Holassss...
Podrian ayudarme con el siguiente problemita?

Tengo muuuchos registros de una determinada persona, la informacion se introduce cada mes o año dependiendo (Semestral, anual).
Ejemplo:
1ºSemestre (sus datos.nombre materia, codigo materia)
2ºSemestre (sus datos '')
3ºSemestre (Sus datos '')

Quiero que se muestre solo el ultimo semestre, que en este caso seria el 3º semestre en el DBGrid.
Cabe mencionar que Table esta relacionando con su DataSource al DBGrid donde me muestran todos los datos de todos los semestres.

Gracias

Caral
13-04-2010, 02:48:12
Hola
Perdona sisne pero no te haces entender bien, cuesta captarte.
Lo que mencionas no tiene ni pies ni cabeza.
1- tienes 3 semestres pero no nos dices que campos tiene la tabla.
2- tienes un table, lógicamente te muestra todos los campos
No nos hagas pensar, danos todos los datos.
Saludos

Neftali [Germán.Estévez]
13-04-2010, 12:54:03
Quiero que se muestre solo el ultimo semestre, que en este caso seria el 3º semestre en el DBGrid.
Cabe mencionar que Table esta relacionando con su DataSource al DBGrid donde me muestran todos los datos de todos los semestres.


Pues deberías utilizar un Query en lugar de un Table para conectar al DBGrid y realizar la consulta que filtre los datos segun lo que necesitas. En la Tabla tendrás algun campo que marque la fecha.
Filtra por ese campo para que los datos sean los que necesitas.

De todas formas, tal y como comenta Caral, algunos datos más serían de gran ayuda.

sisne
14-04-2010, 18:34:46
Hooola!

Disculpen que haya dado pocos datos :(

Bueno mi problema en si es el siguiente:

Tengo una TTabla con varios datos(IdM,SiglaMateria,NombreM...etc), es una tabla de programacion de materias que en un determinado semestre o año llevaran.
Primeramente por un Tedit ingreso un NroX,que es la cantidad de materias que se programará.(Form1)
Ejemplo. En el TEdit ingreso el nro=5, significa que solo 5 materias se programará, y una vez programado las 5 ya no permite ingresar mas materias a programarse.
Segundo, las materias las ingreso por medio de otro Form2.
Tercero, todas las materias programas recientemente se visualizan en un DBGrid1, este DBGrid1 esta enlazado por medio del DataSource del TTable, como alguien del Foro dijo: que el DBGrid solo muestra del DataSet o entendi mal?

Mi problema es que solo las que YO quiero programar (ejemplo:5 materias) me muestren en el DBGrid1, ya que tengo otro DBGrid2 donde me muestran TODAS las materias que se programaron.

Me explico un poquito mas:
DBGrid1: Solo quiero que se visualicen las materias q recien se programaron, osea las 5 materias que recien ingresé (quiero saber como puedo hacer...). Este DBGrid1 se encuentra en el Form1.

DBGrid2: Se visualicen TODAS las materias que hasta el momento se programaron(de programaciones anteriores y la reciente). Este DBGrid2 se encuentra en un Form3<-- Solo lo relacioné con el DataSource del TTable y pues muestra toodas las materias (lo usual).
Espero alguien ahora pueda ayudarme.

Gracias

sisne
15-04-2010, 15:20:44
Hola a todos/as :)
Podría alguien contestarme?

Quiero con los datos mencionados....que solo me aparezca en un DBGrid los ultimos datos/ o los datos recientemente ingresados. Ya que por medio de un Edit ingreso el nro de registros a ingresar.

Ya que por medio de otro boton reviso cada registro/cada dato ingresado....
El DBGrid esta relacionado con un DataSource de una Tabla, pues obviamente en el DBGrid me muestran TODOS los datos, y eso es lo que no quiero, solo quiero me visualice y lea los que yo ingreso ultimamente...

Se comprendio lo que trato de hacer?
Alguien por favor?

Gracias

Caro
15-04-2010, 17:52:58
Hola sisne, como ya te han comentado para que te ayudemos con tu consulta es importante que nos indique que campos tienes en tu tabla porque con los que mencionas IdM,SiglaMateria,NombreM no se puede obtener los registros que quieres. Talves tienes un campo fecha, semestre (este para que te identifique a que semestre corresponde tu materia I/2010 II/2010) algo así, suponiendo que tienes un campo fecha y que todas las materias de ese semestre se registran en esa misma fecha, tu consulta sería así.


//Esta consulta la ejecutas en un TQuery
Select * From Tabla T inner join (Select max(fecha) as fecha From Tabla) T1
on (T.fecha=T1.fecha)


Y se puede hacer de muchas formas dependiendo los campos que tengas y que información guardas en ellos.

Saluditos

sisne
15-04-2010, 18:36:01
Hola Caro, gracias por responder.
Disculpen el no ser tan explícita :confused:
No los mencioné los demás campos por que no deseaba realizar una búsqueda de un grupo determinado...

Lo que deseo es que, cuando yo decido ingresar un cierto monto de registros, por decir por medio de un TEdit ingreso la cantidad de 5, pues solo quiero que en el DBGrid me permita solo generar 5 registros. Y solo esos ultimos 5 registros recien ingresados me muestren en ese DBGrid.

Planteo mi problema por el siguiente motivo:
Debo revisar cada registro y ver si existe un aprobado, reprobado o sin nota en el campo Calificacion de mi TTabla....esto ya lo hice, solo que cuando debo revisar ese campo, en el DBGrid me muestra todas las q se programaron, incluyendo de anteriores programaciones...lo q no deberia de hacerse.

Quiero que en el DBGrid me muestre solo los 3 registros:

Ejem. Cuando ingreso en el TEdit=3(es decir solo me permitiran programar 3 registros)
IdE=1;IdM=1,SiglaMateri=MAT-100; NombreMateria=Calculo I.....Calif=Aprobado
IdE=2;IdM=2,SiglaMateri=MAT-101; NombreMateria=Calculo II.....Calif=Reprobado
IdE=3;IdM=3,SiglaMateri=MAT-102; NombreMateria=Calculo III.....Calif=Aprobado

Para luego revisar cada registro de los 3 ingresados.Y en DBEdit me mostrara..
TotalAprobado=2,TotalReprobado=1,Sincalifiacion=0

Y cuando vuelva a ingresar el nro de materias a programar, en el DBGrid me muestre solo:

Ejem . Cuando ingreso en el TEdit=2(es decir solo me permitiran programar 2 registros)
IdE=4;IdM=1,SiglaMateri=MAT-100; NombreMateria=Calculo I.....Calif=Aprobado
IdE=5;IdM=2,SiglaMateri=MAT-101; NombreMateria=Calculo II.....Calif=Aprobado

Y en TBEdit me mostrara.. <---por si acaso esto lo realizo sin problema...
TotalAprobado=2,TotalReprobado=0,Sincalifiacion=0
Y asi sucesivamente....

Por si acaso el campo IdE hasta el momento ya lleva al nro 5, es decir en todas sus programaciones ya tiene 5 registros...

Por favor alguien?

Trataba de realizar dos tablas con los mismos campos:
DBGrid1--->Tabla1, relacionado con su DATASource1
DBGrid2--->Tabla2 relacionado con su DataSource2
Y que al momento de volver a programar nuevas materias, pues se elmine los campos de Tabla1 y de esta manera quedar vacio/limpio sin datos el DBgrid1 y quizas asi facilitarme el recorrido en los nuevos datos para saber cuantos aprobados o reprobados existen de una persona.

Disculpen mi laaaaarga explicacion....

Gracias...

ecfisa
15-04-2010, 20:39:10
Relmente no entiendo el por qué de esa metodología de trabajo...
Pero si lo que pretendes es que el DBGrid siempre empieze vacío para esperar que le indiques cuantos registros le vas a ingresar, no se me ocurre otra idea que utilizar una tabla temporal.
Esta almacenaría temporalmente los registros ingresados (1,2,3,4...n) y una vez controlados los añadiría a a tabla definitiva para luego vaciarse y esperar otro ingreso.

Vamos a suponer:
tbOrig: Table donde residen los datos una vez verificados.
tbTmp: Table temporal.
DBgrid: Asociado a tbTmp.
NReg: Número de registros a ingresar.

Sin entrar en detalles de código, el ciclo debería hacer:
.- Inicializar tbTmp (tbTmp.EmptyTable)
.- Pedir NReg (en el Edit)
.- Ingresar 1 hasta NReg en DBGrid
.- Verificar lo que se te ocurra en los registros ingresados
.- Agregar 1 hasta NReg en tbOrig.

Saludos.

sisne
15-04-2010, 21:49:30
Hola ecfisa, gracias por responder!
Estaba pensando realizar lo que acabas de mencionar.
Sin embargo, antes quiero comentarte que solo de esa manera puedo averiguar si un alumno se programa un 15-02-2005 <--sus calificaciones estaran sin nota.
Pero pasado un semestre o un año, al finalizar el curso<--podrá revisar cuantas materias aprobó y cuantos reprobó SOLO DE LAS MATERIAS QUE SE habia programado, de las ultimas sin importar si ya se programo gestiones anteriores. Solo saber de las ultimas programadas.

Si se les ocurre algo más por favor estaré pendiente...

Gracias

Caral
16-04-2010, 03:06:45
Hola
:confused:
Nunca entiendo a Sisne, me estoy volviendo viejo.:(
Saludos

ecfisa
16-04-2010, 04:31:23
Hola
:confused:
Nunca entiendo a Sisne, me estoy volviendo viejo.:(
Saludos
No te preocupes... somos dos.;)

ecfisa
16-04-2010, 04:34:35
Perdón sisne, pero ahora sí que no entiendo...

sisne
16-04-2010, 06:26:18
No te preocupes... somos dos.;)
Holas!

No se preocupen.
Gracias por tratar de intentarlo.

sisne
16-04-2010, 06:33:56
Hola
:confused:
Nunca entiendo a Sisne, me estoy volviendo viejo.:(
Saludos

Hola
Gracias por intentar......