Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Uso de varias Ttablas en un mismo Form (Delphi)
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Uso de varias Ttablas en un mismo Form (Delphi)

Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
Sizne
Magnífico usuario


Registrado: Oct 16, 2006
Mensajes: 46

Asunto: Uso de varias Ttablas en un mismo Form (Delphi) Responder citando

Por favor ayudenme, planteo mi problema.
Estoy trabajando con Delphi y SQL Server. Tengo definidas las Tablas respectivas y las relaciones.
Relacioné en SQL las tablas de que un Tuniversitario puede llevar muchas materias(1 a muchos) por medio de IdU.
(TUniversitario, TMaterias) Un universitario puede llevar varias materias.
TUniversitario: campos: IdU,CarnetIdentidad, Nombres, Apellidos, FechaNacimientos, etc.
TMaterias, campos: IdM, SiglaMateria, Semestre,Anio, NombreMateria, Calificacion, AproboReprobo, IdU,etc..
Las tareas a realizar son:
Que en un formulario se tiene que registrar los datos respectivos del Universitario, osea los campos de TUniversitario (Form1).
En otro Formulario se tiene que primero buscar si Xuniversitario esta registrado en el sistema, si esta registrado pues en el mismo formulario se tiene que llenar las materias que llevara ese año o semestre (Form2).

Registre ya los datos del Universitario. Pero no puedo registrar las materias, intente hacer con DBgrid para que se me muestre todas las materias que un Universitario este llevando, pero solo me aparecia una fila de datos.

Por favor alguien podria Solucionar el problema?....Alguien?
Cómo puede ser el código? He intentado realizar de toda forma, pero no me registra, hasta llegue a usar StringGrid, para pasar los datos y luego esos datos recien a la TMaterias, pero me parece redundante.

Gracias!
MensajePublicado:
Mie Mar 17, 2010 11:30 pm
Top of PageVer perfil de usuario
agustinbus
Excelente usuario


Registrado: Apr 17, 2009
Mensajes: 38

Asunto: Re: Uso de varias Ttablas en un mismo Form (Delphi) Responder citando



Anuncios



Sizne escribió:
Por favor ayudenme, planteo mi problema.
Estoy trabajando con Delphi y SQL Server. Tengo definidas las Tablas respectivas y las relaciones.
Relacioné en SQL las tablas de que un Tuniversitario puede llevar muchas materias(1 a muchos) por medio de IdU.
(TUniversitario, TMaterias) Un universitario puede llevar varias materias.
TUniversitario: campos: IdU,CarnetIdentidad, Nombres, Apellidos, FechaNacimientos, etc.
TMaterias, campos: IdM, SiglaMateria, Semestre,Anio, NombreMateria, Calificacion, AproboReprobo, IdU,etc..
Las tareas a realizar son:
Que en un formulario se tiene que registrar los datos respectivos del Universitario, osea los campos de TUniversitario (Form1).
En otro Formulario se tiene que primero buscar si Xuniversitario esta registrado en el sistema, si esta registrado pues en el mismo formulario se tiene que llenar las materias que llevara ese año o semestre (Form2).

Registre ya los datos del Universitario. Pero no puedo registrar las materias, intente hacer con DBgrid para que se me muestre todas las materias que un Universitario este llevando, pero solo me aparecia una fila de datos.

Por favor alguien podria Solucionar el problema?....Alguien?
Cómo puede ser el código? He intentado realizar de toda forma, pero no me registra, hasta llegue a usar StringGrid, para pasar los datos y luego esos datos recien a la TMaterias, pero me parece redundante.

Gracias!


Hola Sizne!. Si mal no entendi, solo te muestra una materia del alumno en vez de todas. Uno de los problemas puede ser que no le estes asignando a todas las materias el mismo ID de Universitario. Un posible diseño de tablas seria:

TUniversitarios:
*CodUniversitario
-Carnet
-Nombre
-Apellido...
...
-(Todos los campos que quieras)

TMaterias:
*CodMateria
-CodUniversitario
-SiglaMateria
-Semestre
-Anio...
...
-(Otra vez todos los campos que quieras)

En un Formulario o Modulo de datos coloca un TAdoQuery para los universitarios(Este TAdoQuery sera el maestro) con las propiedades correctas de connectionstring y su correspondiente consulta SQL.
Luego coloca un DataSource enlazado al AdoQuery. Tambien coloca un DBGrid enlazadoo al datasource

Coloca tambien un TADOTable, tambien con sus correspondientes Datasource y DBGrid y con la propiedad connectionstring que le corresponda. Pero ademas en este modificaras las siguientes propiedades:

-En TableName: Selecciona la tabla de las materias TMaterias
-En MAsterSource: Seleccionas El DataSource del AdoQuery TUniversitarios.
-En MasterField: Se desplegara una ventana con dos listbox de la siguiente manera:
Detail fields Master Fields
--------------------- --------------------
|CodUniversitario| |CodUniversitario|
|Campo 2...........| |Campo 2...........|
|Campo n.......... | |Campo n...........|
--------------------- ---------------------

Seleccionas los dos CodUniversitario (Es lo que los relaciona) y la das al boton Add y te aparecera en Joined fields algo asi:
CodUniversitario->CodUniversitario
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
De esa manera ya tienes relacionados los campos ahora cuando agreges un nuevo Universitario, lo haces de la forma habitual.
Pero cuando agregas una materia al Universitario, debes seleccionar el registro que contiene al universitario que has agregado anteriormente, y añades la nueva materia, como si de un Universitario se tratase, pero sin el CodUniversitario correspondiente a esa materia, ya que al estar seleccionado en el DBGrid el Universitario al que quieres agregar la materia, el CodUniversitario se agrega automaticamente.
De esta forma no deberias tener problemas.

Espero te sirva.
Saludos!
MensajePublicado:
Jue Mar 18, 2010 2:00 am
Top of PageVer perfil de usuario
Sizne
Magnífico usuario


Registrado: Oct 16, 2006
Mensajes: 46

Asunto: Responder citando

Hola Agustinbus. Me comprendiste exactamente lo que quiero hacer.
Segui tus indicaciones paso a paso.
En este momento tengo las dos tablas mencionadas, y por sugerencia tuya estoy usando DBGrid para ambas.
Debo tener 2 Forms, pero lo estoy ahciendo en un Form (eso no hay problema).
Tengo DBgridUniversitario con sus campos respectivos y su codigo CodigoUniversitario.
Y en otra tengo otro DBGridMateria con sus respectivos campos y su codigo CodigoMateria, bueno este tiene el campo CodigoUniversitario ya no lo estoy colocando, pero hice lo que me dijiste ADOTmateria con el MasterSource y MasteFields hice lo de ADD...etc
Hice todo lo que me dijsite.
El codigo para agregar mas datos Universitario , haciendo click en el boton1 es
ADOuniversitario.insert; ///aqui sin problema...
Y como dijiste que seleccionara el campo CodigoUniversitario, lo selecciono y luego hago click en el boton2 Agregar Materia(su codigo es ADOTmateria.insert;)luego ahi que me aparece el sigte error.

Proyect Pbecarios.exe exception class EDatabaseError with message 'cannot access field 'CodigoUniversitario'as type Variant'. Process stopped. Use Step or Run to continue.

Luego presiono OK, y seguidamente F9 ò RUN y me aparece el siguiente error.

Cannot access field 'CodigoUniversitario'as type Variant.

En SQL SERVER, CodigoUniversitario en ambas tablas tengo definida con el tipo de dato "bigint" de longitud de tamaño que por defecto es 8.

Sin olvidar que en el segundo DBgridMateria no me permite introducir ningun dato, ya que me parece el mismo msj de error antes mencionado, es decir sin hacer click en el boton2 de agregar materias.
MensajePublicado:
Jue Mar 18, 2010 2:03 pm
Top of PageVer perfil de usuario
agustinbus
Excelente usuario


Registrado: Apr 17, 2009
Mensajes: 38

Asunto: Responder citando

Sizne escribió:
Hola Agustinbus. Me comprendiste exactamente lo que quiero hacer.
Segui tus indicaciones paso a paso.
En este momento tengo las dos tablas mencionadas, y por sugerencia tuya estoy usando DBGrid para ambas.
Debo tener 2 Forms, pero lo estoy ahciendo en un Form (eso no hay problema).
Tengo DBgridUniversitario con sus campos respectivos y su codigo CodigoUniversitario.
Y en otra tengo otro DBGridMateria con sus respectivos campos y su codigo CodigoMateria, bueno este tiene el campo CodigoUniversitario ya no lo estoy colocando, pero hice lo que me dijiste ADOTmateria con el MasterSource y MasteFields hice lo de ADD...etc
Hice todo lo que me dijsite.
El codigo para agregar mas datos Universitario , haciendo click en el boton1 es
ADOuniversitario.insert; ///aqui sin problema...
Y como dijiste que seleccionara el campo CodigoUniversitario, lo selecciono y luego hago click en el boton2 Agregar Materia(su codigo es ADOTmateria.insert;)luego ahi que me aparece el sigte error.

Proyect Pbecarios.exe exception class EDatabaseError with message 'cannot access field 'CodigoUniversitario'as type Variant'. Process stopped. Use Step or Run to continue.

Luego presiono OK, y seguidamente F9 ò RUN y me aparece el siguiente error.

Cannot access field 'CodigoUniversitario'as type Variant.

En SQL SERVER, CodigoUniversitario en ambas tablas tengo definida con el tipo de dato "bigint" de longitud de tamaño que por defecto es 8.

Sin olvidar que en el segundo DBgridMateria no me permite introducir ningun dato, ya que me parece el mismo msj de error antes mencionado, es decir sin hacer click en el boton2 de agregar materias.


Aca dejo un codigo de ejemplo, lo hice hoy, me funciona correctamente. Fijate bien las propiedades en el Query y en el Table:

http://www.mediafire.com/?o04zjowmnym

Dejo las imagenes de las tablas de MySQl:

Tabla Universitarios:




Tabla materias:




El programa funcionando:


NO SE SI SE PUEDEN DEJAR LINKS CUALQUIER COSA ME AVISAN.
MensajePublicado:
Jue Mar 18, 2010 5:04 pm
Top of PageVer perfil de usuario
Sizne
Magnífico usuario


Registrado: Oct 16, 2006
Mensajes: 46

Asunto: Responder citando

Amigo ya descargue el link que enviaste y vi las imagenes, es iden lo que tengo que hacer.
Pero para ver completamente tu program tengo problemas aqui.....
ConnectionString (Nopuedo conectarlo, no encuentro su Base de datos) No hay el nombre de origen de datos y tampoco el catalogo inicial. Me refiero a las properties de ADOQuery y lo mismo para el ADOTable.
MensajePublicado:
Jue Mar 18, 2010 8:00 pm
Top of PageVer perfil de usuario
Sizne
Magnífico usuario


Registrado: Oct 16, 2006
Mensajes: 46

Asunto: Responder citando

Me sigue apareciendo ese error que antes mencioné....Y no puedo seleccionar el DBGridUniversitario, toda la fila.
MensajePublicado:
Jue Mar 18, 2010 8:22 pm
Top of PageVer perfil de usuario
agustinbus
Excelente usuario


Registrado: Apr 17, 2009
Mensajes: 38

Asunto: Responder citando

Sizne escribió:
Amigo ya descargue el link que enviaste y vi las imagenes, es iden lo que tengo que hacer.
Pero para ver completamente tu program tengo problemas aqui.....
ConnectionString (Nopuedo conectarlo, no encuentro su Base de datos) No hay el nombre de origen de datos y tampoco el catalogo inicial. Me refiero a las properties de ADOQuery y lo mismo para el ADOTable.


Claro es porque debes configurar los origenes de datos. Debes ir a panel de control y alli buscar "Configurar Origenes de datos(ODBC)" o algo por el estilo. Te va a aparecer una ventana que es el Administrador de origenes de datos.
Unas imagenes explicativas:







De esa manera deberias tener configurado todo. Las imagenes muestran como hacerlo con BBDD MYSQL!!! Si tienes otra, selecciona en la lista la que corresponda, y configurala. Son todas similares.
Saludos!
MensajePublicado:
Vie Mar 19, 2010 4:29 pm
Top of PageVer perfil de usuario
Sizne
Magnífico usuario


Registrado: Oct 16, 2006
Mensajes: 46

Asunto: Responder citando

Ah, bueno el problema es que no estoy usando MySQL (No tengo) sino estoy usando SQL Server 2000.
Seguiré intentando, pero me sigue apareciendo el mismo error...ya seleccioné el primer DBGrid, para llenar las materias del DBGrid2, pero nada.
MensajePublicado:
Vie Mar 19, 2010 8:26 pm
Top of PageVer perfil de usuario
Sizne
Magnífico usuario


Registrado: Oct 16, 2006
Mensajes: 46

Asunto: Responder citando

Esta funcionando el programita, selecciono ambas DBgrid y agrego los datos del Universitario y de la Materia.
Ahora el percance es que cuando ingreso las materias para un alumno pues y luego empiezo a agregar las otras materias para el otro universitario, no se muestra vacio, sin ningun dato en el DBgrid2.
Es decir para IdE_1 de un X1_ universitario agrego en el DBgrid2 las 5 materias que se ha programado y ahora para el IdE_2 también quiero agregar las otras materias para ese alumno IdE2. el DBGrid2 sigue mostrando las otras materias que se ha programado el anterior alumno y es justamente lo que no quiero que se muestre.

Quiero que cuando quiera ingresar las materias para un X_Universitario el DBGrid2 quiero que este vacio sin ningun dato. Obviamente el la Base de Datos tiene que estar guardado de cada universitario sus materias que se ha programado.
Por otra parte tengo los botones EliminarRegistro y EditarRegistro para Quniversitario que funcionar bien icon_wink.gif, Solo que si elimino un registro de universitario sus materias siguen sin eliminarse. Como realizo eso??

Pero para Tmateria solo puedo EliminarMateria pero no puedo Editarla y luego actualizarla. este codigo puse para EditarMaterias (por si acaso estoy en el Form1)
procedure TForm1.EditarMateriaClick(Sender: TObject);
begin
//Solo estoy pasando los datos que seleccione en el DBGrid2 para modificarlas.
Form3.Edit5.Text :=Form1.QuniversitariosIdE.Text;
Form3.Edit1.Text:=Form1.TmateriaSIdM.Text;
Form3.Edit2.Text:=Form1.TmateriaSCodigoM.Text;
Form3.Edit3.Text:=Form1.TmateriaSNombreM.Text;
Form3.Edit4.Text:=Form1.TmateriaSSemestreM.Text;
Form1.TmateriaS.Edit;
form3.show;;
end;


Y para actualizar los campos que estoy modificando ....
procedure TForm3.ActualizarMateriaClick(Sender: TObject);
begin
with Form1.TmateriaS do
begin
open;
Edit;
fieldbyname('IdM').AsInteger := strtoint(Edit1.Text);
fieldbyname('CodigoM').AsString := Edit2.Text;
fieldbyname('NombreM').AsString := Edit3.Text;
fieldbyname('SemestreM').AsString := Edit4.Text;
Refresh;
end;
end;


Y aqui aparece el sigte error:
Project Pbecarios.exe raised exception class EOLeExceltion with message 'Informacion de clumna clave insuficiente para realizarla operacion Update o Refresh'. Process stopeped. Use or Run to contine.

Bueno seguidamente click en RUN o F9 y me aparece el sigte error:

Ifmoracion de columna clase insuficiente para realizar la operacoin o Refresh.

Los mismo codigos puse para Modificar y Actulizar para Quniversitario y no tuve problemas.Imagino q debe ser por que Materias esta relacionado con QUniversitario, entonces cual seria la solucion?

1.No puedo Modificar los datos de Materias, me aparece el error antes mencionado.
MensajePublicado:
Sab Mar 20, 2010 7:30 am
Top of PageVer perfil de usuario
agustinbus
Excelente usuario


Registrado: Apr 17, 2009
Mensajes: 38

Asunto: Responder citando

Sizne escribió:
Esta funcionando el programita, selecciono ambas DBgrid y agrego los datos del Universitario y de la Materia.
Ahora el percance es que cuando ingreso las materias para un alumno pues y luego empiezo a agregar las otras materias para el otro universitario, no se muestra vacio, sin ningun dato en el DBgrid2.
Es decir para IdE_1 de un X1_ universitario agrego en el DBgrid2 las 5 materias que se ha programado y ahora para el IdE_2 también quiero agregar las otras materias para ese alumno IdE2. el DBGrid2 sigue mostrando las otras materias que se ha programado el anterior alumno y es justamente lo que no quiero que se muestre.
Quiero que cuando quiera ingresar las materias para un X_Universitario el DBGrid2 quiero que este vacio sin ningun dato. Obviamente el la Base de Datos tiene que estar guardado de cada universitario sus materias que se ha programado.


Primero debes agregar el nuevo unviversitario. Una vez agregado le haces click al nuevo registro en el DBGrid de Universitarios. Al hacerle click la lista de materias de ese nuevo universitario automaticamente se pone en blanco. Recien alli empiezas a agregar las materias.

Sizne escribió:

Por otra parte tengo los botones EliminarRegistro y EditarRegistro para Quniversitario que funcionar bien icon_wink.gif, Solo que si elimino un registro de universitario sus materias siguen sin eliminarse. Como realizo eso??

Para ello puedes resolverlo de varias maneras dependiendo del dominio del problema.
Una posible solucion puede ser preguntar si la Grilla de materias de ese universitario a eliminar esta vacia, entonces eliminar, sino mostrar un mensaje antes de eliminar diciendo que antes elimine las materias. Entonces colocas otro boton que elimine las materias.

Otra solucion puede ser preguntar si la Grilla de materias de ese universitario a eliminar esta vacia, entonces eliminar, sino ir al principio del DBGrid Materias y realizar un ciclo, cuya condicion sera while not EOF, y eliminar materia a materia en el ciclo.
Sizne escribió:

Pero para Tmateria solo puedo EliminarMateria pero no puedo Editarla y luego actualizarla. este codigo puse para EditarMaterias (por si acaso estoy en el Form1)
procedure TForm1.EditarMateriaClick(Sender: TObject);
begin
//Solo estoy pasando los datos que seleccione en el DBGrid2 para modificarlas.
Form3.Edit5.Text :=Form1.QuniversitariosIdE.Text;
Form3.Edit1.Text:=Form1.TmateriaSIdM.Text;
Form3.Edit2.Text:=Form1.TmateriaSCodigoM.Text;
Form3.Edit3.Text:=Form1.TmateriaSNombreM.Text;
Form3.Edit4.Text:=Form1.TmateriaSSemestreM.Text;
Form1.TmateriaS.Edit;
form3.show;;
end;


Y para actualizar los campos que estoy modificando ....
procedure TForm3.ActualizarMateriaClick(Sender: TObject);
begin
with Form1.TmateriaS do
begin
open;
Edit;
fieldbyname('IdM').AsInteger := strtoint(Edit1.Text);
fieldbyname('CodigoM').AsString := Edit2.Text;
fieldbyname('NombreM').AsString := Edit3.Text;
fieldbyname('SemestreM').AsString := Edit4.Text;
Refresh;
end;
end;


Y aqui aparece el sigte error:
Project Pbecarios.exe raised exception class EOLeExceltion with message 'Informacion de clumna clave insuficiente para realizarla operacion Update o Refresh'. Process stopeped. Use or Run to contine.

Bueno seguidamente click en RUN o F9 y me aparece el sigte error:

Ifmoracion de columna clase insuficiente para realizar la operacoin o Refresh.

Los mismo codigos puse para Modificar y Actulizar para Quniversitario y no tuve problemas.Imagino q debe ser por que Materias esta relacionado con QUniversitario, entonces cual seria la solucion?

1.No puedo Modificar los datos de Materias, me aparece el error antes mencionado.


El error es porque al tener todos registros en TMaterias que no son identificables, no sabe que eliminar. Una solucion es agregar un campo a la tabla TMaterias autoincrementativo. Tu codigo para editar NO debe ser asi:

Código:

with Form1.TmateriaS do
  begin
    open;
    Edit;
    fieldbyname('IdM').AsInteger   := strtoint(Edit1.Text);
    fieldbyname('CodigoM').AsString    := Edit2.Text;
    fieldbyname('NombreM').AsString  := Edit3.Text;
    fieldbyname('SemestreM').AsString := Edit4.Text;
    Refresh;
  end;

Sino que debe ser asi:
Código:

with Form1.TmateriaS do
  begin
    open;
    Edit;
    fieldbyname('IdM').AsInteger   := strtoint(Edit1.Text);
    fieldbyname('CodigoM').AsString    := Edit2.Text;
    fieldbyname('NombreM').AsString  := Edit3.Text;
    fieldbyname('SemestreM').AsString := Edit4.Text;
    post;
  end;
MensajePublicado:
Dom Mar 21, 2010 7:26 pm
Top of PageVer perfil de usuario
Sizne
Magnífico usuario


Registrado: Oct 16, 2006
Mensajes: 46

Asunto: Responder citando

Hola!
Gracias por la solución.
Ahora estoy realizando una búsqueda, quiero buscar por medio de cualquier campo del TUniversitario, por decir CarnetIdentidad del Universitario.
En Form1 coloco un Boton BuscarUniversitario, y ese me lleva a otro Form4, ahi tendré un ComboBox1 y un Edit1, donde selecciono el campo e ingreso el dato y despues de ingresar hacer click Buscar.
Si lo encuentro pues quiero que se me visualice en los campos ya sea en DBEdits o en Edits en el mismo Form4, y de ahí con la ayuda de un boton VolverForm1 regrese al Form1, pero al regresar quiero que en el DBGrid1 se seleccione toda la fila del dato buscado.
Si existe la posibilidad de que se pueda seleccionar de otro color y no asi de color azul que es por defecto.

(Todo lo que me indicaste lo realice y funciona, graaaaaaaaaacias)
MensajePublicado:
Lun Mar 22, 2010 5:46 pm
Top of PageVer perfil de usuario
Sizne
Magnífico usuario


Registrado: Oct 16, 2006
Mensajes: 46

Asunto: Responder citando

Holas!
Creo que no fui muy clara....
Comentarle que ya encontré la solución, coloque el sigte codigo después de realizar la búsqueda respectiva, al momento de volver al FormPrincipal y me selecciona toda la fila del DBgrid:

Código:

Facademico.DBGrid.Fields[1].focuscontrol;


Solo quiero saber si puede colorearse solo una fila de un DBGrid?????

Graaaacias por su cooperación![
MensajePublicado:
Mar Mar 23, 2010 9:06 pm
Top of PageVer perfil de usuario
Sizne
Magnífico usuario


Registrado: Oct 16, 2006
Mensajes: 46

Asunto: Contar un registro de una tabla y comparar un campo Responder citando

Hola!
Planteo mi problema.
Una vez que tengo llena de datos en el DBGrid2 de datos de la TTablaMaterias, donde estan los campos de CodigoMateria,NombreMateria, "Calificacion", etc.... Donde en calificacion puede aparecer la informacion de: Aprobado, Reprobado o Ninguno.
Ahora lo que quiero es, contar, cuantas Aprobados , Reprobados y SinNota existen de las materias que se programaron?
Intente realizar este codigo:
Código:

    For i:=1 to Facademico.TMateriaIdM.AsInteger do
      begin
        Kon:=Kon+1;
        if Facademico.Tmateria['CalificacionM']='Aprobado'then A:=A+1
         else
            begin
               if Facademico.Tmateria['CalificacionM']='Reprobado'then R:=R+1
               else SinNota:=SinNota+1;
            end;
      end;


Pero con este codigo solo me da como resultado...por decir en el DBGrid2 de Materias tengo 4 materias programas y seleccionado la fila "3"
Donde :
IdM "1" Calificacion "Aprobado"
IdM "2" Calificacion "Aprobado"
IdM "3" Calificacion "Reprobado"
IdM "4" Calificacion "SinNota"

Y cuando ejecuto la sentencia pues me da como resultado TtotalProgramadas=3, Aprobadas=0, Reprobadas=3 y SinNota=0.
Y por decir esta seleccionado en el DBGrid2 la fila 2.
Y cuando ejecuto la sentencia pues me da como resultado TtotalProgramadas=2, Aprobadas=2, Reprobadas=0 y SinNota=0.

Como te daras cuenta, pues solo cuenta en el mismo lugar nada mas...
Como seria el codigo para contar y comparar cada campo?
Gracias
MensajePublicado:
Mar Mar 23, 2010 9:30 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Contar un registro de una tabla y comparar un campo Responder citando



Anuncios



Sizne escribió:
Hola!
Planteo mi problema.
Una vez que tengo llena de datos en el DBGrid2 de datos de la TTablaMaterias, donde estan los campos de CodigoMateria,NombreMateria, "Calificacion", etc.... Donde en calificacion puede aparecer la informacion de: Aprobado, Reprobado o Ninguno.
Ahora lo que quiero es, contar, cuantas Aprobados , Reprobados y SinNota existen de las materias que se programaron?
Intente realizar este codigo:
Código:

    For i:=1 to Facademico.TMateriaIdM.AsInteger do
      begin
        Kon:=Kon+1;
        if Facademico.Tmateria['CalificacionM']='Aprobado'then A:=A+1
         else
            begin
               if Facademico.Tmateria['CalificacionM']='Reprobado'then R:=R+1
               else SinNota:=SinNota+1;
            end;
      end;


...


Te lo explico aquí:

http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&t=1013
MensajePublicado:
Mie Mar 24, 2010 10:03 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A