一括処理部品集2‖zendosu.html                            玄関へ
 《 入試用:中学校別全中学校の度数分布表の作成 》

【内容】
  高校入試用の度数処理です。
 受検中学校単位で処理し、全受検校を一覧表にします。
  「男女別の度数処理をおこなう」を利用しています。

【用例】
 名札 度数一覧
   手続き実行 度数処理準備                        @
   ・・・・・・
   手続き実行 階級幅
   ・・・・・・
   繰り返し                                   A
    メニュー2 &連続,1,(16,55),#連結(&システム名,”中学校別度数一覧表の内容はどれですか?”) \
       ,"男・女・計,男子だけ,女子だけ,男女の計だけ,男・女,中 止,MAINMENUへ,終 了"
    条件 (&連続=<5) 繰り返し中止
    ・・・・・・
   繰り返し終了
   条件 (&連続=>1 .and &連続=<5) &TBL4=#連結(&DAPA,"TDSA",#STR(&連続),".TBL")
   ケース開始                                  B
    ケース (&連続<6 .and &POPK=1)
     確認 "度数を転記するための一覧表を作成します。しばらくお待ちください。"
     手続き実行 中学名列                        C
    ケース (&連続=>1 .and &連続=<5 .and &POPK=2 .and #FSIZE(&TBL4)=-1)
     確認 #連結(&システム名,"転記用の度数一覧表がありませんので作成します。")
     手続き実行 中学名列
   ケース終了
   手続き実行 受検校                             D
   手続き実行 度数連続処理                        E
   ・・・・・・
*////////////////////////////////*
 名札 度数連続処理                                E
   表
   &TBL4=#連結(&DAPA,"DS_B&G.TBL"),&TBL3=#連結(&DAPA,"DS_B&GB.TBL")
   ファイル複写 &TBL4,&TBL3                         F
   表  &TBL3,表番号=3
   編集表 &TBL3
   条件 (&連続=>1 .and &連続=<5) &TBL4=#連結(&DAPA,"TDSA",#STR(&連続),".TBL")
   表  &TBL4,表番号=4
   表  &入試N,表番号=1
   代入 &M="",&KEN=""
   &FLG2=1
   繰り返し &計数=1,&実校数
     &中学校=#対応文字列(&受検校,&計数),&M=&計数
     編集表 &入試N
     手続き実行 表初期化
     手続き実行 整列条件                           G
     ケース開始                                 H
      ケース (&合否=3)
       ケース開始
        ケース (&連続=2)
         検索条件登録 "性中学合否別",{[中学名]&中学校,[性]=1,[合否]<3,[合否]>=0}
        ケース (&連続=3)
         検索条件登録 "性中学合否別",{[中学名]&中学校,[性]=2,[合否]<3,[合否]>=0}
        ケース その他
         検索条件登録 "性中学合否別",{[中学名]&中学校,[合否]<3,[合否]>=0}
       ケース終了
      ケース (&合否<3)
       ケース開始
        ケース (&連続=2)
         検索条件登録 "性中学合否別",{[中学名]&中学校,[性]=1,[合否]&合否}
        ケース (&連続=3)
         検索条件登録 "性中学合否別",{[中学名]&中学校,[性]=2,[合否]&合否}
        ケース その他
         検索条件登録 "性中学合否別",{[中学名]&中学校,[合否]&合否}
       ケース終了
    ケース終了
    絞り込み 条件名="性中学合否別"
    &KEN=&選択件数
    条件 (&KEN=0) 代入 &中学校="   "
    ケース開始
     ケース (&KEN=0)
      ケース中止
     ケース (&KEN>0)
      編集表 &入試N
      手続き実行 男女度数処理                     I
      編集表 &TBL3
      手続き実行 男女度数処理2                     
      &中学男=#連結(&中学校,"男"),&中学女=#連結(&中学校,"女") \
      ,&中学計=#連結(&中学校,"計")
      項目属性変更 変更,3,{&中学男},変更,4,{&中学女},変更,5,{&中学計}  J
    ケース終了
    ケース開始
     ケース (&KEN>0 .and &FLG2=1)                   K
      条件 (&連続=1) 書き出し 表,"$DS_B&GB.TBL",*
      条件 (&連続=2) 書き出し 表,"$DS_B&GB.TBL",{[番号],[階級],&中学男}
      条件 (&連続=3) 書き出し 表,"$DS_B&GB.TBL",{[番号],[階級],&中学女}
      条件 (&連続=4) 書き出し 表,"$DS_B&GB.TBL",{[番号],[階級],&中学計}
      条件 (&連続=5) 書き出し 表,"$DS_B&GB.TBL",{[番号],[階級],&中学男,&中学女}
      編集表 &TBL4
      読み込み 表,"$DS_B&GB.TBL",*
      ファイル削除 "$DS_B&GB.TBL"
      &FLG2=2
    ケース終了
    ケース開始
     ケース (&KEN=0)
      ケース中止
     ケース (&KEN>0 .and &FLG2=2)
      編集表 &入試N
      編集表 &TBL4                             L
      条件 (&連続=1) 併合 &TBL3,置換,{[階級]照合[階級],&中学男 複写 &中学男 \
                     ,&中学女 複写 &中学女,&中学計 複写 &中学計}
      条件 (&連続=2) 併合 &TBL3,置換,{[階級]照合[階級],&中学男 複写 &中学男}
      条件 (&連続=3) 併合 &TBL3,置換,{[階級]照合[階級],&中学女 複写 &中学女}
      条件 (&連続=4) 併合 &TBL3,置換,{[階級]照合[階級],&中学計 複写 &中学計}
      条件 (&連続=5) 併合 &TBL3,置換,{[階級]照合[階級],&中学男 複写 &中学男,&中学女 複写 &中学女}
      絞り込み [番号]>0 
      併合 &TBL3,置換,{[階級]照合[階級],[総男] 加算 &中学男,[総女] 加算 &中学女,[総計] 加算 &中学計}
      置換 [総計]=#COND([総計]="",0,1,[総計])
      条件 (&連続=1 .or &連続=4 .or &連続=5) 置換 [累計]=#直前値([累計],0)+[総計]
      条件 (&連続=2) 置換 [累計]=#直前値([累計],0)+[総男]
      条件 (&連続=3) 置換 [累計]=#直前値([累計],0)+[総女]
      置換 [総計]=#COND([総計]=0,"",1,[総計]),[累計]=#COND([累計]=0,"",1,[累計]) \
          ,[総男]=#COND([総男]=0,"",1,[総男]),[総女]=#COND([総女]=0,"",1,[総女])
      絞り込み 補集合
      手続き実行 度数一覧表総合処理                 M
    ケース終了
    &KEN="",&選択件数=""
    編集表 &TBL3
    項目属性変更 変更,3,{男子},変更,4,{女子},変更,5,{合計}     J
    ・・・・・・
   繰り返し終了
   編集表 &TBL4
   &ガイド=#連結("データ=",&合格,"・",&対象者," 〈度数累計は最右項目です CTRL+F〉  終了:/Q")
   表示幅 ,列固定{[番号],[階級]}                     N
   表形式編集 ガイド=&ガイド,カーソル=→
 手続き終了
* +++++++++++++++++++++++++++++++++++ *
 名札 度数一覧表総合処理                         M
   ジャンプ 行番号=先頭
    行訂正 [総男]=&計総男,[総女]=&計総女,[総計]=[総男]+[総女]
   ジャンプ 行番号=+1
    行訂正 [総男]=&点計総男,[総女]=&点計総女,[総計]=[総男]+[総女]
   ジャンプ 行番号=+1
   行訂正 [総男]=#cond((&計総男=0 .or &点計総男=0),"",1,#四捨五入(&点計総男/&計総男,2)) \
      ,[総女]=#cond((&計総女=0 .or &点計総女=0),"",1,#四捨五入(&点計総女/&計総女,2)) \
      ,[総計]=#cond((&点計総男+&点計総女=0 .or &計総男+&計総女=0),"" \
      ,1,#四捨五入((&点計総男+&点計総女)/(&計総男+&計総女),2))
   ジャンプ 行番号=+1
    &総最高=#大(&高点総男,&高点総女)
    行訂正 [総男]=#COND(&高点総男=-1,"",1,&高点総男),[総女]=#COND(&高点総女=-1,"",1,&高点総女) \
         ,[総計]=#COND(&総最高=-1,"",1,&総最高)
   ジャンプ 行番号=+1
    &総最低=#小(&低点総男,&低点総女)
    行訂正 [総男]=#COND(&低点総男=999,"",1,&低点総男),[総女]=#COND(&低点総女=999,"",1,&低点総女) \
         ,[総計]=#COND(&総最低=999,"",1,&総最低)
   ジャンプ 行番号=+1
    行訂正 [総男]=&満総男,[総女]=&満総女,[総計]=[総男]+[総女]
   ジャンプ 行番号=+1
    行訂正 [総男]=&零総男,[総女]=&零総女,[総計]=[総男]+[総女]
    置換 [総計]=#COND([総計]=0,"",1,[総計]),[総男]=#COND([総男]=0,"",1,[総男]),[総女]=#COND([総女]=0,"",1,[総女])
   条件 (#選択状態<>0) 選択解除 *
 手続き終了
*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*
 名札 中学名列                                 C
   代入 &中学校="",&KEN="",&TC="",&選択件数=""
   代入 &TBL3=#連結(&DAPA,"TDSORGA.TBL")
   条件 (&連続=>1 .and &連続=<5) &TBL4=#連結(&DAPA,"TDSA",#STR(&連続),".TBL")
   ファイル複写 &TBL3,&TBL4
   表
   表  &TBL4,表番号=4
   表  &入試N,表番号=1
   並べ替え {[TC]昇順}
   絞り込み [TC]{>0}
   条件 (&選択件数<1) 確認 #連結(&システム名,"レコードがありません。作業を中止します。")
   条件 (&選択件数<1) 分岐 START
   絞り込み 単一化={[TC]}
   代入 &実校数=&選択件数
   ジャンプ 行番号=先頭
   繰り返し &計数=1,&実校数
     &先名=[中学名],&中学男=#連結(&先名,"男"),&中学女=#連結(&先名,"女") \
     ,&中学計=#連結(&先名,"計"),&TC=[TC]
    編集表 &TBL4
    条件 (&連続=1) 項目属性変更 追加,{&中学男,"数値",6,"右"} \
                 ,追加,{&中学女,"数値",6,"右"},追加,{&中学計,"数値",6,"右"}
    条件 (&連続=2) 項目属性変更 追加,{&中学男,"数値",6,"右"}
    条件 (&連続=3) 項目属性変更 追加,{&中学女,"数値",6,"右"}
    条件 (&連続=4) 項目属性変更 追加,{&中学計,"数値",6,"右"}
    条件 (&連続=5) 項目属性変更 追加,{&中学男,"数値",6,"右"},追加,{&中学女,"数値",6,"右"}
    編集表 &入試N
    ジャンプ 行番号=+1
   繰り返し終了
   ジャンプ 行番号=先頭
   編集表 &TBL4
   ジャンプ 行番号=先頭
   項目属性変更 追加,{"総男","数値",6,"右"},追加,{"総女","数値",6,"右"} \
             ,追加,{"総計","数値",6,"右"},追加,{"累計","数値",4,"右"}
   &表題名=#連結(#全角(#LAST(#STR(&年度),2)),"年度度数一覧表(",&合格,"・",&対象者,")")
   表題設定 表題文字列=&表題名
   並べ替え {[階級]辞書順}
   確認 #連結(&システム名,"中学校別度数処理記入一覧表(受け皿)が準備できました。")
   表形式編集 ガイド=#連結(&システム名,"いまから中学校別度数分布連続処理をおこないます。 終了:/Q")
   代入 &選択件数=""
 手続き終了
*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*
 名札 受検校                                  D
    代入 &受検校="",&KEN="",&選択件数=""
  表
  表  &入試N,表番号=1
  並べ替え {[TC]昇順}
  絞り込み [TC]{>0}
  絞り込み 単一化={[TC]}
   &実校数=&選択件数
  ジャンプ 行番号=先頭
  繰り返し &計数=1,&実校数
    &先名=[中学名]
    &受検校=#文字置換(&受検校,&計数,&先名)
    ジャンプ 行番号=+1
  繰り返し終了
  代入 &選択件数=""
 手続き終了
*////////////////////////////////* 

【解説】
 @ サブメニューの選択により変数(&SM他)値や対象項目などを設定します。
  〔例〕&項=#CASE(&SM,7,22,9,11,13,14,15,16,17,18,19,20,21,23,24,25,26,27)
    対象者の指定や階級幅の設定もおこないます。
 A 度数処理の内容を選択します。
 B 度数を転記するための一覧表ファイルを用意します。
 C ファイルは度数処理の内容別に用意します。
   内容により用意する項目が異なります。
   [TC](中学校コード)による単一化選択により、入試データ表に入力された
   (受検した)中学校だけからなる度数一覧表を用意できます。
   度数一覧表の右端に総計などの項目も用意します。
 D 受検した中学校名のリストを、連続処理のために、用意しておきます。
 E 受検した全中学校の度数処理を中学校毎におこないます。
 F 中学校単位の度数処理の受け皿として「男女別度数処理」に使用する度数表を
   利用しています。
 G 処理対象項目などでレコードを並べ替えます。
 H 指定された条件(中学校・性別・合否別他)により、レコードを絞り込みます。
 I 「男女別度数処理」をおこないます。(部品集2)
 J 中学校単位の度数表の項目名を該当中学校名のものに変更します。
   
(併合後に元の項目名に戻します。)
 K
 度数処理の内容により書き出す項目を変えます。
    先頭の中学校に限り、度数一覧表に中学校単位の度数表のデータを読み込みます。
 L 以後の中学校単位の度数データは度数一覧表に併合します。
   総計や累計も求めます。
 M 編中学校単位の人数合計〜0点人数を求め度数表に入力します。
    E(F〜M)により全受検中学校についての度数一覧表を作成します。
 N 作成した度数一覧表を一部列固定して表示します。

【参考】

 入試処理システムのサブメニュー コマンドボタンに割り付けた変数(&SM)により、項目番号などを
 決めています。14)K国語をクリックすると、&SM=14を返し、処理対象表の23番目の項目を対象にします。
 〔例〕&項=#CASE(&SM,7,22,9,11,13,14,15,16,17,18,19,20,21,23,24,25,26,27)


 対象者の指定                      階級幅の指定
   

 度数処理の内容の選択


 処理対象表の一部 (データはダミーです。以下同様)




 度数を転記するための一覧表ファイル


 度数表の一部 処理完了

                      END of FILE  玄関へ