Presentar datos en un grid

Soy nuevo en vfp 9.0 he creado dos tablas
t.alumno(codigo, nombre_alu, direccion, telefono, edad)
t.cursos(codigo,nombre_cur,nota1,nota2,nota3, promedio)
Y he realizado un formulario donde en una caja de texto busco a un alumno y muestre en el grid los camposl nombre_alu, dirección, teléfono, nombre_cur, promedio)
{"lat":46.4378568950242,"lng":4.04296875}
Respuesta
1
Para esto debes hacer un Join entre estas 2 tablas, pero en la tabla cursos debes tener el código del Alumno y supongo que el campo Código de la tabla t.cursos es el código del Alumno.  Puedes hacer el Join de la siguiente manera:
Select t.alumno.nombre_alu, t.alumno.direccion, t.alumno.telefono, t.cursos.nombr_cur,t.cursos.promedio from t.alumno,t.cursos where t.alumno.codigo=thisform.txt_codigoalum.value AND t.cursos.codigo=thisform.txt_codigoalum.value into cursor Prueba1
Luego que realizas el Join lo envías a un Cursor y este cursor lo llevas al grid para que te muestre los datos... y Listo, ya tienes tus datos disponibles.
Muchas gracias y discúlpenme la insistencia
mi base datos terminada quedo de la siguiente manera:
alumno(cod_alu,cod_curso,nomb_alu,direccion, telefono, edad)
curso(cod_curso,nomb_cur,nota1,nota2,nota3,promedio)
Mi duda es como envío a un curso y en que procedimiento del grid coloco el cursor y que instrucciones debo colocar, ademas como hago hago la programación para que calcule el promedio y lo coloque en la tabla ya se que la fórmula es sencilla (nota1+nota2+nota3)/3
la otra duda es cuando realizo la programación no vinculo ninguna propiedad de los controles caja de texto y grid, recuerden que soy novato y tengo muchas ganas de aprender, muchas gracias...
Bueno mira, estoy analizando tus tablas y creo que existe un error. Según lo que estoy observando tienes 1 tabla que se llama curso y en esta no veo el cod del alumno, por lo tanto no entiendo para que estas utilizando los campos de nota. Si quieres hacer un programa que te guarde las notas de tus estudiantes seria de la siguiente manera.
Alumno: Queda igual a la que tienes.
Curso: (Código, Nombre, Notamin) Entendiendo por nota mínima que si el promedio del alumno esta por debajo de esta nota mínima, no puede pasar al siguiente curso o modulo según sea el caso
Debes crear otra tabla que se llame "Notas" donde en esta registres los siguientes campos (Cod_alu, Cod_curso, Nota1, nota2, nota3, Promedio) Aunque el campo promedio lo puedes calcular o lo puedes guardar según sea el caso o tu decisión.
Con respecto a tu pregunta del cursor, cuando utilizas un Select ... from... where... y le incluyes lo siguiente "INTO CURSOR Prueba1", los datos que arroje la secuencia SQL te las guarda en el cursor Prueba1 (Prueba1 es un nombre cualquiera, puedes modificarlo).
Me preguntas sobre la vinculación del Textbox, recuerda que estas haciendo una consulta en un formulario con una caja de texto y lo que va a utilizar la secuencia SQL es el valor del Textbox utilizado.
Luego que tengas las 3 tablas incluyes el siguiente código en el evento que lo quieras disparar, ya sea en un Command o en el Init del Formulario
Select alumno.nomb_alu, alumno.direccion, alumno.telefono, curso.nomb_cur, notas.promedio from alumno,curso,notas where alumno.cod_alu=thisform.nombretext.value AND notas.cod_alu=thisform.nombretext.value AND curso.cod_curso=notas.cod_curso INTO CURSOR Prueba1
Thisform.grid1.Controlsource="Prueba1" ** Muestras el cursor en el Grid
Thisform.grid1.controlsourcetype=1 - "Alias" ** Le dices al Grid que va a utilizar un Alias O cursor.
**************************
Con respecto al promedio, cuando vayas a guardar los datos Nota1 Nota2 y nota 3 los promedias y le das un Update o Replace a la tabla Notas.

Cualquier cosa me cuentas!
Muchísimas gracias, cuando probé con el código aparecía un error, entonces cambie
la propiedad controlsurce por la propiedad recordsource, y si pudo mostrar lo que se quería ahora lo que quiero es poder limpiar el grid ya que cada vez que ejecuto el formulario aparece por defecto datos de la tabla cursos.
Luego deseo agregar la tabla especialidad que tendrá la siguiente estructura
código descripción
01 ingeniería agronoma
02 obstetricia
03 medicina
04 ingeniería de sistemas
Y dentro del mismo formulario un combobox que muestre estos dos campos y permita buscar según especialidad del estudiante o alumno
luego de aquello poder hacer formularios que pueda ingresar datos y estos sean grabados en las tablas creadas anteriormente alumno, curso, notas y especialidad
No olvides calificar la respuesta.
Para limpiar el Grid simplemente en la propiedad Recordsource colocas Space(0), algo así:
Thisform.grid1.recordsource= Space(0) ** Trata de colocarlo al finalizar el Init del Form.
Con respecto al Combo debes realizar lo siguiente:
select * from especialidad into array cmb1
thisform.combo1.boundcolumn=2  & que muestre el nombre pero trabaje con el codigo cuando selecciones
thisform.combo1.columncount=2
thisform.combo1.rowsourcetype=5
thisform.combo1.rowsource="cmb1"
Pero para calificar debes terminar la pregunta y dar la calificación...
? La tabla alumno he agregado el campo: cod_especialidad
y he creado la tabla Especialidad(cod_especialidad, descripción)
he relacionado ambas tablas y colocado la instrucción en el evento click para el combobox y no aparece nada y con respecto a limpiar el grid al momento de ejecutar si lo realiza pero debo hacer 2 veces clic para que cuando busque por el campo código del alumno aparezcan las etiquetas en los encabezados del grid ya que inicialmente aparece Header1.
Ademas quiero colocar un botón de comando que diga Mostrar todos y cuando hago clic aparezca todo los registros de la tabla
Bueno te ayudaré pero te sugiero que termines una pregunta y realices la otra, pues comenzamos con una pregunta y hemos resuelto varias.
1. Para cargar el Combobox, el código lo debes colocar en el Init del Formulario...
2. Lo concerniente al Grid es cuestión de configuración... Te daré un ejemplo para que observes si lo estas haciendo de esa manera (la misma lógica):
SELECT fld_descrip as Descripción, fld_codigo as Codigo,fld_undmed FROM tb_articulos;
INTO CURSOR Articulos ORDER BY Descripción

thisform.g_Materiales.RecordSource="Articulos"
thisform.g_Materiales.RecordSourceType= 1

thisform.g_Materiales.RecordSourceType= 1
thisform.g_Materiales.AllowHeaderSizing= .F.
thisform.g_materiales.AllowRowSizing= .F.
thisform.g_materiales.AllowCellSelection= .F.
thisform.g_Materiales.DeleteMark= .F.
thisform.g_materiales.GridLines= 2
thisform.g_materiales.HighlightStyle= 1
thisform.g_materiales.ScrollBars= 2
thisform.g_Materiales.ColumnCount=2
thisform.g_materiales.column1.Width=245
thisform.g_Materiales.column1.header1.FontBold= .T.
thisform.g_Materiales.column1.header1.Alignment= 2
thisform.g_Materiales.column1.movable= .F.
thisform.g_materiales.column2.Width=55
thisform.g_Materiales.column2.header1.FontBold= .T.
thisform.g_Materiales.column2.header1.Alignment= 2
thisform.g_Materiales.column2.movable= .F.
thisform.g_materiales.LockColumns=2


La configuración del grid la puedes hacer por código como esta o por propiedades. Algunas de estas son a manera visual, pero puedes jugar con ellas.
3. Con respecto al Botón Mostar todos, simplemente en el Evento Click arrojas la consulta SQL y la vinculas con el grid. La configuración puede ser parecida a la del punto 2.
La consulta puede ser asi: Select * From Tabla1
Mi pregunta como vinculo la consulta sql con el grid
Muchas gracias
En el código de la parte superior se encuentra la vinculación...
Select * from....Into Cursor Cursor
Thisform.grid.recordsource="Cursor"
Etc...
Usuario por favor Finaliza y puntualiza la pregunta... Si deseas hacer otra pregunta, realízala en una nueva...
Discúlpenme soy en nuevo en esto, yo no sabia que por cada pregunta hay que cerrarla previa respuesta, es que para ser bien sincero cada vez surgen más dudas a medida que se esclarecen las preguntas iniciales.
Muchas gracias amigo y un feliz año
Voy a esperar por lo menos un día para volver a preguntar no quieron aprovechar de su ayuda.
Perfecto, no te preocupes. Si necesitas más ayuda simplemente escríbeme que para eso estamos... Al final de este comentario hay un Link que dice Calificar y Finalizar pregunta
Usuario.
Saludos para todos y muchas gracias por la ayuda que he venido recibiendo por parte de ustedes, y voy a continuar molestándolos así es que por favor desde mis agradecimientos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas