Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-02-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
Generalmente cuando alguien pone mucho código, yo no lo leo, así que pido una disculpa por no haber leído tu código.


Como se suele decir por este foro, el problema no esta en los DBGrids, si no en el dataset asociado a los mismo.

Pensando un poco se me ocurre, que tienes un Dataset para cada dbgrid, el primero llena la lista de productos normalmente. Ahora, para lograr lo que quieres, lo que yo haría sería mas o menos así:

Ejecutar el SP del primer dataset para llenar el primer DBgrid.
En el evento OnDataChange de este primer dataset, pongo el código para ejecutar el SP del segundo dataset, enviándole como parámetro el artículo que esta seleccionado en el primer dataset.

Código:
dataset2.params('articulo').AsString:=dataset1.fieldsByname('IDArticulo').AsString;

//Obviamente esto no es código, es la idea de como lo haría

Y creo que mas o menos eso es todo lo que yo haría para tener un dbgrid con la lista de productos y cada que cambie, se muestre la información del prodcuto en el segundo dbgrid.
__________________

Responder Con Cita
  #2  
Antiguo 07-02-2006
TriLoCBA TriLoCBA is offline
Miembro
 
Registrado: jun 2005
Posts: 28
Poder: 0
TriLoCBA Va por buen camino
Thumbs up Muchas gracias !!!

Muchas gracias ContraVeneno... tu solución funciono perfecta !!!...

Copio el codigo completo :
Código Delphi [-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
Label1: TLabel;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
private
procedure ActualizarDBGrid2(Sender: TObject; Field: TField); //Metodo para mostrar el Stock del producto seleccionado en el DBGrid1
public
{ Public declarations }
end;
var
Form1: TForm1;
conSQL: TADOConnection;
cadenaSQL: String;
sp1:TADOStoredProc;
sp2:TADOStoredProc;
ds1:TDataSource;
ds2:TDataSource;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
//Conexion al Servidor SQL...
cadenaSQL:='Provider=SQLOLEDB.1;Password=MiPass;Persist Security Info=True;'+
'User ID=MiUsuario;Initial Catalog=MiBase;Data Source=10.0.0.1;'+
'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;'+
'Workstation ID=MiEstacion;Use Encryption for Data=False;'+
'Tag with column collation when possible=False';
conSQL:=TADOConnection.Create(self);
conSQL.ConnectionString:= cadenaSQL;
conSQL.LoginPrompt:=False;
conSQL.Connected:= True;
//Completa el listado de productos en DBGrid1...
with sp1 do begin
sp1:=TADOStoredProc.Create(self);
Connection:= conSQL;
ProcedureName:= 'spListaProductos';
Parameters.Refresh;
Active:= true;
end;
ds1:=TDataSource.Create(self);
ds1.DataSet:= sp1;
DBGrid1.DataSource:=ds1;
ds1.OnDataChange:= ActualizarDBGrid2;
end;
procedure TForm1.ActualizarDBGrid2(Sender: TObject; Field: TField);
begin
//Muestra detalles de un producto especifico...
with sp2 do begin
sp2:= TADOStoredProc.Create(self);
Connection:= conSQL;
ProcedureName:= 'spStockProducto';
Parameters.Refresh;
Parameters.ParamByName('@Producto').Value:= ds1.DataSet.FieldByName('Producto').AsString;
Active:= true;
end;
ds2:=TDataSource.Create(self);
ds2.DataSet:= sp2;
DBGrid2.DataSource:= ds2;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
ActualizarDBGrid2(nil,nil);
end;
end.


PD: Disculpa la cantidad de codigo, pero como soy un novato en esto, tener toda la codificacion a la hora de ejecutar un ejemplo siempre me ayuda mucho !!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Vincular archivos de texto en Sql Server 2000 senpiterno MS SQL Server 1 29-03-2005 09:48:28
Vincular a access una tabla interbase Giniromero Tablas planas 0 08-03-2005 16:17:09
Vincular Forms bustio .NET 1 11-10-2004 15:25:55
Vincular tablas dbf en msaccess dinámicamente desde delphi SLAKE Conexión con bases de datos 0 06-10-2004 18:22:16
Dbgrids con una imagen de fondo nesetru Varios 1 05-02-2004 07:56:35


La franja horaria es GMT +2. Ahora son las 15:18:53.


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