各位: 你好!本人希望於在Report P 中的每一科,除了顯學該生的學科成績外,還在每一科也顯示出該科的全級平均分,以讓學生了解自己的學習程度.\ 本人已翻查了討論區的內容,發現2007有同工提出此問題,但改帖所提供的資料已不能找到了. ”CDR > 主頁 > 培訓材料 > 網上校管系統報表編修工作坊(初階) 中的 Guideline for adding Subject Statistic in Report P 第13頁。” 另外,本人亦找到系統中有一張form (R-ASR083-C) 是有顯示所選科目的全級平均分. 所以請問各位高手,如何將每一科的全級平均分引入到Report P中. 謝謝各位 心急的人 MC
由於更新多時以及本人找不回舊有的資料,故不能提供”CDR > 主頁 > 培訓材料 > 網上校管系統報表編修工作坊(初階) 中的 Guideline for adding Subject Statistic in Report P 第13頁。” 給你。 不過本人重新由預設的報表修改子報表(sub-report),以 SQL 加上去以達到老師要求。 由於版面有限, 本人沒作版面上的改動,只在全期成績右邊用 AVG_ATA4 顯示作示範。實際上要看老師學校有多少學期考縯而定。 本人在寫 SQL 時已加到 ATA26(因為資料表本身最多也只是 ATA26)。 現附上 Report Card P 及 score 的 Sub-report 以作為老師參考。 瀏覽附件ReportCardP_withClassLevelAVG.zip 而那取得Report Card P 平均分的 SQL 會以以下作參考,老師可用此 SQL 運用資料管理模組 Export Excel 查看。 ********************************************************************************* select suid, rptpid, subjcode, subjcomcode, subjgrpcode,subjtype, avg(cast(score_ata1 as integer)) 'avg_ATA1', avg(cast(score_ata2 as integer)) 'avg_ATA2', avg(cast(score_ata3 as integer)) 'avg_ATA3', avg(cast(score_ata4 as integer)) 'avg_ATA4', avg(cast(score_ata5 as integer)) 'avg_ATA5', avg(cast(score_ata6 as integer)) 'avg_ATA6', avg(cast(score_ata7 as integer)) 'avg_ATA7', avg(cast(score_ata8 as integer)) 'avg_ATA8', avg(cast(score_ata9 as integer)) 'avg_ATA9', avg(cast(score_ata10 as integer)) 'avg_ATA10', avg(cast(score_ata11 as integer)) 'avg_ATA11', avg(cast(score_ata12 as integer)) 'avg_ATA12', avg(cast(score_ata13 as integer)) 'avg_ATA13', avg(cast(score_ata14 as integer)) 'avg_ATA14', avg(cast(score_ata15 as integer)) 'avg_ATA15', avg(cast(score_ata16 as integer)) 'avg_ATA16', avg(cast(score_ata17 as integer)) 'avg_ATA17', avg(cast(score_ata18 as integer)) 'avg_ATA18', avg(cast(score_ata19 as integer)) 'avg_ATA19', avg(cast(score_ata20 as integer)) 'avg_ATA20', avg(cast(score_ata21 as integer)) 'avg_ATA21', avg(cast(score_ata22 as integer)) 'avg_ATA22', avg(cast(score_ata23 as integer)) 'avg_ATA23', avg(cast(score_ata24 as integer)) 'avg_ATA24', avg(cast(score_ata25 as integer)) 'avg_ATA25', avg(cast(score_ata26 as integer)) 'avg_ATA26' from wsadmin.TB_ASR_RPTPSCORE where suid = ? and RPTPID = ? group by suid, rptpid, subjcode, subjcomcode, subjgrpcode, subjtype *********************************************************************
你好! 以上的資料實在很重要, 真是萬分感激 !! 但當我把閣下所製作的Report Card P 上載到WebSAMS中, 有關report未能顯示出來, 只有白畫面, 系統連Acrobat Reader都沒有Call出來. 然後, 本人亦試試在Crystal Report中加入以上的command, 並上在到WebSAMS中, 亦出現上述情況, 未知本人在製作的過程出現錯誤, 煩請指教.
回覆 4# mckwok 本人已試過沒有問題,請老師確定在 WebSAMS 前置功夫做足了沒? 數據整合, 產生資料,Export,Import 等數據支持。 第二, 報表中的 sub-report 連結要和我做出的 Report Card P 範本中的要一樣, 否則結果會如你描述一樣會空白。
回覆 5# edb-為求什麼 你好!本人已在Crystal Report 中嘗試Preview閣下所編撰的Template, 但在運作中出現以下問題.但在嘗試其他系統內的Template是沒有問題的. 想請教閣下,我校的系統/Database是否有問題?謝謝! MC
回覆 6# mckwok 請老師選用以下報表 / 子報表 / 將 SQL 更新。是次修改後請注意 平均分可能會有小數後很多個位,請老師將此數據以 "Formula Field" 的 ToText / Roundup Function 作顯示之用。 瀏覽附件ReportPWithAVG.zip 以下是修改的 SQL: ********************************* select suid, rptpid, subjcode, subjcomcode, subjgrpcode,subjtype, avg(cast(score_ata1 as double)) 'avg_ATA1', avg(cast(score_ata2 as double)) 'avg_ATA2', avg(cast(score_ata3 as double)) 'avg_ATA3', avg(cast(score_ata4 as double)) 'avg_ATA4', avg(cast(score_ata5 as double)) 'avg_ATA5', avg(cast(score_ata6 as double)) 'avg_ATA6', avg(cast(score_ata7 as double)) 'avg_ATA7', avg(cast(score_ata8 as double)) 'avg_ATA8', avg(cast(score_ata9 as double)) 'avg_ATA9', avg(cast(score_ata10 as double)) 'avg_ATA10', avg(cast(score_ata11 as double)) 'avg_ATA11', avg(cast(score_ata12 as double)) 'avg_ATA12', avg(cast(score_ata13 as double)) 'avg_ATA13', avg(cast(score_ata14 as double)) 'avg_ATA14', avg(cast(score_ata15 as double)) 'avg_ATA15', avg(cast(score_ata16 as double)) 'avg_ATA16', avg(cast(score_ata17 as double)) 'avg_ATA17', avg(cast(score_ata18 as double)) 'avg_ATA18', avg(cast(score_ata19 as double)) 'avg_ATA19', avg(cast(score_ata20 as double)) 'avg_ATA20', avg(cast(score_ata21 as double)) 'avg_ATA21', avg(cast(score_ata22 as double)) 'avg_ATA22', avg(cast(score_ata23 as double)) 'avg_ATA23', avg(cast(score_ata24 as double)) 'avg_ATA24', avg(cast(score_ata25 as double)) 'avg_ATA25', avg(cast(score_ata26 as double)) 'avg_ATA26' from wsadmin.TB_ASR_RPTPSCORE where suid = '{?SUID}' and RPTPID = '{?RPTPID}' group by suid, rptpid, subjcode, subjcomcode, subjgrpcode, subjtype *********************************
回覆 7# edb-為求什麼 抱歉給你很多的麻煩, 謝謝你悉心的幫忙, 資料十分實用, 真是萬分感激. 但本人亦面對另一個問題, 就是 所有分卷的平均分也是相同, 就算是該科沒有分數, 也同樣地顯示相同的平均分. 是否因本人的錯誤導致此情況? 請指教. 瀏覽附件1545 另外, 有關總分問題. 請問除了 @mean 的一個函數可以找出各考驗的總分外, 有沒有其他函數可以提供該此考驗學生的個人總分 ? 因為, 在我校database內的 score_ATA1內所提供的 Total_Score是怪怪的, 每位學生的total_Score都是一樣的. 請問有沒有辦法可解. 十分感謝你的幫忙. MC
回覆 8# mckwok 本人手上都沒有正式文件可以答到老師的問題,只能一個個試。 一般來講都是 學生在該科的 Total score (即 所得分卷分數 x weight = 該 科目之總分), 分卷的總分應該是刻科目的總分而不是分卷的總分。
回覆 10# edb-為求什麼 [font=微軟雅黑]你好!謝謝你的幫忙,本人運用了Numbervar解決了總分的問題了.但仍有最後兩個問題: 1. 現在憑之前的SQL能顯示各科的全級平均分,但平均分的平均分如何抽取(即中文科有全級平均分,英文科亦有全級平均分,學生在該學期的平均分亦希望有全級平均分),是否需要加入多一條SQL command? 或是加入formula便成? 2. 另外,本人仍未找到解決(回覆#7,#8)的辦法,煩請指教. 謝謝![/font]
回覆 11# mckwok 1. 所有科目的平均分由 WebSAMS 的 consolidation 時已做好, 在 TB_ASR_RPTPSTUDENT 之中。 因為在 consolidation 時已包括 ASR Module 之中的 setting (即 免修, ABS 等是否加入 OM / 計算成績,所以很難以一條 SQL 解決老師的問題。如果不考慮這些因素,老師可以在 formula 之中做到。 在 TB_ASR_RPTPSCORE 之中有該科目的 weight 和 score, 用算式便可計出總分和平均分。但如果要抽走一些科目 / 分卷,那老師就要用 每一科的 Subject code 才可做到。 Remark: 在此, 本人不建議用 formula 做這個 function, 先不講要為每一級 / 每一班做一份範本, 只要有些許改動, 老師要花大間時間去改和測試。花那麼多時間做改動和 維護好多份報表,得不常失了。 2. #8 另一半問題, @mean 只解決科目的分數, 不包括分卷。因為 @mean formula 之中已不取分卷分數。 分卷的計法比科目卷更加複雜,原因和 問題 1 差不多, 分卷需要 subject code 和 subject component code 作為一個分科。如以 formula 來解決,是要以每一個科目處理。維持範本的 cost (包括人力物力和時間) 會很高。
回覆 11# mckwok 根據電話初步理解, 在 TB_ASR_RPTPSTUDENT 資料表中可以成功用 SQL 抽出(由WebSAMS ASR Consolidation計算方式, SQL 只做 AVG), 再以 Crystal Report 顯示出來。本人建議用 sub-Report 形式顯示。 步驟如 「網上校管系統」報表編修工作坊 (2012/2013) (進階3) 之中插入新子報表一樣,只是在選擇資料表時用 SQL 代替。 然後以 formula 形式將老師想顯示的 全級平均分的平均分(以 ATA 計算) 放在 "Report Footer" 的 section 之中, 其他 suppress. 主 Report 與 Sub-Report 之間的 link 是以 SUID 和 RPTPID 作 link 便可以了。 其他如上堂時一樣。 SQL 如下,請注意在 Crystal Report 加入 Commond 時要加入 Parameter (請參考 「網上校管系統」報表編修工作坊 (2012/2013) (進階2)) : ******************************************************* select suid, rptpid, schyear, AVG(cast(substr(score_ata1,21,7) as double)) as 'AVG_AVG_ATA1', AVG(cast(substr(score_ata2,21,7) as double)) as 'AVG_AVG_ATA2', AVG(cast(substr(score_ata3,21,7) as double)) as 'AVG_AVG_ATA3', AVG(cast(substr(score_ata4,21,7) as double)) as 'AVG_AVG_ATA4', AVG(cast(substr(score_ata5,21,7) as double)) as 'AVG_AVG_ATA5', AVG(cast(substr(score_ata6,21,7) as double)) as 'AVG_AVG_ATA6', AVG(cast(substr(score_ata7,21,7) as double)) as 'AVG_AVG_ATA7', AVG(cast(substr(score_ata8,21,7) as double)) as 'AVG_AVG_ATA8', AVG(cast(substr(score_ata9,21,7) as double)) as 'AVG_AVG_ATA9', AVG(cast(substr(score_ata10,21,7) as double)) as 'AVG_AVG_ATA10', AVG(cast(substr(score_ata11,21,7) as double)) as 'AVG_AVG_ATA11', AVG(cast(substr(score_ata12,21,7) as double)) as 'AVG_AVG_ATA12', AVG(cast(substr(score_ata13,21,7) as double)) as 'AVG_AVG_ATA13', AVG(cast(substr(score_ata14,21,7) as double)) as 'AVG_AVG_ATA14', AVG(cast(substr(score_ata15,21,7) as double)) as 'AVG_AVG_ATA15', AVG(cast(substr(score_ata16,21,7) as double)) as 'AVG_AVG_ATA16', AVG(cast(substr(score_ata17,21,7) as double)) as 'AVG_AVG_ATA17', AVG(cast(substr(score_ata18,21,7) as double)) as 'AVG_AVG_ATA18', AVG(cast(substr(score_ata19,21,7) as double)) as 'AVG_AVG_ATA19', AVG(cast(substr(score_ata20,21,7) as double)) as 'AVG_AVG_ATA20', AVG(cast(substr(score_ata21,21,7) as double)) as 'AVG_AVG_ATA21', AVG(cast(substr(score_ata22,21,7) as double)) as 'AVG_AVG_ATA22', AVG(cast(substr(score_ata23,21,7) as double)) as 'AVG_AVG_ATA23', AVG(cast(substr(score_ata24,21,7) as double)) as 'AVG_AVG_ATA24', AVG(cast(substr(score_ata25,21,7) as double)) as 'AVG_AVG_ATA25', AVG(cast(substr(score_ata26,21,7) as double)) as 'AVG_AVG_ATA26' from wsadmin.TB_ASR_RPTPSTUDENT where suid = {?SUID} and rptpid = {?RPTPID} GROUP BY suid, rptpid, schyear ******************************************************* 如果老師想由 WebSAMS 抽取試看, 其實與上面差不多, 但也如下顯示出來: ******************************************************* select suid, rptpid, schyear, AVG(cast(substr(score_ata1,21,7) as double)) as 'AVG_AVG_ATA1', AVG(cast(substr(score_ata2,21,7) as double)) as 'AVG_AVG_ATA2', AVG(cast(substr(score_ata3,21,7) as double)) as 'AVG_AVG_ATA3', AVG(cast(substr(score_ata4,21,7) as double)) as 'AVG_AVG_ATA4', AVG(cast(substr(score_ata5,21,7) as double)) as 'AVG_AVG_ATA5', AVG(cast(substr(score_ata6,21,7) as double)) as 'AVG_AVG_ATA6', AVG(cast(substr(score_ata7,21,7) as double)) as 'AVG_AVG_ATA7', AVG(cast(substr(score_ata8,21,7) as double)) as 'AVG_AVG_ATA8', AVG(cast(substr(score_ata9,21,7) as double)) as 'AVG_AVG_ATA9', AVG(cast(substr(score_ata10,21,7) as double)) as 'AVG_AVG_ATA10', AVG(cast(substr(score_ata11,21,7) as double)) as 'AVG_AVG_ATA11', AVG(cast(substr(score_ata12,21,7) as double)) as 'AVG_AVG_ATA12', AVG(cast(substr(score_ata13,21,7) as double)) as 'AVG_AVG_ATA13', AVG(cast(substr(score_ata14,21,7) as double)) as 'AVG_AVG_ATA14', AVG(cast(substr(score_ata15,21,7) as double)) as 'AVG_AVG_ATA15', AVG(cast(substr(score_ata16,21,7) as double)) as 'AVG_AVG_ATA16', AVG(cast(substr(score_ata17,21,7) as double)) as 'AVG_AVG_ATA17', AVG(cast(substr(score_ata18,21,7) as double)) as 'AVG_AVG_ATA18', AVG(cast(substr(score_ata19,21,7) as double)) as 'AVG_AVG_ATA19', AVG(cast(substr(score_ata20,21,7) as double)) as 'AVG_AVG_ATA20', AVG(cast(substr(score_ata21,21,7) as double)) as 'AVG_AVG_ATA21', AVG(cast(substr(score_ata22,21,7) as double)) as 'AVG_AVG_ATA22', AVG(cast(substr(score_ata23,21,7) as double)) as 'AVG_AVG_ATA23', AVG(cast(substr(score_ata24,21,7) as double)) as 'AVG_AVG_ATA24', AVG(cast(substr(score_ata25,21,7) as double)) as 'AVG_AVG_ATA25', AVG(cast(substr(score_ata26,21,7) as double)) as 'AVG_AVG_ATA26' from wsadmin.TB_ASR_RPTPSTUDENT where suid = ? and rptpid = ? GROUP BY suid, rptpid, schyear *******************************************************
回覆 12# edb-為求什麼 現附上以 ATA4 的 Class Level avg 中的 AVG 的 Sub-Report 和 Report Card P 作範例。 瀏覽附件2011-11-30.zip