‖一括処理部品集2‖mlkamoku.html 《戻る》 《玄関へ》
《 複数科目の度数一覧表を作る 》
【内容】
同一クラスについて各考査(科目)別に度数処理し、
一覧表を作成します。
度数は転置集計を使って求めます。
処理する科目数は任意で、順次一覧表の列を追加していきます。
クラス担任が使えます。
【用例】
名札 複数項度数
&MESS1=#連結(" 同一クラスの複数科目について度数処理をおこない"
\
,"\n度数一覧表を作成します。"
\
,"\n 対象表・項目は任意に設定できます。"
\
,"\n 階級幅は選択できますが各科目に共通になります。"
\
,"\n\n 対象表には項目[組]と[作業用]が必要です。"
\
,"\n\n 実行しますか?")
メッセージボックス #連結(&システム名,"複数科目の度数一覧表"),&MESS1,アイコン=?,ボタン=5,&選択
条件 (&選択=7) 分岐 START
表
名札 F指定5
手続き実行 ファイル指定 @
手続き実行 表初期化
代入 &KOUF=1
手続き実行 項目一覧
手続き実行 満点
手続き実行 階級幅設定
繰り返し
手続き実行 対象確認
メニュー2 &変更,1,(14,51),#連結(&システム名,"対象確認
よろしいか")\
,"は い,対象ファイルの変更,対象項目の変更,満点の変更,階級幅の変更,中止(MAINMENUへ)"
条件 (&変更=1) 繰り返し中止
条件 (&変更=2) 分岐 F指定5
条件 (&変更=3) 手続き実行 項目一覧
条件 (&変更=4) 手続き実行 満点
条件 (&変更=5) 手続き実行 階級幅設定
条件 (&変更=6) 分岐 START
繰り返し終了
手続き実行 組項目
A
繰り返し
キー入力 (15,51),プロンプト=#連結("度数処理するクラスを入力してください。"),\
モード=半角,上書き=する,初期値=&組,終了状態=&ESC,&組
メニュー2 &POP1,1,(14,51),#連結(”対象クラス:",#全角(#STR(&組)),"組
よろしいか?”)\
,"は い,訂正する,中止(MAINMENUへ)"
条件 (&POP1=1) 繰り返し中止
条件 (&POP1=3) 分岐 START
繰り返し終了
手続き実行 転置共通 B
手続き実行 書き出し表
C
書き出し 表,&書出表,{[作業用]6,[件数]6}
表 &書出表,表番号=3
項目属性変更2 変更,[件数],{&項目名A}
項目属性変更2 挿入,[作業用],{"階級","文字列",4}
置換 [階級]=#全角(#STR([作業用]))
ジャンプ 行番号=終端
行挿入 [階級]="人 数"
行挿入 [階級]="得点合計"
行挿入 [階級]="平均点"
行挿入 [階級]="最高点"
行挿入 [階級]="最低点"
手続き実行 平均等
繰り返し
D
メニュー2 &POP1,1,(14,51),#連結(&システム名,"他の科目の度数処理を続けますか?")
\
,"度数処理を続ける,処理完了です,中止(MAINMENUへ)"
条件 (&POP1=1) 手続き実行 度数継続
E
条件 (&POP1=2) 分岐 度数完了
F
条件 (&POP1=3) 分岐 START
繰り返し終了
手続き終了
*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
名札 転置共通 B
並べ替え {&項目名A 降順}
絞り込み &項目名A<>#未定義
絞り込み &組項目名A=&組
条件 (&選択件数<1) 確認 #連結(&システム名,"レコードがありません。作業を中止します。")
条件 (&選択件数<1) 分岐 START
項目集計 &項目名A
置換 [作業用]=#INT(#項目属性(&KOUA,0)/&階級幅)*&階級幅
表形式編集 /* トレースが確認できたらこの行の先頭に*を付けてください。
転置集計 {[作業用]},&組項目名A,[作業用],集計種別=件数,グループ値並べ替え=降順 \
,転置項目名並べ替え=昇順,表番号=2
手続き終了
*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
名札 平均等
ジャンプ 行番号=最終
行訂正 &項目名A=&最小値
ジャンプ 行番号=-1
行訂正 &項目名A=&最大値
ジャンプ 行番号=-1
行訂正 &項目名A=#四捨五入(&平均値,1)
ジャンプ 行番号=-1
行訂正 &項目名A=&合計値
ジャンプ 行番号=-1
行訂正 &項目名A=&有効件数
手続き終了
*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
名札 度数継続
E
代入 &KOUF=1
表
表 &TBL1,表番号=1
手続き実行 項目一覧
手続き実行 転置共通
表 &書出表,表番号=3
編集表 &書出表
項目属性変更2 追加,{&項目名A,"数値",6}
表形式編集 /* トレースが確認できたらこの行の先頭に*を付けてください。
併合 2,両方,{[作業用]照合[作業用],&項目名A
複写[件数]}
並べ替え {[作業用]降順}
手続き実行 平均等
手続き終了
*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
名札 度数完了
F
表
表 &書出表,表番号=3
並べ替え {[作業用]降順}
書き出し 表,"TENTI.TBL"
表
表 "TENTI.TBL"
絞り込み [作業用]>0
置換 [階級]=#全角(#STR([作業用]))
絞り込み解除
項目属性変更2 削除,[作業用]
書き出し 表,&書出表
表
表 &書出表
表形式編集 ガイド="度数一覧表です。印刷条件を設定して(/3L)印刷してください。終了:/Q"
分岐 START
手続き終了
【解説】
@ 手続き実行の「ファイル指定」では、対象ファイルを選びます。
同じく「項目一覧」では、対象項目を選びます。
同じく「満点」では、対象項目の満点を入力します。
同じく「階級幅設定」では、階級幅(刻み)を設定します。
ここでは省略していますが、部品集2の14,12,13などを参照してください。
A 部品集2の14「名札 組項目」を参照してください。
手続き実行の「組項目」では、対象ファイルの項目をメニューとして表示し度数処理する
グループの項目(普通は[組])を選びます。
[作業用]とグループ項目を使って並べ替えます。
グループ項目を[作業用](縦の集計条件)、転置項目を[組](横の集計条件)にして
件数を求めます。これで組別に各階級の件数(度数分布)が得られます。
B 対象項目(科目)を使って降順に並べ替えます。
対象レコードを絞り込みます。
対象項目の項目集計をとっておきます。
次の前処理をします。
度数処理対象表の対象項目の値を階級幅に応じて前処理をして[作業用]の
項目に入れます。階級幅が5点なら、素点93点は90点に、素点49点は45点
になります。
転置集計により度数処理をおこないます。
C 部品集2の14「名札 書き出し表」を参照してください。
作成された転置表(度数分布表)をファイル名を付けて一旦書き出します。
書き出す項目は[作業用],[件数]です。
書き出した表を使って、以下の加工をおこないます。
・度数表の科目名などがわかるように項目名を変更したり項目を挿入します。
・文字型として挿入した[階級]に階級値を入力します。
・文字型として挿入した[階級]を使って平均点などを入力する行を挿入し
項目集計値を入力します。
D 1科目づつ処理します。処理した科目順に度数一覧表の右に列が追加
されます。
E 他の科目の度数処理を継続する場合。
・あらためて対象科目を指定します。
・Bの実行。
・処理する科目名の項目を度数一覧表に追加する。
・転置集計表で度数一覧表にデータを併合入力する。
・追加処理した科目の平均等も入力する。
F 予定科目の度数処理が終了した場合。
・度数一覧表を[作業用](階級値を表している)で降順に並べ替え、
一旦中間ファイルとして書き出します。
この処理は、2科目め以降にあたらしい階級値が生じたときに度数一覧表の
最下行(最低点の下)にそれらが挿入されるので、それを修正するためです。)
・中間ファイルを最終加工し、元のファイル名を使って度数一覧表を書き出します。
(注)桐v8sp5を使用する以前のものです。
【参考】
製品案内のページから「教務部補佐」、メニューの5)で処理画面が見れます。