Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda - ejecución no lineal (https://www.clubdelphi.com/foros/showthread.php?t=57505)

Cañones 18-06-2008 00:37:00

Ayuda - ejecución no lineal
 
Hola a todos.
Primero no se bien si ese sería el titulo del problema ya que no se bien cual es el problema pero si que es lo que pasa.
Tengo una aplicación en Delphi 6 y con una base Firebird 2.
El tema es el siguiente, algunos procedimientos si los corro paso a paso funcionan perfectos por ejemplo:
Cerrar un turno, verifica si esto es posible, luego hace un insert en la BD para marcar el cierre del turno, después creo el formulario que tiene el QR3, luego lo muestro, paso unos parámetros para la impresión, y termino con la impresión del reporte.
Bueno, si a este procedimiento lo hago con el modo trace into y como voy viendo que va pasando se ejecuta a la perfección, pero se lo ejecuto normal (F9) este procedimiento falla, el reporte me sale impreso de un modo que parece que los parámetros no le llegaron, por lo que supongo que no alcanza a realizar el insert que ya se crea el QR3 y se manda a imprimir.

Si quieren copio el código tal cual lo tengo, pero me pasa en otros procedimientos, como en el formulario de ABMs que crea y muestra a un form para ingreso de datos. Estos dos tienen en el onKeyPress si la tecla es ESC que se cierre sin hacer nada. Si estoy en el formulario para ingreso de datos y presiono escape se cierra el formulario de ingresos de datos y el form de ABMs también se sierra, pero si lo hago paso a paso nada de esto ocurre, todo el funcionamiento es normal.

No busque nada en el foro porque no tengo idea de cómo se llama este problema ni de que puede ser. Si alguien sabe que me diga y me pongo a investigar.
Desde ya muchísimas gracias a todos.

coso 18-06-2008 08:21:29

Si, mejor copia el codigo. Por lo que creo entender, tu crees que se envia al preview antes que se haga el nuevo registro. Es eso no? Supongo que postearas los cambios del nuevo registro antes de llamar al preview...

Cañones 18-06-2008 13:10:42

Código Delphi [-]
begin
  sMesa:=tcPresupuestos.Tabs[tcPresupuestos.TabIndex]; //tabcontrol
  iIdPresupuesto:=dmPresupuestos.idPresupuestoMesa(sMesa); // devuelve el numero de id de esa mesa
  dmPresupuestos.buscarPresupuestoPorId(iIdPresupuesto);
  FCerrarPresupuesto:=TfrmCerrarPresupuesto.Create(self); // formulario de cierre
  try
    if FCerrarPresupuesto.ShowModal = mrOK then
      begin
      dmPresupuestos.cerrarPresupuesto(iIdPresupuesto);
      if FCerrarPresupuesto.cantidadCopias > 0 then
        // aca hago la impresion si es que las copias son mas de una
        begin
        cant:=FCerrarPresupuesto.cantidadCopias;
        RepPresupuesto:=TfrmQRPresupuesto.Create(self);
        RepPresupuesto.imprimir(iIdPresupuesto,cant);
        RepPresupuesto.Free;
        end;
      tcPresupuestos.Tabs.Delete(tcPresupuestos.TabIndex);
      end;
  finally
    FCerrarPresupuesto.Free;
  end;
end;

coso 18-06-2008 16:01:09

si bueno...me referia a codigo que se pueda entender. Con este solo se puede intuir.

Cañones 18-06-2008 16:22:47

No se a que te referis.
Decime bien que queres saber y te lo explico en detalle.
Gracias por tu tiempo.

coso 18-06-2008 16:23:48

con este codigo que muestras no se puede arreglar nada...Si puedes poner o adjuntar comprimido los procedimientos donde aparecen cosas como 'select * ...' o QuickRep1.Preview quiza se te pueda ayudar mejor.

Cañones 18-06-2008 16:56:54

Ok.
Vamos a otro ejemplo que sucede.
Tengo un Form ABMs que si hago un alta llama al Form para ingresos de datos.
Los dos forms tienen en el evento onKeypress si la tecla es ESC que se cierre sin aplicar cambios.
Una vez que estoy en el formulario de ingresos de datos y preciono ESC, se cierra el form de los ingresos de datos, también el form de ABMs.
Parece que es tan rapido el onKeypress del formulario de ingreso de datos que también el form de ABMs me toma el onKeypress y se cierra.
Si a todo esto lo hago paso a pasa detenidamente y viendo lo que va sucediendo, se ejecuta con total normalidad.
No es un problema con el QR3 si no que en varios lados del programa sucede esto.

Saludos.

coso 18-06-2008 17:01:05

no hay "ejecucion no lineal". En el momento de debugar (trace into), tu estas mirando directamente a cada linea del progama que esta cargada en memoria. Como mucho podria pasar que tuvieras un retraso en el servidor al que mandas la SQL. Pero si me dices que tb lo tienes con otro tipo de procedimientos...tienes errores en el codigo

Cañones 19-06-2008 15:52:52

Ok.
De que tengo algun error eso no es novedad, algo pasa y por eso no funciona.
Lo raro es que en Trece Into, funciona perfecto.
Saludos.

Gracias.

coso 19-06-2008 16:32:11

pues si pones el codigo entero (aunque sea adjuntado) quiza se te pueda ayudar mejor...

Cañones 26-06-2008 20:02:56

Hola a todos.
Bueno, solucioné el problema y acá va lo que estaba pasando.
En cuanto al problema con la impresión era porque tenia mal configurado el Transsaction y con la ayuda de un profesor lo configuro para que funcione correctamente.
El otro problema que tenia con los formularios, era porque en el formulario llamado por el de AMBs tenia programado el evento onKeypress y el formulario ABMs tenia el evento onKeyup por esto se cerraban los dos.
Eso es todo y gracias por su tiempo a todos.
Saludos.


La franja horaria es GMT +2. Ahora son las 12:43:36.

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