Hola mramos65.
Cita:
La pregunta es como hago que el Dbedit1 se actualice al cambiar la OP de la tabla Maestro y por consiguiente el valor de la suma en la columna "ENTRADAS" de la tabla detalle?
|
Si utilizas un
TEdit como mencionaste en tu primer mensaje, usando el código del mensaje
#4 en el evento
AfterScroll de la tabla detalle (ENTREGAS).
Pero como ahora has cambiado el
TEdit por un
TDBEdit... la cosa cambia. Agrega otro componente Query y otro DataSource, es decir que tendrías 3
TQuery y 3
TDataSource:
Código:
qyProduccion <- dsProduccion
qyEntregas <- dsEntregas
qySumatoria <- dsSumatoria
Luego este código en el evento
OnCreate del form:
Código Delphi
[-]
procedure TForm1.FormCreate(Sender: TObject);
const
DBNAME = 'TU_ALIAS_O_RUTA_A_BD';
begin
dsProduccion.DataSet:= qyProduccion;
dsEntregas.DataSet := qyEntregas;
dsSumatoria.DataSet := qySumatoria;
with qyProduccion do
begin
Close;
DatabaseName:= DBNAME;
SQL.Text:= 'SELECT OP, PRODUCTO FROM PRODUCCION';
Open;
end;
with qyEntregas do
begin
Close;
DataBaseName:= DBNAME;
DataSource := dsProduccion;
SQL.Clear;
SQL.Add('SELECT OP, ENTRADAS, SALIDAS');
SQL.ADD('FROM ENTREGAS WHERE OP = :OP');
Open;
end;
with qySumatoria do
begin
Close;
DatabaseName:= DBNAME;
DataSource := dsProduccion;
SQL.Clear;
SQL.Add('SELECT SUM(ENTRADAS) AS SUMA');
SQL.Add('FROM ENTREGAS WHERE OP= :OP');
Open;
end;
DBEdit1.DataSource:= dsSumatoria;
DBEdit1.DataField := 'SUMA';
end;
Todo esto lo realicé en tiempo de ejecución a efectos de clarificar y evitar equívocos, pero podes hacerlo desde el
Object Inspector en tiempo de diseño.
Saludos