|
发表于 2009-7-3 09:18:00
|
显示全部楼层
楼主,我做了个例子,你看看吧
var
lSheetDoc : TSheetDoc;
lSheet : TDataSheet;
lFieldCell: TDataFieldCell;
lDataSheetArea : TDataSheetArea;
begin
lSheetDoc := TSheetDoc(dv.Doc);
lSheet := TDataSheet(lSheetDoc.Sheet);
{设置表格标题}
lSheet.CellTypes[1, 1] := TCellType.ctCell; //静态单元格
lSheet.Cells[1, 1].AsString := '自定义表格文档';
lSheet.Cells[1, 1].HorzAlign := Justep.Forms.jsGraphics.THorzAlign.haCenter; //对齐方式
lSheet.Cells[1, 1].VertAlign := Justep.Forms.jsGraphics.TVertAlign.vaCenter;
lSheet.Cells[1, 1].Font.Size := 18;
lSheet.Cells[1, 1].Bounds := Classes.Rect(1,1,6,3); //合并单元格
{设置文档列宽}
lsheet.ColWidths[1] := 260;
lsheet.ColWidths[2] := 100;
//lsheet.ColWidths[3] := ;
//lsheet.ColWidths[4] := ;
//lsheet.ColWidths[5] := ;
{行高}
lsheet.RowHeights[4] := 100;
lsheet.RowHeights[5] := 50;
{定义字段单元格}
//Cells[col, row]
// a 字段定义
lSheet.CellTypes[1, 4] := TCellType.ctFieldLabel; //预定义单元格类型
lFieldCell := lSheet.Cells[1, 4] as TDataFieldCell;
lFieldCell.DataSetID := DataSetBroker1.DataSetID; //绑定数据集
lFieldCell.FieldName := 'a'; //绑定字段
lFieldCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight,
TCellSide.sBottom]; //画边框
lSheet.CellTypes[1, 5] := TCellType.ctField;
lFieldCell := lSheet.Cells[1, 5] as TDataFieldCell;
lFieldCell.DataSetID := DataSetBroker1.DataSetID;
lFieldCell.FieldName := 'a';
lFieldCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];
// b 字段定义
lSheet.CellTypes[2, 4] := TCellType.ctFieldLabel;
lFieldCell := lSheet.Cells[2, 4] as TDataFieldCell;
lFieldCell.DataSetID := DataSetBroker1.DataSetID;
lFieldCell.FieldName := 'b';
lFieldCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];
lSheet.CellTypes[2, 5] := TCellType.ctField;
lFieldCell := lSheet.Cells[2, 5] as TDataFieldCell;
lFieldCell.DataSetID := DataSetBroker1.DataSetID;
lFieldCell.FieldName := 'b';
lFieldCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];
// c 字段定义
lSheet.CellTypes[3, 4] := TCellType.ctFieldLabel;
lFieldCell := lSheet.Cells[3, 4] as TDataFieldCell;
lFieldCell.DataSetID := DataSetBroker1.DataSetID;
lFieldCell.FieldName := 'c';
lFieldCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];
lSheet.CellTypes[3, 5] := TCellType.ctField;
lFieldCell := lSheet.Cells[3, 5] as TDataFieldCell;
lFieldCell.DataSetID := DataSetBroker1.DataSetID;
lFieldCell.FieldName := 'c';
lFieldCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];
// d 字段定义
lSheet.CellTypes[4, 4] := TCellType.ctFieldLabel;
lFieldCell := lSheet.Cells[4, 4] as TDataFieldCell;
lFieldCell.DataSetID := DataSetBroker1.DataSetID;
lFieldCell.FieldName := 'd';
lFieldCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];
lSheet.CellTypes[4, 5] := TCellType.ctField;
lFieldCell := lSheet.Cells[4, 5] as TDataFieldCell;
lFieldCell.DataSetID := DataSetBroker1.DataSetID;
lFieldCell.FieldName := 'd';
lFieldCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];
// e 字段定义
lSheet.CellTypes[5, 4] := TCellType.ctFieldLabel;
lFieldCell := lSheet.Cells[5, 4] as TDataFieldCell;
lFieldCell.CellType := TCellType.ctFieldLabel;
lFieldCell.DataSetID := DataSetBroker1.DataSetID;
lFieldCell.FieldName := 'e';
lFieldCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];
lSheet.CellTypes[5, 5] := TCellType.ctField;
lFieldCell := lSheet.Cells[5, 5] as TDataFieldCell;
lFieldCell.DataSetID := DataSetBroker1.DataSetID;
lFieldCell.FieldName := 'e';
lFieldCell.Sides := [TCellSide.sLeft, TCellSide.sTop, TCellSide.sRight, TCellSide.sBottom];
{设置数据集区域}
lSheet.Areas.Clear;
lDataSheetArea := lSheet.Areas.Add(TAreaType.atDBArea) as TDataSheetArea;
lDataSheetArea.DataSetDefID := DataSetBroker1.DataSetDefID;
lDataSheetArea.DataSetID := DataSetBroker1.DataSetID;
lDataSheetArea.BoundsRect := Classes.Bounds(1, 4, 5, 2);
lDataSheetArea.TitleRows := 1;
lDataSheetArea.EditorRepeatCount := 10;
lDataSheetArea.EditorRepeatMode := TEditorRepeatMode.ermLimit;
lSheetDoc.Close;
dv.OpenView(TDocMode.dmEdit);
end; |
|