名簿管理


 NDBSの仕組みについては、教科書の Stage D p109 に解説していますが、ここでは、例題に使用している個人住所録データベース(200人の個人の氏名や住所など、32項目を記録)の作成方法と活用方法について演習形式で解説します。使用する個々のプログラムの利用方法については、トップページからプログラムのページをクリックして参照して下さい。


A 学習準備編


1. プログラムとデータの入手 
  トップページの 入手方法 を参照して頂き、プログラムとデータが下記のようにコピーされていることを確認します。
   ・ c:\ndbs の下には、 NDBS の全実行ファイル
   ・ d:\tuser\ の下には、 NDBS のトレーニング用全サンプルデータ
      もし、 d: ドライブが存在していない場合は、 c: ドライブにコピーし、
      以後の説明で、 d: を、 c: と読み替えて下さい。
  名簿管理の学習に利用するファイルは下記の通りです。
   ・ 起動用ショートカットファイル  d:\tuser\ndbtrain\NDBS1
   ・ 名簿データベース(主表)    d:\tuser\ndbtrain\data\adrsdata
   ・ 参照ファイル           d:\tuser\ndbtrain\refdt\adrs??   ?? は、 01 から 99 までの半角文字
   ・ 各種設定ファイル        d:\tuser\ndbtrain\form\*.txt


2. NDBS基本メニューの作業場所と起動
 (1) NDBS基本メニューの作業場所
   NDBS基本メニューの起動用ショートカットは d:\tuser\ndbtrain の下にある、 NDBS1 です。
     このショートカットを右クリックしてプロパティを開き、リンク先と作業フォルダ名が正しいかどうかを確認します。
     当分使いますのでショートカット NDBS1 を画面に貼り付けておきましょう。

 (2) NDBS基本メニューの起動
   画面に貼り付けた NDBS1 をダブルクリックしますと この、A-1図 のような画面が現れます。


3. 主表について学習
  名簿管理の学習のためには、名簿データベース(主表) d:\tuser\ndbtrain\data\adrsdata の仕組みを良く知っておく必要があります。
  NDBS は固定長テキスト型データベースなので、1レコードすなわち一件分のデータについて、
    何バイト目から何バイトのところに、どのような項目のデータがどのように記録されているかを知る必要があります。
    この情報を記述したファイルを スキーマファイル と名付け、利用に先立ち制作しておかなければなりません。
  主表へのデータ入力と、主表からデータを出力する際は、必ず1個の スキーマファイル が必要です。
  1個の スキーマファイル には、 32 項目までのデータ記録域を定義できます。
  1つの主表は 64 までの スキーマファイル を利用できますから、
    1つの主表は、 64 × 32 = 2,048 項目までのデータを記録できます。
  本学習で使用する d:\tuser\ndbtrain\data\adrsdata は、
    主表レコードサイズ(一人分の記録長)が 320バイトで、下表のような構造です。

表3-1 個人住所録 d:\tuser\ndbtrain\data\adrsdata で Form/adrsform.txt に定義している構造
項目名
記録位置
記録長
入力方法
参照番号
Option1
Option2
Option3
*整理番号
1
8
12
100
0
0
0
氏 名
9
16
2
0
0
0
0
フリガナ
25
10
1
0
0
0
0
生年月日
35
7
5
0
0
0
0
年 齢
42
3
12
105
4
0
0
性 別
45
1
10
1
0
0
0
郵便番号
301
7
1
0
0
0
0
県 名
51
8
14
9
0
0
0
現住所
59
52
2
0
0
0
0
現住所電話番号
111
12
1
0
0
0
0
血液型
123
1
10
6
0
0
0
RH+−
124
1
10
3
0
0
0
身 長
125
5
3
100
190
0
0
年 代
46
2
12
119
5
0
11
身長区分
48
2
12
119
13
0
12
メールアドレス
130
30
1
0
0
0
0
勤務先コード
161
4
10
30
240
0
0
関係先
165
4
10
30
240
0
0
1回目体重測定日
169
8
7
0
0
0
0
1回目体重Kg
177
5
3
30
200
0
0
1回目BMI
182
5
12
133
13
20
0
2回目体重測定日
187
8
7
0
0
0
0
2回目体重Kg
195
5
3
30
200
0
0
2回目BMI
200
5
12
133
13
23
0
次回体重測定日
205
8
7
0
0
0
0
曜 日
213
2
12
107
0
0
0
クラブDBレコード番号
251
2
12
120
1
1
0
クラブ名称
253
30
20
120
1
3
0
クラブの電話番号
308
12
20
120
1
51
0
この人から見て
293
6
17
10
9
12
0
書き込み禁止
320
1
10
7
0
0
0
予 備
218
5
1
0
0
0
0

表3-2 個人住所録 d:\tuser\ndbtrain\data\adrsdata で Form/adrsform.txt に定義している構造
項目名
記録位置
記録長
入力方法
参照番号
Option1
Option2
Option3
*整理番号
1
8
12
100
0
0
0
氏 名
9
16
2
0
0
0
0
フリガナ
25
10
1
0
0
0
0
一周年
243
7
12
106
13
1
203
年 齢
42
3
12
105
13
0
0
性 別
45
1
10
1
0
0
0
県 名
51
8
14
9
0
0
0
現住所
59
52
2
0
0
0
0
現住所電話番号
111
12
1
0
0
0
0
photo 私の顔
223
10
16
3
500
350
0
photo 私の家
233
10
16
1
500
350
0
身 長
125
5
3
0
0
0
0
生年月日
35
7
5
0
0
0
0
現在日 1
250
10
12
103
2
0
0
現在日 2
266
10
12
103
2
0
0
時間差 現在日1-2
282
5
12
104
14
15
6
現在日までの時間差
287
5
12
104
14
0
6
現在日 0
292
7
5
0
0
0
0
時間差 生年月日-現在日0
311
5
12
104
13
18
6
時間差 生年月日-現在日
316
5
12
104
13
0
6

    表3-1 と、 表3-2 には、氏名などいくつかの項目が重複して記述されています。
      これは、データ出力の便宜のために敢えて重複して記述しました。
      データ入力の際は、どちらのスキーマファイルを利用するかをユーザーが決めて下さい。

  上記の表の中から、いくつかの項目についてその仕組みを説明します。

  ・ *整理番号
    記録位置が 41 、記録長が、 8 、入力方法が、 12 、となっていますから、 関数入力 で記録します。
    関数入力 の場合は、参照番号の項目に使用される関数番号を記述します。
      ここでは関数番号が 100 、ですから、その項目名をクリックしますと、そのデータのレコード番号が自動的に入力されます。
    関数入力 の説明は ここをクリック してからその、 D 〔入力方法 12 〕 関数入力 をご覧下さい。
    なお、項目名である 整理番号 の前に半角の * が付いていますので、この項目が 主キー であることを示しています。
    主キー が設定されている項目は確実にレコードを特定でき、 NDBS 37 テキストデータ嵌込 などの作業に利用できます。
    主キー については ここをクリック してから、 NDBS17-2 (5) スキーマの内容を訂正 主キーの設定 をご覧下さい。

  ・ 氏 名
    記録位置が 9 、記録長が、 16 となっていますから、レコードの先頭から 9 バイトから 16 バイト以内に氏名を記録します。
    入力方法が 2 となっていますから、入力時カーソルがこの項目のところに来ると、
    自動的に全角入力モードになりますので、全角文字を 8 文字以内で入力します。
    手作業で半角モードにして半角文字を 16 文字以内で入力しても構いません。
    入力が終わったら必ず、 Enter して下さい。 Enter しないと入力前の状態のままになっています。
    NDBS では他の入力方法でも、キーからデータを入力させる場合、
      誤入力による意図としないデータの変更を防止するためにキー入力後 Enter して頂くことになっています。

  ・ 生年月日
    記録位置が 35 、記録長が、 7 となっていますから、レコードの先頭から 35 バイトから 7 バイトで以内に生年月日を記録します。
    入力方法が 5 となっていますから和暦で入力できる状態になります。
    入力時カーソルがこの項目のところに来ると、画面の右下に和暦の入力画面が現れるので、
      マウス操作のみで和暦の年月日を選ぶ。キー入力ではないので Enter はしなくて良い。
    日付入力の方法はこの和暦の他西暦など4種類を用意しています。( NDBSのデータ入力のいろいろ B 日付入力 を参照)
    なお、入力の際に和暦で入力していても出力の際に、西暦など他の日付形式で出力できます。
       絞込・任意項目出力 の、 NDBS18-2 出力条件の設定と出力項目の設定 (3) 日付入力された日付の出力 を参考。
      

  ・ 性 別
    記録位置が 45 、記録長が、 1 、入力方法が、 10 、となっていますから、参照入力で記録します。
    参照入力の概念を示した図は ここをクリック してご覧下さい。
    参照入力では参照ファイル番号を指定しておかなければなりません。
      性別の場合、参照番号が 1 、となっていますから、参照表ファイル d:\tuser\refdt\adrs01 が指定されます。
    入力時カーソルがこの項目のところに来ると、画面の右下に下記のような参照データが現れます。
        <   >不明
        <1   >男性
        <2   >女性
      マウス操作で該当するデータを選び、 《決定》 釦をクリックします。
      男性であれば、 1 女性であれば、 2 、不明を選んだ場合は1バイトの半角空白が、自動的に入ります。
      キー入力ではないので Enter はしなくても構いません。
    参照入力で主表(データベース)に記録されたデータはコード(この場合は性別コード)と言われます。
    このように参照入力をしますと、誰が入力しても同じデータが入力されます。
    主表には、1バイトの性別コードしか記録されないため、性別を文字として記録する場合より大幅に記憶量を少なくできます。
    出力の際は、主表に記録されている性別コードをキーに、これと関連づけられている性別参照表から性別文字を取り出して出力できます。
    もし、性別を文字として入力させる仕組みでは、入力者によって、 男、男性、M、m のように入力される可能性もあり、検索に支障をきたします。
    参照ファイルは 参照表 あるいは 副表 とも呼ばれ、 主表 と関連づけてデータベースを作成しますので、
      このような仕組みでデータを作成・利用するシステムを 関係データベースシステム(Relational DataBase System) と呼びます。

  その他の項目の構造については、 仕組みを作る と、 NDBSのデータ入力のいろいろ を参照して下さい。


4. データの入力と訂正
  
 (1) データ入力・訂正プログラムの起動
   起動用ショートカット d:\tuser\ndbtrain\NDBS1 をダブルクリックします。
   メニューが現れますので、 01 レコード単位入力 をダブルクリックします。
    このような データ入力画面になります。

 (2) データ入力・訂正
   データ入力・訂正に関しては、 NDBSのデータ入力のいろいろ と、 NDBS No.1 レコード単位入力 を学習していただくこととし、
   ここでは特に留意しなければならない点を再掲します。
   @ データ入力・訂正の対象となるレコードの指定方法
     01 レコード単位入力 を起動した直後では、そのデータベースの最後のレコードが表示されています。
        この例題では全レコード数が 200 と表示されます。
     ・ 最後のデータの次に新しいレコードを追加したい場合は、
        入力画面最上部の 現レコード と表示されてる下の枠内をダブルリックします。
     ・ 最大レコード以内のレコードを訂正したい場合は、
        入力画面最上部の 現レコード と表示されてる下の枠内に半角でレコード番号を入力して Enter します。
     ・ 最大レコード以内のレコードの中から検索して訂正したい場合は、
        入力画面右上部の 《検索》 と表示されてる釦をクリックしますと、画面右下に検索画面が表示されますので、
        検索条件を入力してヒットしますと画面の右に候補が表示されますので、訂正した候補をダブルクリックします。
        この例題では検索項目の氏名に成田と入力して検索しますと、 2, 59, 62 3 レコードが表示されます。
   A NDBSの記録は全てテキスト文字列
     NDBS での入力プログラムではすべてテキスト形式の文字列として記録します。
     数値として処理したい場合は出力のプログラムで文字列を数値に変換しますので、
       キーから直接入力の際は、入力枠に左寄せ、右寄せのどちらでも構いません。
   B 入力方法と入力の仕方
     大別するとデータを直接キーから入力するか、参照入力などの項目名をクリックして間接入力する方法に別れます。
     間接入力の場合でもキーから直接入力できますが、誰が入力しても正確に入力されるように、
       参照入力などの間接入力はそれぞれの入力方法に従って入力しましょう。
     入力方法の違いによって項目名が書かれている背景色が違いますので参考にして下さい。
   C 直接入力した場合は Enter を忘れずに
     NDBS はパソコン初心者を対象に設計されています。
     うっかり無意識のうちに触ってしまったキー入力の情報が記録されないように、
       直接キー入力した場合は Enter しないと記憶されないようになっています。
     ブラインドタッチができるプロのキーパンチャーにはOne操作多くなり、不満かも知れません。
       (Excel や Access などでは直接キー入力した情報は直ちに記憶されます)
     ただし、参照入力など間接入力の仕組みで入力した場合は Enter しなくても構いません。
     ・ NDBS では、直接入力、参照入力、関数処理などが行われて画面上データが変わった場合でも、
       《書込》 釦をクリックしなければデーターベースは更新( コミット )されません。
       この場合、 《終了》 釦をクリックした場合は、 データの変更確認 の画面が出ますから、
         《はい》 の釦をクリックしますと、更新しないで終了します。また、
         《いいえ》 の釦をクリックしますと、更新しないで現在の画面になっていますので訂正を続けます。
         これらの機能は ロールオフ の機能と似ています。
   D 誤って保存した場合の対処方法
     《書込》 釦をクリックした後に入力の誤りに気が付いたときは次の手順で手作業で修復します。
     ・ 該当レコードの入力画面を出しておきます。
     ・ 作業場所にあるテキストファイル xlogdata.txt をエディタで開きます。
         エディタはメモ帳でも構いませんが記録位置が正確にわかる Mifes が最適です。
     ・ xlogdata.txt の最後にカーソルを移動します。
       訂正前の1レコード分のデータ(Old Data)と、訂正後の1レコード分のデータ(New Data) が表示されています。
       データ構造を参考に、Old Data の中から訂正前のデータをコピーして入力画面に貼り付けて再書込をして下さい。
   E 参照集計
     出力のプログラムを使用しなくても、この入力のプログラムで 参照集計 ができます。
      参照集計 とは、上述の性別など、参照表(副表)を参照して入力させた項目について、
       主表の記録結果を参照コードで分類して集計するものです。
     たとえば此の例題の場合、全200レコードについて 参照集計 を行う手順を次に示します。
     ・ データ入力画面で画面右上の 《検索》 釦をクリックします。
     ・ 検索画面で3個の 検索項目 に何も入力しないで 《検索開始》 釦をクリックします。
       主表の全レコード番号が作業場所にあるレコード番号記述ファイル 、 xschdata.txt に記録されます。
        (検索項目 に検索データを入れた場合はヒットしたレコードのみが記録されます。)
     ・ 《検索しないで戻る》 釦をクリックしてデータ入力画面に戻ります。
     ・ データ入力画面の画面右上の 《参照集計》 釦をクリックします。
       集計した結果が作業場所にある xout.csv に出力されます。
       表計算ソフト Excel が組込れているパソコンでは xout.csv をクリックしますと直ちに結果が見れます。
       此の例題の全200レコードについての結果を PDF形式変換したもの をご覧下さい。
         性別や血液型などの集計結果が見られます。
       このように入力したデータが直ちに参照集計されますので、
         アンケート処理などで単一選択や複数選択の選択方法に参照選択の仕組みを採用しますと、集計がきわめて簡単になります。


5. データの出力
  NDBS のデータ出力プログラムはデータ入力プログラムとは別になっており、どんな操作をしてもデータベースを壊すことがありません。

 (1) データ出力プログラムの起動
   起動用ショートカット d:\tuser\ndbtrain\NDBS1 をダブルクリックします。
   メニューが現れますので、 18 絞込・任意項目出力 をダブルクリックします。
   スキーマファイル選択のウィンドウで、 Form/adrsform.txt をダブルクリックします。
    このような データ出力設定画面 になります。

 (2) データ出力方法
   データ出力はどのレコードのどの項目をどのように出力するかを考えて行います。
   一つの項目について並べ替えたり、10項目までのデータについて複雑な絞り込み検索して出力できます。
   参照入力されたデータについては、コードかそのものか参照データかを選んで出力できます。
   データ出力に関しては、 NDBS No.18 絞込・任意項目出力 を学習していただくこととし、
     ここでは具体的な出力例について紹介します。


B 実践編



【例題1】 年賀状の宛名印刷ソフトに利用するため、名簿データベースから全員の氏名、郵便番号、住所のデータを作業場所に xmeibo.csv のファイル名で出力しなさい。

   殆どの年賀状の宛名印刷ソフトでは自前で住所禄データを作成する機能を持っていますが、
     住所禄データを外部から読み込んで使用することもできます。
   ここでは常時は NDBS の名簿データベースのみを保守し、
     宛名印刷など個々の利用ソフトが必要とするときはその都度必要なデータを出力することにします。
   名簿データベースは宛名印刷だけでなく、各種名簿作成など多様に利用できます。
     データの変更が生じたときは個々の利用ソフトでは修正せず、名簿データベースのみを修正します。
   つまり、名簿データベースを一元管理することによってデータの分散に伴う重複修正などのトラブルを防ぎ、大幅に省力化ができます。
   では、名簿データベースから 氏名、郵便番号、住所 の各データを、半角カンマで区切ったテキストファイルとして出力させてみます。

   @ データ出力設定画面 氏名、郵便番号、住所 の3項目にチェックを入れます。

   A データ出力設定画面の 出力ファイル名 の右枠の、 xtable.csv を削除し、 xmeibo.csv と入力します。
     タイトル、末尾タイトル1、末尾タイトル2 は利用者が考えて入力します(削除しても良い)。
      このような データ出力設定画面 になります。

   B 画面右下の 《開始》 釦をクリックします。
     作業場所に xmeibo.csv が作成されます。このファイルはテキスト形式なのでコピーして他のソフトで利用できます。
     また、表計算ソフトやワープロソフトやブラウザソフトに 自動出力 させることができます。
       この場合、予め使用ソフトを設定しておきます。詳しくは こちら ご覧下さい。
     データ出力設定画面 ブラウザ起動 にチェックを入れてから出力しますと、 xmeibo.htm が、 このように 出力されます。
       作業場所に200人の名簿ができていますから、宛名印刷ソフトのマニュアルに従って利用します。
     表計算ソフトとして、 Excel に読み込ませた場合は郵便番号は、
       先頭の 0 が消えていますが、ファイルには記録されているので問題はありません。
       郵便番号は先頭の 0 を表示させたい場合の対処方法は ここを クリックしてご覧下さい。

   C 宛名印刷ソフトでの利用が終わった xmeibo.csv は削除しても構いません。

【例題2】 全員の氏名、生年月日、年齢、性別、身長、1回目体重測定日、1回目体重を、 xtable.csv のファイル名で作業場所に出力しなさい。
   ただし、生年月日は西暦の年月日で、体重測定日は和暦の年月日で出力しなさい。

   参照入力された項目はデーターベースに記録されたデータをそのまま出力するか、
     そのコードに対応した参照データで出力するかを選ぶことができます。
   また、日付けはデーターベースに記録された形式意外の形式でも出力できます。

   @ データ出力設定画面 氏名、年齢、身長、1回目体重 の4項目にチェックを入れます。

   A データ出力設定画面 性別 の項目をクリックしますと画面右下に参照データの画面が表示されます。
     参照文字を出力したい場合は 参照字数 の右枠に半角で文字数(バイト数ではない)を入力して Enter します。
     参照字数 に何も入れないで Enter しますとコードが出力されます。

   B データ出力設定画面 生年月日 1回目体重測定日 の項目をクリックしますと画面右下に年月日出力形式選択画面が表示されます。
     希望の年月日出力形式を選択して Enter します。曜日も付加できます。
      このような データ出力設定画面 になります。

   C データ出力設定画面の 表計算起動 と、 ブラウザ起動 にチェックを入れます。

   D 《開始》 釦をクリックします。
     作業場所に xtable.csv と、 xtable.htm が作成されます。
      このように 参照データが表示され、日付けも指定した形式で出力されていることが解ります。

【例題3】 【例題2】で、データの出力順番を1回目体重の軽い順にしなさい。

   並べ替えは1項目についてだけできます。
   表A3 から、1回目体重は 177 バイト目から 5 バイトで記録されていますので、 データ出力設定画面 で次のように入力します。
       キー位置 には、 177 を入力
       キー長 には、 5 を入力
       昇順 降順 は、 昇順 をクリック
       数値 にチェック
   数値 にチェックを入れない場合は文字列として左端から文字コード順に並べ替えられるので、
     体重の値を入力し始める位置によっては正しく並べ替えられないことがありますので注意して下さい。
    このような データ出力設定画面 になります。
   出力結果は このように 体重の軽い順になります。

【例題4】 【例題2】の出力対象を、次の絞り込み条件に合う人だけにしなさい。

  絞り込み条件 1 氏名 が" 佐藤 "さんであって  かつ 女性 であること。
    または、
  絞り込み条件 2 氏名が" 加藤 "さんであって  かつ  年齢が、 50 才から 90 才まで゛ かつ 女性 であること。

   絞り込みは、最初に個々の項目について絞り込み判定式を定義しておきます。
     次に、作成した判定式を論理積(かつ)は * 、論理和(または)は + で絞り込み条件式を定義します。

   @ データ出力設定画面の 要素 の右枠に以下のような判定式を記述します。
       要素 a= 9,16,"佐藤",
       要素 b= 45,1,2,2
       要素 c= 42,3,50,90
       要素 d= 9,16,"加藤",

   A データ出力設定画面の 絞り込み条件式 の右枠に以下のような絞り込み条件式を記述します。

          a*b+d*c*b

      このような データ出力設定画面 になります。この出力設定条件を保存しておくこともできます。

   B 画面右下の 《開始》 釦をクリックします。
      このように、 200人の中から絞り込まれて該当者が8人になりました。

【例題5】 名簿データベースから女性でかつ40歳以上59歳までの人について、身長と1回目体重の 最大値、最小値、平均値、中央値、標準偏差、ならびに身長と1回目体重との相関係数を求めよ。

  NDBS No.18 絞込・任意項目出力 には、集計、計算機能がありません。
    したがってこのプログラムで必要なデータをCSVファイルに出力し、これを集計、計算機能のあるソフトに引き渡すか、
  NDBS No.20 基礎統計量出力 を使用して集計、計算をします。

   (1) 表計算ソフトで集計

     @ NDBS基本メニュー で、 18 絞込・任意項目出力 をダブルクリックした後、スキーマ adrsform.txt をダブルクリックし、
        データ出力設定画面 このように 設定します。

     A 《開始》 釦をクリックしますと該当者 38人が xtable.csv に、 このように 作業場所に出力され、 Excel に読み込まれます。

     B あとは、 Excel 上で数学関数を適用して集計します。
        具体的な集計式の記述方法は Excel の説明書を参照して下さい。

   (2) NDBS No.20 基礎統計量出力 を使用
     この方法では集計式の記述が不要で、きわめて簡単に集計できます。

     @ NDBS基本メニュー で、 20 基礎統計量出力 をダブルクリックします。

     A 画面右上の、 1 対象データ形式選択 で、 NDBS形式 をクリックします。

     B 1 スキーマファイル選択 で、 adrsform.txt を選びダブルクリックします。
       スキーマファイルは上記 (1) と同じですから、同じデータベースのデータを集計することが解ります。

     C 身長 1回目体重 の2項目にチェックを入れ、絞り込み条件を上記 (1) と同じく、 このように 設定します。

     D 《処理開始》 釦をクリックしますと直ちに集計が行われ、 xtokei.csv が作業場所に出力されます。
       印刷したい場合は次のいずれかで行います。
       ・ xtokei.csv をダブルクリックしますと自動的に Excel に読まれるのでそのまま印刷します。
       ・ NDBS2メニュー で、 21 CSV から html 変換 を用いて html文書に変換して印刷します。
          このような 集計結果になりました。当然ですが上記 (1) で集計した結果もこれと同じです。
         身長と体重との間の相関係数は 0.17 なので、身長と体重との間に相関が無いという結果になっていますが、
           これはデータの値が実際のものではなく、適当に入力したためです。
       ・ メモ帳 Mifes などのエディタに読み込んでから桁を揃えるなどしてから印刷します。

【例題6】 年賀状の宛名印刷ソフトに利用するため、名簿データベースから年賀状を差し出したい該当者だけを選んで、氏名、郵便番号、住所のデータを作業場所に xmeibo.csv のファイル名で出力しなさい。

  【例題1】 では全員を出力しましたが、ここでは 年賀状コード という項目を新たに設け、
     このデータによって出力レコードを絞り込みます。

   @ 年賀状コード 項目を新たに設ける
     年賀状コード 項目には次のような選択肢を考え、それぞれコードを与えます。
         年内差し出し ---> コード 1
         元旦差し出し ---> コード 2
         喪中通知あり ---> コード 8
         差し出さない ---> コード 9
     従ってデータベースに書き込んでおく領域は、 1 か、 2 か、 8 か、 9 のいずれかですから、 1 バイトで済みます。

   A 年賀状コード を保存しておく領域を定める
     作業場所 d:\tuser\ndbtrain に保存している個人住所録データベース \data\adrsdata の空き領域を探します。
     この個人住所録データベースを管理しているスキーマファイルは次の二つです。
         d:\tuser\ndbtrain\form\adrsform.txt 上記 表3-1 参照
         d:\tuser\ndbtrain\form\photform.txt 上記 表3-2 参照
     したがってこの二つのファイルに記述している記録位置と記録長を調べて空いている領域を探します。
     方法としては、上記 表3-1 表3-2 を見て探すか、
      NDBS No.16 主表空き領域点検 を利用して自動的に探しますと下記の領域が空いていることが解ります。
          50 バイト目     1 バイト
         160 バイト目     1 バイト
         215 バイト目から   217 バイト目まで 3 バイト
         299 バイト目から   300 バイト目まで 2 バイト

       ここでは 215 バイト目から 1 バイトを使うことにしましょう。

   B 年賀状コード をスキーマファイルに記述
     一個のスキーマファイルには 32 項目しか記述できません。
     従って form\adrsform.txt に記述する場合はどれか不要な項目と入れ替えます。
     ここでは、 form\photform.txt の最後の項目に NDBS No.17 構造設計 を利用して追加します。
     また、 県名 の項目を削除し、代わりに 郵便番号 の項目を記述します。
     年賀状コード を記述するための参照ファイルは、
       現在使用している参照ファイルの最後である refdt/adrs31 の、 次の、 refdt/adrs32 となります。
       この参照ファイルに、 @ で説明した選択肢をコードを記述して下さい。
       新設した、 refdt/adrs32 このように なります。
       また、修正した、 form\photform.txt このように なります。

   C 年賀状コード のデータを入力
     個人住所録データベースに記録されている全員について 年賀状コード のデータを入力しなければなりません。
     1レコードづつ入力していくのは手間がかかりますから次の手順が効率的です。
     ・ 使用するスキーマファイルは form\photform.txt とします。
     ・ NDBS No.18 絞込・任意項目出力 を利用して 氏名、郵便番号、住所、年賀状コード のデータ全部を出力します。
     ・ 作業場所に出力された200レコードの xtable.csv をエディタに読み込み修正します。
     ・ 修正した xtable.csv にある。項目名を記述した行やタイトル行を削除し、データ行のみにします。
     ・ NDBS No.37 テキストデータ嵌込 を利用して主表に一気に嵌め込みます。

   D 年賀状コード が、 年内差し出し (コード 1 )のみのデータだけ出力させます。
      このための絞り込み条件は このように なります。
     ・ 出力された xtable.csv を年賀状作成ソフトの外部住所データとして利用して下さい。
     年賀状コード や住所データを、友人からの手紙やメールなどがあったとき適宜訂正しておくと年末に慌てなくて済みます。

【例題7】 名簿データベースから特定の人について、顔写真と自宅の写真を、項目名を縦方向に履歴書風にホームページ文書の形式で出力しなさい。この際、顔写真の左には氏名を、自宅の写真の右には住所を表示させなさい。

   (1) 準備

     @ 構造設計
       スキーマファイルは 前問と同じ、 form\photform.txt を用います。顔写真と自宅の写真を記録する項目に注目して下さい。
        ・項目photo 私の顔 《参》 の下の値が 3 であることを確かめ、違っていれば変えて下さい。
         画像を右に配置し、テキストを左に回り込ませるためです。
        ・項目photo 私の家 《参》 の下の値が 1 であることを確かめ、違っていれば変えて下さい。
         画像を左に配置し、テキストを右に回り込ませるためです。     

     A 顔写真と自宅の写真を用意て保存
       デジタルカメラで撮影した画像ファイルを、顔写真と自宅の写真を記録する項目名の先頭に記述したフォルダに保存します。
         ここの例では、 image に保存します。
       画像ファイルの解像度が大き過ぎると表示に時間がかかりますのでA4版に印刷できる程度にしておきます。
       スキーマファイルの顔写真と自宅の写真を記録する項目の、 Option1 Option2 にそれぞれ横と縦の解像度の値を記述します。
         この値は全レコードに対して適用されますので、他のレコードの解像度も同じでなればなりません。
       レコード毎にサイズを指定したい場合は、データ入力の際、画像ファイル名の後に半角空白で縦と横のピクセル数を記述できますが、
         画像ファイル名を記述する記録長を長くとっておかなければなりません。

     B データ入力
        NDBS No.1 レコード単位入力 を利用して、出力したいレコードに対して、出力項目のデータを入力します。
       顔写真と自宅の写真を記録する項目に対しては画像ファイル名を記述します。 これは、 2 レコード目のデータを入力した画面です。
       画像ファイルが保存されている場合は縮小されたものが参考表示されます。
         縦横比が初期設定と実際の画像とで異なる場合は実際と違って表示されます。
         入力画面での画像表示は単に画像の有無を示すだけのものですから気にしないで下さい。
         出力の際は正しく表示させることができます。

   (2) 出力

     @ NDBS No.18 絞込・任意項目出力 を使用します。

     A 出力項目を設定します。
       ・項目 photo 私の顔 と、項目 photo 私の家 にチェックを入れます。
       ・項目 photo 私の顔 《Option 3》 の下の枠をダブルクリックし、 氏名 をダブルクリックします。
          氏名 項目の順番である 2 が入ります。(手入力で 2 を入れても構いません)
       ・項目 photo 私の家 《Option 3》 の下の枠をダブルクリックし、 現住所 をダブルクリックします。
          現住所 項目の順番である 8 が入ります。(手入力で 8 を入れても構いません)
       ・オプション釦 《指定レコード出力》 をクリックしますと下に大きな枠が現れますから、出力したいレコード番号を半角で入力します。
          複数の場合は半角カンマで区切って、連番の場合は最初と最後を-で区切って入力します。
          この例では第2レコードにしか画像を入れていませんので、 2 のみを入力します。
          《更新》 釦をクリックします。
       ・ 《ブラウザ起動》 にチェックを入れます。
       ・さらに、 《html項目を縦》 にチェックを入れます。
       ・出力ファイル名やタイトルを訂正します。
         これで出力の設定が終わりました。 このように なります。
       ・以上の設定条件で今後も度々利用したい場合は、 《条件記述ファイル名》 の右枠に保存したい出力ファイル名を入力し、
         《保存》 釦をクリックしますと保存でき、次回は 《読込》 釦をクリックするだけで手間をかけることなく同じ設定ができます。

     B 《開始》 釦をクリックしますと出力され、 このように ブラウザで見ることができます。
         氏名と現住所がそれぞれ画像の左と右に回り込んでいることが解ります。
       ただしブラウザが FireFox の場合は左右どちらの回り込みも正常に表示されますが、
       ブラウザが IE の場合は画像の左へのテキストの回り込みが正常に表示されませんのでご了承下さい。