Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   DataSet de FormA para mostrar datos en FormB (https://www.clubdelphi.com/foros/showthread.php?t=95399)

mRoman 17-09-2021 22:59:52

DataSet de FormA para mostrar datos en FormB
 
Hola amigos...

Trabajo con Delphi6, Win10, FB 2.0, IBX.

Estoy desarrollando un sistema de comandas, en el cual se desea registrar MODIFICADORES a los platillos seleccionados, estos modificadores están registrados en un tabla. El Formulario "A" se registra el detalle de la comanda y desde aqui estoy llamando a otro fomulario "B" q muestra los modificadores exclusivos para el platillo seleccionado.

Dentro del Formulario "A" (frmRegComanda) tengo un DataSource enlazado a un DataSet (dsModifComandas) el cual me ayudará a registrar los modificadores que se hayan seleccionado, donde estos se deberán de mostrar en un DBgrid que esta colocado en el Formulario "B" (frmModificador2)....en este formulario hago todo la chamba para registrar los modificadores en el DataSet del Formulario "A".

Aqui el código del formulario "B"
Código Delphi [-]
procedure TfrmModificador2.OnButtonClick1(Sender: TObject);
begin

    frmRegComanda.dsModifComandas.Open;
    frmRegComanda.dsModifComandas.Append;
    frmRegComanda.dsModifComandas.FieldByName('COMANDA_ID').AsInteger     :=frmMeseroMain.nRegID;
    frmRegComanda.dsModifComandas.FieldByName('COMANDA_D_CONSEC').AsString:=frmRegComanda.SG.Cells[0,frmRegComanda.nLin2];
    frmRegComanda.dsModifComandas.FieldByName('CATEGORIA_ID').AsInteger   :=frmEditar.qryProducto.FieldByName('CATEGORIA_ID').AsInteger;
    frmRegComanda.dsModifComandas.FieldByName('MODIFICADOR_ID').AsInteger :=(Sender as tButton).Tag;
    frmRegComanda.dsModifComandas.FieldByName('PRODUCTO_ID').AsString     :=frmEditar.qryProducto.FieldByName('PRODUCTO_ID').AsString;
    frmRegComanda.dsModifComandas.FieldByName('COMANDA_MESERO_MODIF_DESCR').AsString:=TRIMLEFT(qryDescri  p.FieldByName('MODIFICADOR_DESCRIP').AsString );
    frmRegComanda.dsModifComandas.Post;
    frmEditar.Memo1.Lines.Add(TRIM(qryDescrip.FieldByName('MODIFICADOR_DESCRIP').AsString)+#13);
end;

Ahora se preguntarán porq lo hago asi? y porque no mejor el DataSet lo dejo en el Formulario "B"...y ya me dejo de cosas, pero es algo largo de explicarles...

Bueno el caso es que, los datos cuando los estoy agregando con el código anterior, no se me reflejan en el DBGrid del formulario "B" este es el principal problema...porque no se muestran??...tengo bien enlazado el DBgrid al DataSource que esta en el formulario "A", que por cierto coloque otro DBGrid en el formulario "A" y lo enlace al mismo DataSource...y ahí si se muestran los datos....pero no el DBGrid del formulario "B".

Todo esto es porque quiero, desde el Formulario "A" grabar la transacción, ya que el formulario "B" se cierra o bien puede no abrirse nunca durante el registro del detalle de la comanda.

(No sé si tenga algo que ver....pero los formularios los muestro con ShowModal)

Algo cantinflesco verdad?, espero haberme explicado bien.

Los leo y gracias por su tiempo.

mRoman 18-09-2021 08:25:55

Solucionado
 
Buenas noches....pues me contesto solo, jajajaja...


Lo que hice fue algo muy simple (como siempre, bueno casi siempre)....

En tiempo de ejecución, cuando muestro el formulario B, agregue esta linea:

Código Delphi [-]
    DBGrid1.DataSource:=frmRegComanda.dSoModifComanda;

En tiempo de ejecución le asigné el DataSource del Formulario "A" (frmRegComanda) al DBGrid del formulario "B" y con esto ya me mostró los datos como se requeria.

Gracias de todas maneras, por su tiempo para leerme.

Saludos a todos.


La franja horaria es GMT +2. Ahora son las 23:51:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi