線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:661
推到 Plurk!
推到 Facebook!

請問有人用過SMdbgrid裡的footer嗎?

缺席
it1506
初階會員


發表:30
回覆:83
積分:47
註冊:2011-02-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2015-05-14 13:10:08 IP:59.120.xxx.xxx 未訂閱
如題

想要做個合計在下面
我一直弄不出來, 連那個footer的影子都看不到

我用adoquery ,dataset, smdbgrid

在adoquery裡的 afterscroll事件裡做加總

smdbgrid 裡的已經有勾選 showfooter
[code delphi]
var i:integer;
c:Currency;
begin
c:=0;
for i := 0 to smdbgrd5.Columns.Count-1 do begin
with smdbgrd5.Columns[i] as TSMDBColumn do begin
c:=c ado5.FieldByName('S1').AsCurrency;
// ShowMessage(FieldName);
if Trim(FieldName) = 'S1' then begin
FooterValue := '合計: ' currtostr(c);
end;
end;
end;
end;
[/code]

但是smdbgrid裡的sample看不懂,也沒教學.

不知是否有人做過,可以分享一下.

另外,sample裡的程式碼

我看不懂這一段是要做什麼的...

但是我也有設定 SMDBGrid1DrawFooterCell 這個事件

只是我只有在裡面寫個showmessage看有沒有進去跑而已

但是都沒有執行到

[code delphi]
procedure TfrmMain.SMDBGrid1DrawFooterCell(Sender: TObject;
Canvas: TCanvas; FooterCellRect: TRect; Field: TField;
var FooterText: String; var DefaultDrawing: Boolean);
begin
exit;
if Assigned(Field) and (Field.FieldName = 'AmountPaid') then
begin
DefaultDrawing := False;
Canvas.FillRect(FooterCellRect);
Canvas.Draw(FooterCellRect.Left 2, FooterCellRect.Top 2, Image1.Picture.Graphic);
FooterCellRect.Left := FooterCellRect.Left Image1.Width 5;
FooterCellRect.Top := FooterCellRect.Top 2;
DrawText(Canvas.Handle, PChar(FooterText), Length(FooterText), FooterCellRect, DT_LEFT or DT_WORDBREAK or DT_EXPANDTABS or DT_NOPREFIX or DT_VCENTER)
end;
end;
[/code]
編輯記錄
it1506 重新編輯於 2015-05-14 13:23:26, 註解 無‧
it1506 重新編輯於 2015-05-14 13:26:52, 註解 無‧
it1506 重新編輯於 2015-05-14 13:28:57, 註解 無‧
P.D.
版主


發表:571
回覆:3880
積分:3666
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2015-05-14 19:02:56 IP:59.120.xxx.xxx 未訂閱
要做 footer 或 header , 建議你改用 StringGrid 來做要容易的多, 只要把 QUERY 統計出來的資料, 一筆筆建立到 StringGrid, 雖然麻煩一點, 但要怎麼玩就隨便你了
要不然, TMS 元件是比較容易使用的, 可以上 www.tmssoftware.com 下載試用版, SMDBgrid 畢竟是 Free的東西, 沒有sample的!
it1506
初階會員


發表:30
回覆:83
積分:47
註冊:2011-02-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2015-05-15 08:46:26 IP:59.120.xxx.xxx 未訂閱
找到問題點了

原來 ondrawfootercell 這個事件都有執行

但是footer看不到的原因是 沒有用windows的skin!!


在delphi XE2 裡, 在上方的project->option ->application裡
有個apperance , 裡面有一些skin主題
只要有打勾使用其中一個, 這個footer就不會出現了!!

footer有出現




換個skin主題就沒出現...


另一個顏色主題也沒有

系統時間:2017-10-21 7:29:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!