|目次前ページ次ページ|
─────────────────────────────────────
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
     |目次前ページ次ページ