起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 224|回复: 6

【结贴】动态的添加表格文档内容

[复制链接]
发表于 2008-1-28 17:14:31 | 显示全部楼层 |阅读模式
如图所示:表格文档中有主从两个数据集,主数据集的内容已经显示出来了,通过点击工具栏的按钮可以新建子项目,子项目的内容动态的添加,代码如下:
问题是:点击按钮后,屏幕只是闪了一下,添加的内容并没有显示出来,请高手指教,谢谢!

procedure TMainForm.Button1Click(Sender: TObject);
var
  lSheetDoc : TSheetDoc;
  lSheet: TDataSheet;
  lExporter: TSheetExporter;
  lArea: TDataSheetArea;
  lCell: TSheetCell;
  I,J, lCnt: Integer;
  b: TCellSideBorder;

begin
     lSheetDoc := TSheetDoc(DocViewXMJBXX_XMJBXXBGWD.Doc);
     lSheet := TDataSheet(lSheetDoc.Sheet);

     lSheet.CellTypes[14, 2] := TCellType.ctCell;       //静态单元格
     lSheet.Cells[14, 2].AsString := '子项目';

     lCnt := 15;
     J := lCnt;

     for I:=0 to 2 Do
     begin
        lSheet.CellTypes[lCnt,2] := TCellType.ctFieldLabel;
        lCell := lSheet.Cells[lCnt,2];
        TFieldLabelCell(lCell).DataSetID := TSQLDataSet(SubProjectDS).ID;
        TFieldLabelCell(lCell).FieldName := SubProjectDS.FieldByName('ProjectName').FieldName;
        lCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];

        lSheet.CellTypes[lCnt,3] := TCellType.ctField;
        lCell := lSheet.Cells[lCnt,3];
        TFieldCell(lCell).DataSetID := TSQLDataSet(SubProjectDS).ID;
        TFieldCell(lCell).FieldName := SubProjectDS.FieldByName('ProjectName').FieldName;
        lCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];

        lSheet.CellTypes[lCnt,8] := TCellType.ctFieldLabel;
        lCell := lSheet.Cells[lCnt,8];
        TFieldLabelCell(lCell).DataSetID := TSQLDataSet(SubProjectDS).ID;
        TFieldLabelCell(lCell).FieldName := SubProjectDS.FieldByName('CustomerName').FieldName;
        lCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];

        lSheet.CellTypes[lCnt,9] := TCellType.ctField;
        lCell := lSheet.Cells[lCnt,9];
        TFieldCell(lCell).DataSetID := TSQLDataSet(SubProjectDS).ID;
        TFieldCell(lCell).FieldName := SubProjectDS.FieldByName('CustomerName').FieldName;
        lCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];

        Inc(lCnt);
     end;

     lArea := lSheet.Areas.Add(TAreaType.atDBArea) as TDataSheetArea;
     lArea.DataSetID := TSQLDataSet(SubProjectDS).ID;
     lArea.BoundsRect := Classes.Bounds(J,2,lCnt,9);

     lSheetDoc.Close;
     DocViewXMJBXX_XMJBXXBGWD.OpenView(TDocMode.dmEdit);

end;

未命名.jpg

20.72 KB, 下载次数: 150

回复

使用道具 举报

发表于 2008-1-28 17:23:15 | 显示全部楼层
感觉楼主的思路有问题了,为什么要用代码控制表格呢,你要添加数据只要往数据集中插入数据就行了,表格文档会自动感知的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-29 09:33:42 | 显示全部楼层
谢谢楼主的提醒,如果没有需要,是不会这么麻烦的,这只是一个示例而已,希望能帮我解决问题!
回复 支持 反对

使用道具 举报

发表于 2008-1-29 09:35:42 | 显示全部楼层
你把你的资源打包传上来吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-29 09:56:31 | 显示全部楼层
资源文件

xsgl.rar

760.35 KB, 下载次数: 56

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-29 11:06:22 | 显示全部楼层
不好意思,问题找到了,不小心把行列颠倒了,问题解决,谢谢!
回复 支持 反对

使用道具 举报

发表于 2008-1-29 11:14:53 | 显示全部楼层
好的.
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-6 18:11 , Processed in 0.046382 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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