FoxPro/Visual FoxPro - algunas consultas

   
Vista:

algunas consultas

Publicado por efrain (10 intervenciones) el 25/01/2014 16:47:28
buenas, primero que nada, saludos cordiales a toda la comunidad...

bien, paso por acá para consultar algunas dudas, ok, como hago para guardar datos de unos textobox en una tabla?
verán tengo muchos textobox en los que agrego números para sacar un porcentaje, los números que yo escribo si los guarda o actualiza con el update, pero los números que me dan como resultado no los guarda, los que yo escribo, aunque son números, los que guarda lo hace con el alltrim, pero los que se me arrojan como resultado y muchos son decimales, no tengo ni idea ni el porque no los guarda o actualiza, ni con alltrim, ni con val ni con nada. ni solos...

otra duda, como hago, para que al momento de yo aplicar un numero de cédula me arroje los datos de este, preseleccionar la materia y su grado escolar y sus notas? tengo la tabla notas (los números de arriba van acá =P), tabla materias y tabla alumnos, esta tiene un campo parecido a las notas, de hecho, lo hice con esa intensión pero con distinto nombre: alumnos(ced_alu); tab_notas1(cno_nt1) aunque su fin es el mismo, registrar las notas o datos del alumno (de otro form) por su cédula. en este caso, no tendré errores para indexar?

una duda mas, al momento de indexar, como lo hago? suponiendo que estoy en el form de las notas y quiero llamar los datos de los alumnos y la materia, en ese caso, quien es la tabla maestra? y como arrastro los campos que quiero relacionar? de notas a alumnos? de alumnos a notas? me confundo demasiado en todo esto, soy bien novato, aunque me he familiarizado con vfp y si es de relacionar 2 o 3 tablas, que comandos o sentencias usar y donde?

de antemano muchas gracias y espero una ayuda en todo esto, feliz día...
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

algunas consultas

Publicado por Fidel José (558 intervenciones) el 26/01/2014 15:43:48
1) Si usas un textbox que tratará un número, configura en el diseñador (o en el Init del form):
.Value=0
.Format="Z" && opcional
.InputMask="999,999.99" && o la que necesites

2) Alltrim, trim y rtrim son funciones para variables tipo Character (string). No tienen nada que hacer con los números salvo dar un error.

3) Los campos de la tabla en los que guardarás números deben tener formato Numeric, con la cantidad de decimales que necesites.

4) La indexación de las tablas debe ocurrir una vez, en el momento en que instalas el sistema. O cuando necesitas regenerar los índices por algún defecto de energía. La indexación debe estar escrita en un prg o en una clase, para que sea una rutina accesible. Básicamente
lcFile=Addbs(path)+"Tablax"
USE (lcFile) IN 0 EXCLUSIVE
INDEX ON CAMPO1 TAG Etiqueta01
INDEX ON CAMPO2 TAG Etiqueta02
USE

5) Para encontrar un dato en una tabla indexada, si el campo buscado tiene una etiqueta de índice
if NOT Seek(lcDatoBuscado,"Tabla_en_la_que_busco" , "Etiqueta_de_Indice")
* No se encuentra
Return

endif
* Estoy en el registro buscado.

También puedes utilizar la función Indexseek()
IF NOT INDEXSEEK( lcDatoBuscado , .F. , "Tabla_en_la_que_busco" , "Etiqueta_de_Indice")
* no se encuentra
RETURN
ENDIF
INDEXSEEK( lcDatoBuscado , .T. , "Tabla_en_la_que_busco" , "Etiqueta_de_Indice")
* Estoy en el registro buscado

Si necesitas relacionar tablas, debes el campo de relación igual en cada tabla que quieres relacionar y un índice sobre la tabla que hace de master. Si tienes eso puedes utilizar SET RELATION. Aunque yo no recomiendo esto porque requiere una técnica muy sofisticada para evitar problemas.
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

algunas consultas

Publicado por efrain (10 intervenciones) el 26/01/2014 21:22:13
realmente si que es bien complicado todo esto, deberé hablar con mi docente para que me ayude, ah y en cuanto a los tres primeros, no se, quizás tengo una inconcordancia de datos, muchas gracias de verdad... con el altrim, el me guarda pero los números que yo tipeo, por ejemplo: texto1=17 ; texto2= 06, bien, esto así si lo guarda, pero suponiendo que tengo que expresar esos números en porcentaje y arroja el resultado pero no lo guarda... he modificado la tabla y nada, insisto, tengo que hablar con un docente, gracias una vez mas...
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

algunas consultas

Publicado por Fidel José (558 intervenciones) el 27/01/2014 16:06:58
Efrain, en informática, 06 nunca es un número. Es lo que representamos como "06" (encomillado, Character o Alfanumérico). Y dá lo mismo que sea "0632" ó "abj440". Para transformar "06" en un número necesitas la función Val(). Val("06") -> 6.00 (numeric).

Los números no tienen ceros a la izquierda, permiten operaciones ariméticas y soportan decimales.
Para realizar operaciones aritméticas con caracteres, tienes que utilizar clases especiales que sirven para eso (generalmente utilizadas por quienes necesitan operaciones con más de 14 dígitos enteros).
Un porcentaje nunca es un caracter, aunque se puede transformar para mostrarlo o meterlo en un archivo de texto plano. Ello porque resulta de la operación entre dos números (a/b * 100).

Antes que nada, dedica tiempo al estudio de tipos de variables (character, numeric, boolean, date, datetime) y tipos de campos de tablas que se correlacionan con dichas variables, y como se ajusta la interfase para soportar estos tipos (configuración de los controles TextBox y CheckBox, también Spinner, Listbox y ComboBox).

Luego podrás efectuar el diseño de tus tablas, las propiedades, controles y variables como corresponde.

Cuando tengas eso claro, dedica cierto tiempo para determinar qué controles conviene usar en cada caso.
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