オートマチック　サブフォーム　エディタ
ASE(Automatic Subform Editor) v3.0.0

０．はじめに

本プログラムはサブフォーム画面を簡単に作成するために開発された画面設計ツールです。
このツールを使用することで、矛盾のないサブフォーム定義ファイルを作成することが出来ます。
また、PostgreSQLでの開発をECPGプリプロセッサで行う場合、DBの構造に合わせてテーブルを設計することが出来ます。
aseの画面ファイルから生成する定義ファイル(ファイル名の前にアンダースコアが付いている)は、
テーブルの各列の型(文字列型、数値型、DATE型、通貨型)、や属性(文字列の長さ等)が定義出来、
aseのECGPソース生成機能により、自動的にECPGソースファイルを生成します。
つまり、PstogreSQLのテーブル作成から、DB操作を行うC言語のインターフェースまでをaseの画面設計で行うことが出来ます。

ase は今回のバージョンアップに伴い、CW(Complete Walker)のファイラー上から操作するようになりました。
ところが、CWのUTF-8を用いたマルチバイト環境からの操作ではエディタ画面の描画スピードが極端に遅くなります。
そのため、従来のEUCコードを利用した単独の ase を添付してありますが、どちらの操作に於いても画面への直接日本語入力
を行わなければ使用上問題はありません。日本語入力を行いたい場合はEUC用の ase を利用することを推奨します。
また、CW及び、ase において開発したアプリケーションは、GNOMEのGNOME端末画面を利用する場合は F1 キーから F5 キーが使用出来なくなります。
そのため、CW,及び ase において開発したアプリケーションは Linuxの場合は kterm から、Windows の場合は teraterm から操作するようにしてください。
なお、本プログラムは cygwin においても利用可能ですが、DB機能等、PostgreSQLとの試験はしておりませんので御注意をお願いします。
本プログラムを利用して問題が発生し、損害を被っても本作の著者ならびに関係者は一切の責任を負いません。



ASE(Automatic Subform Editor) v3.0.0 

0. preamble 

----------------------------------------------------------------------------------------------

	画面ファイルは [source-file-name].def
	画面定義ファイルは _[source-file-name].def
	ECPGソースファイルは [source-file-name].pgc
	SQLファイルは create[source-file-name].sql

	サブフォームライブラリとECPGの混在したコンパイルは以下のコマンドラインで行うことが出来ます。
	※ PostgreSQLとECPGプリプロセッサがインストールしてあることが必要です。

	ecpg schdytbl.pgc
	gcc -g -I../libsubform -I/usr/include/postgresql -c schdytbl.c
	gcc -O -o schdytbl schdytbl.o ../libsubform/libsubform.a -lncurses -L/usr/lib/postgresql/lib -lecpg

      
----------------------------------------------------------------------------------------------
１．使用方法

    ase -c[ 1colums - (COLS - 1) ] -l[ 3lines - (LINES -1)] subform.def
    画面ファイルの幅と高さを指定出来ます。

    ase [ -e -v -x -s -w -a ] subform.def
	EGA/VGA/XGA/SXGA/WXGA/MAX-DISPLAYを確定します。

    ase subform.def
	指定されたファイルの大きさに合わせます。

  操作キー
	s: ラベル、テキストボックス、グリッドの左上を指定します。
	e: グリッドの右下を指定します。
	E: テキストボックスの右下を指定します。
	^E: ラベルの右下を指定します。
	K_IC(Insert-key):DB_TITLE(テーブルの列名)を入力します。
	r: 実行時指定した画面設計ファイルを読み込みます。
	c: サブフォーム定義ファイルを書き込みます。
	i: ファイル名の先頭にアンダースコアが付加されます。セルの属性を入力します。
	W: 画面設計ファイルを書き込みます。
	S: コピーを開始する位置を決定します。
	C: コピーを終了する位置を決定します。
	P: ペーストを開始する位置を決定します。
	ESC: ECPキーで直前の開始コマンドのマークを元に戻します。
	.: . の文字で画面を戻します。
	-(L): （ｌ）左詰、（ｔ）テキスト型、（e）編集可能の属性を設定します。
	D: （ｒ）右詰、（ｄ）DATE型、（e）編集可能の属性を設定します。
	R: （ｒ）右詰、（＄）通貨型、（e）編集可能の属性を設定します。
	^R: （ｒ）右詰、（ｎ）Numeric型、（e）編集可能の属性を設定します
	K: （p）ステップの設定を行います
	^K: （k)スキップの設定を行います
	j: カーソルを下に移動します。矢印キーでも可能です。
	k: カーソルを上に移動します。矢印キーでも可能です。
	h: カーソルを左に移動します。矢印キーでも可能です。
	l: カーソルを右に移動します。矢印キーでも可能です。
	q: ase の終了
    
	※基本的に編集属性が設定されます。編集属性をNONEにしたい場合は生成された定義
	  ファイルを手作業で修正してください。EDIT --> NONE
	※新しく追加されたDB_TITLEの項目は{}の中に入力用ウインドウで英数字記述します。
	  DB_TITLEは複数行に渡って記述することが出来ます。
	  例：{Schedule_name:16}{Cmd_line:256}{Update_date}
	  ：と右に数字が無い場合はセルの長さが既定値となります。
	※ECPGソースにおいて、DATE型は基本的にchar型として操作されます。

--------------------------------------------------------------------------------------------

デフォルトでは(-)の属性文字が書き込まれます。
この文字の場合該当セルは、（ｌ）左詰、（ｔ）テキスト型、（e）編集可能、（p）ステップの属性になります。
また、．文字を押下し、ｓキーとＥキーで選択したエリアを．文字で初期化します。
なお、ｓキーを押したすぐ後でＥＳＣキーを押すと左上設定文字を元に戻すことが出来ます。

----------------------------------------------------------------------------------------------
２．操作手順
まず、カーソルをラベルを付ける左端位置まで移動します。
ｓキーを押下し、次にラベルの右端を決定するためカーソルを移動します。
テキスト型(-)で操作した場合、決定した左端位置には - でマークされます。
このとき、カーソルは１行以上下に移動してください。３行下に移動すると２行のラベルを作成することになります。
決定は＾Ｅで行います。（ と ）で囲まれたラベルエリアが定義されます。
デフォルトでは左詰、テキスト型、編集可能の（----）と定義されますが、Ｌで（ltep）、Ｒで（r$rp）、
＾Ｒで（rnep）とセルの属性を指定します。また^Kで（ltek）で左詰、テキスト、編集可能、但しスキップするという設定も出来ます。
次にテキストボックスを作成します、操作要領はラベルと同じですが、決定キーはＥキーです。
< と >で囲まれたテキストボックスエリアが定義されます。
最後はグリッドです。グリッドはｓキーで左上位置を決定した後、各列毎にセルの属性を設定しながら列を定義します。グリッドでは定義ファイル作成時一番多い列の行数が実際の行数として設定されますので注意してください。ｓキーで［ と ］で囲まれた列が定義されます。
※実際のセルの長さは [ の１文字先から ] の文字上までになります。

これで、定義は終了しました。次にcキーを押して定義ファイルを書き込みます。
定義ファイルはこの場合、_subform.def と先頭にアンダースコアが付加された名前になります。
定義ファイル作成途中でECPGソースを生成するかどうかの質問するメッセージウインドウが表示されますが、もし生成しない場合は N と答えてください。
また、定義ファイルを作成する前に、Ｗキーで画面設計ファイルを保存することが出来ます。保存ファイル名は起動時に指定した名前になります。
画面設計ファイルを呼び出すには ｒ キーを押します。このとき、編集画面の大きさがファイルより小さい場合は正確に読み込むことが出来ませんので注意してください。
DB設計を行う場合は画面ファイルに{}で囲まれた位置にテーブルカラムの名前、または名前と容量(length)を記述します。
記述はIsertキーでウインドウからの入力で行います。{}は自動的に書き込まれますので項目名だけの入力でOKです。
例：{Schedule_name:16}{cmd_line:256}{time} 以上の記述は複数行に渡って記述することが出来ます。
また、画面ファイルの何処にでも記述することが可能となっています。(但しテーブルカラムの順番に従って記述する必要があります)
DB設計は画面定義ファイル(_filename.defの中にDB_TITLES)として保存されます。
aseは画面ファイルのDB定義をECPGソースに反映します。ECPGソースの中では、画面ファイルのGRID_TITLESのlengthが優先されますが、DB_TITLESが定義されてた場合、DB_TITLRSの定義が優先されECPGソースの配列の長さに反映されます。

----------------------------------------------------------------------------------------------
４．性能
本プログラムの性能は以下になります。

最大編集可能領域：２２６桁７８行
最大セル幅：１６８桁
最大行数：７８行
最大文字数：２５５バイト
定義可能数：５１２×（各属性の総数）
コピー可能領域：２５６桁×７８行

