情報処理の魅力・威力(41)
dBASEVPLUSの威力・魅力とその限界
編集用の入力フォーマット
コード番号:
人 物 名:
生 誕 地:
討入り義士:
男性・女性:
生    年:
没    年:
没 年 齢:
参考資料(1)
 参考資料(1)は、編集用の入力フォーマットです。

USE GISI INDEX MEIBO
SET FORMAT TO F_GISI
APPEND
@1,6 SAY "コード番号:" GET CODE
@2,6 SAY "人 物 名:"
@2,17 GET NAME
@3,6 SAY "生 誕 地:"
@3,17 GET ADD
@4,6 SAY "討入り義士:"
@4,17 GET GISI
@5,6 SAY "男性・女性:"
@5,17 GET M_W
@6,6 SAY "生   年:"
@6,17 GET BIRTH
@7,6 SAY "没   年:"
@7,17 GET DETH
@8,6 SAY "没 年 齢:"
@8,17 GET AGE
参考資料(2)
 参考資料(2)は、参考資料(1)を実行するためのdBASEVPLUSのプログラムです。
(1)このプログラムは、分りやすくするために、大幅に省略しています。以下同じです。
(2)「USE GISI INDEX MEIBO」は、インデックス付きのGISI.DBFを使用するという意味です。
(3)「SET FORMAT TO F_GISI」は、入力フォーマットをF_GISIとして保存するという意味です。
(4)「APPEND」は、日本語や半角英数で文字入力するコマンドです。
(5)「@1,6 SAY "コード番号:"」は 、1行目6列目に「コード番号:」と表示するという意味です。以下同じ。
(6)「GET CODE」の「GET」は、コード番号を入力するという意味です。
(7)コード番号を入力すると、それに対応する人物名や生誕地などが自動的に表示されます。

コード番号を入力すると、それに関連するデータが表示
コード番号: 006
人 物 名: 浅野長矩
生 誕 地: 江戸
討入り義士:  
男性・女性:
生    年: 1667
没    年: 1701
没 年 齢: 35
参考資料(3)
 参考資料(3)は、コード番号を入力すると、それに関連するデータが表示されます。

レコード CODE NAME ADD GISI M_W BIRTH DETH AGE
4 004 瑶泉院 江戸   W 1674 1714 41
5 005 吉良上野介 江戸   M 1641 1702 62
6 006 浅野長矩 江戸   M 1667 1701 35
参考資料(4)
 参考資料(4)は、参考資料(3)を実行するためのdBASEVPLUSのデータです。
(1)「CODE」の「006」には、浅野長矩、江戸などのデータが入っています。
(2)「コード番号:」の後の空欄に「006」と入力すると、「006」に関するデータが表示されるようになっています。

構造(STRUCTURE)
番号 フィールド 型式
1 CODE 数値型 3
2 NAME 文字型 20
3 ADD 文字型 6
4 GISI 論理型 1
5 M_W 論理型 1
6 BIRTH 文字型 8
7 DETH 文字型 8
8 AGE 文字型 4
参考資料(5)
 参考資料(5)は、GISI.DBFの構造(STRUCTURE)。

USE GISI INDEX MEIBO
LIST STRUCTURE
参考資料(6)
 参考資料(6)は、参考資料(5)を実行するためのdBASEVPLUSのプログラムです。
(1)「USE GISI INDEX MEIBO」は、インデックス付きのGISI.DBFを使用するという意味です。
(2)「LIST STRUCTURE」とは、構造(STRUCTURE)をLIST(表示)するという意味です。
(3)数値型は、0〜9を入力します。
(4)文字型は、日本語で入力します。
(5)論理型は、二者択一を入力します。

dBASEVPLUSファイル設計用紙
dBASEVPLUSファイル設計用紙
1.ファイル名:().DBF
2.ファイル内容:
3.作成者:
4.日付:
No フィールド名 型式 小数 項目名 内 容
1
2            
3            
参考資料(7)
 参考資料(7)は、dBASEVPLUSファイル設計用紙です。
(1)誰にでも使ってもらう(汎用性)ために、ファイル設計用紙を共有化がすることが大切です。

人物忠臣蔵の基本データ
レコード CODE NAME ADD GISI M_W BIRTH DETH AGE
1 001 大石内蔵助 赤穂 * M 1659 1703 45
2 002 大石主税 赤穂 * M 1688 1703 16
3 003 浅野長直 笠間   M 1610 1672 63
4 004 瑶泉院 江戸   W 1674 1714 41
5 005 吉良上野介 江戸   M 1641 1702 62
6 006 浅野長矩 江戸   M 1667 1701 35
7 007 大石りく 豊岡   W 1669 1736 68
8 008 神崎与五郎 相生 * M 1666 1703 32
9 009 大高源五 赤穂 * M 1672 1703 31
10 010 堀部安兵衛 新発田 * M 1670 1703 33
11 011 堀部弥兵衛 江戸 * M 1627 1703 76
12 012 間 喜兵衛 赤穂 * M 1635 1703 68
13 013 吉田忠左衛門 笠間 * M 1641 1703 63
713 713 脇坂淡路守 江戸   M 1658 1722 65
参考資料(8)
 写真(8)は、人物忠臣蔵の基本データです。
(1)データに汎用性を持たせるには、非常に厳しい条件があります。
(2)非常に厳しい条件をクリアーしたデータは、誰が使っても、自由にコントロールできます。

dBASEVPLUSは最高!!、しかし習得は超難度
(1)dBASEVPLUSを習得している人は、理数系のしかも若い先生です。
(2)私は40代後半の文系です。分らないと、何度も、聞きまくるとの、とうとう頭にきた数学の若い先生から「教科や先生の年齢にあったことをしてください。dBASEVPLUSは私らに任せて下さい」と言われてしまった。
(3)そこからが、私の独学が始りました。本当に分らない高難度の内容のみを厳選して聞くと、数学の若い先生は「こりゃ、かなわん」と思ったのか、親切に教えてくれました。
(4)Y.Iwasaki氏は、京大数学科を卒業した兵庫県でdBASEVPLUSナンバーワンの先生です。
(5)T.Kobayashi氏は、Y.Iwasaki氏に師事し、西播ではナンバーワンの先生です。
(6)K.Arimasaは、私のことです。分らないこと(難度)は、T.Kobayashi氏に何度もお聞きしました。ウインドウズ時代になっても、退職の2002年まで、MS-DOS上で、頑張って威力を発揮しました。
(7)以下三代にわたって継承されたプログラムをご覧下さい。誰にでも出来るものではありません

三代にわたって継承されたプログラム
*******************************************************
* タイトル:追跡調査資料作成(推薦のみ)     *
* ファイル名:B:SUISEN.PRG *
* Copyright 1988.2. By Y.Iwasaki *
* Arranged 1989.3.13 By T.Kobayashi *
* ReArranged 1997.2.18 By K.Arimasa *
*******************************************************
SET CURSOR ON

S_KOKUS="1005"
S_KOKUE="1495"
S_KOUS="2005"
S_KOUE="2345"
S_JUNDAIS="4001"
S_JUNDAIE="4976"
S_SIRITUS="3001"
S_SIRITUE="3978"
S_KOKUTANS="5001"
S_KOKUTANE="5967"
S_SITANS="6001"
S_SITANE="6979"
S_KAKUSHUS="A001"
S_KAKUSHUE="Z999"
S_KIGYOS="$AAA"
S_KIGYOE="$ZZZ"

CODES1=S_KOKUS
CODEE1=S_KOKUE
CODES2=S_KOUS
CODEE2=S_KOUE
CODES3=S_JUNDAIS
CODEE3=S_JUNDAIE
CODES4=S_SIRITUS
CODEE4=S_SIRITUE
CODES5=S_KOKUTANS
CODEE5=S_KOKUTANE
CODES6=S_SITANS
CODEE6=S_SITANE
CODES7=S_KAKUSHUS
CODEE7=S_KAKUSHUE
CODES8=S_KIGYOS
CODEE8=S_KIGYOE

SELECT 1
USE NYUSI1 INDEX CODE1

SELECT 2
USE NYUSI3 INDEX CODE3
S_DATE2=LUPDATE()
HIZUKE2=STR(YEAR(S_DATE2),4)+"年"+STR(MONTH(S_DATE2),2)+"月"+STR(DAY(S_DATE2),2)+"日"

SELECT 3
USE NYUSI4 INDEX SCODE4,CODE4
S_DATE=LUPDATE()
HIZUKE=STR(YEAR(S_DATE),4)+"年"+STR(MONTH(S_DATE),2)+"月"+STR(DAY(S_DATE),2)+"日"

CLEAR
SET COLOR TO BI
@ 2,0 SAY SPACE(80)
SET COLOR TO GR
@ 2,30 SAY " 追跡調査資料整理 "
SET COLOR TO W
@ 5,15 SAY "前回の処理は に行いました。"
@ 8,15 SAY "受験校の最新の更新は に行われました。"
SET COLOR TO GR
@ 5,29 SAY HIZUKE
@ 8,36 SAY HIZUKE2
SET COLOR TO W
SET COLOR TO GR
IF S_DATE-S_DATE2>=0
@ 11,15 SAY "再処理の必要は、多分ありません。しかし、処理をした後、"
@ 14,15 SAY "同じ日に受験校を更新した場合は、再処理が必要です。"
ELSE
@ 11,15 SAY "再処理が必要です!!"
@ 14,15 SAY "再処理には10分以上かかります。"
ENDIF

SET COLOR TO W
@ 18,15 SAY "資料整理を行いますか (Y/N)→"
SET COLOR TO BI
@ 21,0 SAY SPACE(80)
SET COLOR TO W
YNO="N"
@ 18,57 GET YNO
READ
IF YNO="Y" .OR. YNO="y"
SELECT 1
GOTO TOP
SELECT 2
GOTO TOP
SET RELATION TO CODE INTO A
CLEAR
SET COLOR TO BI
@ 4,0 SAY SPACE(80)
@ 10 ,0 SAY SPACE(80)
SET COLOR TO GR
@ 6,5 SAY " "
SET COLOR TO W
ACCEPT " 何番からはじめますか(0101と入力して下さい)" TO NUMBER
CLEAR
SET COLOR TO BI
@ 4, 0 say " "
@ 4,54 say " "
@ 20, 0 say " "
SET COLOR TO GR
@ 4,23 say "進路の手引の原稿作成プログラム"
SET COLOR TO R*
@ 8,33 say "実行中"
SET COLOR TO GR
@ 12,20 say "現在処理中の生徒コード →[ ]"
SET COLOR TO W
@ 16,13 say "10分程度かかります.暇な人はこのままお待ち下さい."
@ 17,13 SAY " 途中で止めたいときは、ESCキーを押してください。"

***********************[整理してNYUSI4.DBFを作成]***************************

SELECT 3
SET SAFETY OFF
DELETE ALL FOR CODE>=NUMBER
PACK
SET SAFETY ON
SELECT 2
KUMI=VAL(SUBSTR(NUMBER,1,2))
BAN=VAL(SUBSTR(NUMBER,3,2))
KAISI=50*(KUMI-1)+BAN
GOTO KAISI
SET CURSOR OFF
DO WHILE .NOT. EOF()
@ 12,48 SAY CODE
N=1
DO WHILE N<=19
NN=IIF(N<10,STR(N,1),STR(N,2))
M_SCODE=SCODE&NN
IF SCODE&NN=" "
N=N+1
EXIT
ENDIF
M_CODE=CODE
M_NAME=NAME
M_SC=SC&NN
M_KT=KT&NN
M_GH=GH&NN
M_NY=NY&NN
M_SUI=SUI&NN
SELECT 1
M_CYUGAKU=CYUGAKU
M_J=A->HJ
M_M=A->HM
M_E=A->HE
M_S=A->HS
M_R=A->HR
M_A=A->HA
M_B=A->HB
M_C=A->HC
M_D=A->HD
M_HYOU=A->HYOU
M_KYOU=A->KYOUT
SELECT 3
APPEND BLANK
REPLACE CODE WITH M_CODE,NAME WITH M_NAME,CYUGAKU WITH M_CYUGAKU
REPLACE SCODE WITH M_SCODE,SC WITH M_SC
REPLACE KT WITH M_KT,GH WITH M_GH,NY WITH M_NY
REPLACE SUI WITH M_SUI,J WITH M_J,M WITH M_M,E WITH M_E
REPLACE S WITH M_S,R WITH M_R,A WITH M_A,B WITH M_B,C WITH M_C
REPLACE D WITH M_D,HYOU WITH M_HYOU,KYOU WITH M_KYOU
SELECT 2
SET ESCAPE ON
N=N+1
ENDDO
SKIP
ENDDO
SELECT 3
REINDEX
CLOSE DATABASES
CLOSE INDEX
SET CURSOR ON

********************[合格者数の計算・NYUSI5.DBFの作成]*************************

SELECT 1
USE NYUSI4 INDEX SCODE4
REPLACE ALL GOUHI WITH "1" FOR GH="◎"
REPLACE ALL GOUHI WITH "1" FOR GH="○"
REPLACE ALL SEX WITH "1" FOR NY="ス"
REPLACE ALL SEX WITH "1" FOR NY="シス"
SET FILTER TO GOUHI="1" .AND. SEX="1"

SELECT 2
USE NYUSI5
SET SAFETY OFF
ZAP
SET SAFETY ON

SELECT 3
USE NAME INDEX CODEN

SELECT 1
GOTO TOP
M_SCODE=SCODE
M_SC=SC
OTOKO=0
ONNA =0
ROUM =0
ROUF =0
DO WHILE .NOT. EOF()
M_CODE=CODE
SELECT 3
SEEK M_CODE
DO CASE
CASE SEX="男"
OTOKO=OTOKO+1
CASE SEX="女"
ONNA =ONNA+1
ENDCASE
IF CODE>="2001"
DO CASE
CASE SEX="男"
ROUM=ROUM+1
CASE SEX="女"
ROUF=ROUF+1
ENDCASE
ENDIF
SELECT 1
SKIP
IF SUBSTR(SCODE,1,4)<>SUBSTR(M_SCODE,1,4)
SELECT 2
APPEND BLANK
REPLACE SCODE WITH M_SCODE,SC WITH M_SC
REPLACE MALE WITH OTOKO
REPLACE FEMALE WITH ONNA,RONINM WITH ROUM,RONINF WITH ROUF
REPLACE TOTAL WITH OTOKO+ONNA
OTOKO=0
ONNA =0
ROUM =0
ROUF =0
M_SC=A->SC
M_SCODE=A->SCODE
SELECT 1
ENDIF
ENDDO
CLOSE DATABASES
CLOSE INDEX

ENDIF

*************************[処理選択プログラム画面]******************************

SELECT 1
USE NYUSI1 INDEX CODE1
SELECT 2
USE NYUSI3 INDEX CODE3
SELECT 3
USE NYUSI4 INDEX SCODE4,CODE4
S_DATE=LUPDATE()
HIZUKE=STR(YEAR(S_DATE),4)+"年"+STR(MONTH(S_DATE),2)+"月"+STR(DAY(S_DATE),2)+"日"
SELECT 3
CLEAR
SET CURSOR ON
SET COLOR TO BI
@ 1,0 SAY SPACE(80)
SET COLOR TO R
@ 1,30 SAY " 追跡調査資料作成 "
SET COLOR TO GR
@ 3,5 SAY "出力文書の選択 →"
SET COLOR TO GB
@ 4,5 SAY "8を入力して下さい"
SET COLOR TO GR
@ 14,5 SAY "出力先 →"
SET COLOR TO GB
@ 15,5 SAY "2を入力して下さい"
SET COLOR TO BI
@ 21,0 SAY SPACE(80)
SET COLOR TO GR
DO WHILE .T.
SET COLOR TO W
* @ 5,15 SAY "1:  進路の手引原稿"
* @ 7,15 SAY "2:  大学別受験結果一覧"
* @ 9,15 SAY "3:  合格者一覧"
* @ 11,15 SAY "4:  入学校一覧"
* @ 13,15 SAY "5:  クラス別受験結果一覧"
* @ 15,15 SAY "6:  推薦入試結果一覧"
* @ 5,42 SAY "7:  指定校推薦結果一覧"
@ 6,5 SAY "8:  推薦合格者人数集計"
* @ 9,42 SAY "9:  クラス別合格者一覧"
* @ 11,42 SAY "A:  追跡調査資料(進研コード付)"
* @ 13,42 SAY "B:  出身中学別進路先一覧"
* @ 15,42 SAY "C:  クラス別入学校一覧"
@ 6,40 SAY "E:  終わり"
@ 17,5 SAY "2:  ファイル "
SET COLOR TO R
@ 21,25 SAY " 項目を設定して下さい "
SET COLOR TO W
BUNSHO =" "
SAKI =" "
@ 3,32 GET BUNSHO
READ
SET COLOR TO GRI*
DO CASE
CASE BUNSHO="1"
* @ 5,15 SAY "1:  進路の手引原稿"
CASE BUNSHO="2"
* @ 7,15 SAY "2:  大学別受験結果一覧"
CASE BUNSHO="3"
* @ 9,15 SAY "3:  合格者一覧"
CASE BUNSHO="4"
* @ 11,15 SAY "4:  入学校一覧"
CASE BUNSHO="5"
* @ 13,15 SAY "5:  クラス別受験結果一覧"
CASE BUNSHO="6"
* @ 15,15 SAY "6:  推薦入試結果一覧"
CASE BUNSHO="7"
* @ 5,42 SAY "7:  指定校推薦結果一覧"
CASE BUNSHO="8"
@ 6,5 SAY "8:  推薦合格者人数集計"
CASE BUNSHO="9"
* @ 9,42 SAY "9:  クラス別合格者一覧"
CASE UPPER(BUNSHO)="A"
* @ 11,42 SAY "A:  追跡調査資料(進研コード付)"
CASE UPPER(BUNSHO)="B"
* @ 13,42 SAY "B:  出身中学別進路先一覧"
CASE UPPER(BUNSHO)="C"
* @ 15,42 SAY "C:  クラス別入学校一覧"
ENDCASE
SET COLOR TO W
IF BUNSHO="E"
RETURN TO MASTER
ENDIF
@ 14,21 GET SAKI
READ
SET COLOR TO GRI*
DO CASE
CASE SAKI="1"
* @ 19,15 SAY "1: プリンター"
SET COLOR TO
CASE SAKI="2"
* SET COLOR TO
@ 17,5 SAY "2: ファイル (ドライブE:にフロッピーを入れて下さい。一太郎へ転送します。)"
FILE="E:SUISEN.JXW "
SET COLOR TO R
@ 18,10 SAY "E:にフロッピーを入れたのを確認して、リタンキーを押して下さい"
SET COLOR TO W
@ 19,46 GET FILE
READ
SET COLOR TO GB
@ 20,15 SAY "そのままリタンキーを押して下さい"
ENDCASE
SET COLOR TO GR
@ 21,25 SAY " これでいいですか (Y/N)  "
SET COLOR TO W
YNO="Y"
@ 21,48 GET YNO
READ
IF YNO="Y" .OR. YNO="y"
EXIT
ENDIF
ENDDO
SET COLOR TO R*
@ 21,25 SAY "     実行中      "
SET CONSOLE OFF
SET COLOR TO GRI*
DAIGAKU1="国立大学 "
DAIGAKU2="公立大学 "
DAIGAKU3="国立準大学 "
DAIGAKU4="私立大学 "
DAIGAKU5="国公立短期大学"
DAIGAKU6="私立短期大学 "
DAIGAKU7="各種・専門学校"
DAIGAKU8="就職     "
DO CASE
CASE BUNSHO="1"
JOUKEN="(CODE<'2000')"
SET ORDER TO 1
NAGASA=59
HYOUDAI= " "+CHR(14)+"進路の手引原稿"+CHR(15)+" ("+HIZUKE+"現在"+") 兵庫県立●●高等学校進路指導部 "
MIDASI ="大学名 学部 学科      合否 型 推 備考 評定 センター 国  数  英  社  理 5教科 4教科 3教科 2教科"
KOUMOKU="M_SC+' '+GH+' '+KT+' '+NY+' '+SUI+' '+M_HYOU+' '+M_KYOU+' '+M_J+' '+M_M+' '+M_E+' '+M_S+' '+M_R+' '+M_A+' '+M_B+' '+M_C+' '+M_D"
CASE BUNSHO="2"
SET ORDER TO 1
JOUKEN=""
NAGASA=71
HYOUDAI=" "+CHR(14)+"受験結果一覧"+CHR(15)+" ("+HIZUKE+"現在"+") 兵庫県立●●高等学校進路指導部 "
MIDASI ="大学名 学部 学科    生徒番号 氏   名    合否 型 推 備考 評定 センター 国  数  英  社  理 5教科 4教科 3教科 2教科"
KOUMOKU="M_SC+' '+'('+CODE+')'+' '+NAME+ROUCHECK+' '+GH+' '+KT+' '+NY+' '+SUI+' '+M_HYOU+' '+M_KYOU+' '+M_J+' '+M_M+' '+M_E+' '+M_S+' '+M_R+' '+M_A+'  '+M_B+' '+M_C+' '+M_D"
CASE BUNSHO="3"
SET ORDER TO 1
JOUKEN="(GH='◎' .OR. GH='○' .OR. GH='ホO')"
NAGASA=31
HYOUDAI="合格者一覧 ("+HIZUKE+"現在"+") "
MIDASI ="大学名 学部 学科    氏   名    合否 推"
KOUMOKU="M_SC+' '+NAME+ROUCHECK+' '+GH+' '+NY"
CASE BUNSHO="4"
SET ORDER TO 1
JOUKEN="(GH='◎')"
NAGASA=27
HYOUDAI="進路先決定者一覧 ("+HIZUKE+"現在"+") "
MIDASI ="大学名 学部 学科    氏   名"
KOUMOKU="M_SC+' '+NAME+ROUCHECK"
CASE UPPER(BUNSHO)="C"
SET ORDER TO 2
JOUKEN="(GH='◎')"
NAGASA=24
HYOUDAI="クラス順進路先決定者一覧 ("+HIZUKE+"現在"+") "
MIDASI ="大学名 学部 学科    組番 氏 名"
KOUMOKU="M_SC+' '+'('+CODE+')'+' '+NAME+ROUCHECK"
CASE BUNSHO="5"
SET ORDER TO 2
JOUKEN=""
NAGASA=71
HYOUDAI="  クラス別受験結果一覧 ("+HIZUKE+"現在"+") 兵庫県立●●高等学校進路指導部 "
MIDASI =" 番号 氏   名    大学名 学部 学科     合否 型 推 備考 評定 センター 国  数  英  社  理 5教科 4教科 3教科 2教科"
KOUMOKU="M_CODE+' '+M_NAME+ROUCHECK+' '+SC+' '+GH+' '+KT+' '+NY+' '+SUI+' '+M_SEISEKI"
CASE BUNSHO="6"
SET ORDER TO 1
JOUKEN="(NY='ス' .OR. NY='シス')"
NAGASA=71
HYOUDAI=" 推薦入試結果一覧 ("+HIZUKE+"現在"+") 兵庫県立●●高等学校進路指導部 "
MIDASI ="大学名 学部 学科    生徒番号 氏   名    合否 型 推 備考 評定 センター 国  数  英  社  理 5教科 4教科 3教科 2教科"
KOUMOKU="M_SC+' '+'('+CODE+')'+' '+NAME+' '+GH+' '+KT+' '+NY+' '+SUI+' '+M_HYOU+' '+M_KYOU+' '+M_J+' '+M_M+' '+M_E+' '+M_S+' '+M_R+' '+M_A+'  '+M_B+' '+M_C+' '+M_D"
CASE BUNSHO="7"
SET ORDER TO 1
JOUKEN="(NY='シス')"
NAGASA=71
HYOUDAI=" 指定校推薦入試結果一覧 ("+HIZUKE+"現在"+") 兵庫県立●●高等学校進路指導部 "
MIDASI ="大学名 学部 学科    生徒番号 氏  名    合否 型 推 備考 評定 センター 国  数  英  社  理 5教科 4教科 3教科 2教科"
KOUMOKU="M_SC+' '+'('+CODE+')'+' '+NAME+' '+GH+' '+KT+' '+NY+' '+SUI+' '+M_HYOU+' '+M_KYOU+' '+M_J+' '+M_M+' '+M_E+' '+M_S+' '+M_R+' '+M_A+'  '+M_B+' '+M_C+' '+M_D"
CASE UPPER(BUNSHO)="A"
SET ORDER TO 2
JOUKEN=""
NAGASA=50
HYOUDAI="  追跡調査資料(進研コード付) ("+HIZUKE+"現在"+") 兵庫県立●●高等学校進路指導部 "
MIDASI =" 番号 氏  名      コード  大学名 学部 学科     合否 型 推 備考 評定 センター"
KOUMOKU="M_CODE+' '+M_NAME+ROUCHECK+' ['+SCODE+']'+SC+' '+GH+' '+KT+' '+NY+' '+SUI+' '+M_HYOU+' '+M_KYOU"
CASE BUNSHO="9"
SET ORDER TO 2
JOUKEN="(GH='◎' .OR. GH='○' .OR. GH='ホO')"
NAGASA=34
HYOUDAI="出席番号順合格者一覧 ("+HIZUKE+"現在"+") "
MIDASI =" 番号 氏   名    大学名 学部 学科     合否 推"
KOUMOKU="M_CODE+' '+M_NAME+ROUCHECK+' '+SC+' '+GH+' '+NY"
CASE BUNSHO="8"
IF SAKI="1"
SET PRINT ON
ELSE
SET ALTERNATE TO &FILE
SET ALTERNATE ON
ENDIF
USE NYUSI5
GOTO TOP
PAGE=1
LINE=0
? "合格者数一覧 ("+HIZUKE+"現在"+") NO."+STR(PAGE,2)
?
N=1
DO WHILE N<=8
M=STR(N,1)
SET FILTER TO SCODE>=CODES&M .AND. SCODE<=CODEE&M
SUM MALE TO S_MALE
SUM RONINM TO S_RONINM
SUM FEMALE TO S_FEMALE
SUM RONINF TO S_RONINF
SUM TOTAL TO S_TOTAL
IF S_TOTAL=0
? CHR(14)+"<"+RTRIM(DAIGAKU&M)+">"+CHR(15)
?
?
LINE=LINE+3
IF LINE>=53
IF SAKI="1"
EJECT
ELSE
?
?
?
?
?
ENDIF
LINE=2
PAGE=PAGE+1
? "合格者数一覧 ("+HIZUKE+"現在"+") NO."+STR(PAGE,2)
?
ENDIF
N=N+1
LOOP
ENDIF
GOTO TOP
? CHR(14)+"<"+RTRIM(DAIGAKU&M)+">"+CHR(15)
?
? "大学名 男 女 計"
? REPLICATE(" ",23)
LINE=LINE+4
DO WHILE .NOT. EOF()
IF LINE <53
? SUBSTR(SC,1,14)+" "+STR(MALE,3)+" "+IIF(RONINM=0," ","("+STR(RONINM,2)+")")+" "+STR(FEMALE,3)+" "+IIF(RONINF=0," ","("+STR(RONINF,2)+")")+" "+STR(TOTAL,2)+IIF(RONINM+RONINF=0," "," ("+STR(RONINM+RONINF,2)+")")
SKIP
LINE=LINE+1
ELSE
IF SAKI="1"
EJECT
ELSE
?
?
?
?
?
ENDIF
LINE=2
PAGE=PAGE+1
? "合格者数一覧 ("+HIZUKE+"現在"+") NO."+STR(PAGE,2)
?
? "大学名 男 女 計"
? REPLICATE(" ",23)
ENDIF
ENDDO
? REPLICATE(" ",23)
? DAIGAKU&M+"計 "+STR(S_MALE,3)+" "+IIF(S_RONINM=0," ","("+STR(S_RONINM,2)+")")+" "+STR(S_FEMALE,3)+" "+IIF(S_RONINF=0," ","("+STR(S_RONINF,2)+")")+" "+STR(S_TOTAL,3)+IIF(S_RONINM+S_RONINF=0," "," ("+STR(S_RONINM+S_RONINF,2)+")")
?
?
N=N+1
LINE=LINE+4
ENDDO

IF SAKI="1"
EJECT
SET PRINT OFF
ELSE
SET ALTERNATE OFF
ENDIF
SET COLOR TO
RETURN TO MASTER
CASE UPPER(BUNSHO)="B"
IF SAKI="1"
SET PRINT ON
ELSE
SET ALTERNATE TO &FILE
SET ALTERNATE ON
ENDIF
USE NYUSI4 INDEX SCODE4
PAGE=1
LINE=0
? "出身中学別進学先一覧 ("+HIZUKE+"現在"+") NO."+STR(PAGE,2)
?
LINE=LINE+2
N=1
DO WHILE N<=14
M=LTRIM(STR(N,2))
SET FILTER TO CYUGAKU=N .AND. GH="◎"
?
? CHR(14)+"<"+RTRIM(S_CYUGAK&M)+">"+CHR(15)
?
? "大学名    学部  学科      氏 名"
? REPLICATE ("",25)
LINE=LINE+4
GOTO TOP
DO WHILE .NOT. EOF()
IF LINE<53
ROUCHECK=IIF(CODE>="2001","*"," ")
? SC+' '+NAME+ROUCHECK
SKIP
LINE=LINE+1
ELSE
IF SAKI="1"
EJECT
ELSE
?
?
?
?
?
ENDIF
LINE=2
PAGE=PAGE+1
? "出身中学別進学先一覧 ("+HIZUKE+"現在"+") NO."+STR(PAGE,2)
?
? "大学名    学部  学科      氏 名"
? REPLICATE ("",25)
ENDIF
ENDDO
N=N+1
ENDDO
IF SAKI="1"
EJECT
SET PRINT OFF
ELSE
SET ALTERNATE OFF
ENDIF
RETURN TO MASTER
ENDCASE


SET COLOR TO W
GOTO TOP
IF SAKI="1"
SET PRINT ON
ELSE
SET ALTERNATE TO &FILE
SET ALTERNATE ON
ENDIF
LINE=0
MAE_S=" "
MAE_N=" "
PAGE=1
? HYOUDAI+"NO. "+STR(PAGE,2)
?
N=1
IF (BUNSHO>="1" .AND. BUNSHO<="4").OR. BUNSHO="6"
JOUKEN1=JOUKEN
DO WHILE N<=7
M=STR(N,1)
JOUKEN=JOUKEN1+" "+IIF(LEN(JOUKEN1)=0,"",".AND.")+" (SCODE>=CODES&M .AND. SCODE<=CODEE&M)"
? CHR(14)+"<"+RTRIM(DAIGAKU&M)+">"+CHR(15)
?
LINE=LINE+2
IF LINE>=54
IF SAKI="1"
EJECT
ELSE
?
?
?
?
?
ENDIF
LINE=2
PAGE=PAGE+1
? HYOUDAI+"NO. "+STR(PAGE,2)
?
ENDIF
ENDIF
SET FILTER TO &JOUKEN
GOTO TOP
IF LEN(JOUKEN)<>0
LOCATE FOR &JOUKEN
ENDIF
IF .NOT. EOF()
? MIDASI
? REPLICATE(" ",NAGASA)
LINE=LINE+2
ENDIF
DO WHILE .NOT. EOF()
M_SC=IIF(SC=MAE_S,SPACE(14),SC)
M_HYOU=IIF(HYOU=0," - ",STR(HYOU,3,1))
M_KYOU=IIF(KYOU=0," - ",STR(KYOU,3))
M_J=IIF(J=0," -- ",STR(J,4,1))
M_M=IIF(M=0," -- ",STR(M,4,1))
M_E=IIF(E=0," -- ",STR(E,4,1))
M_S=IIF(S=0," -- ",STR(S,4,1))
M_R=IIF(R=0," -- ",STR(R,4,1))
M_A=IIF(A=0," -- ",STR(A,4,1))
M_B=IIF(B=0," -- ",STR(B,4,1))
M_C=IIF(C=0," -- ",STR(C,4,1))
M_D=IIF(D=0," -- ",STR(D,4,1))
IF BUNSHO="5" .OR. BUNSHO="9" .OR. UPPER(BUNSHO)="A"
M_NAME =IIF(NAME=MAE_N,SPACE(16),NAME)
M_CODE =IIF(NAME=MAE_N,SPACE(6),"("+CODE+")")
M_SEISEKI=IIF(NAME=MAE_N," ",M_HYOU+' '+M_KYOU+' '+M_J+' '+M_M+' '+M_E+' '+M_S+' '+M_R+' '+M_A+' '+M_B+' '+M_C+' '+M_D)
ENDIF
ROUCHECK=IIF(CODE>="2001","*"," ")
LINE=LINE+1
IF LINE<53
? &KOUMOKU
MAE_S=SC
MAE_N=NAME
SKIP
ELSE
IF SAKI="1"
EJECT
ELSE
?
?
?
?
?
ENDIF
MAE_S=" "
MAE_N=" "
LINE=0
PAGE=PAGE+1
? HYOUDAI+"NO. "+STR(PAGE,2)
?
? MIDASI
? REPLICATE("━",NAGASA)
ENDIF
ENDDO
IF (BUNSHO>="1".AND. BUNSHO<="4").OR. BUNSHO="6"
?
?
LINE=LINE+2
N=N+1
ENDDO
ENDIF
IF SAKI="1"
EJECT
SET PRINT OFF
ELSE
SET ALTERNATE OFF
ENDIF
SET COLOR TO
SET CONSOLE ON
CLOSE DATABASES
?? CHR(27)+"[>5l"
**********************[ P5.PRG END ]******************************************