起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 239|回复: 8

【结贴】我想要实现计划树datatreelist里面的那个序号怎么设置 见图**

[复制链接]
发表于 2008-1-26 11:42:23 | 显示全部楼层 |阅读模式
急。。。。。。。。。。。

{a8cc5464-fe75-4345-9bea-86da68523018}.jpg

137.16 KB, 下载次数: 175

回复

使用道具 举报

 楼主| 发表于 2008-1-26 11:44:48 | 显示全部楼层
还有读出这个序号  怎么写代码  谢谢  麻烦了~
回复 支持 反对

使用道具 举报

发表于 2008-1-26 11:47:24 | 显示全部楼层
这个好像是控件自动产生的,不能控制。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-26 14:07:16 | 显示全部楼层
datatreelist里面的那个序号怎么设置
回复 支持 反对

使用道具 举报

发表于 2008-1-26 14:45:38 | 显示全部楼层
楼主,不能设置的,是控件自动产生的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-26 14:47:23 | 显示全部楼层
datatreelist里面的那个序号怎么设置
回复 支持 反对

使用道具 举报

发表于 2008-1-28 09:16:23 | 显示全部楼层
在计划中心信息中:
procedure TPLANCENTERINFO.InitTreeColumn(ADataTreeList: TDataTreeList;
  ADataSetBroker: TDataSetBroker; AShowFields, AImageFeilds: TStrings);
var
  I: Integer;
  C: TDataTreeListColumn;
  M: TDataTreeListImageColumn;
  B: TTreeListBand;
begin
  ADataTreeList.DataSource := nil;
  ADataTreeList.Bands.Clear;
  B := ADataTreeList.Bands.Add;
  B.Fixed := TGridBandFixed.bfLeft;
  B := ADataTreeList.Bands.Add;
  B.Fixed := TGridBandFixed.bfNone;

  for I := 0 to AShowFields.Count - 1 do
  begin
    if AImageFeilds.IndexOf(AShowFields[I]) = -1 then
    begin
      C := TDataTreeListColumn.Create(ADataTreeList);
      C.FieldName := AShowFields[I];
      C.SummaryFooterType := TSummaryType.cstNone;
      C.Visible := IsShowPlanField(ADataSetBroker.DataSet, C.FieldName);
      if SysUtils.SameText(C.FieldName, 'FPLANTITLE') then
        C.BandIndex := 0 else
        C.BandIndex := 1;
      ADataTreeList.AddColumn(C);
    end
    else
    begin
      M := TDataTreeListImageColumn.Create(ADataTreeList);
      M.FieldName := AShowFields[I];
      M.DisableEditor := True;
      M.DisableGrouping := True;
{      if AShowFields[I] = '_STATE' then
      begin
        M.DisableCaption := True;
        PlanGraphicLib.TPlanGraphicLib.GetPlanStateGlyph(M.HeaderGlyph);
        M.Width := 18;
        M.Sizing := False;
        M.OnCustomDrawCell := DoTreeCustomDrawStateCell;
        M.BandIndex := 0;
      end
      else }if AShowFields[I] = '_PERCENT' then
      。。
      end
      else if AShowFields[I] = '_WBS' then
      begin
        M.DisableCaption := False;
        M.Caption := '序号';//这里就是 。
        M.Width := 100;
        M.OnCustomDrawCell := DoTreeCustomDrawWBSCell;//编号方法
        M.DisableDragging := True;
        M.DisableEditor := True;
        M.DisableGrouping := True;
        M.BandIndex := 0;
      end
      else
        。。。
end;
procedure TPLANCENTERINFO.DoTreeCustomDrawWBSCell(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);
begin
  //这里
  PlanGraphicLib.TPlanGraphicLib.DoCustomDrawWBSCell(Sender, ACanvas, ARect, ANode, AColumn,
    ASelected, AFocused, ANewItemRow, AText, AColor, AFont, AAlignment, ADone);
end;
{
  计划图形库中
}
static procedure TPLANGRAPHICLIB.DoCustomDrawWBSCell(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
  lText: string;
  lNode: TTreeListNode;
begin
  if ADone then Exit;

  lText := '';
  lNode := ANode;
  while lNode <> nil do
  begin
    if lText = '' then
      lText := SysUtils.Format('%d', [lNode.Index + 1]) else    // 这里    (1)
      lText := SysUtils.Format('%d.%s', [lNode.Index + 1, lText]);//这里 '%d.%s'    (1.2)
    lNode := lNode.Parent;  //父子形成树形
  end;

  DoDrawBrushColor(Sender, ACanvas.Brush, ANode, AColor, ASelected, AFocused);
  ACanvas.Pen.Color := ACanvas.Brush.Color;
  ACanvas.Rectangle(ARect);
  if。。
  。。。

  ADone := True;
end;
回复 支持 反对

使用道具 举报

发表于 2008-1-30 14:54:44 | 显示全部楼层
还有问题吗?
回复 支持 反对

使用道具 举报

发表于 2008-5-13 10:10:50 | 显示全部楼层
由于长时间没有回复,先结贴了,有问题请开新帖。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-12 21:37 , Processed in 0.042679 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表