Ver Mensaje Individual
  #4  
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
Aunque Microsoft desaconseja el uso de interfaz MDI, y salvando los errores conocidos, prefiero usar esta interfaz por tener todo recojido. Las ventanas modales, sólo las uso cuando no se puede continuar la aplicación porque necesita datos vitales.

1.Formulario para listar los elementos (clientes): No sé a que le llamas "enlazar con la opción de Nuevo/modificar/eliminar". Yo lo que hago es llamar a la ventana de cliente especificando el IDCliente. La ventana de "listar" no puede modificar ni eliminar, sólo llama a la ventana de clientes al hacer doble clic. (elimino duplicidad de código, y posibles efectos colaterales).

2. Formulario Ficha. (nada que comentar, concuerdo totalmente).

3. Búsquedas rápidas: Yo actualmente uso un Frame, contiene un grid con un Toolbar. Me permite explorar / localizar / imprimir cualquier elemento (cliente, factura, albaran, empresa) con sólo especificar un parámetro.

Para el tercer punto, uso una metodología estricta en mis tablas:
- Nombre de tabla: cliente, factura
- clave primaria: IDcliente, IDfactura

Este frame recibe el parámetro "nombre de tabla", si le paso
"cliente", crea la sql de búsqueda "SELECT * FROM CLIENTE WHERE CLIENTE LIKE '%' + edtBusqueda.text+ '%' + 'ORDER BY IDCLIENTE".

Al hacer doble clic en el grid, se abre su ventana propia (factura, cliente, etc), localizando el elemento.

Nota: En realidad no uso parámetros de tipo string, tengo declarado algo así:
Código Delphi [-]
unit global;

interface

type TVentana = (vCliente, vFactura, vAlbaran);

var VentanaDesc = array [TVentana] of string = ('cliente', 'factura', 'albaran');

function AbreVentana(tipo:TVentana; const ID:integer = 0):TBaseForm;
Aquí otro truco más, Tengo un Formulario Base del que heredan todas las ventanas con la propiedad ID:integer.

AbreVentana crea el tipo de ventana TFrmClientes y asigna el ID si es distinto de cero, después muestra la ventana en pantalla.

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