有一个主表,四个从表,关键字是“ZYDID”
其中主表一条数据对应从表的多条数据怎样可以实现选择连接主表DBGrid1显示的任何一条数据,点击修改按钮时,同时其它四个DBGrid2~5所显示的数据是与DBGrid1所选数据关连的数据?所有的东西基本都弄好了,就差DBGrid显示问题,每次点击主表所连接的DBGrid1数据修改按钮后,其它连接从表的四个DBGrid2~5所显示的数据都是其对应数据表内全部的数据,而不是只显示与主表关联的数据想了很久都解决不了,会的告诉我下怎么做5555--
其中主表一条数据对应从表的多条数据怎样可以实现选择连接主表DBGrid1显示的任何一条数据,点击修改按钮时,同时其它四个DBGrid2~5所显示的数据是与DBGrid1所选数据关连的数据?所有的东西基本都弄好了,就差DBGrid显示问题,每次点击主表所连接的DBGrid1数据修改按钮后,其它连接从表的四个DBGrid2~5所显示的数据都是其对应数据表内全部的数据,而不是只显示与主表关联的数据想了很久都解决不了,会的告诉我下怎么做5555--
$(DELPHI)\Demos\Db\MastApp
部分代码仅供参考:
procedure TShenChanZiLiaoFrm.ADOQuery1AfterScroll(DataSet: TDataSet);
var MaxID:string;
begin
if (adoquery1.State=DsInsert) or (adoquery1.State=DsEdit)
or( ScrollFlag=False) then
begin
exit;
end
else
begin
//正常条码
with adoquery2 do
begin
close;
sql.clear;
sql.add('select * from PPID_FL where GongDanHao='''+adoquery1.Fieldbyname('GongDanHao').AsString+'''');
open;
end;
//重复条码
with adoquery3 do
begin
close;
sql.clear;
sql.add('select * from PPIDFL_Copy where GongDanHao='''+adoquery1.Fieldbyname('GongDanHao').AsString+'''');
open;
end;
//不良条码
with adoquery4 do
begin
close;
sql.clear;
sql.add('select * from PPIDFL_Error where GongDanHao='''+adoquery1.Fieldbyname('GongDanHao').AsString+'''');
open;
end; //查询工单总数量
with ado_temp do
begin
close;
sql.Clear;
sql.Add('select * from GongDan where GongDanHao='''+adoquery1.Fieldbyname('GongDanHao').AsString+'''');
open;
label5.Caption:=ado_temp.Fieldbyname('shuliang').AsString;
end; //查询数码个数信息
with ado_temp do
begin
close;
sql.Clear;
sql.Add('select Count(*)PPID_Code from PPID_FL where GongDanHao='''+adoquery1.Fieldbyname('GongDanHao').AsString+'''');
open;
label6.Caption:=ado_temp.Fieldbyname('PPID_Code').AsString;
end; //查询重复条码个数
with ado_temp do
begin
close;
sql.Clear;
sql.Add('select Count(*)PPID_Code from PPIDFL_Copy where GongDanHao='''+adoquery1.Fieldbyname('GongDanHao').AsString+'''');
open;
label7.Caption:=ado_temp.Fieldbyname('PPID_Code').AsString;
end; //查询重复不良条码个数
with ado_temp do
begin
close;
sql.Clear;
sql.Add('select Count(*)PPID_code from PPIDFL_Error where GongDanHao='''+adoquery1.Fieldbyname('GongDanHao').AsString+'''');
open;
label8.Caption:=ado_temp.Fieldbyname('PPID_Code').AsString;
end;
//查询开始时间和结束时间
with ado_temp do
begin
close;
sql.Clear;
sql.Add('select * from PPID_FL where GongDanHao='''+adoquery1.Fieldbyname('GongDanHao').AsString+''' and ID=''1''');
open;
Beginstr1:=ado_temp.Fieldbyname('BeginDate').AsString;
end; with ado_temp do
begin
close;
sql.Clear;
sql.Add('select Max(ID) as IDstr from PPID_FL where GongDanHao='''+adoquery1.Fieldbyname('GongDanHao').AsString+'''');
open;
MaxID:=ado_temp.Fieldbyname('IDstr').AsString;
end; with ado_temp do
begin
close;
sql.Clear;
sql.Add('select * from PPID_FL where GongDanHao='''+adoquery1.Fieldbyname('GongDanHao').AsString+''' and ID='''+MaxID+'''');
open;
Endstr1:=ado_temp.Fieldbyname('BeginDate').AsString;
end; end;
end;