Ver Mensaje Individual
  #8  
Antiguo 30-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Cita:
Empezado por Bauhaus1975 Ver Mensaje
Creo que te entiendo...
También las propiedades de búsqueda que comentas en vez de almacenarlas en una tabla podrían ser una propiedad de la clase TVentanaAdmin, ¿cierto?
Si lo guardas en TVentanaAdmin, esa configuración tendrás que guardarlo en algún sitio ¿un archivo ini?, ¿codificadas en delphi? Al tenerlo en una tabla de la base de datos, puedes usar IBExpert para añadir campos de búsqueda o eliminar alguno que se te haya pasado. También puedes modificar (con ciertas limitaciones) las sqls de búsqueda.

Cita:
Empezado por Bauhaus1975 Ver Mensaje
Incluso podría ser una propiedad 'paramsBusqueda' que fuera una lista de TField,
Eso te obliga de nuevo a tener los campos persistentes en delphi, es decir, no puedes utilizar la misma ventana para facturas y clientes, porque obviamente cada uno tendrá campos distintos.

La ventana de búsqueda rápida tendrá un TQuery, pero se configura todo en tiempo de ejecución, por eso tienes la libertad de usarlo con varias tablas sin problemas. Me explico mejor:

Tienes un Grid que va ligado a un TQuery, el TQuery no tiene nada en la propiedad SQL en tiempo de diseño. En ejecución, se le asigna la propiedad SQL a:
Código SQL [-]
select * from Clientes
Justo antes de abrirse el TQuery es cuando se rellena internamente con todos los campos que tenga la tabla clientes. Si en lugar de usar "clientes" usas "facturas" obviamente ahora el mismo TQuery tiene los campos de la tabla factura. Todo se hace en tiempo de ejecución.

Ahora puedes hacer:
Código Delphi [-]

function TFrame1.ObtenerValorDeCampo(NombreCampo:string):string;
begin 
  if query1.Active then
    Result := query1.Fieldbyname(nombreCampo).AsString;
end;

Que podrás llamar con result := ObtenerValorDeCampo('Cliente')

Cita:
Empezado por Bauhaus1975 Ver Mensaje
Otra cosa, antes mencionaste que no aconsejabas el uso de ShowModal,
Este tema da para un hilo completo .

Personalmente, para programas de facturación, me gusta una interfaz MDI (Multiple Document Interface), por ello todas las ventanas de clientes, facturas, etc, se abren dentro de la ventana principal, que tiene un menú y un toolbar. Como el usuario puede abrir varias ventanas al mismo tiempo, que él mismo se organice . Es más o menos este ejemplo (en el hilo completo puedes ver muchos ejemplos de los foristas).

La ventana de búsqueda rápida, sí es una buena candidata para ser modal, ya que necesita que el usuario de doble clic en un resultado para que la ventana de clientes muestre todos los datos, dicho de otra forma: Una ventana necesita de información proporcionada por otra para continuar, siempre que se cumple esa regla, usaría una ventana modal.

Por contra, la ventana de búsqueda normal (la que permite búsquedas avanzadas) no la hago modal, puede necesitar abrir la ventana de facturas para ver una fecha (por ejemplo).

No he diseñado aplicaciones SDI (sólo pequeñas utilidades con 2 o 3 ventanas a lo sumo) que son fáciles de administrar.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita