Buenas a todos!! Espero que anden bien!! El problema que tengo es el siguiente,
en un form tengo 3 ComboBox que se llenan con sentencias Sql, a medida que
se eligen los item de los ComboBox se llenan los otros. Este es el primer Combo
que se llena cuando se crea el Form,con este código solo llena el Primero ComboBox
Código SQL
[-]'sql'>Código SQL
[-]'keywordsql'>procedure TDatosVentasForm.FormCreate(Sender: TObject);
'keywordsql'>begin
CiudadComboBox.Enabled:=False;
SucursalComboBox.Enabled:=False;
//Empresa ComboBox
'keywordsql'>with QueryDataModule.EmpresaZQuery 'keywordsql'>do
'keywordsql'>begin
'keywordsql'>If 'keywordsql'>active 'keywordsql'>then close;
SQL.Clear;
SQL.'keywordsql'>Add('quotesql'>'Select * from empresa Order By Nombre');
Open;
'keywordsql'>While 'keywordsql'>not QueryDataModule.EmpresaZQuery.Eof 'keywordsql'>do
'keywordsql'>begin
EmpresaCombobox.Items.'keywordsql'>Add(QueryDataModule.EmpresaZQuery.FieldByName('quotesql'>'Nombre').Text);
QueryDataModule.EmpresaZQuery.Next;
'keywordsql'>end;
'keywordsql'>end;
Una vez que se selecciona la empresa viene este código,
Con este código se selecciona la empresa y se fija en la tabla Sucursales todas
las sucursales de la empresa ordenados por ciudad.
Por Ejemplo la Empresa 'xx' tiene 3 sucursales en Roma y dos en Bari
entonces yo quiero saber de las sucursales de Roma la dirección entonces viene esta otra consulta:
procedure TDatosVentasForm.EmpresaComboBoxChange(Sender: TObject);
begin
CiudadComboBox.Enabled:=True;
CiudadCombobox.Items.Clear;
SucursalComboBox.Items.Clear;
with QueryDataModule.EmpresaZQuery do
begin
If active then close;
SQL.Clear;
SQL.Add('Select * from empresa where Nombre= '''+ EmpresaCombobox.Text +''' ');
Open;
end;
em:=QueryDataModule.EmpresaZQuery.FieldByName('ID_Empresa').Value;
with QueryDataModule.SucursalesZQuery do
begin
If active then close;
SQL.Clear;
SQL.Add('Select Distinct ID_Ciudad from sucursal where ID_Empresa ='+em+'');
Open;
While not QueryDataModule.SucursalesZQuery.Eof do
begin
CiudadCombobox.Items.Add(QueryDataModule.SucursalesZQuery.FieldByName('ID_Ciudad').Text);
QueryDataModule.SucursalesZQuery.Next;
end;
end;
ci:=QueryDataModule.SucursalesZQuery.FieldByName('ID_Ciudad').Text
end;
Esta Consulta selecciona la dirección de la sucursales de Roma de la
Empresa 'xx' entonces llena el ultimo ComboBox con las direcciones
y yo elijo la sucursal que quiero.
Código SQL
[-]SucursalComboBox.Enabled:=True;
SucursalComboBox.Items.Clear;
with QueryDataModule.SucursalesZQuery do
begin
If active then close;
SQL.Clear;
SQL.Add('Select * from sucursal where ID_Empresa ='+em+' and ID_Ciudad='+ci+'');
Open;
While not QueryDataModule.SucursalesZQuery.Eof do
begin
SucursalComboBox.Items.Add(QueryDataModule.SucursalesZQuery.FieldByName('Direccion').Text);
QueryDataModule.SucursalesZQuery.Next;
end;
end;
Osea el problema esta que la variable ''+ci+' tiene que pasar varios
registros y no se como hacer esto! Se entendió??
Fue larga la explicación pude ir directamente al grano pero quería que
entiendan bien lo que quiero hacer . Espero que me puedan dar una mano,
cualquier cosa que no entiendan no me molesta explicar las veces que haga falta.
Gracias!!!!!!!!!!!!!!