|
如图所示:表格文档中有主从两个数据集,主数据集的内容已经显示出来了,通过点击工具栏的按钮可以新建子项目,子项目的内容动态的添加,代码如下:
问题是:点击按钮后,屏幕只是闪了一下,添加的内容并没有显示出来,请高手指教,谢谢!
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;
|
|