ホームページ
Products
LINK
Copyright © 2004 Grunen
| |
One Table DB の構造
構成
- データベースファイルは複数管理出来ます。
- データベースファイル内には1つのテーブルと複数のマスタテーブル、集計方法を設定出来ます
外部連携の方法はテーブルデータの連携とデータベース全体の連携の2種類があります。
テーブルデータの連携
- テーブル表示のサブメニューから行う外部連携です。
- 転送データはCSV形式で転送します。
- 文字コードはシフトJISコードです。
- データのみを転送し、テーブル設定情報(列名、列幅など)は転送しません。※
- 書式は以下のファイル形式のテーブルデータ部分のみです。
- 例えば携帯間でデータをやり取りする場合同じテーブル設定を持っている必要があります。
データベース全体の連携
- 外部連携メニューから行う外部連携です。
- 転送データはCSV形式で転送します。
- 文字コードはシフトJISコードです。
- 以下の書式でデータ転送します。
- 書式の誤ったデータを受信したときの動作は不定です。;;
ファイル形式
分類 |
データ書式 |
DBヘッダ |
テーブル数 |
ファイル名 |
|
|
|
|
テーブル
ヘッダ |
レコード数 |
カラム数 |
テーブル名 |
説明 |
ビュータイプ |
追加情報 |
カラム名1 |
カラム名2 |
・・・ |
カラム名n |
|
|
データ型1 |
データ型2 |
・・・ |
データ型n |
|
|
表示幅1 |
表示幅2 |
・・・ |
表示幅n |
|
|
初期値1 |
初期値2 |
・・・ |
初期値n |
|
|
テーブル
データ |
データ1-1 |
データ2-1 |
・・・ |
データn-1 |
|
|
: |
: |
: |
: |
|
|
データn-1 |
データn-2 |
・・・ |
データn-n |
|
|
以下テーブルヘッダ、テーブルデータをテーブル数分繰り返します |
- データテーブル、マスタ、集計設定はすべてテーブル形式で保存しています。
- データテーブルのテーブル名はT固定とします。
- マスタテーブルのテーブル名にはマスタ名に接頭語
"M"を付加します。
- 集計テーブルのテーブル名には集計名に接頭語
"Q"を付加します。
- 説明は現在使用していないので空データとします。
- ビュータイプは 0:Table 1:Group 2:Graph
となり、数値で指定します。
- データ型は、0:数値 1:漢字 2:英字 3:数字となり、数値で指定します。
- 表示幅は表示半角文字数で指定します。
- 現在のところ追加情報は、集計結果のレイアウトの格納に利用しています。
- 式は集計の表示式、テーブルの初期値また以下の条件式からも指定します。
- 式は要素と、要素をつなぐ演算子から成り立ちます。
- データ型は自動的に変換しながら演算が行われます。例えば1+1&3="23",1&1+3=14になります。
- 数値に変換される場合、数字は数値になりますが、文字は0になります。
- 通常ゼロで割るとエラーとなりますが、このプログラムでは0になり計算を続けます。
- 式を(
)括弧で囲むことで計算の優先度を指定できます。
- 式の評価は出来る限り柔軟に処理を続行しようと動くので、式の記述に誤りがある場合の動きは不定です。
要素
要素 |
意味 |
例 |
定数 |
文字や数字を直接指定したものです。定数の中に演算子に使われる文字やスペースを入れたい場合はダブルクォーテーションで囲む必要があります。 |
123 あいう "AB+C" |
関数 |
以下に示す関数も指定可能です |
DATE(YMD) |
参照 |
テーブルの列名を指定するとその列の値が展開されます。 |
日付 金額 |
演算子
算術演算子
演算子 |
優先度 |
意味 |
* |
1 |
乗算します。 |
/ |
除算します。0割りは0として計算を続けます |
+ |
2 |
加算します。 |
- |
減算します。 |
& |
文字列を結合します。 |
省略 |
&が指定されたものと見なしますが、明示的に指定することをお勧めします。 |
比較演算子
- 式が成立するか比較し、成立する場合は真(0)、成立しない場合は偽(1)を返す。
- 結果は数値で返るのでその値を元に演算を行うことも可能。
演算子 |
優先度 |
意味 |
= |
3 |
同じ。ワイルドカードが指定可能。 |
== |
同じ。ワイルドカードは指定不可能。 |
<> |
異なる。ワイルドカードが指定不可能。 |
< |
未満。 |
<= |
以下。 |
> |
超える。 |
>= |
以上。 |
※優先度は小さいほど先に計算されます。優先度が同一レベルの演算は左から行います。
式の記述例
式 |
式の評価結果 |
あいう |
あいう |
(1+2)*3 |
9 |
5+あいう |
5 "あいう"は0(ゼロ)と判断される |
DATE(Y) & 年 & DATE(D) & 月 |
実行日が2004/2/29の場合、2004年02月
ただし、この場合DATE(Y年D月)としたほうが効率がよい。 |
年&月&日 |
年,月,日はそれぞれテーブルの列名になっているとすれば、例として20041121 |
年齢 < 20 |
テーブル列に年齢がある場合、二十歳前のデータで式が成り立ち、真(0)となる。 |
- 条件式はフィルタの入力時、集計の抽出条件の登録時に指定することが出来ます。
- 条件式は比較演算子に続いて上記式を記述します。(左辺の要素は決まっているので指定しない)
- 比較演算子を省略した場合 =(イコール)が指定されたと見なします。
- ワイルドカードが使えます。%は任意の文字列、_は任意の1文字をあらわします。エスケープシーケンスはありません。
- 関数は式の要素として指定可能です。
- 関数名は大文字でも小文字でもかまいません。
関数 |
パラメータ |
意味 |
DATE |
書式文字 |
現在日付を書式化した文字として返します
書式文字の以下のキーワードは置き換えられ、それ以外の値はそのまま返されます。
Y→西暦4桁 , y→西暦下2桁
M→月
D→日
H→時間(24時間表記)
N→分
S→秒
例えば実行日が2004/2/29 12:34:56だとした時の関数の呼び出し結果
DATE(YMD HNS) → 20040209 123456
DATE("Y/M/D") → 2004/02/09 |
LEFT |
文字
文字数 |
文字の左から文字数分切り出します |
RIGHT |
文字
文字数 |
文字の右から文字数分切り出します |
MID |
文字
文字位置
文字数 |
文字の文字位置から文字数分切り出します |
IF |
比較式
真の結果
偽の結果 |
比較式の結果に応じた値を返します。
比較式とは比較演算子を使った式の事を指します。例えば
年齢<20 |
AND |
比較式1
比較式2 |
両方の比較式が成立する場合は真(1)、成立しない場合は偽(0)を返します。 |
OR |
比較式1
比較式2 |
どちらか片方の比較式または両方の比較式が成立する場合は真(1)、成立しない場合は偽(0)を返します。 |
このプログラム上、数値表現には32ビットの整数型を使い、小数部2桁の固定小数として扱っています。よって表現できる範囲は+21474836.47〜-21474836.48となります。
この表現範囲は計算過程も対象となり、計算途中でこの精度を超える小数は切り捨てられ、整数部が超えた場合は異常値となります。特に除算や乗算を行う場合は注意が必要です。
グラフ表示
数値列を最大4つまで折れ線グラフで表示します。
軸ラベルには最初の数値列の直前の列を採用します。あまり長い文字だと見にくくなります。
グラフの目盛りは自動で判断しますが、軸が1つしかないので桁の違う数値が2列以上ある場合、値の小さいほうはグラフで変動がわからない可能性があります。
グラフで見やすくならない場合は、この条件を踏まえてグラフ用の集計を設定し参照することをお勧めします。
|