Estas son las estructuras de mis tablas:
eval_clave de tevaluacion se relaciona con secc_evaluacion de tsecciones preg_evaluacion de tpreguntas se relacion con eval_clave secc_clave de tsecciones se relaciona con preg_seccion de tpreguntas preg_clave de tpreguntas se relaciona con opci_pregunta opci_seccion se relaciona con preg_Seccion.. Espero darme a entender, todos tienen su campo que las identifica y otro que las une a cada tabla, y entonces queda de a cada evaluacion corresponde una seccion, a cada seccion corresponde una pregunta y a cada pregunta una opcion(respuesta). Ya empece a hacerlo con el stringgrid, pero no me sale, me dice que no encontro un campo, pero lo raro es que lo especifico en mi select...saludos y gracias por sus comentarios |
Ahora entiendo mejor el panorama.
Te estoy preprando un ejemplo sencillo de como hacerlo. Espero que no te moleste que sea con Access. Dame un tiempo. Saludos, |
No me molesta Delphius, como crees, te lo agradezco muchisimo...yo seguire intentando con el stringgrid, ya que no me arroja las opciones de las preguntas(en el mismo paso donde me quede con los frames:D). Saludos
|
Hola Elite237,
Disculpa que me haya demorado, pero es que estos día he estado un tanto off-line y se me hace difícil sacar tiempo con tanta interrupciones. Bueno, aqui está una demo. Muchas cosas se pueden optimizar, la idea era desarrollar algo que pueda ser intuitivo, y fácil de comprender. Espero que la demo te sea de guia. Quisiera mencionar que la demo está en la carpeta temporal del FTP del club. Si algún moderador considera que no es conveniente localizar allí la demo le agradecería que me lo hiciera saber. Saludos, |
Gracias delphius!!!!:eek:. Tengo el mismo inconveniente de antes, me dice que no encontro un archivo:
Me imagino que es por que no lo reconoce, ya que uso delphi 5.Como lo corrijo? |
Cita:
La verdad es que no te sabría decir. Yo uso Delphi 6. Desconozco si en D5 existe o no la unidad Variants. Por lo pronto, fíjate si en la ayuda menciona algo al respecto. De paso, fijate si entre los directorios que conforman la LIBRARY PATH existe el archivo Variants.dcu y/o el archivo Variants.pas ¿El error que te arroja es con el demo que hice?:confused: Saludos, |
Hola que tal, fijate que le elimine eso de variant, y si corre, pero al dar clic al boton de generar el cuestionario me manda el siguiente error:
Otra preguntota, como puedo hacer para guardar los valores del radiobutton, se como se asigna, pero mi problema es que los radiobutton los genero con un query de acuerdo a la pregunta, y pueden ser 2,3 ó 4 respuestas que tenga cada una.Esto lo quiero hacer para despues generar una grafica de acuerdo a la suma de las respuestas por seccion.Gracias por tu tiempo Delphius |
Cita:
¿Cómo que lo eliminaste? ¿Dónde que apareció? ¿De donde lo borraste? Ese error que te dió, ¿tiene algún código o número?. Si pudieras explicar paso a paso que hiciste sería muy útil para comprender y reproducir los errores. Tal vez de este modo podríamos saber donde está el problema. Con respecto a tu pregunta de como guardar los valores, ¿te refieres a guardar en una tabla? ¿A que te refieres con asignar? ¿Asignar que a que?:confused: Primeramente, antes de seguir avanzando ¿Entiendes al menos el código del demo? La verdad es que no termino de comprender donde está el problema de guardar el valor o la opción que escoge el usuario. Veamos, se muestra un form al usuario con las opciones, el escoge una y ¿la duda real aquí cual es? ¿Saber asociar esa opción con el valor correspondiente en la tabla?:confused: Estudia el demo que te hice llegar, y luego en base a ello, y lo que tienes ordena tus ideas y describe lo mejor posible tus dudas aqui. No te vamos a cobrar por las palabras, ordena bien tus ideas e inquietudes y en base a ello te podremos seguir asistiendo. Cualquier modificación que haces en tu código sería útil que nos los comentases. De otro modo seguiremos jugando al teléfono descompuesto, y eso nos perjudica a todos. Saludos, |
Cita:
|
que te escribi hace rato.
Perdon es que no habia terminado la frase. |
Cita:
RESU_FECHA...RESU_PREGUNTA....RESU_SECCION...RESU_OPCION.....RESU_VALOR RESU_USUARIO....RESU_EVALUACION Esto es para que haga un historial de todas las personas que presentaron el cuestionario,junto con las respuestas y las opciones que escogieron.Para despues graficar los resultados -------------------------------------------------------------------- Ahora veo que en tu codigo tienes una parte donde me imagino relacionas las opciones que elige el usuario en cada pregunta.Tienes el siguiente codigo:
Estoy bien? Si es asi, entonces como lo guardarias en la tabla? |
¿Cómo los guardaría?
Con una instrucción SELECT. Suponiendo que se trata de ADO... Algo así:
El asunto es que no interesan donde mantengas "guardados" los datos en forma temporal hasta meterlos en la tabla, puede ser en una Celda de un TStringList, en un TLabel, un TEdit, una variable, en una posición de algún vector, ... lo importante es que los parámetros sean del tipo correcto (DataType) y que respetemos el orden en como asignemos los valores que asumirán los parámetros. Es decir que si en el SQL pusimos primero A, B y C, en values deben seguir el mismo orden orden: A, B y C. Esta instrucción INSERT es una de las formas en como se puede declarar, y se puede (o debe mejor dicho) emplear cuando no necesariamente se ingresan todos los campos o los campos a mencionar no están en el mismo orden en que están declarados en la tabla. En el caso de que se asume que todos los datos se van a suministrar, podemos evitarnos nombrar los campos. Pero he aquí que la instrucción SQL debe ser de esta forma:
Y aquí, necesariamente (y obligadamente) debemos respetar el orden de los campos en la tabla al pasar los valores en la parte "VALUES". No se si me explico, espero que se entienda la idea. Si tienes dudas, ya nos dirás. Saludos, |
Tienes razon delphius..fijate que lo que hize ahora fue esto, antes de empezar a guardarlo en una tabla como tu decias, mejor lo dejo en una celda y al final lo guardo.Lo que hize fue que apareciera en una celda los valores que selecciono en cada pregunta, de la siguiente manera
y en la columna resultado aparece el valor de la respuesta que selecciono.Mejor no? Ahora, mi duda es como sumo todas los valores que hay en las celdas de la columna resultado? |
Si te es "viable", tranquilamente puedes mantener una variable que se vaya incrementando en la proporción al resultado. Puede calcularse a medida que uno va respondiendo. Por ejemplo, antes de que "guardes" el valor en el TStringGrid puedes hacer dicha suma, ¿o es que no tienes los datos?;)
Dije al inicio "viable". Esto lo digo porque habría que analizar mejor el panorama y no siempre es posible o adecuado ir almacenando dicha suma. Supongamos que el usuario tiene la opción de corregir su respuesta: en este escenario necesitaríamos corregir el resultado y por consiguiente hacer las sumas y restas necesarias. La opción aquí, podría pasar por recorrer dicha columna al final del cuestionario. Algo así:
Saludos, |
Cita:
La variable suma la declaras como cadena?? En la parte de pos_columna_resultado no entiendo como aplicarlo |
suma es de tipo integer. Si te fijas, para sumar apropiadamente hago una conversión de string a integer (StrToInt).
pos_columna_resultado hace referencia a la columna del TStringGrid en donde se guarda el resultado. Lo que hace el algoritmo es irse moviendo fila a fila sobre la columna resultado y sumando el valor. No tiene demasiada magia. Saludos, |
ok...ok..en que evento coloco ese codigo??
Una duda.....despues de que haya terminado de contestar y tenga que guardarlo, lo hago como me sugeriste??con el query??para insertar los datos en mi tabla.Gracias |
Hola Elite237, se me había caído la conexión.
Bueno, a ese código lo deberías ejecutar en donde te sea conveniente. Por otro lado no veo otra forma de guardar los datos en la tabla sin emplear esa consulta SQL (1) (1) Hay otra opción, pero no es tan económica comparada con el uso de un TQuery: TTables. La alternativa al empleo de estar guardando los datos en variables temporales, o StringsGrids, etc es tener una tabla temporal y luego pasar de esta tabla temporal a la definitiva. Bastaría con un INSERT para volcar los datos desde la tabla temporal a la otra:
Disculpame que sea entrometido, ¿cuándo debes presentar el sistema? Viendo como se fue desarrollando el hilo, te recomiendo una lectura sobre SQL. No es por ser atrevido pero necesitas reforzar algunos conceptos y manejos sobre bases de datos. Saludos, |
Gracias por los comentarios, el sistema lo debo de entregar para ayer..jajajja, bueno me estan esperando para poder implementarlo. Por otro lado, seguire leyendo de SQL para aprender mas. En otros post te preguntaba como guardarlo, ¿por que?por que yo lo hago con ttables y vi que tu lo haces con querys, yo no lo habia intentado asi. Apenas ahora estoy usando stringgrid, y he aprendido algunas cosillas, pero no del todo, por eso les pregunto a ustedes que saben mas que yo.Aqui seguire intentando que quede bien el sistema..de hecho estoy casi 12 horas en la lap leyendo e intentando de todo.Saludos Delphius
|
Mostrar Panel en evento onDblClic del StringGrid
Hola, recuerdan que habia posteado una ayuda con referencia a este evento, pues bien, lo pude solucionar y logre que se mostraran todas las respuestas de una pregunta en un panel al momento de hacer doble clic en la pregunta que se mostraba en el StringGrid. Pero ahora me cambiaron las estructuras de mis tablas y no puedo mostrar las respuestas.Asi quedo mi tabla, donde se almacena tanto las secciones,las preguntas y las opciones:
Este es el codigo que tengo ahora en el evento y nose muestran las respuestas en el panel:
Gracias por su ayuda |
Mostrar Panel en evento onDblClic del StringGrid
Alguien sabe como insertar valores de un bd en un tpanel, y que se muestren en el evento on dblclic del stringgrid.Les deje el codigo en el ultimo post
|
Usa un Frame.
Dentro del frame coloca varios DBEdits y configura el datasource de ellos. Ahora pones ese frame en la ventana del stringgrid pero oculto. Cuando el usuario hace clic en una celda, haces que se busque el registro en el datasource, y muestras el Frame (visible := true). El strringgrid, deberá llevar una columna que identifique la clave primaria de ese registro. El frame, puede contener un DBNavigator con el botón Insert, delete, etc. Saludos |
Gracias Lepe por contestar, solo que asi debo de hacerlo, con un panel, que mostrará un radiogroup con todas las respuestas que tenga esa pregunta. Nose si checaste el codigo que deje anteriormente, alli explico como tengo la base de datos asi como el codigo que se genera en el evento dblclic del stringrid.Gracias por tu sugerencia.Espero y puedas ayudarme
|
Cita:
Digo, tras 62 post en este hilo, ¿no se ha comprendido nada?:o Insertar en un panel, en un label, en un memo, siempre es lo mismo: 1. Armar la consulta (O en su defecto, tenerla ya hecha en diseño) 2. Abrir el Query 3. Explorar el Query e ir insertando los datos donde se lo necesite Lo único que variará de todo el proceso es la forma en como se procederá al volcarlo en el control. Esto dependerá ya en última del control, más no de un aspecto de la base de datos. Elite237, no es por ofenderte pero recomiendo una lectura a la ayuda que proporciona Delphi sobre los controles. Selecciona uno y presiona F1. Si tus dudas pasan por comprender y saber usar cada control, lo más conveniente es leer la ayuda. Lo que comenta Lepe, sobre usar TNavigator, DataSource, y componentes data-ware es una opción sencilla breve y cómoda. No requiere demasiado código. No se porqué pero me parece que le estás dando demasiadas vueltas. Saludos, |
Hola que tal Delphius, quiza no me di a entender en m problema, ya capte todo lo que hemos hablado en este hilo, y ya sabia como mostrar el panel y todo, solo queria checar el porque no me mostraba las respuestas que tenian cada pregunta.Pero lo logre hacer:).Te comento que como me habia cambiado las tablas pues tenia que hacer referencia a una clave, pero no sabia como, y leyendo consegui un tip, hize en mi select un like, en el cual me buscara todas las respuestas donde empezara por un punto y posss....asunto resulto.Gracias de todas maneras a Lepe y a Delphius.Ahora si cierro este hilo.Saludos
|
Desgraciadamente yo también me he perdido un poco. Después de tantos cambios ya no se por donde llevas el proyecto.
|
La franja horaria es GMT +2. Ahora son las 21:57:34. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi