報告範本 在Report P 中各科的全級平均分

本文由 mckwok 在 2012-11-05 發表於 "WebSAMS 討論區" 討論區

  1. 55081241

    mckwok
    Expand Collapse

    文章:
    11
    讚:
    0
    各位:

    你好!本人希望於在Report P 中的每一科,除了顯學該生的學科成績外,還在每一科也顯示出該科的全級平均分,以讓學生了解自己的學習程度.\

    本人已翻查了討論區的內容,發現2007有同工提出此問題,但改帖所提供的資料已不能找到了.

    ”CDR > 主頁 > 培訓材料 > 網上校管系統報表編修工作坊(初階) 中的 Guideline for adding Subject Statistic in Report P 第13頁。”

    另外,本人亦找到系統中有一張form (R-ASR083-C) 是有顯示所選科目的全級平均分. 所以請問各位高手,如何將每一科的全級平均分引入到Report P中.

    謝謝各位

    心急的人
    MC
     
  2. 57145732

    edb-為求什麼
    Expand Collapse

    文章:
    401
    讚:
    0
    由於更新多時以及本人找不回舊有的資料,故不能提供”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
    *********************************************************************
     
    #2 edb-為求什麼, 2012-11-07
  3. Expand Collapse

    萬分感激 !! :D
     
  4. 55081241

    mckwok
    Expand Collapse

    文章:
    11
    讚:
    0
    你好!

    以上的資料實在很重要, 真是萬分感激 !!

    但當我把閣下所製作的Report Card P 上載到WebSAMS中, 有關report未能顯示出來, 只有白畫面, 系統連Acrobat Reader都沒有Call出來.

    然後, 本人亦試試在Crystal Report中加入以上的command, 並上在到WebSAMS中, 亦出現上述情況, 未知本人在製作的過程出現錯誤, 煩請指教.
     
  5. 57145732

    edb-為求什麼
    Expand Collapse

    文章:
    401
    讚:
    0
    回覆 4# mckwok


    本人已試過沒有問題,請老師確定在 WebSAMS 前置功夫做足了沒?
    數據整合, 產生資料,Export,Import 等數據支持。
    第二, 報表中的 sub-report 連結要和我做出的 Report Card P 範本中的要一樣, 否則結果會如你描述一樣會空白。
     
    #5 edb-為求什麼, 2012-11-14
  6. 55081241

    mckwok
    Expand Collapse

    文章:
    11
    讚:
    0
    回覆 5# edb-為求什麼


    你好!本人已在Crystal Report 中嘗試Preview閣下所編撰的Template, 但在運作中出現以下問題.但在嘗試其他系統內的Template是沒有問題的.
    error.jpg

    想請教閣下,我校的系統/Database是否有問題?謝謝!

    MC
     
  7. 57145732

    edb-為求什麼
    Expand Collapse

    文章:
    401
    讚:
    0
    回覆 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-為求什麼, 2012-11-19
  8. 55081241

    mckwok
    Expand Collapse

    文章:
    11
    讚:
    0
    回覆 7# edb-為求什麼

    抱歉給你很多的麻煩, 謝謝你悉心的幫忙, 資料十分實用, 真是萬分感激.

    但本人亦面對另一個問題, 就是 所有分卷的平均分也是相同, 就算是該科沒有分數, 也同樣地顯示相同的平均分. 是否因本人的錯誤導致此情況? 請指教.

    瀏覽附件1545

    另外, 有關總分問題. 請問除了 @mean 的一個函數可以找出各考驗的總分外, 有沒有其他函數可以提供該此考驗學生的個人總分 ? 因為, 在我校database內的 score_ATA1內所提供的 Total_Score是怪怪的, 每位學生的total_Score都是一樣的. 請問有沒有辦法可解. 十分感謝你的幫忙.

    MC
     
  9. 55081241

    mckwok
    Expand Collapse

    文章:
    11
    讚:
    0
    回覆 8# mckwok

    新圖片.jpg
     
  10. 57145732

    edb-為求什麼
    Expand Collapse

    文章:
    401
    讚:
    0
    回覆 8# mckwok


    本人手上都沒有正式文件可以答到老師的問題,只能一個個試。
    一般來講都是 學生在該科的 Total score (即 所得分卷分數 x weight = 該 科目之總分), 分卷的總分應該是刻科目的總分而不是分卷的總分。
     
    #10 edb-為求什麼, 2012-11-20
  11. 55081241

    mckwok
    Expand Collapse

    文章:
    11
    讚:
    0
    回覆 10# edb-為求什麼

    [font=微軟雅黑]你好!謝謝你的幫忙,本人運用了Numbervar解決了總分的問題了.但仍有最後兩個問題:

    1. 現在憑之前的SQL能顯示各科的全級平均分,但平均分的平均分如何抽取(即中文科有全級平均分,英文科亦有全級平均分,學生在該學期的平均分亦希望有全級平均分),是否需要加入多一條SQL command? 或是加入formula便成?

    2. 另外,本人仍未找到解決(回覆#7,#8)的辦法,煩請指教.

    謝謝![/font]
     
  12. 57145732

    edb-為求什麼
    Expand Collapse

    文章:
    401
    讚:
    0
    回覆 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 (包括人力物力和時間) 會很高。
     
    #12 edb-為求什麼, 2012-11-26
  13. 57145732

    edb-為求什麼
    Expand Collapse

    文章:
    401
    讚:
    0
    回覆 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
    *******************************************************
     
    #13 edb-為求什麼, 2012-11-29
  14. 57145732

    edb-為求什麼
    Expand Collapse

    文章:
    401
    讚:
    0
    回覆 12# edb-為求什麼


    現附上以 ATA4 的 Class Level avg 中的 AVG 的 Sub-Report 和 Report Card P 作範例。
    瀏覽附件2011-11-30.zip
     
    #14 edb-為求什麼, 2012-11-30