|目次|前ページ|次ページ|
─────────────────────────────────────
29.グリッド(TStringGrid)の使い方
─────────────────────────────────────
[1]グリッド(TStringGrid)オブジェクトの作成
→共通ルーチン【ZVCMGRD】【ZVCMGRD2】
@予期しない値がセットされていないようにローカル変数を削除します[D KILL^ZVCMSUB]
Aイベントマスクを設定します、例では[V2EVENT^ZVCMGRD]ですが->適切に設定
Brectパラメタを作成します。[D SETRECT^ZVCMGRD]
(x,y,w,h):位置サイズ情報(行桁サイズモードに設定後)
(color):コントロールの色番号(Colorプロパティ)
-->指定なしの場合デフォルトの色
(font):コントロールのフオント番号(Fontプロパティ)
-->指定なしの場合(null)[font=498]のフオントをセット[SETRECTにおいて]
-->0:指定の場合デフォルトのフオント
(keycode):キーボードイベントを発生させる終了キーコードのセット
-->0を指定した場合0番のキーセットを指定した意味
※イベントマスク設定でキーボードイベントを有効に設定しないとキーボードイベントは発生しません
(その他のプロパティ):(zorder,TabOrder,TabStop)...は必要があれば設定します。
※[D SETRECT^ZVCMGRD -> rectstrが作成される
C グリッド作成情報をeditパラメタに設定します。[editstr]
※[S defwidth=(明示的にサイズ変更されていない全ての列の幅(桁数)小数点可)]
※[S width=(各Columnの幅(;でColumn数分指定)]
<- vcomライン数で指定(小数点可)
--> インデックス(0)の幅;インデックス(1)の幅;...;
※[S height=(デフォルトのRowの高さ)]
<- vcomライン数で指定(小数点可)
※[S scroll=スクロールバーの指定]
--> 1:無し 2:水平方向 3:垂直方向 4:両方(デフォルト)
※[S columns=仮のColumn全体数(ColCount)]
※[S rows=仮のRow全体数](RowCount)
※[S Fcolumns=スクロールしない固定部のColumn数](FixedCol)
※[S Frows=スクロールしない固定部のRow数](FixedRows)
※[S Lindex=左端に表示されるスクロールするColumnのインデックス(0,1,2,...)](LeftCol)
※[S Tindex=上端に表示されるスクロールするRowのインデックス(0,1,2,...)](TopRow)
※[S Fcolor=スクロールしない固定部の色](FixedColor)
--> 色コード参照
※[S editmode=エデットモードの指定](Options<<goEditing)
--> 1:エデットモード null:参照のみ
※[S options=オプションの指定(付加)(;で区切って複数指定)](Options)
--> オプション;オプション;オプション;...
1:固定列を分ける垂直線が描画される(goFixedVertLine)
2:固定行を分ける水平線が描画される(goFixedHorzLine)
3:スクロール可能列を分ける垂直線が描画される(goVertLine)
4:スクロール可能行を分ける水平線が描画される(goHorzLine)
5:各セルの範囲を一度に選択できる(goRangeSelect)
6:入力フォーカスのあるセルは特別な背景色で描画(goDrawFocusSelected)
7:スクロール可能列は個別にサイズ変更できる(goRowSizing)
8:スクロール可能行は個別にサイズ変更できる(goColSizing)
9:スクロール可能列は個別にマウスで移動できる(goRowMoving)
10:スクロール可能行は個別にマウスで移動できる(goColMoving)
11:セルの内容を変更できる(goEditing)
12:[Tab]および[Shift]+[Tab]キーで各セル間を移動できる(goTabs)
13:各セルではなく行全体を選択する(goRowSelect)
14:グリッドは編集モードにロックされる(goAlwaysShowEditor)
15:スクロールボックスをドラグ中グリッドイメージが更新される(goThumbTracking)
※[S delopts=オプションの指定(削除)(;で区切って複数指定)
--> オプション;オプション;オプション;...
※[S respkeys=各行の左からのキーの個数(リスポンスで取得する)]
※[D SETEDIT^ZVCMGRD]グリッド作成情報を作成
※[S editstr=EDITSTR]
D[D CREATE^ZVCMGRD]で使用されるパラメタを設定する
※[S cid=(1〜1023の一意の番号)]
※[S form=(1〜1023の親フォームのフォーム番号)]
※[S parent=(1〜1023の親コントロールのcid番号)]
※[S group=(0〜32767のグループ番号)]
※[D CREATE^ZVCMGRD]コントロールオブジェクトの作成
E作成後グリッドコントロールの中に表示する表データを追加する。
※[S cid=(1〜1023の一意の番号)]
※[S start=開始rowインデックス(0,1,2,3,...)]
※[D DOWNLOAD^ZVCMGRD]コントロールの中に表示する表データを追加
※[W "(カラム-0文字列,カラム-1文字列,カラム-1文字列,...)"_$C(13)_$C(10)]
※[W "..."]
※[W "(カラム-0文字列,カラム-1文字列,カラム-1文字列,...)"_$C(13)_$C(10)]
※[W $C(26)
Fイベント応答メッセージからコントロールの中に選択されているセルを取得する
※イベント種別=クリックイベントとセルが選択イベントで処理します
※イベント応答メッセージを読み込む[S RESP=$$ReadMsg^ZVCMSUB(Rtail)
※読み込んだ(受信)イベント応答メッセージを分解する[D VCMRESP^ZVCMSUB]
※(Revent2):イベント種別
※(Rselno):カレントカラム(桁)【最新の選択情報】
※(Rselcnt):カレントロー(行)【最新の選択情報】
※(Rmain):カレントセルの文字列
※[Rsub]:キーの文字列を(,)で結合したもの
※[Roption]:選択セルの矩形(左端;上端;右端;下端;Col数;Row数)(0,1,2,...の値)
--->グリッドのセルが選択されたイベント応答時[選択矩形情報は選択される前の情報]
--->Col数;Row数は固定部とスクロール可能なものを含みます
※(Rkeycode):キーボードイベント時仮想キーコード
※(Rshift):シフト状態 0:無し 1:シフト 2:コントロール 4:<ALT>の組み合わせ
※【(61)左上端のセルが変更されたイベント】の場合は
※[Rselno] = 左端カラム(桁)
※[Rselcnt] = 上端ロー(行)
※[Rmain] = 左上端セルの文字列
─────────────────────────────────────
[2]グリッド(TStringGrid)オブジェクトのイベント
→共通ルーチン【ZVCMEVENT】
→共通ルーチン【ZVCMEVENT7】応答イベントコード定数
─────────────────────────────────────
◆ イベントマスクを設定(応答を可にする)
※イベント設定変数を初期化→ D CLEAR^ZVCMEVENT
─────────────────────────────────────
mask0= 2 : (1)マウス左クリックイベント応答(ビット1)
※イベント設定変数を設定 → D CLICK^ZVCMEVENT
※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2Click],[Revent1=EV1Click]
─────────────────────────────────────
mask0= 4 : (2)マウス右クリック(ポップアップ)イベント応答(ビット2)
※イベント設定変数を設定 → D POPUP^ZVCMEVENT
※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2RClick],[Revent1=EV1Popup]
─────────────────────────────────────
mask0= 8 : (3)キーボードイベント応答(ビット3)
※イベント設定変数を設定 → D KEYBORD^ZVCMEVENT
※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2Keybord],[Revent1=EV1Keybord]
─────────────────────────────────────
mask0= 128 : (7)グリッドのセルが選択された(ビット7)[選択矩形情報は選択される前の情報]
※イベント設定変数を設定 → D SELECTCELL^ZVCMEVENT
※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2SelCell],[Revent1=EV1SellCell]
─────────────────────────────────────
mask1= 8 : (11)フォーカスを失う時応答(ビット3)
※イベント設定変数を設定 → D KILLFOCUS^ZVCMEVENT
※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2Exit],[Revent1=EV1Exit]
─────────────────────────────────────
mask1= 16 : (12)フォーカスを得る時応答(ビット4)
※イベント設定変数を設定 → D SETFOCUS^ZVCMEVENT
※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2Enter],[Revent1=EV1Enter]
─────────────────────────────────────
mask2= 64 : (22)マウス左ダブルクリック応答(ビット6)
※イベント設定変数を設定 → D LEFTDBL^ZVCMEVENT
※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2DblClick],[Revent1=EV1DblClick]
─────────────────────────────────────
mask7= 32 : (61)左上端のセル位置が変更された(ValueList)(ビット5)(TopLeftChanged)
--> グリッド内の非固定セルがスクロールされた時
※イベント設定変数を設定 → D TOPLEFTCHANGE^ZVCMEVENT
※リスポンス応答メッセージ中のイベントコード→ [Revent2=EV2TopLeftCng],[Revent1=EV1Other]
─────────────────────────────────────
※イベントマスクを設定 → D SETEVENT^ZVCMEVENT
─────────────────────────────────────
[3] ZVCSGRA -->
※※※少量のデータベースからグリッドに全件表示します
ただし添字の異なった次元にデータを持つ場合には
使用出来ません
<<<入力変数>>>
※※※ テーブルに関する情報変数 ※※※
TTYPE => 定型テーブル名と添字の深さ
TNAMEとLEVEL,SUBSCR(i) は
(場合によってはPOSも)自動的に決定されます
※※他の入力変数は指定した値がそのまま有効です
null/<undef>の時はTNAME,LEVELで指定します
TNAME => 汎用テーブル名(グローバル名) ex. STTJ
TUCI => テーブルuci
TVOL => テーブルvol
LEVEL => テーブルグローバルの添字の深さ(次元)1,2,3...
SUBSCR(i) => グローバルの添字の文字列(固定定数)
ex. LEVEL=3 ならば SUBSCR(1)とSUBSCR(2)を設定する
※※※ グリッド表示に関する情報変数 ※※※
POS => 今回は使用しないがカスタマイズで利用可能
DELIM => デリミタ文字(^)がデフォルト)
TOP => グリッドの上端の行位置
LEFT => グリッドの左端の桁位置
WIDTH => グリッドの幅
HEIGHT=> グリッドの高さ
id -> VCM control id番号
PARENT -> 親のフォームcid
FORM -> フォーム番号
GROUP -> グループ番号
-----<<<リストボックスに1回に全件表示する>>>--------
SELECT -> 予め選択された選択肢の添字(LEVEL)(選択結果)
HEADER -> 先頭行に表示する固定ヘッダー(nullは非表示)
(桁0,桁1,桁2,桁3,...,桁n)の様に指定
EVENT -> 0:イベント無(表示のみの時) 1:イベント発生有(入力有)
[2]width <- 各カラムの幅(index1の幅;2の幅;3の幅;...)
[3]height<- Rowの高さ
[4]scroll <- スクロール1:無 2:水平 3:垂直 4:両方
[5]columns <- 仮のCulumn全体数
[6]rows <- 仮のRow全体数
[7]Fcolumns <- 固定部のRow数
[8]Frow <- 固定部のCulumn数(指定できません)[自動決定される]
[9]Lindex <- 可変部の先頭行左端に表示されるCulumnのindex(0,1,2,...)
[10]Tindex <- 可変部の先頭桁上端に表示されるRowのindex(0,1,2,...)
[11]Fcolor <- 固定部の色番号(0->199)
[12]editmode <- 1:エデット可 NULL:参照のみ
[13]options <- オプション(1;2;3;...)
[14]delopts <- 削除オプション(1;2;3;...)
[15]respkeys <- リスポンス応答で取得されるセルの文字列を指定
する左端からのColumn数 key部の桁数(左端より)
-----<<<以下RECT,opt,pm1,...パラメタを参照>>>--------
font -> font番号
color -> 色番号
パラメタ他にもあります
─────────────────────────────────────
[使い方]
※ <<<ローカル変数初期化>>> D KILL^ZVCSGRA
※ <<<作成時呼び出し>>> D CREATE^ZVCSGRA
※ <<<選択時呼び出し>>> D SELECTED^ZVCSGRA
※ <<<フォーカスを失った時呼び出し>>> D KILLFOCUS^ZVCSGRA
※ <<<廃棄時呼び出し>>> D DESTROY^ZVCSGRA
※ラベル(TEST)から(CREATE)の前迄は、使い方のサンプルです。
※ラベル(CREATE)以降は、<<<共通サブルーチン部>>>です。
※ご注意[cid=990,991,992,993,994は予約されています]
※このルーチンをコピーして自分で都合良く変更しても結構です。
─────────────────────────────────────
[4] ZVCSGRB / ZVCSGRB2 -->
※※※多量のデータベースからグリッドに一部分表示します
ただし添字の異なった次元にデータを持つ場合には
使用出来ません
<<<入力変数>>>
※※※ テーブルに関する情報変数 ※※※
TTYPE => 定型テーブル名と添字の深さ
TNAMEとLEVEL,SUBSCR(i) は
(場合によってはPOSも)自動的に決定されます
※※他の入力変数は指定した値がそのまま有効です
null/<undef>の時はTNAME,LEVELで指定します
TNAME => 汎用テーブル名(グローバル名) ex. STTJ
TUCI => テーブルuci
TVOL => テーブルvol
LEVEL => テーブルグローバルの添字の深さ(次元)1,2,3...
SUBSCR(i)=> グローバルの添字の文字列(固定定数)
ex. LEVEL=3 ならば SUBSCR(1)とSUBSCR(2)を設定する
※※※ グリッド表示に関する情報変数 ※※※
POS => 今回は使用しないがカスタマイズで利用可能
DELIM => デリミタ文字(^)がデフォルト)
TOP => グリッドの上端の行位置
LEFT => グリッドの左端の桁位置
WIDTH => グリッドの幅
HEIGHT=> グリッドの高さ
id -> VCM control id番号
PARENT -> 親のフォームcid
FORM -> フォーム番号
GROUP -> グループ番号
READCNT -> グリッドに1回に表示する行の数
SELECT -> 予め選択された選択肢の添字(LEVEL)(選択結果)
HEADER -> 先頭行に表示する固定ヘッダー(nullは非表示)
(桁0,桁1,桁2,桁3,...,桁n)の様に指定
EVENT -> 0:イベント無(表示のみの時) 1:イベント発生有(入力有)
[2]width <- 各カラムの幅(index1の幅;2の幅;3の幅;...)
[3]height <- Rowの高さ
[4]scroll <- スクロール1:無 2:水平 3:垂直 4:両方
[5]columns <- 仮のCulumn全体数
[6]rows <- 仮のRow全体数
[7]Fcolumns <- 固定部のRow数
[8]Frow <- 固定部のCulumn数(指定できません)[自動決定される]
[9]Lindex <- 可変部の先頭行左端に表示されるCulumnのindex(0,1,2,...)
[10]Tindex <- 可変部の先頭桁上端に表示されるRowのindex(0,1,2,...)
[11]Fcolor <- 固定部の色番号(0->199)
[12]editmode <- 1:エデット可 NULL:参照のみ
[13]options <- オプション(1;2;3;...)
[14]delopts <- 削除オプション(1;2;3;...)
[15]respkeys <- リスポンス応答で取得されるセルの文字列を指定
する左端からのColumn数 key部の桁数(左端より)
-----<<<以下RECT,opt,pm1,...パラメタを参照>>>--------
font -> font番号
color -> 色番号
パラメタ他にもあります
─────────────────────────────────────
[使い方]
※ <<<ローカル変数初期化>>> D KILL^ZVCSGRB
※ <<<呼び出し>>> D CREATE^ZVCSGRB
※ <<<選択時呼び出し>>> D SELECTED^ZVCSGRB
※ <<<フォーカスを失った時呼び出し>>> D KILLFOCUS^ZVCSGRB
※ <<<廃棄時呼び出し>>> D DESTROY^ZVCSGRB
※ <<<パラメタ再設定>>> D SETUPPM^ZVCSGRB
※ <<<操作不能設定>>> D DISGRP^ZVCSGRB
※ <<<操作可能設定>>> D ENAGRP^ZVCSGRB
※ <<<先頭ページ表示>>> D TOPPG^ZVCSGRB
※ <<<前ページ表示>>> D PREVPG^ZVCSGRB
※ <<<次ページ表示>>> D NEXTPG^ZVCSGRB
※ <<<末尾ページ表示>>> D TOPPG^ZVCSGRB
※[ZVCSGRB2]のラベル(TEST)から(CREATE)の前迄は、使い方のサンプルです。
※[ZVCSGRB]のラベル(CREATE)以降は、<<<共通サブルーチン部>>>です。
※ご注意[cid=990,991,992,993,994は予約されています]
※このルーチンをコピーして自分で都合良く変更しても結構です。
─────────────────────────────────────
───────────────────────────────────
29-1
|目次|前ページ|次ページ|