NDBSのデータ入力のいろいろ


NDBS No.1 レコード単位入力 で用いられるデータ入力方法について説明します。


A 文字キーから直接データを入力
住所録の例では、氏名、住所、各種測定値など、各レコード毎に特有な値を持つものは、その情報をキーから直接入力することになります。


〔入力方法 1 〕 半角で手入力
半角で入力します。全角の英数字を入力した場合は Enter しますと半角に変わります。
入力画面で項目名の背景色が黄色で表示されています。


〔入力方法 2〕 全角で手入力
全角入力モードになりますが,手動で半角入力モードに戻し、半角で入力しても構いません。
入力画面で項目名の背景色が橙色で表示されます。
日本語入力システムが Microsoft IME となっている場合は、
  自動的に 全角ひらがな入力 となります。
  ローマ字入力をされる方は ローマ字 に切り替えて入力して下さい。


〔入力方法 3 〕 半角数字手入力 クロス集計の値情報や、統計処理の対象項目として、
  選択させるために必要、入力画面で項目名の背景色が黄色で表示されてます。
構造設計画面の 《参 》 に入力した数値を下限とし、 《Option1》 に入力した数値を上限として、
 範囲外の数値が入力された場合は、警告の画面が現れますので 《OK》 をクリックして下さい。
 警告が出ても入力はされています。訂正の必要があれば再度数値を入れ直して下さい。

上記の入力方法 1,2,3 でキーから手入力した後は 必ず Enter してください。
  Microsoft社の Access ではキー入力されたデータは直ちに保存されますが、
  NDBS では入力したセルを Enter し、かつ書き込みをしてはじめて保存されます。
   これは不用意に入力された文字が記録されるのを防ぐためです。 


〔入力方法 14 〕 候補名選択入力 
構造設計画面の 《参》 で指定された参照表から表示用参照情報を入力画面右下部に表示し、
  この中から希望候補をマウスか上下の方向キーで選択し、 Enter します。
表示用参照情報の先頭から構造設計画面の 《長》 のバイト数だけ入力されます。
キーからデータを手入力することもできますが、次回にカーソルで選択した場合は消去されます。
  該当参照ファイルに登録してから使用して下さい。
なお、手入力した後は 必ず Enter キーを押してください。
  県名などの入力に利用します。


〔入力方法 15 または 16 〕 画像ファイル名を英数半角で手入力
必ず 英数半角文字 で入力してから Enter して下さい。
画像ファイル名の拡張子は jpg, gif, bmp のいずれかにして下さい。
画像ファイルを置く場所は、あらかじめ構造設計の際、項目名のところに半角で、
  作業場所を基準にしたフォルダ名を入力しておかなければなりません。
画像ファイルがそのフォルダのところに存在している場合は、
  その画像ファイル名を入力して Enter しますと画面の右下に画像を表示します。
画面に表示される画像の縦横比は、入力方法により異なります。

  入力方法 15: 縦長の 1 : 0.78 (パスポートサイズ 縦 45mm×横 35mmと同じ)
    したがって縦 257×横 200 ピクセル 程度のものを用意してください。
    出力の際に大きいサイズにしたい場合は大きいサイズのままでも構いませんが、
      縦横比は守ってください。縦横比が合わないと歪んだ画像が表示されます。
    個人の顔写真などの表示に適しています。

  入力方法 16: 横長の 0.65 : 1 (フォトカードと同じ)
    したがって縦 195×横 300 ピクセル 程度のものを用意してください。
    出力の際に大きいサイズにしたい場合は大きいサイズのままでも構いませんが、
      縦横比は守ってください。縦横比が合わないと歪んだ画像が表示されます。
    集合写真やデジカメの写真の表示に適しています。

画像ファイル名を記述した項目名をクリックした場合はその画像が現れます。
入力画面上に画像を表示したくない場合は画像の上にマウスを当て、ダブルクリックします。
この入力方法では一つの構造定義ファイルに画像項目を複数設定できますが、画面に表示できる画像は二つだけです。
画像が二つ以上あった場合は表示されないだけで、画像ファイル名は記録されます。
   
この方法で記録された画像は次の方法でhtml文書に出力できます。

 (1) NDBS 18 絞込・任意項目出力 の《html 項目を縦》で出力
   レコード毎に他の項目のデータとともに画像もhtmに出力できます
   画像出力の際は構造定義ファイルの設定で画像の配置やサイズを変えることができます。
   画像の左、または右に、テキストを回り込み表示させることができます。
     詳しくは こちらを をご覧下さい。

 (2) 画像一覧をhtml文書に出力
   複数のレコードに画像ファイル名が記録されている場合は、複数レコードの画像を一覧表の形で出力できます。
   詳しくは、 NDBS No.31 画像一覧をhtmに出力 をご覧下さい。


〔入力方法 21 〕 長文入力
NDBS No.1 の入力画面で項目名の背景色が赤褐色で表示されています。
画面右下に大きな入力枠が表示されます。ので長文を入力できます。

他主表検索取込 を使用して、他主表データの取込
  長文データに半角数字で他の主表の複数のレコード番号を半角カンマで区切って記述しておきますと、
  NDBS No.18 で出力させる場合、他データベースの複数レコードの特定項目のデータを連結して出力できます。
  イベントデータベースの利用の際、大幅な省力化が期待できます。
  この機能を使用したい場合は予め次の準備をしておいて下さい
  1) 他主表の仕様をパラメータファイル form\cprpar??.txt に記述します
    ?? は、 01 から 99 までの値でファイル識別番号です。
  2) スキーマ設計の際、上記ファイルの識別番号をこの項目のところの Option1 に記述しておきます
  詳しくは、 他主表検索取込 をご覧下さい。



〔入力方法 4 〕 外部テキストファイル参照
主表とは別個に、記録サイズの制限がないテキストファイルの読み書きができます。
  主表の各レコードでサイズの大きい注釈や備考が必要な場合に利用でます。
  外部テキストファイルはレコード毎にサイズが違っても良い、 シーケンシャルアクセスファイル です。
  主表と外部テキストファイルは コードデータ と名付けた情報で関連づけます。

1 コードデータ
 ・ 主表に書いておき、 外部テキストファイルのレコードを識別するためのコードです。
 ・ このコードの長さは 6 バイト以内とし、構造設計時にユーザーが決めておきます。
 ・ コードとして入力できる文字は半角数字のみです。
 ・ コードデータはレコード毎に違っても、同じで重複しても構いません。
    レコード毎、個々の項目のデータ入力時にキーから入力
 ・ コードデータは通常そのレコードのレコード番号と同じにしますが、
    違っても、また複数のレコードで同じコードを重複して使っても構いません。
      記述例: 033 と書いても、 33 と書いてよい

2 外部テキストファイルのファイル名
 ・ 外部テキストファイルのファイル名 参照ファイル先頭名 識別番号 で決まります
 ・ 識別番号 99 までの数字でユーザーが決め、構造設計時に 《Option 2》 に入力します
    外部テキストファイルのファイル名 = 4バイトの参照ファイル先頭名 + 識別番号 + ".csv"  
    参照ファイル先頭名が suga で、識別番号が 2 の場合は suga02.csv となります。
    構造設計時に 《Option 2》 に何も入力しないときは、 suga00.csv となります。
 ・ 外部テキストファイルの保存場所は、作業場所の、 Data フォルダに固定されます

3 外部テキストファイルの作成手順

 (1) 準備
   構造設計時に、 入力方法 4 の項目の 《Option 2》 識別番号 入力し、 外部テキストファイル名 を決めておきます。

 (2) NDBS No.1 レコード単位入力 を起動

 (3) コードデータの入力
   入力方法4の項目名の右枠に コードデータ を入力し、 Enter キーを押します。

 (4) 外部テキストファイルの読み込み
   入力方法4 の項目名をクリックします。
   (1) の名前の 外部テキストファイル コードデータ と一致したレコードを自動的に探し、、
     存在した場合は画面右下の入力枠に記録さりているテキストを表示します。
     存在していない場合は新規に作成することになり。画面右下の入力枠は空白になっております。

 (5) 外部テキストファイルの編集
   外部テキストファイル に書き込みできるのは全角と半角の文字だけです。
   記述上の制限事項
    @ 各レコードのデータ長は無制限です。
      入力枠からはみ出してしまう場合は右端のカーソルでテキストを上にあげて余白を作ります。
      エディタで編集し、必要なテキストをコピーして、枠内に貼り付けても構いません。
      エディタで編集する場合は、レコードの先頭に コードデータ と半角カンマが付いていますので、
        この部分はコピーしないで下さい。
      またエディタで編集した場合は、テキストをコピーした後、 エディタは必ず終了しておいて下さい。       
    A 文字コード以外の制御コードを記述しないで下さい。
    B 半角カンマ' , 'を記述しないで下さい。半角カンマを入れるとそれ以降のデータは記録されません。
    C 制御コードや半角カンマを記述してしまっても、 書き込み時に自動的に削除されます。
    D 改行コードも削除されてしまいますので、ユーザーが任意の代替え改行を文字を入れて下さい。
      例えば、改行コードの代わりに (シフトJisで81A0H)を入れておけば、
        NDBS No.11 青空文庫文書作成 を利用して、青空文庫の書式で改行付き縦書き文書に変換できます。
      青空文庫の書式に従って記述すれば、難しい漢字にルビを振ることもできます。

 (6) 外部テキストファイルの書き込み
   外部テキストファイル の編集が終了したら、入力枠の上部の 《書込して戻る》 釦をクリックします。
     外部テキストファイル 主表 の書き込みとは無関係に書き込み保存されます。
     この場合、書き込みされるテキストの先頭に コードデータ と半角カンマが自動的に付きます。
   外部テキストファイル を保存したくない場合は、入力枠の上部の 《書込なしで戻る》 釦をクリックします。
     この場合、 主表 の書き込み時にも 外部テキストファイル は保存されません。

 (7) 外部テキストファイルの整理
   外部テキストファイルのデータ入力画面で、 《書込》 ボタンをクリックしますと、その入力画面のテキストは、
     ファイルの最後のレコードに追加されます。
   したがって、同じコードのテキストの訂正を繰り返していくと、訂正前の残骸レコードが次々と残ってしまいます。
   残骸レコードが存在していても、次回に呼び出されるのは最後の最新レコードとなりますので、
     実用上支障はありませんが、残骸レコードを削除し、コード順に並べ替えて保存し直しできます。
   ・ 外部テキストファイルのデータ入力画面で、 《整理》 ボタンをクリックします。
   ・ この作業は残骸レコードが多くなったと思われるときにして下さい。
   ・ 整理 を使用できるのは外部テキストファイルのレコード数が 32000 以下に限ります。
     32000 を超える場合は、外部テキストファイルをエディタなどで、手作業で整理して下さい。

 (8) 外部テキストファイルの利用
   保存された外部テキストファイルのテキストは、 NDBS No.18 絞込・任意項目出力 で、他の項目のデータと同時に出力できます。



B 日付入力
データベースに入力されている日付データは後でいろいろな集計に使われます
  例えば生年月日から年齢を計算させたり、観測年月日から年度毎に分類させたりします
日付は正確に入力される必要があります
したがって日付は手入力をせず、下記のように決められた書式で入力させます

〔入力方法 5 〕 和暦年月日を半角 7 バイトで入力 (例 S070304 )
〔入力方法 6 〕 和暦年月日を半角 9 バイトで入力 (例 S07.03.04 )
〔入力方法 7 〕 西暦年月日を半角 8 バイトで入力 (例 19320304 )
〔入力方法 8 〕 西暦年月日を半角 6 バイトで入力 (例 320304 )

 入力方法 5, 6, 7, 8 (年月区分)に共通仕様
 1) 入力画面で項目名の背景色が空色で表示されます
 2) 日付の項目をクリックすると右下に日付の入力画面が表示され、マウス操作だけで入力できます
   日付の項目の入力枠に半角で手入力することもできます
     ただし、手入力した後は 必ず Enter してください
   日付の入力画面から戻るときは、 必ず 《決定 》 釦を クリック Enter してください
 3) 入力枠内の文字をすべて消去し、カーソルを左端において Enter した場合は,
     現在日が指定の形式で自動的に入力されます
 4) 2) 3) いずれの場合も日付の入力画面が現れ、入力した日付に次のような誤りがあった場合は警告します
     ・ 閏年でない年の 2 月の日付の誤り
     ・ 4 月や 6 月など、 31 日がない月に 31 を入力した場合
     ・ 年号切り替え年月日の誤り
 5) 入力枠の先頭の1バイトに半角の空白をキー入力して Enter した場合はすべて空白になります

 注1  できるだけ 〔入力方法 7 〕 西暦年月日を半角 8 バイトで入力 をお使い下さい。
   後日の処理が容易になります。
   西暦で入力されていても、出力のプログラムで和暦に自動変換して出力できます。
 注2  日付入力の際に曜日を自動的に記憶しています。
   曜日を入力したい場合は、日付入力とは別に項目を設けて次のように構造を記述します。
       項目名 ,記録位置 ,記録長 ,12 ,107 ,0 ,0 ,0
     すなわち、107番の関数を使用します。項目名は任意で 曜日獲得 とでもしておきます。
   記録長によって入力される曜日のデータが次のように変わります。
     記録長が 1 の場合: 日曜日を 1 としたコード
     記録長が 2 の場合: 曜日の日本語名称 日曜日の場合は
     記録長が 4 の場合: 曜日の簡略英語名称 日曜日の場合は Sun.
     記録長が 9 以上の場合: 曜日の英語名称 日曜日の場合は Sunday
   利用方法:
     ・ 入力したい曜日の日付の項目をクリックして日付を入力しておきます。
        日付入力画面に曜日が出ていますので覚えておいて下さい。   
     ・ 曜日獲得の項目をクリックしますと自動的に曜日が入力されます。
        日付入力画面で覚えた曜日と同じであることを確認して下さい。
     ・ 構造設計の際、曜日獲得の項目をどこに置いても構いませんが、
        直前に行った日付入力の曜日が入りますので、複数項目の日付入力がある場合は注意して下さい。

   データーベースに曜日を記録していない場合でも、出力の際に日付に曜日を付加できます。
     詳しくは、 NDBS No.18 絞込・任意項目出力 をご覧下さい。



C 参照入力
NDBS のような RDBMS Excel 1-2-3 などの表計算ソフトと基本的に異なるのは、
  RDBMS はデータが互いにキーで結ばれた複数の表に記録されることです。
下図にその仕組みを示します。
入力者は副表の男性、女性の文字を見てどちらかをクリックしますと、そのコード 1 または、 2 が自動的に主表に記録されます。
  誰が入力してもコードのみが正確に記録されます。
  同じ意味の情報が違った文字で入力されることは絶対にないのです。
この RDBMS の仕組みは教科書の Step 18 RDBMS の仕組みを理解できますか (p76) に解説しています。

画像ファイル  が見つかりません


〔入力方法 9 〕 参照表のレコード番号を記録
   指定した参照表から表示用参照情報を入力画面右下に表示し,この中から希望セルをカーソルで選択します。
   入力画面で項目名の背景色が空色で表示されています。
   その参照情報の参照表上の記録順番( レコード番号 )が記録されます。
   参照表は構造設計の際, 《参照ファイル名先頭名 4》 に記述した半角文字列に,
     半角2桁の参照表番号を付加した名前の固定長テキストファイルです。
   参照表番号は構造設計の際, <参> に半角の数字で記述します。
   参照表のレコード数は 9,999 までです。
   この方法で入力した後は参照表の中のレコード順番を変えることはできません。
     レコード順番が主表と参照表を結びつけるキーとなっているからです。
   この方法は参照表のレコード数がきわめて多い場合に適します。
   参照表のレコード数が少なくても多くてもアクセス速度は変わりなく高速です。
     レコード番号でランダムアクセスできるからです。


〔入力方法 10 〕 参照コード記録
   指定した参照表から表示用参照情報を入力画面右下に表示し、この中から希望候補をマウスか上下の方向キーで選択し、 Enter します。
   入力画面で項目名の背景色が空色で表示されています。
   その参照情報の参照表上のコードが主表に記録されます。
   参照表は構造設計の際, 《参照ファイル名先頭名 4》 に記述した半角文字列に、
     半角 2 桁の参照表番号を付加した名前の固定長テキストファイルです。
   参照表のレコード数は 4 バイトまでの相異なるコードの組み合わせ数により決まります。
     半角4バイトの組み合わせ数は,英数字,カナを含めると 9999 個を遙かに超える数になます。
   参照表番号は構造設計の際, <参> に半角の数字で記述します。
   この 入力方法 10 RDBMS で最も多く用いられている方法です
   Microsoftの ACCESS での ルックアップテーブル による入力に相当します。
   参照表(参照ファイル)も固定長テキストファイルですから、主表として利用できます。


〔入力方法 17 〕 二つのレコード間の相互関係を記録
   同一主表の中の任意のレコードを指定し、さらに相互の関係を参照して、その参照コードを付加して記録します。
   準備  構造設計での記述方法
     位置    その項目を記録したい先頭位置(バイト)を入力
     長     記録長は任意のレコード番号と参照コードを連結したもの
             参照コードは必ず 2 バイトであること
             従って< >は 3 バイト以上の数でなければなりません。
     方     17
     参     相互の関係を参照するための情報を保存している参照ファイル番号で、
              0 から 99 までの数字で、同じ先頭名を持つ他の参照ファイル番号と重複しないこと、
              入力方法が 9,10,19 の場合と同様、 4 バイトの参照表ファイル先頭名に、
                参照ファイル番号(半角 2 桁の数値)を 2 バイトの文字にしたものを加えた文字列が参照表ファイル名となります。
     Option 1  任意のレコードの識別名取り出し位置 バイト
     Option 2  任意のレコードの識別名取り出し長 バイト
     Option 3  0 (半角空白でも可)

   構造定義記述例 NDBS 例題の tuser\ndbtrain\adrsform.txt の場合
             項目名    ,位置, 長, 方, 参,Option 1,Option 2,Option 3
     32項目目 この人から見て, 293,  6, 17, 10,    9,    12,    0

   相互関係を記述した参照ファイル adrs10 の記述例
           不明
     01  chic 実父
     02  haha 実母
     51  onsi 恩師
     52  hoku 北炭知人  

   この参照ファイルの各レコードの先頭 2 バイトが相互関係を表すコードになります。
     このコードは 半角 2 バイトの英数文字 とし、 全レコードで重複は許されません。
   01,02,... のように数字だけでも良いし、 a1, a2 のように英文字を含んでも構いません。
     したがってこのコード総数は 99 を超えても構いません。

   データ記述例 NDBS 例題の tuser\ndbtrain\adrsform.txt の場合、
     主表名は data\adrsdata で1レコード 320 バイトの 200 レコードの住所録が記録されています。
     レコード番号 200 繁田 裕子 さんの相互関係のデータが ' 000251 ' で、 6 バイトである場合、
     データの後部 2 バイトが ' 51 ' なので、
       参照ファイル adrs10 の中でコードが' 51 ' すなわち' 恩師 'を意味しています。
     次に、データの先頭 6-2=4 バイトが ' 0002 ' なので、主表の第2レコードを指しています。
       第2レコードの 9 バイト目から 12 バイトは' 成田 裕一  'と記述されています。

     したがって 繁田裕子 さんから見て 成田裕一 さんは、 恩師 であるという関係があることを意味しています。


〔入力方法 9,10,17 に共通な仕様 〕
 1) レコード長の変更  参照表の1レコード長は,デフォルトで 40 バイトです。
   41バイト以降さらに情報が必要な場合は1レコード長を 任意に 設定できます。
   この場合は構造設計の際, <Option 1> に半角の数字で バイト数 を記述します。
   ただし、入力方法 17 の場合は、 参照表の1レコード長が 40 バイトに固定されます。
 2) 参照表数 
   参照表は一つの 4 バイト長の先頭名1個当たり、 01 から 99 まで指定できます。
     例題の、 adrs では adrs01 から adrs99 までの 99




〔入力方法 19 〕 複数参照レコード記録
   入力画面で項目名の背景色が緑色で表示されてます。
   指定した参照表から表示用参照情報( 下左図のフィールド 3 )を画面に表示し、この中の該当選択肢にチェックを付けます。
   チェックは該当するものを複数付けることができます。
   チェックした項目に 優先度を持たせる ことができます。
   主表には書き込み位置から選択肢数に等しいバイト数の記録長を用意して置かなければなりません。
   なお、選択肢数の最大値は 30 です。
   アンケート処理などの 複数選択入力 に利用されます。




D 〔入力方法 12 〕  関数入力

関数入力とは何らかの処理をした結果を主表に入力させたい場合の入力方法です。
例えば住所録の中の年齢のデータはを手入力をさせるのではなく、
  生年月日のデータと現在日から自動的に年齢を計算してその結果を自動入力させます。
このようにある値を与えてその値を基に何らかの処理をし、その結果を返して貰うものを関数と言いいます。
主表入力の画面で項目名の背景色が赤褐色に表示されているのが、入力方法が 12 の項目です。
  そこをクリックしますと、参照情報に記述した場号の関数が実行され、その結果が自動的に入力されます。

NDBS No.1 レコード単位入力 に内蔵添付されている共通関数を 下記の表1 に示します。
   利用方法は構造設計の際、
     <方> に半角の 12 を記述
     <参> 関数番号 を半角数字で記述
     <Option 1,2,3> には下記の表1にしたがって記述

表1 NDBS No.1 に内蔵されている共通関数
機能
関数番号
Option1
Option2
Option3
戻り情報
パラメータファイル
レコード番号獲得
100
--
--
--
レコード番号
--
年齢計算     
105
ItemNo
--
--
年齢
--
階級区分分け  
119
ItemNo
--
ParaNo
区分番号
Refdt\****??
他主表検索取込
120
ParaNo
--
--
別DB RecNo.
Form\Cprpar??.txt
2項目の除算   
115
ItemNo 1
ItemNo 2
IntOrSingle
Item1/Item2
--
2項目の積    
116
ItemNo 1
ItemNo 2
IntOrSingle
Item1*Item2
--
合計値計算 *1  
122
ItemNo
データ数
IntOrSingle
合計値
--
合計値計算 *2  
117
ItemPo
データ数
LenOfset
合計値
--
2項目の引き算 
109
ItemNo 1
ItemNo 2
IntOrSingle
Item1-Item2
--
在庫処理     
130
ParaIf
現在庫位置
日付位置
現在庫数
Form\zaikofm?.txt
BMI計算     
133
身長Item
体重Item
--
BMI %5.2f
--
記念日計算 *3  
106
ItemNo
加算年
加算月日
被加算日付
--
現在時間獲得   
103
種類
--
--
現在時間 *4
--
時間差計算     
104
ItemNo 1
ItemNo 2
戻値単位
時間差 *5
--
曜日獲得 *6   
107
--
--
--
曜日名称
--
累計値計算 *8
108
ItemNo 1
ItemNo 2
ItemNo 3
--
--

 注
    ParaNo パラメータファイルのファイル番号を記述
    ItemNo 関数に渡す情報が記録されている項目の順番
    ItemPo 関数に渡す情報が記録されている項目の記録位置(bytes)
    IntOrSingle 整数は 0, 実数は 1
    LenOfset 千の桁/1000はデータ長、下3桁はデータの記録間隔(bytes)
    ParaIf 1 byteのパラメータファイルのファイル番号と、2 byteの在庫DBレコード番号の項目の順番
    身長Item 身長が記録されている項目の順番
    体重Item 体重が記録されている項目の順番
    %5.2f 小数点以下の値を1桁とし、全体で5バイトの情報にして返します
   *1 入力画面に連続して表示されている複数の項目の値を加算
   *2 入力画面に表示されていない、飛び飛びに記録されている
       複数の項目でもそれらの値を加算できる。ただし、
       加算される項目の値を入力画面で変更した場合は一旦保存してから実行させる
   *3 入力画面のある項目の日付データに任意の年月日を加えた値を返します
      入力方法 5,6,7,8 で入力した日付データが対象となります
       種々の記念日や、販売商品の定期点検日の自動入力などに便利です。
      使用に先立ち、構造設計の際次の設定をしておきます。
      Option1  基準となる日付データがある項目の順番(半角数値)
      Option2  加算したい年数を半角数値
      Option3  加算したい月数を 100 倍にした値に、加算したい日数を加えた半角数値
      戻り値となる日付の表示形式は基準となる日付と同じ表示形式になります。
   *4 種類 下記の 1,2,3 のいずれかを半角で記述
      1 14:30:01 、時間2桁 分2桁 秒2桁 の型で 8 byteで時刻を獲得
      2 2004/09/08 、西暦年4桁/月2桁/日2桁 の型で 10 byteで日付を獲得
      3 2004/09/08 14:30 、西暦年4桁/月2桁/日2桁 時2桁:分2桁 の型で 16 byteで日付を獲得
   *5 時間差計算
      入力方法 5,6,7,8 と、関数 103 で入力した日付データが対象となります
      ItemNo 1 最初の時間データが記録されている項目の順番
      ItemNo 2 後の時間データが記録されている項目の順番
            ただし、この値が 0 の場合は現在時刻との時間差を返します
      戻値単位 下記の 1,2,3,4,5,6 のいずれかを半角数字で記述、
            最初の時間と後の時間との時間差をここで指定した単位で返します
        1 秒   2 分   3 時   4 日   5 月   6
   *6 曜日獲得 使用方法はこのページの N4-2 日付入力 をご覧下さい。
   *7 累計値計算 一つ前のレコードの累計値に ItemNo 1 ItemNo 2 を加え、 ItemNo 3 を引いたものを返します

   上記内部関数は NDBS No.1 の入力プログラムでレコード単位で適用されますが、 
     NDBS No.30 関数実行、挿入、削除 プログラムで全レコードまたは指定したレコードに一斉に適用できます。
      ただし、 関数番号107 曜日獲得 は関数自動実行ができません。
   NDBS No.1 レコード単位入力 に組み込まれている上記表1の関数の他、表2 に示すようないくつかの関数を用意しています。
   使用方法は内部関数と同じですが、実行の仕組みが異なります。
   呼び出す側の、 NDBS No.1 のプログラムを 親プロセス 、外部関数の実行プログラムを 子プロセス と呼びます

   親プロセス から 子プロセス に次のデータを改行コードを付けて作業場所に出力します。
     出力ファイル名は CPRCDATA です。
      1 現在入力してる主表の1レコードのデータ bua0
      2 構造定義情報 記録位置 dtt0(0)
      3 構造定義情報 記録長 dtt0(1)
      4 構造定義情報 参照情報 dtt0(2)
      5 構造定義情報 Option 1 dtt0(3)
      6 構造定義情報 Option 2 dtt0(4)
      7 構造定義情報 Option 3 dtt0(5)
      8 現在アクセスしているレコード番号 recno0
      9 参照表先頭名のパス名 reftop0
     10 参照表先頭名のパス名の文字数 lnrf0
       bua0 などの右端の記号は子プロセスで利用される変数の名称で、子プロセスのプログラムの中で使用されるものです。

   親プロセス から上記のファイル CPRCDATA を受け取った 子プロセス は、
     目的の処理をした結果をファイル CPRCDATA に出力し、これを 親プロセス が受け取ります。

   その実行プログラム(.EXEファイル)は NDBS のフォルダに置いてあります。
   子プロセスのファイル名は半角 Func に始まり、これにオプション1に記述した3桁の数字に " .EXE " を付けたものです。
   例えば構造定義情報の <参> 123 であれば、 FUNC123.EXE というファル名となります。
   子プロセスからの戻り値の文字数は,構造定義情報の取り出し <長> に記述したバイト数と一致していなければなりません。


表2 NDBS No.1 に内蔵されていない外部関数
機能
関数番号
Option1
Option2
Option3
戻り情報
パラメータファイル
1 最大値計算  
123
取出位置
データ数
オフセット数
最大値
--
2 最小値計算  
124
取出位置
データ数
オフセット数
最小値
--
3 平均値計算  
125
取出位置
データ数
オフセット数
平均値
--
4 10進を16進に
126
取出位置
取出長
--
16進数
--
5 標準体重   
131
性別
身長
--
標準体重
--
6 肥満度計算 
132
--
身長
体重
肥満度
--


  上記の外部関数のソースプログラムは教科書に添付された CD-ROMの User\Source の下に保存されています。
  これを参考にユーザー独自の外部関数を作成することができます。
  作成した関数の EXE ファイルはプログラムドライブ 例 C:\ndbs の 下に保存して下さい。



E データの非表示と入力禁止


〔入力方法 0 〕 データ非表示入力禁止
   入力画面で項目名の背景色が褐色で表示されます.データは表示されません。


〔入力方法 20 〕 データ入力禁止
   既に記録されているデータは表示されますが,データをキーから入力できません。
   入力画面で項目名の背景色が灰色で表示されます。
   直前に関数 120 を実行している場合は、別DBを検索して得られたデータが自動入力されます。
   詳しくは、 ここをクリック して、 関数番号 120 他主表検索取込 をご覧下さい。  




F 入力方法一覧

N4-3表
入力方法番号
機能
0
データの表示、入力とも禁止
1
キーから半角文字を直接入力
2
キーから全角文字を直接入力、半角でも良い
3
キーから半角数字を直接入力
4
外部テキストファイル参照
5
和暦年月日半角 7桁入力 S070304
6
和暦年月日半角 9桁入力 S07.03.04
7
西暦年月日半角 8桁入力 1932070304
8
西暦年月日半角 6桁入力 32070304
9
参照単一選択入力 参照表のレコード番号を記録
10
参照単一選択入力 参照表のコードを記録
12
関数で自動計算してその結果を取り込む
14
参照単一選択 参照表の文字を記録、手入力も可
15
画像ファイル名を半角で手入力、画像を画面に縦長に表示
16
画像ファイル名を半角で手入力、画像を画面に横長に表示
17
二つのレコード間の相互関係を記録
19
参照複数選択入力 参照表の選んだレコードを 1 として記録
20
データは表示、入力は禁止。直前に関数120を実行している場合は、他Bからコピー
21
長文入力