|
发表于 2010-3-16 09:30:27
|
显示全部楼层
参考代码如下
procedure TMainForm.BizFormShow(Sender: TObject);
begin
DataSetBroker2.DataSet.Open;
DataSetBroker2.DataSet.First;
DataSetBroker1.DataSet.Open;
DataSetBroker1.DataSet.First;
end;
procedure TMainForm.DataGrid1CustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TTreeListNode; AColumn: TTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: string; var AColor: Integer; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean);
var
lstr : String;
begin
if ANode.HasChildren then
begin
lstr := StringUtils.Copy(AText, StringUtils.Pos(':', AText) + 2, 10);
AText := Sysutils.IntToStr(DataSetBroker2.DataSet.recno)+': '+ StringUtils.Copy(AText, StringUtils.Pos(':', AText) + 2, 10);
DataSetBroker2.DataSet.Next;
end;
end;
procedure TMainForm.DataGrid1Click(Sender: TObject);
begin
DataSetBroker2.DataSet.First;
end;
procedure TMainForm.DataGrid1Expanded(Sender: TObject; Node: TTreeListNode);
begin
DataSetBroker2.DataSet.First;
end;
procedure TMainForm.DataGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
DataSetBroker2.DataSet.First;
end;
procedure TMainForm.DataGrid1Collapsed(Sender: TObject; Node: TTreeListNode);
begin
DataSetBroker2.DataSet.First;
end;
DataSetBroker1 是分组的数据及,DataSetBroker2 是序号那个数据集,ZD2 是分组字段
DataSetBroker1 对应的数据集的SQL语句为
SELECT SJB1.ZD1, SJB1.ZD2, SJB1.SJ
FROM SJB1
ORDER BY SJB1.ZD2
DataSetBroker2 对应的数据集的SQL语句为
SELECT DISTINCT ZD2
FROM SJB1
附件是运行的效果图
|
|