![]() |
como volver a traer datos de un stringgrid?
hola les cuento mi problema
estoy utilizando un stringgird para hacer una asignacion d turnos...en la primer columna tengo los horarios cada media hr y en la primer fila el nombre del personal a cargo. Tambien hay un datetimpecker para cambiar de fecha. Con el evento onselectcell del stringgrid se abre una pantalla para ingresar un nuevo turno (nombre del cliente y servicio a prestar por ej: Gustavo/corte de pelo). Lo que quiero saber es como hacer para dejar guardados esos turnos en la posicion donde los cargue...ya que cuando cambio de dia y vuelvo al dia donde estaban los turnos ingresados no estan mas. Desde ya muchas gracias |
Hola
Vi la pegunta, pero no se exactamente lo que podria hacer. No entiendo muy bien, guardar los datos, guardarlos en donde? Me podrias decir como cargas los datos?. y donde quieres guardarlos? Si es en una base de datos, dime con que trabajas. Saludos |
tengo una base de datos en access y dentro una tabla q se llama turnos.
cuando hago onSelectCell se abre otro form para ingresar el nombre del cliente q se va a atender y el servicio a realizar y asi se guarda: turnos.StringGrid1.Cells[cell_col,cell_row]:=edit3.Text+'/'+edit6.text; turnos.ADOTable1.open; turnos.ADOTable1.insert; turnos.ADOTable1.FieldByName('Fecha_turno').value:=turnos.DateTimePicker1.Date; turnos.ADOTable1.FieldByName('Hora_turno').Value:=turnos.stringgrid1.cells[0,cell_row]; turnos.ADOTable1.FieldByName('Codigo_Cliente').Value:=edit1.text; turnos.ADOTable1.FieldByName('Apellido').Value:=edit2.text; turnos.ADOTable1.FieldByName('Nombre').Value:=edit3.text; turnos.ADOTable1.FieldByName('Legajo').Value:=edit4.text; turnos.ADOTable1.FieldByName('Nombre_emp').Value:=edit5.text; turnos.ADOTable1.FieldByName('Servicio').Value:=edit6.text; turnos.ADOTable1.post; turnos.ADOTable1.close; nuevo_turno.Close; cuando cambio la fecha pongo q m blankee el stringgrid procedure TTurnos.DateTimePicker1Change(Sender: TObject); var x,y:integer; begin for x:= 1 to stringgrid1.ColCount-1 do for y:= 1 to stringgrid1.RowCount-1 do stringgrid1.Cells[x,y]:=''; end; si kiero ir a una fecha mas adelante y desp volver atras ningun turno keda guardado en el stringgrid... m conviene en la base de datos hacer 2 campos con la posicion d la fila y de la columna en dond estoy guardando los datos y traelos a traves d una consulta? |
Hola
Veo que solo guardas (Hora_turno) del stringrid. Tambien veo que usas un adotable. Veo que al fina de la inserción cierras la tabla, (donde la abres otra vez?). Cuando cargas los datos al stringrid?, como? El programa me parece que por el momento es pequeño, me gustaria verlo con la base de datos. Puedes hacer un Zip e ir a avanzado y adjuntar el archivo, asi lo veria mejor. Saludos |
el programa zipeado pesa 550 kb como hago para subirlo?
|
Hola
1-Sube la base de datos aparte. 2-En el zip no pongas el exe del programa, quitalo. Saludos |
el foro t deja subir 29kb zipeado y la base de datos m keda en 80kb y el programa m keda en 35kb como hago?:confused:
|
Hola
Caso dificil, no se que hacer, hay en internet varios sitios pero no me acuerdo donde. El asunto es que viendolo me sentiria mas seguro. saludos |
estoy subiendo los archivos a my 4 shared....t paso el link
http://www.4shared.com/file/75990038...nos_nuevo.html |
Hola
Ya lo tengo, dame un minuto para revisarlo. Saludos |
Hola
Tengo un problema para abrirlo. Por favor subelo otra vez pero necesito que enlaces todo a C:\. Osea, la direccion que le pones es una ruta definida, si no esta en esa misma direccion no la puedo abrir, situa el proyecto en c y cargalo. Ojala me explique bien. Esto se soluciona con un datamodule y un ini, pero veo que no los tienes. Saludos |
Hola
A ojo, lo que puedo ver, tienes muchos problemas, el proyecto abre todo a la vez, no hay datamodule, la direccion tiene que ser exacta. Bueno, esta un poco desarreglado, hay que darle un retoque. Saludos |
listo...colocando la base de datos en C creo q t tendria q funcionar bajalo aca
http://www.4shared.com/file/75992857...a7/TURNOS.html |
Hola
Fue peor el remedio que la enfermedad.:D Ahora ni siquiera me deja arrancar delphi. El problema son las direcciones, no importa que uses delphi 7 y yo 6, ya me ha pasado antes. El problema es la direccion exacta. Cuando haces un proyecto, le indicas una direccion, tanto al proyecto como a la base de datos, si no coincide en mi ordenador me dara error, no podre verlo. Tienes que colocar el proyecto completo en una direccion en comun. Crea una carpeta en C:\ con el nombre Proyecto, quedaria asi: C:\Proyecto. Ahi coloca todo. Abre delphi y haz que el programa funcione en esa nueva direccion, correlo. Ahora ya delphi sabra que el programa corre ahi. Yo creo que podre verlo, eso espero. Para que veas como es esto, te puedo decir la direccion en donde lo tienes ahora, es esta: ![]() Como ves si yo no pongo toda esa direccion no lo abrire. Saludos |
|
Hola
No se por que me sigue dando problemas, me gustaria ayudarte pero no le llegamos a esta parte. Aqui te dejo un zip con el programa, esta en la carpeta Proyecto y dentro de otra carpeta Turnos. Abrelo con delphi, correlo, que delphi encuentre la base de datos, y los unit. Reenviamelo ya funcionando en esa mismas carpetas, no las modifiques. Espero poder ayudate, pero si no paso esto, no podre. Saludos |
Hola
El problema mas grabe es que usas una conexion individual en ciertos form, eso es lo que parece. Osea en algunos form tienes o un adotable o un adoquery que esta ligado a una direccion de la base de datos, si no es la misma, no puedo abrir el proyecto. Me muero de las ganas de cambiar eso. Saludos PD: Recuerda que la base de datos tiene que estar en ese mismo directorio, ponla dentro de la carpeta Turnos. Trata de ponerlo directo en C:, no en documents and setins, administrador etc. Que dificil abrir este proyecto, por eso se usa un adoconnection, esto evita todo este asunto. |
Hola
Ya lo abrí, que dificil me la pusiste, pero para ser Novato lo pude hacer. Voy a revisarlo. Saludos |
Que Suerte Q Lo Abriste
Bueno ahora espero que lo revises y puedas aconsejarme algo .
:) |
Hola
Lo que veo asta el momento. AdoTable1 es el que inserta los datos en la tabla. Esto lo hace bien El asunto es: 1- Cuando arranca el programa carga en el stringrid los datos de los empleados y colocas las horas, bien. 2- Insertas los turnos, bien. 3- Quieres ver lo que insertaste, PERO, como lo vas a ver si no llamas a la tabla?. Tienes que hacer el mismo procedimiento que haces cuando cargas los empleados, solo que definiendo las columnas adecuadas para que cargen los turnos. aqui cargas el grid. La celda 0 es la hora, la celda 1 sera un empleado, la 2 el otro etc. Ahora, para que se vea despues de que lo coloques puedes poner un boton de actualizar u otro procedimiento. Voy a ver como le meto mano, para empezar ya puse un datamodule y un adoconnection. Saludos |
bueno gracias por ayudarm :) ...recuerda q cuando cambio la fecha del datetimepicker blankeo el stringgrid y luego creo q habria q hacer una consulta para q m traiga los datos...mi problema es q no se como ubicarlos en la misma posicion dond estaban en el string, igualment en la base de datos estoy guardando la posicion del registro.
|
Hola
Ahora pregunto: Por que en un stringGrid?. El concepto para colocar los turnos esta bien, pero para visualizar los datos yo haria un form adicional con un dbgrid. Un form para colocar los turnos, ya lo tienes y funciona, otro para ver el orden de estos. No se, eso haria yo, en vez de estar actualizando el stringrid. Saludos |
podrias hacerme un ejemplo y mandarmelo por favor pq no entendi bien como se utilizaria el dbgrid
|
Hola
Me imagino, no es por criticar, pero la sintaxis de programacion es malita.:D El asunto es mostrar los resultados en otro form. Pregunto: Cuantos empleados hay, solo tres o puede que sean mas?. Saludos |
Hola
Pregunto: Es imperativo usar un stringGrid?. Es una tarea y se necesita usar?. Se puede usar cualquier componente?. Te gusta el strigGrid y por eso lo quieres usar? Saludos |
Hola
Es tarde. Voy a hacerle unos cambios a mi gusto, por lo menos te serviran de ejemplo. Mañana, con mas tiempo le meto mano. Para empezar: Voy a cambiar la manera como se llaman a los form y como arrancan, no es conveniente. Voy a poner un form de visualizacion de datos. Voy a enlazar los form como se debe. Voy a quitar el evento Ondrawcell. Voy a poner un Ini. Ya puse el datamodule. Bueno, para empezar creo que estara bien.:D Saludos |
seguimos mañana
Bueno OK , me parece bien , gracias por tu ayuda que me diste hasta aqui , mañana sguimos , a que hora te conectas ??? sos de aca de Argentina ??
Gracias;):):o |
Hola
Vivo en Costa Rica. Mañana veras los cambios, te dejare un archivo y te lo explicare. Saludos |
hola Caral!!!
keria aclarart q el programa q t pase ayer d turnos es una partecita d todo un programa q estoy haciendo para una pelukeria. Dentro del programa general entre otras cosas, se pueden ingresar empleados nuevos...por eso en el stringgrid d turnos hago la consulta para q los agregue automaticamente cuando cargo un empleado nuevo....estare esperando tus respuestass saludoss |
Hola
Ya tengo algunos cambios. He modificado algunas cosas. pregunto: hay varios form, de clientes, empleados, modificar turnos qu no estan enlazados a nada. que quieres hacer? Saludos |
el form d clientes y el d empleados estan enlazados a las 2 lupas q aparecen en Nuevo Turno y el form d modificar turnos no sabia como usarlos...xq tambien esta la posibilidad de modificar un turno o eliminarlo y eso tampoco sabia como hacerlo..cree el form pero no lo usaba
|
Hola
Si este es parte de otro programa te sugiero que revises el sistema como se conecta este. Bueno aquí están los cambios: 1- Coloque un archivo INI. (DBD.ini). Si te fijas esta en la misma carpeta, abrelo y veras esto: [BD] Path="C:\Program Files\Borland\Delphi6\Projects\tunos nuevo\Copy of Turnos\Grupo Creativo.MDB" [Logon] Auto="No" Login="" Pass="" Como ves en Path esta la direccion donde esta la base de datos. Esto quiere decir que si colocas la base de datos en otra direccion y modificas este archivo y lo guardas, el programa buscara la base de datos en esa direccion. Ten presente que este archivo (DBD.ini) tiene que estar en el mismo directorio que el programa. 2- Coloque un Datamodule con un adoConnection. Este es el que contiene la direccion de la bd, es lo mismo que hacías con cada adoquery y adotable, solo que ahora es uno solo. 3- Cambie la entrada de los form, en projects, options, veras que estan en un lado de la lista. Eso hace que no arranquen con el programa gastando memoria en vano. Para hacer esto cada form es llamado y destruido cuando no se usa. 4- El form Turnos, ahora solo sirve para establecer los turnos. veras dos botones mas: Revisar Turnos: Este es el form nuevo, entra con los turnos de la fecha que esta en el datetimepicker (si cambias la fecha, mostrara los de esa fecha), una vez dentro, se puede hacer busqueda, por fecha, por usuario, etc, etc. Me parece logico ya que puede que algun cliente tenga mas de un servicio, asi se desglosan todos los servicios, horas, etc. Tambien cada empleado podra ver sus servicios, por hora, fecha, cliente, que se yo. Modificar turnos: Bueno, es lo que hace, pero se modifica por fecha, osea que el entrara en la fecha que este el datetimepicker del form turnos. Se podra, editar, borrar, guardar. etc. 5- Modifique algunas cosas del form Nuevo turno. Estaba creando un conflicto con las fechas de la bd. 6- Use mas adoquery, esto agiliza el programa. Bueno, por ahora creo que tienes para un rato.:D Saludos |
1 Archivos Adjunto(s)
gracias caral la verdad q estoy viendo muchas cosas nuevas para mi nivel de conocimiento de delphi. Lo estoy probando pero m tira un error q t lo adjunto para q veas.
|
se podria hacer q los turnos keden grabados en el dbgrid? y hacer la revision d turnos en esa pantalla?...pq por ejemplo si marco 2 veces la misma celda..m deja guadar 2 turnos en la misma fecha y mismo horario...y en el modificar seria bueno tambien poder cambiar la fecha....t agraderia mucho si m podes ayudar con eso, igualment este programa m servira muchisimoo:D
|
Hola
Vi el error. Hay un conflicto entre el stringgrid y el el formulario. Esto pasa cuando la techa esta en azul, no se por que. Lo que pense es en no dejarlas en azul, o no tocar el stringgird cuando se llame al form, el asunto es que la tabla no esta seguro cerrada. Ya pensare en esto. Por ahora, revisalo. Saludos |
Hola
Para que eso no pase (cosa que no me dijiste) lo que se tendria que hacer es adjuntar un adoquery, que revise, tanto la hecha, hora y persona, para que si coinciden, envie un mensaje. Saludos |
mira...yo para hacer esta peluqueria m base en una q baje d internet en esta pagina:
http://gdssistemas.com.ar/evaluacion...ria/index.html si puedes baja a version de evaluacion y fijate en la parte de reservas |
Hola
Estoy viendo dos cosas. Una ya la tengo, ya se pueden modificar los turnos, fecha y hora. Estoy viendo lo de los turnos repetidos. Me da algunos problemas estoy en eso. Saludos |
te agradezco todo lo q estas haciendo por mi
pudist bajar el programa d la pag q t pase? se podra hacer q guarde los turnos en el stringgrid? pudist solucionar el error q mostraba? :confused: |
Hola
Adelantos: Ya se pueden ver los datos en el stringGrid como querias. Con solo cambiar de fecha se presentan los datos. Estoy trabajando en la confirmación de que no se dupliquen los turnos, me esta costando, eso de ser novato es un problema. Paciencia. Saludos |
| La franja horaria es GMT +2. Ahora son las 05:18:34. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi