2011-08-27 152 views
0

如何以FastReport表的形式顯示數據?FastReport - 如何以表格形式顯示數據?

編輯

我的意思是,我想創建這樣一個報表:(用表格形式)。

enter image description here

+3

你究竟想讓我們開始?請透露更多您嘗試過的內容,以及它如何達不到您想要看到的內容。在StackOverflow上提出的76個問題我們不應再向您詢問詳細信息,您應該已經知道沒有人可以給出合理的答案。至少我確實假設你不指望我們在這裏重複任何來自FastReport的文檔或示例代碼? –

+0

但我認爲這個問題對於使用'FastReport'的人來說是完全清楚的。 – Kermia

+0

無論如何,我編輯了這個問題。 – Kermia

回答

1

這將有可能使用Framing備忘錄的屬性。

+1

Kermia,你的問題不清楚,你想用數據作爲圖像來建立表格,還是僅僅需要爲表格中的數據繪製線條? –

3

使用FR嚮導

從FR文件菜單>新建>標準報表嚮導

當你達到「佈局」頁面最簡單的方法,選擇從佈局然後確定

表格
+0

我想手動做這個。 – Kermia

2

我認爲你需要自己構建網格。以下是一些構建網格佈局的代碼,以幫助您入門。您將需要調整列寬並添加格式化代碼(memo.frame)以獲得所需的外觀。

procedure CreateHeader(frxDataset: TfrxDBDataSet; Page: TfrxReportPage); 
var 
    i: Integer; 
    X, Y, ThisWidth: Extended; 
    HeaderMemo: TfrxCustomMemoView; 
    Column: TcxGridDBColumn; 
begin 
    Band := TfrxPageHeader.Create(Page); 
    Band.CreateUniqueName; 
    Band.SetBounds(0, 0, 0, fr01cm * 7); 
    Band.Height := edtHeightHeader.Value; 

    HeaderMemo := CreateMemo(Band); 
    HeaderMemo.SetBounds(0, 0, PageWidth, 0); 

    // Set memo style 
    // Or just add a frame HeaderMemo.Frame.... 
    HeaderMemo.Style := 'Header line'; 

    X := 0; 
    Y := 0; 

    Memo := CreateMemo(Band); 
    Memo.SetBounds(0, Y, X, fr01cm * 6); 
    Memo.Height := Band.Height - 1; 

    for i := 0 to pred(frxDataset.Fields.Count) do 
    begin 
    ThisWidth := 100; 

    Memo := CreateMemo(Band); 
    Memo.SetBounds(X, Y, ThisWidth, fr01cm * 6); 

    Memo.Text := frxDataset.Fields[i].FieldName; 

    // Set memo style 
    // Or just add a frame HeaderMemo.Frame.... 
    Memo.Style := 'Header'; 

    Memo.Height := Band.Height - 1; 

    X := X + ThisWidth; 
    end; 

    HeaderMemo.Height := Band.Height; 
end; 

procedure CreateFastReportDataBand(frxDataset: TfrxDBDataSet; Page: TfrxReportPage); 
var 
    i: Integer; 
    X, Y, ThisWidth: Extended; 
begin 
    Band := TfrxMasterData.Create(Page); 
    Band.CreateUniqueName; 
    Band.SetBounds(0, CurY, 0, 0); 
    Band.Height := edtHeightData.Value; 

    TfrxMasterData(Band).frxDataset := frxDataset; 

    X := 0; 
    Y := 0; 

    for i := 0 to pred(frxDataset.Fields.Count) do 
    begin 
    ThisWidth := 100; 

    Memo := CreateMemo(Band); 
    Memo.SetBounds(X, Y, ThisWidth, fr01cm * 5); 
    Memo.Dataset := frxDataset; 
    Memo.DataField := frxDataset.Fields[i].FieldName; 

    // Set memo style 
    // Or just add a frame HeaderMemo.Frame.... 
    Memo.Style := 'Data'; 

    Memo.Height := Band.Height - 1; 

    X := X + ThisWidth; 
    end; 
end; 

它應該工作正常,但我已經沒有機會,因爲從我的應用程序去耦它來測試。

相關問題