Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   refrescado de datos (https://www.clubdelphi.com/foros/showthread.php?t=33677)

BlueSteel 13-07-2006 18:55:15

refrescado de datos
 
Hola.

quisas el titulo no sea tan descriptivo, pero lo que me gustaría saber es cual es la mejor manera de estructurar un sistema, trataré de explicarlo.. espero me entiedan :p

tengo el siguiente problema... en un sistema ingreso a un modulo (Form) de creación de Centros de Costos... salgo del modulo e ingreso al modulo(cargos), entonces quiero buscar el centro costo que recien cree y esto no esta.. pero si salgo del sistema y vuelvo a entrar, este aparece......

Esto tambien me aparece con algun reporte... almaceno los datos y mando a imprimir el informe.. pero aveces no imprime todos los items.. solo el primero... pero si salgo del sistema y vuelvo a entrar imprime todos..:confused: :confused: :confused:


quizas sea que cuando se carga el sistema se crean todos los formularios en ese momento,, existe alguna otra forma de que los form se creen cuando se ingresa a ellos y no cuando se carga el sistema... o esto no tiene nada que ver ????

gracias por cualquier ayuda

nemesio 14-07-2006 06:53:23

Con qué base de datos trabajas? Si estás realizando Post cada vez que introduces datos, debería estar actualizado. Bueno siempre validando después de cada post que aplique los cambios realizados. Me explico mejor.
Si trabajas con Interbase/FireBird, en el evento AfterPost agregas el código: Transaccion.Commit; si es con Paradox agregas Table1.Flushbuffers.

Suerte.

marcoszorrilla 14-07-2006 07:16:58

Lo que dice Nemesio es cierto, pero solamente para el puesto que efectúa los cambios, si otro usuario tuviese abierta una consulta y se produjera un cambio, no vería la nueva situación puesto que en su momento obtuvo la tupla de datos, para esto existe la posibilidad de colocar un Timer que cada x tiempo recomponga la consulta para traernos los posibles cambios producidos.

Creo que en el caso de Interbase puede utilizarse el IBevents, pero no tengo ahora a mano documentación al respecto.

Un Saludo.

BlueSteel 19-07-2006 19:05:22

Con este proceso almaceno un dato en la tabla "Centro", .. esto lo hago en el Form "Ccostos"

Código Delphi [-]
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Insert Into "Centro" ("Cen_Codigo","Cen_Detalle")');
IBQ_Edit.SQL.Add('Values (:P1, :P2)');
IBQ_Edit.Params[0].AsString := vCod.Text;
IBQ_Edit.Params[1].AsString := vDet.Text;
IBQ_Edit.ExecSQL;
IBT_Edit.Commit;

para cerrar el Form le pongo solamente "close"

luego voy al Form "Cargos" y cuando este se abre me ejecuta el siguiente código, en donde todos los datos que estan en la tabla "Centro" me los pasa al Combo_Box "CB_Centro" para agregarlos

Código Delphi [-]
procedure TAsig_Costos.FormActivate(Sender: TObject);
begin
     IBQ_Cargos.Close;
     IBQ_Cargos.SQL.Clear;
     IBQ_Cargos.SQL.Add('Select * From "Centro"');
     IBQ_Cargos.SQL.Add('Order By "Cen_Codigo"');
     IBQ_Cargos.Open;
     CB_Centro.Items.Clear;

     While IBQ_Cargos.Eof=False Do
     Begin
          CB_Centro.Items.Append(IBQ_Cargos['Cen_Detalle']);
          IBQ_Cargos.Next;
     End;

lo que pasa es que cuando agrego un registro en la tabla "centro" y sin salir del sistema ingreso al Form "Cargos", este no aparece registrado.. pero si salgo del sistema e ingreso de nuevo.. lo actualiza y si aparece

espero haberme explicado bien....

marcoszorrilla 19-07-2006 22:19:49

Cuando entras en el segundo form, cierra y vuelve a abrir la tabla centro.

Un Saludo.

BlueSteel 20-07-2006 19:06:03

y como tendria que cerrarlo... sera algo asi

Código Delphi [-]
IBQ_Cargos.Active := False;
//luego lo vuelvo a abrir
IBQ_Cargos.Active := True;

marcoszorrilla 20-07-2006 19:26:04

Pues sí, creo que con eso sería suficiente.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 01:56:48.

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