PDA

Ver la Versión Completa : Creacion de ABM por parametros


FNADALO
14-11-2003, 14:49:35
Hola fieles compañeros.

haber si me explico, tengo un formulario Main, con un menu
con sus Actions Etc... tengo un DataModule e un formulario
que quiero que me sirva de ABM desde el main quiero llamar
al formulario; en el DataModule tengo un AdoConnection, un
AdoQuery y un DataSource mi dilema es el siguiente para que estos objetos me sirvan de ABM queria pasar desde la llamada del
main al formulario la tabla, como debo hacerlo??? al DataModulo
al String como parametro y como lo haria??? o como parametro al formulario.

Espero haberme explicado Gracias.

Descendents
14-11-2003, 15:11:18
Perdona pero no te entiendo

Tu quieres acceder a los objetos del datamodule desde otro form?

jachguate
14-11-2003, 16:40:12
Perdon por mi ignorancia, pero que es un abm?

:confused: :confused:

delphi.com.ar
14-11-2003, 17:04:24
ABM se le suelen llamar a las pantallas de "Altas, Bajas y Modificaciones" de datos.

La respuesta a la pregunta inicial, es debes desarrollarlo. Cuando empecé a programar en Delphi, hice unos componentes que muestran un ABM con solo definir sus campos y tabla de origen, con la aparición de la herencia visual, esto quedó medio obsoleto (a mi entender), porque cree una formulario base TCustomABM que tiene toda la lógica necesaria para solo tener que definir los campos, y es mucho mas flexible porque puedo sobrescribir métodos para que funcione en forma diferente a lo "clásico".

Son solo ideas...
Saludos!

jachguate
16-11-2003, 23:39:23
bien.

No discutiré si es la mejor forma de hacerlo o no, pero creo que podes definir una propiedad en el formulario, bien un DataSet o un DataSource (depende de tu conveniencia). Y el el método que asigne la propiedad hacer el "trabajo sucio" de identificar los campos y crear controles para ellos.

Algo como:


Type
TFormaABM = class(TForm)
private
...
FDataSet : TDataSet;
...
Procedure SetDataSet(Value : TDataSet);
public
Property DataSet : TDataSet read FDataSet write SetDataSet;
end;

Implementation
...
Procedure TFormaABM.SetDataSEt(Value : TDataSet);

Begin
if assigned(FDataSet) Then
BorrarControlesViejos;
FDataSet := Value;
CrearControlesNuevos;
FDataSet.FreeNotification(Self);
End;



Donde BorrarControlesViejos tendrá la lógica para eliminar los controles asociados al dataSet y CrearControlesNuevos tendrá la lógica para escanear la propiedad Fields del DataSet y crear los controles apropiados para cada uno.

En fin... es solo una idea.

Hasta luego.

;)