全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1359
推到 Plurk!
推到 Facebook!

列印成績單

尚未結案
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-07 18:52:14 IP:61.66.xxx.xxx 未訂閱
各位老大,請問一下哦: 我想印出像成績單一樣的格式 姓名 課程1 課程2 課程3... xxx 99 98 97 而我目前的資料庫是一個學生對到多個課程,每個課程會有分數 但是我的課程共有數百個,同一個班級的學生會上相同的課, 但會上那些課則看老師怎麼排,也就是說課程必需用動態的 該怎麼才能做出我想要的報表呢?
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-08 09:27:40 IP:210.61.xxx.xxx 未訂閱
miga您好 大概採用下面的資料庫結構, 輸出結果為一個資料表, 您在Report上依系別、座號、名稱為group, 產出像這樣子
會計  01         王大川 成積單
-------------------------
科目代號 名稱  分數
-------------------------
01        國文  70
02       會計  90
以下是它的sql程式示意
--班級同學資料
declare @class table (sid char(6),cno char(2),cname char(8))
insert @class (sid,cno,cname) values ('會計','01','王大川')
insert @class (sid,cno,cname) values ('會計','02','林中正')
insert @class (sid,cno,cname) values('工管','01','丁子口')    --課程檔
declare @course table (cid char(2),ctext char(10))
insert @course (cid,ctext) values ('01','國文')
insert @course (cid,ctext) values ('02','會計')
insert @course (cid,ctext) values ('03','程式設計')    --班級的主修科目檔
declare @major table (sid char(6),cid char(2)) 
insert @major (sid,cid) values ('會計','01')
insert @major (sid,cid) values ('會計','02')
insert @major (sid,cid) values ('工管','01')
insert @major (sid,cid) values ('工管','03')    --成積檔
declare @score table(sid char(6),cno char(2),cid char(2),score int)
insert @score (sid,cno,cid,score) values ('會計','01','01',70)  --會計系 1號 國文科 70分
insert @score (sid,cno,cid,score) values ('會計','01','02',90)  --會計系 1號 會計科 90分
insert @score (sid,cno,cid,score) values ('會計','02','01',75)  --會計系 2號 國文科 75分
insert @score (sid,cno,cid,score) values ('會計','02','02',80)  --會計系 2號 會計科 80分
insert @score (sid,cno,cid,score) values ('工管','01','01',80)  --工管系 1號 國文科 80分    select distinct s.sid,s.cno,l.cname,s.cid,r.ctext,s.score from @score s,@course r,@class l,@major m
where s.sid=l.sid and s.cid=r.cid and m.sid=s.sid and s.sid='會計'
order by s.sid,s.cno,l.cname
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-09 09:58:41 IP:61.66.xxx.xxx 未訂閱
pedro您好:   後來昨天我也將原本想要的格式,做了一點改變, 是以課程為group,因為我有另外的報外的報表是列印一個學生的成績明細, 所以建議的格式,我已經用在單一學生的明細上了^^ 感恩吶~ 不過,quickreport不能印出像一般成績單的樣式哦??
引言: miga您好 大概採用下面的資料庫結構, 輸出結果為一個資料表, 您在Report上依系別、座號、名稱為group, 產出像這樣子
會計  01         王大川 成積單
-------------------------
科目代號 名稱  分數
-------------------------
01        國文  70
02       會計  90
以下是它的sql程式示意
--班級同學資料
declare @class table (sid char(6),cno char(2),cname char(8))
insert @class (sid,cno,cname) values ('會計','01','王大川')
insert @class (sid,cno,cname) values ('會計','02','林中正')
insert @class (sid,cno,cname) values('工管','01','丁子口')    --課程檔
declare @course table (cid char(2),ctext char(10))
insert @course (cid,ctext) values ('01','國文')
insert @course (cid,ctext) values ('02','會計')
insert @course (cid,ctext) values ('03','程式設計')    --班級的主修科目檔
declare @major table (sid char(6),cid char(2)) 
insert @major (sid,cid) values ('會計','01')
insert @major (sid,cid) values ('會計','02')
insert @major (sid,cid) values ('工管','01')
insert @major (sid,cid) values ('工管','03')    --成積檔
declare @score table(sid char(6),cno char(2),cid char(2),score int)
insert @score (sid,cno,cid,score) values ('會計','01','01',70)  --會計系 1號 國文科 70分
insert @score (sid,cno,cid,score) values ('會計','01','02',90)  --會計系 1號 會計科 90分
insert @score (sid,cno,cid,score) values ('會計','02','01',75)  --會計系 2號 國文科 75分
insert @score (sid,cno,cid,score) values ('會計','02','02',80)  --會計系 2號 會計科 80分
insert @score (sid,cno,cid,score) values ('工管','01','01',80)  --工管系 1號 國文科 80分    select distinct s.sid,s.cno,l.cname,s.cid,r.ctext,s.score from @score s,@course r,@class l,@major m
where s.sid=l.sid and s.cid=r.cid and m.sid=s.sid and s.sid='會計'
order by s.sid,s.cno,l.cname
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-09 10:01:24 IP:218.80.xxx.xxx 未訂閱
你显示出来的肯定是一个Query里的结果,你只要在报表里放上DB控件,然后连上Query就可以了
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-09 10:04:02 IP:218.80.xxx.xxx 未訂閱
如果还要改变格式那就要动态去创建Label,然后用循环逐一赋值。
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-09 10:50:55 IP:210.61.xxx.xxx 未訂閱
miga 因為班級選課都不一樣(沒有固定), 所不能採用姓名 課程1 課程2 課程3.. 列印格式, 除非您先定義最大選課為幾門, 然後把輸出結果利用直轉橫, 如此就可以 套用到QuickReport http://delphi.ktop.com.tw/topic.php?TOPIC_ID=52539
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-07-12 14:46:22 IP:61.66.xxx.xxx 未訂閱
嗯嗯,感恩吶~ 我現在把格式改為 ______________________________________ 課程1     課程2     課程3....-->用group by 課程 ___________________________________-__ xxx 98 xxx 95 xxx 93  :  :    不過有個疑問,我想在最下面做各科成績的小計 但是有可能這個課程的人數太少, 該怎麼讓他空白到頁尾呢?
s5633
一般會員


發表:22
回覆:35
積分:21
註冊:2002-04-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-07-20 08:43:44 IP:220.130.xxx.xxx 未訂閱
加一TQRBand QRBand屬性修改: BandType->rbSummary, AlignToBottom->True 在QRBand上貼上數個TQRExpr QRExpr屬性修改:Expression->sum(課程一), ResetAfterPrint->True
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-07-20 17:44:26 IP:61.59.xxx.xxx 未訂閱
引言: 加一TQRBand QRBand屬性修改: BandType->rbSummary, AlignToBottom->True 在QRBand上貼上數個TQRExpr QRExpr屬性修改:Expression->sum(課程一), ResetAfterPrint->True
謝謝s5633 不過他會在最後頁才出現>< 我希望能夠在每頁頁尾出現 就像下圖一樣 學生人數不夠的話,也要空白到頁尾哦
系統時間:2024-05-19 21:59:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!