表
DBProが扱うデータベースの最も基本的なデータが表です。表は,個々のデータが縦横に並んだ形をしています。
- 目次
- 項目とレコード
- 項目属性
- 表示形式
- 表属性
- 索引
- 各種の登録情報
- ファイル内変数
- 表ファイル
DBProでは表の縦1列を「項目」,横1行を「レコード」と呼びます。一つのレコードの一つの項目に格納されるデータを「項目値」と呼びます。
-
項目1 | 項目2 | … | 項目m |
項目値1-1 | 項目値1-2 | … | 項目1-m |
項目値2-1 | 項目値2-2 | … | 項目2-m |
… | … | … | … |
項目値n-1 | 項目値n-2 | … | 項目n-m |
項目
- 項目名
上の図で,項目1,項目2,…,項目m を各項目の「項目名」といいます。項目属性:項目名
- 項目属性
ある一つの表では,すべてのレコードの同じ項目には同じ性質をもつデータ(たとえば名前とか住所とか)が入力されます。ある項目がもっているデータの性質を項目属性と呼びます。項目属性
- 項目値
一つのレコードの一つの項目に入力することができる値(項目値)の最大値や入力形式は,項目属性で指定したデータ型ごとに決められています。データ型と定数
- 最大項目数
DBProでは,一つの表に最大約4,000個の項目を定義することができます。ただし,定義可能な項目数は,その表ファイルの物理的な分割単位であるページのサイズに依存します。ページサイズの既定値は 4KB であり,そのときの最大項目数は約500 です。表ファイルのページサイズは最初にその表を作成するときに指定します。新規作成/定義変更ダイアログ:ページサイズ
最大項目数の正確な数は,表ファイルのプロパティダイアログに表示されます。[ファイル]-[プロパティ]
- 他のデータベースソフトやリレーショナルデータベースの理論では,項目のことを次のように呼ぶこともあります。
- 列
- フィールド
- 属性
- column
- field
- attribute
レコード
- 表の一つのレコードには,表に定義されているすべての項目の値が順に並びます。たとえば,住所録の一人分のデータ,売上台帳の一つの注文に関するデータなどがレコードに対応します。
- レコードは,表にデータを追加したり,削除したり,情報を検索したりするときの単位になります。
- レコード長
DBProではレコードの各項目値は可変長であって,実際に入力されたデータの分だけファイルの領域を占有します。実際のレコードの長さに制限はありません。DBProが動作している環境で資源が許す限りの長さを入力することができます。
- 注:
- 極端に長いレコードを入力した場合,加速度的に処理速度が遅くなりますので,あまり長いレコードを入力することは現実的ではありません。
- 最大レコード数
表に入力できるレコードの個数にも制限はありません。ご利用の環境で資源(通常はハードディスクの容量)が許す範囲で入力できます。
- 他のデータベースソフトやリレーショナルデータベースの理論では,レコードのことを次のように呼ぶこともあります。
- 行
- 組
- タプル
- row
- record
- tuple
項目属性は,表を構成する項目の性質を指定します。文字列/数値などのデータ型,入力可能な値の範囲を指定する検査条件など,データそのものの性質だけでなく,表引き入力/自動ふりがななどの入力補助機能,他のアプリケーションとの連携など,DBProの多くの機能は,項目属性に設定する内容によって実現されます。
項目を識別するために付ける名前です。
- 形式
-
<項目名> | ::= | <通常識別子> |
| | | <区切り識別子> |
<通常識別子> | ::= | (英字,仮名,漢字,ギリシャ文字,ロシア文字,下線で始まる英仮名漢字下線数字列) |
<区切り識別子> | ::= | [ <角括弧を除く任意の文字列> ] |
| | | " <二重引用符および角括弧を除く任意の文字列> " |
項目名の規則
- 基本的には,項目名に使える文字は次のものです。
- 英字
- 仮名文字(ひらがなおよびカタカナ)
- 漢字
- ギリシャ文字
- ロシア文字
- 下線( _ )
- 数字 (ただし,通常識別子として先頭に数字は使えません)
- 一般的には,上記以外の文字(空白,記号など)を使うこともできますし,数字を先頭に使うこともできます。ただし,そのような項目名を式の中に書くときは,必ず角括弧([ ])または二重引用符(")でくくらなければなりません(区切り識別子)。また,この場合でも項目名に角括弧を使うことはできません。
- 項目名に使われている大文字,小文字,全角,半角はすべて区別され,それぞれ違う項目名とみなされます。
- 区切り識別子を使った項目名の長さに制限はありません。
- 一つの表の中で同じ名前は付けられません。また,同じ表に定義されるファイル内変数と同じ名前にすることもできません。
原則として,カードをレイアウトするときに,対象表の項目名と同じオブジェクト名を付けることもできません。ボタンオブジェクトなど,一部のオブジェクトには項目名と同じ名前を付けられるものもあります。
項目の指定
- 置換式や探索条件の比較式などで使用する式の中で項目の値を参照するときは,項目名を書きます。
- このとき,通常は項目名を角括弧([ ])でくくっておきます。空白や記号などを含まない項目名は角括弧でくくらなくても使えますが,くくっておいた方が間違いも少なく,項目名であることが一目瞭然でしょう。
- 別の表の項目を指定するときや,DPL中で使うときは,特定の表の項目であることを識別するために,項目名の前に表の名前やカーソル名を付けることがあります。式:項目参照
その項目に格納するデータのデータ型を指定します。データ型と定数
項目には,外部からデータを入力できる通常の項目と,他の項目値などから自動的に計算される項目とがあります。
基本項目
- 通常の項目です。キーボードや他のファイルなどからデータを入力し,その値が保存されます。初期値式を指定して,新しいレコードが挿入されたときの値を指定することもできます。
計算項目
- 同じレコード内の他の項目を参照したり,組込み関数から値が計算される項目であって,外側から値を与えることはできません。値を指定するための計算式を指定しなければなりません。
- 計算項目の値は,レコード挿入時またはレコード訂正時に計算式を評価して自動的に決定されます。項目属性設定ダイアログで [参照項目更新時のみ再計算] を指定しておくと,レコードを訂正しても,計算式で参照している項目を更新しない限りは計算項目の再計算が行なわれません。これは,計算式中で #表引き のような他のファイルを参照する関数が書かれている場合に,速度の低下を防ぎます。
- 編集ウィンドウの [表操作]-[再計算] で再計算し,最新の状態にすることができます。
- 表編集ウィンドウでレコード挿入または連続訂正しているとき,計算項目にはカーソルが止まりません。計算項目を飛び越えて次の項目にカーソルが移動します。ただし,[他]-[各種設定] で指定することにより,計算項目にもカーソルが止まるようにすることができます。各種設定ダイアログ:入力・編集に関する設定項目(その1)
- 計算項目に対しては,かな漢制御,選択入力などの項目属性は意味をもちません。
- 表編集ウィンドウで,計算項目の項目名は凹んでみえます。
仮想項目
- 計算項目と同じように,他の項目を参照したり,組込み関数から値が計算される項目ですが,ファイル中にその値が保存されることはありません。表示などでその項目が必要になるたびに計算式を評価して値が求められます。
- [参照項目更新時のみ再計算] をはじめとする他の項目属性の意味,挿入/訂正中のカーソルスキップ/停止,画面上の表示などについても計算項目と同じです。
項目が必要になるたびに自動的に再計算されるので,[表操作]-[再計算] はあまり意味をもちませんが,それでも計算式中で他のファイルを参照しているときなどは,[再計算]コマンドによって確実に最新状態にすることができます。
- 仮想項目を索引のキーに指定することはできません。
- 計算項目では一度計算された値は,そのレコードが訂正されるか,[再計算]コマンドによって陽に再計算が指示されるまでは変更されません。したがって,計算式中で他のファイルの値を参照している場合などは,他のファイルが更新されていてもそれが計算項目に自動的に反映されることはありません。
これに対して仮想項目では,レコードが必要になるたびに値が計算されるので,他のファイルを参照していても常に最新の状態が反映されます。
- 計算項目と異なり,仮想項目ではレコードが必要になるたびに再計算が起きるので,計算項目に比べて処理速度が遅くなることがあります。
項目種別が「計算項目」または「仮想項目」の場合に,その値を表現する式を指定します。
- 例:
- [単価]×[数量]
- #表引き('master.dpt',.[コード]=[商品コード],.[商品名],'コード順')
- 項目のデータ型に一致した型の式を指定しなければなりません。式
- 計算項目の不必要な再計算を抑制するために [参照項目更新時のみ再計算] という項目属性を指定することができます。これを指定しておくと,レコードを訂正しても,計算式で参照している項目を更新しない限りは計算項目の再計算が行なわれません。項目属性ダイアログ:参照項目更新時のみ再計算
レコードが初めて表に挿入されたときに項目の初期値を自動的に設定させることができます。
- 表編集ウィンドウまたはカード編集ウィンドウでレコード挿入中に,初期値式が設定されている項目にカーソルが移動すると,その時点で初期値式が計算され,その値がカーソルがあるセルに設定されます。
- 初期値式に次のような組込み関数を使うと,さまざまな入力補助機能として利用できます。各種の入力補助機能
#対話表引き | 他の表のデータを見ながら選択入力できます。 |
#最終値 | レコード番号を自動設定できます。 |
#ヨミ,#よみ | 他の項目のふりがなを自動入力します。 |
#日付 | 今日の日付を入力します。 |
#直前値 | 直前のレコードの同じ項目の値を複写します。 |
- すでにデータが入力されているセルであっても,[編集]-[入力補助]-[初期値/選択入力] を選ぶと,初期値式が再び計算されて文字カーソルの位置に入力されます。項目値全体がハイライトされていれば,すでに入力済みのデータが再計算された初期値に置き換わります。
- 初期値式が評価されるタイミングは,通常,レコード挿入時にその項目に初めてカーソルが移動したときですが,この評価タイミングを陽に指定したときだけにしたり,項目が未入力のときは訂正中でも評価させたりすることができます。#対話表引き による選択肢の表示を要求があるまで抑制したいときなどに利用します。項目属性ダイアログ:[初期値評価時機]
理論的には,ナルは不定だとか未入力だとかを表わす値なので,ナルと別の値との間で演算を行なった結果はナルになります。しかし,未入力の数値項目などのナルは,実用的にはゼロとして扱った方が便利なことが多いので,DBPro では項目値としてのナルをゼロと同じに扱うこともできます。
- 項目値のナルをゼロとして扱うか,あるいは不定などとして扱うかは,基本的には項目ごとまたはカードのオブジェクトごとに指定します。項目属性ダイアログ,オブジェクト属性ダイアログ
- 項目属性またはオブジェクト属性のナル値の扱いとして「表の既定値」を選ぶと,それぞれの表,ビューまたは対象表の属性として指定したナル値の扱いが適用されます。表属性ダイアログ,ビュー属性ダイアログ
- データ型に応じたそれぞれの項目で,ナル値の扱いをゼロと指定したときに,項目値のナルを含む式がどのような演算結果を生ずるかを示します。文字列型,日付型,およびファイル型の項目では常に空文字列(文字列型およびファイル型)またはナル(日付型)として解釈されるので,ナル値の扱いは意味をもちません。
数値,整数,実数型 | 項目値がゼロとして演算 |
時刻型 | 項目値が 0時0分0秒として演算 |
年月間隔型 | 項目値がゼロヵ月として演算 |
日時間隔型 | 項目値がゼロ秒として演算 |
- ナル値の扱いを「ナル」と指定したときは,その項目を参照する式の値は常にナルです。また,ナルを示す文字列 NULL を含む式の結果も常にナルです。
- ナルをゼロとして扱うように指定すると,たとえば,[英語] が未入力であるレコードに対する次のような式がナルにならずに結果が得られます。
- ([英語]+[国語]+[数学])/3
- [英語] ≦ 0 (結果は真)
- ただし,#合計,#平均などのような集計関数には,ナル値の扱いがナルと指定されていてもナルを含む範囲の演算結果が得られるものがあります。
項目値をパラメータとして別の Windows アプリケーションを起動できます。
- 起動プロセスは,編集時にカーソルがある項目の値を用いてアプリケーションプログラムを起動する機能です。
- たとえば,得意先の地図を図形ファイルにしてファイル型項目にファイル名を格納し,その項目に図形編集アプリケーションを起動するプロセスを設定すれば,カード編集でその地図を見ながら,更新の必要が生じたらプロセス起動して専用アプリケーションで地図を編集することができます。
さらに一歩進めて,住所文字列から該当する箇所の地図を表示するような地図アプリケーションをお持ちなら,そのアプリケーションを起動する設定を [住所] 項目にしておけば,個別の図形ファイルを用意する必要はありません。
- 起動プロセスの設定は表定義ウィンドウの項目属性設定ダイアログで行ない,実際の起動は編集ウィンドウの [他]-[プロセス起動] で行ないます。
起動プロセスの設定
- 表定義ウィンドウの [属性]-[項目属性] を選び,項目属性設定ダイアログの基本ページで指定します。項目属性ダイアログ:基本ページ
- [起動プロセス] エディットボックスに指定した文字列がコマンドラインとして実行されます。指定する形式は,Windows の [スタート]ボタン,[ファイル名を指定して実行] の [名前] 欄に記述するコマンドラインの形式と同じです。詳しくは,Windows のマニュアルをご覧ください。
- 起動プロセスのファイル名やパラメータの部分に項目値を引用した文字列を設定できます。項目値を引用するときは,項目名を角括弧([ ])でくくります。起動プロセスを設定する項目自身の値を参照するときは,[ ] だけで項目名を省略できます。項目が数値項目などのときは,その項目の書式で引用されます。
例: | excel | excelを起動します。項目値は評価されません。 |
| excel [] | カーソルのあるレコードの項目値をパラメータとして excel を起動します。 |
| excel [A] | カーソルのあるレコードの項目 [A] の値をパラメータとして excel を起動します。 |
| .[] | カーソルのあるレコードの項目値を表ファイルと同じフォルダにあるアプリケーションプログラム名として起動します。 |
| .[] [A] | カーソルのあるレコードの項目値をアプリケーションプログラム名とし,同一レコードの項目 [A] の値をパラメータとして起動します。 |
| [dir][exe] [] | カーソルのあるレコードの項目 [dir] の値をパス名,項目 [exe] の値をプログラム名とし,カーソル位置の項目値をパラメータとして起動します。 |
注意
- 実行ファイル名は,次のいずれかで指定することをお薦めします。
- 検索パス(PATH コマンド)が設定されているフォルダにある実行ファイルを指定する。
- コマンドラインの先頭がピリオドで始まる相対パスで指定する。すなわち,. は表ファイルのあるディレクトリを,.. は表ファイルのあるディレクトリの親ディレクトリを示します。コマンドラインの先頭がピリオドで始まる場合は,DBProシステムが絶対パスに変換したうえで Windows に渡してくれます。
- 絶対パスで指定しても表ファイルを作成した環境と同じ環境で使っている限りは問題ありませんが,その表ファイルを他の人のコンピュータ上に持っていった場合,正しく動かなくなります。
- また,ピリオドが付かない相対パスで実行ファイルを指定すると,起動プロセスで指定した文字列がそのまま Windows に渡され,Windows は,そのときのカレントディレクトリで実行ファイルを探します。ところが,カレントディレクトリは,そのときの環境(どのアプリケーションがどんな動作を行なっているか)によって一定しないので,実行ファイルが見つからないというケースが頻繁に起こり得ます。
起動プロセスの起動
- 設定されているプロセスを起動するときは,表編集ウィンドウまたはカード編集ウィンドウで [他]-[プロセス起動] を選ぶか,その項目をマウスでダブルクリックします。
- 起動されたアプリケーションは,DBPro とは独立に動作します。アプリケーションプログラムによっては,すでに起動されていると起動できないことがあります。
ファイル型項目のプロセス起動
- ファイル型の項目に対しては起動プロセスを設定しなくとも,項目に入力されているファイル名の拡張子によって他のアプリケーションが起動されます。
- そのためには,ファイル名の拡張子がアプリケーションに関連付けられている必要があります。関連付けられていない場合には,次の手順で関連付けることができます。詳しくは Windows のマニュアル,ヘルプなどを参照してください。
- Windows のエクスプローラを起動し,[表示]-[フォルダオプション] を選びます。
- ファイルタイプページを開き,[登録されているファイルタイプ] から関連付けたいタイプを選びます。ファイルタイプが登録されていない場合は [追加]ボタンを押してファイルタイプを追加します。
- [編集]ボタンを押してファイルタイプの編集ダイアログを開きます。
- ファイル名に関連付けたい動作(DBProからプロセス起動したときの動作)を [アクション]リストボックスから選びます。そのようなアクションがないときは,[追加]ボタンで追加します。
- [標準]ボタンを押して,選んだアクションをファイル名に関連付けられた標準の動作に設定します。
- エクスプローラに戻るまで[閉じる]ボタンを押します。
表の利用者に対して項目の説明を表示することができます。
- 次の2種類のヒントを指定できます。
- ヒント1
- 表編集ウィンドウおよびカード編集ウィンドウでこの項目にカーソルがあるとき,ステータスバーに表示されます。ヒント1を省略すると,この項目のデータ型が表示されます。
- ヒント2
- 表編集ウィンドウの項目名領域,またはカード編集ウィンドウでこの項目の項目オブジェクトにマウスポインタを一定時間静止させたときに,ポップアップウィンドウに表示されます。
- カード編集ウィンドウでは,項目オブジェクトにヒントが指定されていると,オブジェクトのヒントの方が優先されます。項目のヒントは,オブジェクトのヒントが省略されているときだけ表示されます。
覚書きとして,任意の文字列を登録しておくことができます。
- 注釈は,定義印刷のときに印刷対象になるくらいで,特に利用される場面はありません。表作成者のメモなどにご利用ください。
- DBPro V3 までは注釈がステータスバーに表示されていましたが,V4 では補助情報として画面表示するための文字列は[ヒント]に移されました。V3 で作成した表を V4 用に変換すると,注釈属性の先頭行はヒント1にも移されます。
項目に入力されるデータがいくつかの値に決められている場合,あるいはいくつかの値だけが頻繁に入力される場合,項目属性に選択肢を指定しておくと,データを入力するときに選択肢一覧が表示され,そこから一つを選ぶだけでそのデータを入力することができます。
選択肢の設定と編集ウィンドウでの選択入力
- 選択肢は,表定義ウィンドウの[属性]-[項目属性]で指定します。項目属性ダイアログ:選択肢ページ
- 表編集ウィンドウまたはカード編集ウィンドウで,選択肢が設定されている項目の文字列編集モードに入ると,選択肢を選ぶためのウィンドウが表示されます。
選択肢ウィンドウの形
- 編集ウィンドウで表示される選択肢ウィンドウの形は次のいずれかを選ぶことができます。
ドロップダウン | 文字列編集モードになったとき,入力中のセルの部分にドロップダウンリストボックスが表示されます。すでに値が入力されている場合,または初期値が指定されている場合は,その値が選ばれた状態でウィンドウが開きます。オプションとして,選択肢以外の入力を許可するか禁止するか,および何も選択しない(ナルを入力する)ための選択肢を表示するか否かを指定できます。
選択入力後の編集可/不可
選択肢 <なし> の表示/非表示
|
ポップアップ | 文字列編集モードになったとき,入力中のセルの下に選択肢が並んだウィンドウが開きます。#対話表引き で表示されるウィンドウと同じ形のものです。選択肢の値と同時にガイド文字列を表示させることができます。常時表示せずに,指定したときだけの表示にすることもできます。
選択肢のガイド表示
選択肢ウィンドウの表示タイミング
|
選択入力後の編集可/不可(選択肢編集)
- 選択肢ウィンドウの形がドロップダウンの場合は,選択肢を選んだ後にその値を変更できるか否かを指定できます。
- 注:
- 選択入力後の編集を不可にした場合,編集ウィンドウから手入力で選択肢以外の値を入力することはできなくなりますが,これは項目値として選択肢以外が許されないということではありません。クリップボードからの貼付けや他のファイルからの読込みによって,選択肢以外の値も入力できます。
項目値として一定の値以外は許さないようにしたい場合は,検査条件を指定してください。検査条件とその関連オプション
- 選択入力後の編集を可としたときは,選択肢ウィンドウのドロップダウンリストボックスがエディットボックス付きとなり,いつでも任意の文字列を入力できるようになります。
選択肢 <なし> の表示/非表示
- 選択肢ウィンドウの形がドロップダウンの場合,項目が入力必須でない限りはナルを入力するための選択肢 <なし> が表示されますが,それを表示させないことができます。
- 項目が入力必須の場合,<なし> が表示されることはありません。
選択肢のガイド表示
- 選択肢ウィンドウの形がポップアップの場合は,選択肢の右または左にガイド文字列を表示させることができます。
- ガイド文字列は,各選択肢と対にして指定します。
- ガイドの表示位置(左右)と同時にガイドの表示幅を指定できます。表示幅は,ウィンドウの幅を 100 としてパーセントで指定します。100%を指定するとガイドだけの表示になり,選択肢ウィンドウではガイドだけが表示され,入力されるとセルには選ばれた値が表示されます。
選択肢ウィンドウの表示タイミング
- 選択肢ウィンドウの形がポップアップの場合,選択肢ウィンドウをどのタイミングで表示するかを指定できます。
初期入力時のみ | レコード挿入時に初めてカーソルが行ったときのみウィンドウが開きます。 |
指定時のみ | 自動的に選択肢ウィンドウが開くことはありません。[編集]-[入力補助]-[初期値/選択入力]コマンドが実行されたときのみ選択肢ウィンドウが開きます。 |
ナルのとき常に | 初期入力時に加えて,訂正時であっても文字列編集モードでそのセルにカーソルが行ったとき,その項目の値がナルであった場合は選択肢が表示されます。 |
常に表示 | 文字列編集モードでそのセルにカーソルが行けば,訂正時であっても常に選択肢が表示されます。 |
- 上記のタイミングとは別に,[編集]-[入力補助]-[初期値/選択入力]コマンドを実行したときは,いつでも選択肢ウィンドウが開きます。
式中での選択肢および選択肢番号の参照
- ある項目のn番目の選択肢は何か,逆に,ある値は指定した項目の何番目の選択肢かを組込み関数で知ることができます。#選択肢,#選択肢番号
この項目にデータを入力するときの言語,入力システムを指定します。
- 項目ごとに異なる入力システムを指定すると,項目ごとに異なる言語で入力された表を作ることができます。
- ここで指定できるのは,Windows のコントロールパネルからキーボードを選び,言語ページの[言語]リストボックスに設定されている入力システムです。
- 特に指定しないと,コントロールパネルのキーボードで「標準の言語」に設定されている入力システムが使われます。
- 日本語入力システム以外の入力システムを指定した場合,次のかな漢制御属性の動作は保証されません。
表編集ウィンドウ,カード編集ウィンドウでのデータ入力中に,かな漢字変換システムのオン/オフ,かな/カナ/英数,全角/半角を項目ごとに自動的に切り替えることができます。
- その項目にカーソルが移ったときのかな漢字変換システムの状態を指定することができます。
しない | かな漢字変換システムの制御を一切行ないません。すなわち,その項目に移っても直前の状態をそのまま引き継ぎます。 |
全角かな | その項目に移るとかな漢字変換システムをオンにし,全角ひらがなモードにします。 |
全角カナ | その項目に移るとかな漢字変換システムをオンにし,全角カタカナモードにします。 |
全角英数 | その項目に移るとかな漢字変換システムをオンにし,全角英数字モードにします。 |
半角カナ | その項目に移るとかな漢字変換システムをオンにし,半角カタカナモードにします。 |
半角英数 | その項目に移るとかな漢字変換システムをオンにし,半角英数字モードにします。 |
かな漢字切 | その項目に移るとかな漢字変換システムをオフにします。 |
- かな漢制御属性の設定は,表定義ウィンドウの [属性]-[項目属性] を選び,項目属性設定ダイアログで行ないます。項目属性ダイアログ:入力ページ
- かな漢字変換自動制御方法の変更
通常は,かな漢字変換システムの自動制御は表操作モードでも文字列編集モードでも行なわれますが,表操作モードでだけ,文字列編集モードでだけ,あるいは一切の自動制御を行なわないようにも指定できます。各種設定ダイアログ:入力・編集に関する設定項目(その2)
日常のデータ入力作業で犯しがちな入力ミスを自動的に修正したり,意図的に略号で入力した文字列を正しい文字列に置き換えて入力することができます。
- 加工式による入力データの加工は,表に入力された値を引数として組込み関数などを使った任意の式で表現します。その式の値が項目値として新たに設定されます。式のデータ型は,項目のデータ型に一致していなければなりません。
例: | #空白削除([項目名],'全半後') | -- 文字列の後ろの余分な空白を削除する |
| #絶対値([数値]) | -- 常に正の値として入力する |
- 次に示すような幾つかの代表的な加工式については,チェックボックスをチェックするだけで加工式が設定できるようになっています。項目属性ダイアログ:入力ページ
- 余分な空白の削除
- 全角に統一:指定した字種を全角に統一します。
- 半角に統一:指定した字種を半角に統一します。
- 長音をマイナス記号に置換
- 加工式による項目値の加工は,検査条件による検査と同じタイミングで検査の直前に行なわれます。すなわち,項目値が変更されたとき,読込みや併合などによって一括して入力されたとき,表定義を変更してレコードが再構成されるときなどにも加工されます。したがって,繰り返し適用されることで次々と値が変わってしまうような加工式は書けません。
正しくない例: | センチメートルで入力させて,内部はミリメートルで保存しようとする式( [長さ]×10 )のような加工式は書けません。 |
- 項目に必ず値が入力されなければならないことを指定します。入力必須を指定した項目がナルであるレコードは,表に挿入することができません。
- 商品コード,会員番号などのようにそのレコードを特定するために利用する項目や(主キーと呼ばれます),商品名,氏名,性別などのように省略してはならない項目に指定します。
項目に入力されるデータが満たしていなければならない条件を指定することができます。これによって,項目に正しくないデータが入力されるのを防ぎ,データベースを常に正しい状態に保ちます。
- 検査条件は,その項目が満たすべき条件を論理式で記述します。論理式の値が真であれば条件が満たされたとことになり,値が偽であれば条件に違反したことになります。式:論理式と論理値
- 条件に違反した場合,違反メッセージが表示され,再入力が促されます。条件を満たしていれば何も起こりません。
- 複数の項目の関係をチェックする場合は,表の検査条件を指定します。表属性:検査条件
- 検査条件は,表を再定義して表の再構成が行なわれるときにも検査されます。
違反メッセージの設定
- 検査条件に違反した値を入力しようとしたときの違反メッセージを指定することができます。
- 違反メッセージを特に指定しないと,DBPro であらかじめ決められているメッセージが表示されます。また,表の再構成で検査条件に違反したときも決められたメッセージが表示されます。
検査条件の検査時機
- 項目に入力された値が検査条件を満たしているかどうかチェックするタイミングを次のいずれかにすることができます。
レコード確定時 | 他の項目の入力も終わり,レコードが表に格納されるときにチェックされます。 |
項目ごと | 項目の値を入力するたび,あるいは訂正するたびに検査されます。 |
注意
- 項目値がナルのときの検査
項目検査条件では,その項目の値がナルの場合も正当とみなされます。これは,正確には次のようなことを行なっているからです。
検査条件式:[]<50 を指定したとき,[] が未入力だと比較式の値はナルになります。ナルは偽と解釈されるのでこのままだと不当な項目とみなされてしまいます。そこで,このような項目検査条件式に対しては []<50 OR #ナルか([]) という式とみなして検査条件を評価しています。
しかし,もともと #ナルか の含まれている検査条件式,たとえば NOT #ナルか([]) などに同様の処理を施したのではうまくいかないので,#ナルか の含まれない式に対してだけ式の加工を行なっています。
また,[英語]<[国語] のような他項目の参照を含む検査条件式を書いた場合は,どちらかが未入力だとうまくいかないので,[英語]<[国語] OR #ナルか([英語]) OR #ナルか([国語]) のようにしなければなりません。
一方,表の検査条件では,どの項目が検査対象になっているのか判断できないので,このような式の加工は一切行なわれません。このことは,[英語] という項目に項目検査条件式 [英語]<50 と書いたのと,同じ式を表の検査条件式に書いたのでは動作が異なることを意味します。表の検査条件式で同様のことをしたければ,[英語]<50 OR #ナルか([英語]) とする必要があります。
- ファイル内変数を含む検査条件
検査条件式にファイル内変数を書いた場合は注意が必要です。
検査条件が検査されるのは項目確定時にしろ,レコード確定時にしろ,レコードが編集されたときだけです(表検査条件でも同じ)。ファイル内変数の値が変更されたとき([他]-[変数])は検査されません。したがって,レコード編集時には検査を通った値が変数の値を変更したとたんに違反する値になり得ます。変数の値を検査条件式で参照している表で,その変数の値を変更した場合は,安全のために表再構成をして全レコードの検査を行なってください。
表編集ウィンドウや表印刷において,表をどのような形で表示・印刷するかを指定する情報の集まりが表示形式です。
表示形式の内容
- 表示形式には次のような情報が収録されます。詳細は,表示形式ダイアログを参照してください。
- 項目の表示順序
- 指定した順に左から表示・印刷されます。幅:ゼロの項目は表示されません。
先頭から指定した個数の項目を画面左,あるいは印刷用紙の左端に常に表示させておくことができます。
- 各項目の表示方法
- これには次などが含まれます。
幅,高さ,水平配置,垂直配置,折返し表示するか否か,文字フォント,文字送り,行送り,太字/下線/立体などの文字スタイル,文字色,背景色,書式,見出し文字列,印刷時のグループ化処理,印刷時オプション
- レコード背景色
- マーク付きレコード,集計レコードに色を付けることができます。あるいは,nレコードおきに交互に色を付けることができます。表示形式:レコード背景色ダイアログ
- その他のオプション
- 全体の拡大縮小率,レコード高さ自動拡張する/しないなどのオプションがあります。表示形式:共通設定ダイアログ
表示形式の登録と表示形式名
- 一つの表に対して幾つもの異なる表示形式を作成して,名前を付けて登録しておくことができます。登録された表示形式は,表示形式名を指定するだけで,いつでもその形で表示したり印刷したりできます。
- 表示形式の作成と登録は,表定義ウィンドウと表編集ウィンドウの両方で行なえます。
[属性]-[表示形式]
[表示]-[表示形式]
標準表示形式
- 表を新たに作成すると,「標準表示形式」と呼ばれる表示形式が自動的に作成されます。利用者が特に表示形式を作成しなかった場合,表編集ウィンドウでは標準表示形式を使って画面表示されます。
- 標準表示形式も通常の表示形式と同じように利用者が内容を変更できます。ただし,標準表示形式を削除することはできません。
表示形式の利用
- 表示形式の最大の用途は,表編集ウィンドウの表示形態の指定です。
表編集ウィンドウは,いずれか一つの表示形式を使って表示されています。[表示]-[表示形式]コマンドで別の表示形式を指定するか,またはツールバーの表示形式リストから別の表示形式を選ぶと,選んだ表示形式を使った表示に切り替わります。
マウスを使って表示されている項目の幅を変更したり,[表示]メニューの[表示項目固定],[表示項目移動],[フォント]などによって,使用中の表示形式の内容を一時的に変更することができます。これらの変更は,表をクローズするときに表示形式として保存するか否か尋ねられます。
- 表示形式のもう一つの用途は,表印刷での印刷形態の指定です。
表印刷の形式は印刷形式として指定・保存しますが,印刷形式中に保存される情報は表印刷全体に関する情報であり,個々の項目についての印刷方法は表示形式として作成しておきます。印刷形式からはその表示形式を指定して各項目の印刷形態を決定します。
表示形式に保存されている情報の中には,印刷のためだけの情報が数多くあります。表示形式ダイアログ:印刷1ページ,印刷2ページ
- 画面表示用に作成する表示形式と,表印刷用に作成する表示形式とは同じであってもかまいません。画面,用紙の特性を考慮して作成すれば,通常は別のものになるでしょう。
表全体に関する幾つかの属性があります。
- 表属性は,表定義ウィンドウの[属性]-[表属性]で指定します。表属性ダイアログ
- 表属性には次のものがあります。詳細は,表属性ダイアログを参照してください。
表題 | 表のタイトルです。表印刷やカード印刷のヘッダー,フッターなどで参照することができます。 |
同時使用 | この表を同時使用するかを指定します。「開くときに指定」とすれば,表を使うたびに指定できます。 |
バックアップ | この表のバックアップファイルを作成するかを指定します。「開くときに指定」とすれば,表を使うたびに指定できます。同時使用する場合はバックアップファイルは作成できません。 |
ナル値の扱い | 項目属性の[ナル値の扱い]に対する既定値です。項目属性の[ナル値の扱い]を「表の既定値」としたときに,ここでの指定が使われます。 |
挿入・訂正中の再計算 | レコード挿入中や訂正中に,1セル入力するたびに計算項目を再計算するか否かを指定します。 |
あふれ改行文字既定値 | 表示形式の項目表示属性で[あふれ改行文字]を「表のあふれ改行文字を使う」と指定したときに用いられるあふれ改行文字です。 |
カーソル同期 | この表から導出されるすべてのウィンドウで,フォーカスが移動したときに直前のウィンドウと同じレコードが表示されるようになります。 |
整列状態は全ウィンドウで共通 | このカードを表で開く場合,原則としてカード属性の[使用索引]で指定されている索引で整列します。一つの表ファイルに対して複数のカードが開かれた場合も原則は変りません。しかし,この指定をすると全てのウィンドウで同じ索引を使用するようになります。 |
注釈 | 覚書きであって特に使われることはありません。 |
検査条件 | 入力されたレコードが正しいかどうかを検査します。違反したときには,指定したメッセージを表示させることができます。
単独の項目に関する検査条件は,項目属性の検査条件にも書けます。項目属性:検査条件とその関連オプション |
- DBPro V3 の表属性に含まれていた次の属性は,廃止または他の場所に移動しました。
主キー | 表属性としては廃止されました。主キーに指定しようとする項目の[入力必須]を指定し,その項目を整列キーとする重複禁止の索引を登録すれば,その項目を主キーとして使えます。 |
重複禁止項目 | 重複禁止を指定しようとする項目を整列キーとする重複禁止索引を登録してください。 |
項目ごとに検査 | 項目属性の検査条件を1項目入力ごとに検査するか,レコード確定時にまとめて検査するかは,その項目ごとに指定できるようになりました。項目属性:検査条件とその関連オプション |
索引( DBPro V3 では整列索引と呼んでいました)は,キー項目の値を指定することによって,その値をもつレコードが表ファイル中のどこにあるかを瞬時で分かるようにするための「キー項目値→レコード位置」対応データ集です。あらかじめ索引を用意しておくことによって,後述するレコードの整列,検索,選択,併合などが高速に実行できます。また,同じキーをもつレコードを一つのグループとして集計したり,1枚の伝票に表示・印刷したりするときのグループ分けのためにも索引を用います。
DBPro で利用者が作成する索引は,レコードの整列にも用いるため,キー項目が順番に並ぶ B-Tree という構造で実現されています。
- キー項目
- 整列の基準になる項目,グループ分けのキーになる項目,あるいは表の併合時に照合キーとして使う項目などを指定します。キー項目には複数の項目を指定できます。複数の項目を指定した場合,キー項目すべての値を指定するか,上位から連続する幾つかのキー項目の値を与えればレコードの位置が求められます(下位のキー項目の値は必ずしも必要ありません)。
- 整列順
- 各キー項目ごとに,その項目をどのような順番で並べるかを指定します。指定できる整列順は,項目のデータ型によって異なります。
昇順/降順 | 数値,整数,実数,年月間隔,日時間隔の場合に小さい順/大きい順に並びます。 日付,時刻の場合に古い順/新しい順に並びます。 文字列型,ファイル型には指定できません。 |
辞書順/辞書逆順 | 文字列型,ファイル型の項目に指定できます。辞書順 |
文字符号順/文字符号逆順 | 文字列型,ファイル型の項目に指定できます。各文字の文字符号(JIS符号)によって順番が決まります。 |
索引を使うと瞬時にレコードを並べかえられます。
索引の重要な効用として幾つかの処理の高速化があります。
次の各処理では,ある項目の値が同じである連続するレコードを一つのグループとして扱います。グループ分けに使う項目をキーとした索引を作成しておくと,表の中の同じ値をもつレコードを1箇所に集めることができます。
- ある項目が同じ値になるレコードを二つ以上入力されることを禁止することができます。索引を作成するときに [重複禁止] を指定しておくと,キーに指定したすべての項目の値が同じになるレコードは入力できなくなります。索引ダイアログ
- 注:
- DBPro V3 までは,表属性としても重複禁止項目を指定できましたが,V4 からは索引の重複禁止指定に一本化されましたので,項目の重複禁止を指定するときは,それらの項目をキーにする重複禁止索引を作成してください。
DBPro では特に主キーを必要とはしません。
- 主キーとは,表の一つのレコードを特定するために,すべてのレコードでユニークになる値を持つ項目のことで,一般的なリレーショナルデータベースでは必ず指定しなければなりません。
- DBPro V3 までは必要な場合に限り,表属性として主キーが指定できました。そして,その実体は <主キー> 索引と呼ばれる重複禁止索引と,そのキー項目に対する入力必須属性でした。
- DBPro V4 からは表属性としての主キーが廃止されました。主キーが必要な場合は,主キーとしたい項目の項目属性に入力必須を指定し,それらの項目をキー項目とする重複禁止索引を作成してください。項目属性ダイアログ:条件ページ,索引ダイアログ
そのための意味もあり,V4 からは索引作成が表定義ウィンドウで行なえるようになりました。[属性]-[索引]
登録されている索引の表示と印刷
表には,データそのもの(レコード)とは別に,さまざまな機能を実現するための情報・パラメータを登録しておくことができます。これらの登録情報を使うと,名前を指定するだけでそれぞれの機能を簡単に実行できます。
これらの情報は,[他]-[登録情報印刷](表定義ウィンドウ,ビュー定義ウィンドウの場合は[ファイル]-[印刷])で印刷できます。
-
表示形式 | 項目の表示順序,幅,表示属性を指定します。 | 表示形式 |
索引 | レコードの整列,グループ化,処理の高速化などに利用します。 | 索引 |
印刷形式 | 表印刷の形を登録します。 | 表印刷と印刷形式 |
探索条件 | レコードの検索や選択を行なう論理条件を登録します。 | レコードを探す |
集計定義 | 項目ごと,グループごとの小計,総計などを登録します。 | 集計と集計ウィンドウ |
クロス集計定義 | 集計結果を見やすい形に整理します。 | クロス集計 |
併合定義 | 他のファイルとの間でマスタ/トランザクションの更新処理を行なう方法を登録します。 | 併合ダイアログ |
読込み定義 | 他のファイルからデータを読み込むときのパラメータを登録します。 | 読込みダイアログ |
書出し定義 | 他のファイルへデータを書き出すときのパラメータを登録します。 | 書出しダイアログ |
置換式の登録 | 置換式を指定して項目の一斉置換を行なう際に,複雑な式は登録しておくことができます。 | 式で置換ダイアログ |
フォント設定 | フォント名とサイズを組にして,フォント番号で参照できるようにします。 | フォント設定ダイアログ |
それぞれの表には,項目の値を参照するのと同じように参照・更新することができる変数を定義しておくことができます。式の中で項目参照を書けるところにはどこにでもファイル内変数名も書くことができ,レコードには依存しない,表全体で一つの値を参照・更新することができます。
ファイル内変数の属性と値
- ファイル内変数名は,項目名と同じ規則で命名します。項目名
- ファイル内変数名,項目名を合わせて,すべての名前がユニークでなければなりません。すなわち,ファイル内変数名は,同じ表のどの項目名およびどのファイル内変数名とも同じであってはなりません。
- ファイル内変数は,あらかじめデータ型を指定します。項目と同じデータ型が指定できます。データ型
- ファイル内変数には,項目に入力できる値と同じ値を設定できます。データ型と定数
- ファイル内変数の値は編集不可とすることができ,その場合は定数として動作します。すなわち,式の中で項目参照と同じようにして定数名を引用できることになります。
- [ナル値の扱い]は,項目の場合と同様に,変数値がナルのときにゼロとして扱うか否かを指定します。ナル値の扱い
- ヒントは,この変数に対する変数オブジェクトがカードに置かれたときに,ステータスバーに表示(ヒント1)またはポップアップ(ヒント2)されます。ヒント
- 注釈は,覚書きとしてだけ保存されます。特に使われるところはありません。
ファイル内変数の定義
- ファイル内変数は,表定義ウィンドウの[属性]-[変数定義]で定義します。変数の値もここで与えておくことができます。変数定義ダイアログ
値の参照と変更
- ファイル内変数を参照するときは,式中にそのファイル内変数名を書きます。項目を参照するときと同様に,通常は角括弧 [ ] で括って書きます。DPL中でファイル内変数を参照するときは,項目のときと同様にカーソルで指定するか,ファイル内変数名の前にピリオドで区切って <表修飾子> を書きます。式の要素:項目参照
- 基本項目の初期値式,あるいは計算項目や仮想項目の計算式の中でファイル内変数の値を参照することができます。そのような式を書いておくと,レコード挿入時や訂正時に,ファイル内変数に与えられている値によってその項目の値を変更することができます。
- DPLで記述するアプリケーションでは,表に依存するさまざまな情報をファイル内変数に保存しておいて,次にその表を利用するときに保存しておいた情報を取り出すことができます。
- 対話編集中にファイル内変数の値を参照したり,変更するときは,[他]-[変数]コマンドを使います。変数ダイアログ
注意
- ファイル内変数は,DPL中の変数や,式の中で一時的に使用する変数(いずれも $ で始まる変数名をとる変数)とはまったく別のものです。むしろ,ファイル内変数は通常のレコードの項目に近いもので,表のどのレコードに対しても同じ値をもつ項目と考えると良いでしょう。
表ファイルは,一つの表に関するあらゆるデータが格納されるファイルです。基本データであるレコードが格納されるとともに,表属性,項目属性,フォント設定などの定義情報,索引,表示形式,探索条件などの登録情報も保存されます。
表ファイル名と拡張子
- 表ファイルの名前は,Windowsで使うことができるファイル名をそのまま使えます。拡張子は .dpt です。
- 表ファイル名の本体部分がそのまま表の名前として利用されます。英数字以外の文字(たとえば空白など)を含むファイル名を表修飾子として使う場合は,必ず引用符で括ってください。項目参照
- 表ファイルに関連して次のファイルが用いられます。これらは,拡張子だけが変えられています。
*.dpt | 表ファイル本体です。 |
*.~pt | 表ファイルのバックアップファイルです。表ファイルの1回前の保存状態をもっています。 |
表ファイルの大きさ
- 表ファイル自身に大きさの制限はありません。お使いの環境で資源が許す範囲の大きさまで利用できます。多くの場合は,Windowsのファイルシステムにより制限を受けることになるでしょう。