unit MainForm;
interface
uses
Business.System, Business.Model, Business.Forms, BGWD, Business.Data;
type
TMainForm = class(TForm)
FuncBroker: TFuncBroker;
InfoBrokerBGWD: TInfoBroker;
ControlBar: TControlBar;
DocViewBar: TDocViewBar;
Button1: TButton;
Button2: TButton;
ds: TDataSetBroker;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel: TPanel;
DocView1: TDocView;
Panel1: TPanel;
Button3: TButton;
procedure BizFormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{private declarations}
public
{public declarations}
ASheetGrid: TSheetGrid;
BSheetGrid: TSheetGrid;
BSheet: TSheet;
end;
implementation
procedure TMainForm.BizFormCreate(Sender: TObject);
begin
ASheetGrid:= TSheetGrid.Create(self);
ASheetGrid.Parent:= self.Panel;
ASheetgrid.Align:= TAlign.alClient;
ASheetGrid.Sheet:= TSheetDoc(DocView1.Doc).Sheet;
end;
procedure TMainForm.Button1Click(Sender: TObject);
var
lExporter: TSheetExporter;
begin
lExporter:= TSheetExporter.Create(self);
lExporter.Sheet := TBG(DocView1.Doc).Sheet;
lExporter.PageInfo := TBG(DocView1.Doc).PageInfo as TSheetPageInfo;
lExporter.HFSheet := TBG(DocView1.Doc).HF.Sheet;
lExporter.Preview(nil);
end;
procedure TMainForm.Button2Click(Sender: TObject);
var
aStream: TMemoryStream;
begin
aStream:= TMemoryStream.Create;
TBG(DocView1.Doc).SaveToStream(aStream);
if not ds.DataSet.Active then ds.DataSet.Open;
ds.DataSet.Edit;
TBlobField(ds.DataSet.FieldByName('DocFile')).LoadFromStream(aStream);
ds.DataSet.Post;
aStream.Free;
end;
procedure TMainForm.Button3Click(Sender: TObject);
var
aStream: TMemoryStream;
bStream: TIOStream;
begin
aStream:= TMemoryStream.Create;
bStream:= TIOStream.Create;
TBlobField(ds.DataSet.FieldByName('DocFile')).SaveToStream(aStream);
bStream.CopyFrom(aStream,aStream.Size); //这行出错
BSheetGrid:= TSheetGrid.Create(self);
BSheetGrid.Parent:= self.Panel1;
BSheetgrid.Align:= TAlign.alClient;
BSheet:= TSheet.Create(BSheetGrid);
BSheetGrid.Sheet:= BSheet;
BSheet.LoadFromStream(bStream);
aStream.Free;
end;
end. |