Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 28-05-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En realidad sí puede usarse un DBLookupListBox, pero David intenta recoger el valor seleccionado del DataSet:

Código Delphi [-]
orders.Params[0].AsInteger := CustomerCustNo.AsInteger;

cuando debiera ser directamente del DBLookupListBox

Código Delphi [-]
orders.Params[0].AsInteger := DBLookupListBox1.KeyValue;

Sin embargo, eso no resuelve el problema, o, mejor dicho, resuelve la parte que mencionas, pero queda la otra:

Cita:
Empezado por David
Si se vuelve abrir la ventana , se crea una segunda instancia del datamodule , pero como busca el primero no cambia el cliente
Es decir, lo que sucede es que al abrir la segunda ventana, se tienen dos copias del datamodule y dos copias de la ventana de informes (orders en el ejemplo). Los controles de la ventana de informes apuntan a los componentes en el datamodule, pues así se establece en el diseño, pero ¡hay dos ventanas y dos datamodule! ¿Cuál apunta a cuál?

Alguna vez yo mismo me pregunté esto.

Yo veo dos opciones:
  • En lugar de hacer la asignación DataSource->DataSet en diseño, la hace por código para así enlazar la ventana con el datamodule que corresponda en lugar del primero que la VCL encuentre.
  • Obliga a la destrucción del datamodule junto con la ventana, tal como proponía él mismo.

El problema es que a ambas posibilidades les veo problemas. La primera funcionaría pero aún así queda el detalle de en qué momento se destruye el datamodule. En la segunda opción no sirve que la ventana destruya al datamodule al momento de cerrarse (OnClose) porque se produce una violación de acceso.

Supongo que cualquiera de las dos problemáticas puede solventarse, pero es que a mi me gustaría tener un poco más de detalle de qué es lo que quiere lograr David. El ejemplo que pone quizá sobre simplifica la situación, pues no me queda claro porqué quiere construir una instancia del datamodule por cada informe.

// Saludos
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como programar esto dentro de FastReport David Impresión 1 03-09-2006 18:25:08
Imprimir de manera no tradicional ilichhernandez Impresión 8 09-11-2005 19:52:25
De que manera se haría sierraja Impresión 8 04-08-2005 02:09:52
Como programo esto (ver dentro) David OOP 1 28-04-2005 22:32:24
Ayuda con un error.No hay manera Descendents Varios 9 16-10-2003 11:10:41


La franja horaria es GMT +2. Ahora son las 17:40:33.


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
Copyright 1996-2007 Club Delphi