インデックス操作における技

 

データ行数における技

  


通常はホーム操作バーを下につけているフォームが多いと思います。(上左側の図)
それで、データの件数と、現在表示している行位置がわかります

データー行数表示をつけるメリットは、(上右側の図)
完璧に、オリジナル制が発揮できます(文字サイズ・背景・位置等の画面のレイアウトにこだわれる)
表示内容も、いろいろ変更できます。

オリジナル行表示の説明

テキストボックスを利用します。
簡単な方法は、テキストボックスを3コ用意して
  1.#行番号
  2./
  3.#総件数 と記入すれば出来ます

テキストボックスを、1個で上記3個を表示するには

テキストのソースの欄に、上記3個を連続して記入します
 式の内容は、#行番号+"/"+#総件数 と、書きます
 しかし、エラーになります。理由は、#行番号・#総件数は、数字で、/ は文字です
 数字と文字の計算は出来ませんので、#行番号・#総件数を文字列に変更します
 #文字列(#行番号)+"/"+#文字列(#総件数) と、修正します。

あとは、背景・文字フォント等を設定してオリジナル行番号表示の完成です
 ※ 行移動の、▲・▼などもコマンドボタンを両サイドに配置して、
   同等の機能をさせることができます(ここでは省略します)

あとひとつ、テクニックを紹介します
#行番号は、行移動のたびに変更しますが、#総件数は、行追加・行削除が無い限り変更されません
そこで思い付くのが、編集タブの、末尾付加文字列(B)に、記入する方法です
"/"+#総件数 または、"/"+#文字列(#総件数) と、記入します。・・・が、式がそのまま表示されてしまいますネ

冗談はやめて本当は、編集属性式に設定します
"末尾付加文字列' / "+#文字列(#総件数)+"'"  を、設定します。
 ※ その時のソースは、#行番号 だけに変更します

編集属性式は、使い方次第でかなり利用できる便利な機能です
どんどん利用しましょう

 

 

 

対応の名前(ふりがな)のところへ移動

    

五十音インデックスは、上図左側のように見えますが、実際は、
コマンドボタン(中央)と、テキストボックス(右)を重ねて表示しています


こんかいは、インデックスの機能(役割)中心に説明します
インデックスの大きな目的は、
1.マウスで選択して、対応の名前(ふりがな)のところへ移動する
2.現在表示されている名前(ふりがな)のインデックスに、印(他と区別)をする

コマンドボックスが機能します

   コマンドボタンの記入例

番号 機能名 機能パラメータリスト
1. 検索_比較式 [五十音]="あ"
2. なし  
3. なし  
4. なし  

以上です。な〜んだ。簡単じゃないか・・・というほど、単純な仕掛けではありません。

※ 注意1.通常ふりがなの項目は、氏名を利用して、
 安藤→あんどう、伊藤→いとう、内田→うちだ というように作成してあります
上記のインデックスは、「あ・か・さ・た・な・・・・」と、作成してあります
氏名の先頭に必ず「あ・か・さ・た・な・・・・」がついている人が入れば問題ないのですが
いきなり、伊藤から始まってる場合は、正しく検索されません

それで、表(tbl)のほうに、[ふりがな]とは別に、[五十音]の項目を作成します
その項目に、安藤・伊藤・内田 いずれも、あ と入力します
[五十音]の項目に計算式でいれるの方法もあります。
#部分列([ふりがな],1,1)を、#条件選択で、"あ"より大きい、または、"か"より小さい、・・・・・(詳細略)

しかし、いろいろな名字や、アルファベットで始まる人、また、汎用性を持たせるために
今回は、別ページで説明の、入力支援ボタンを、利用します。

※ 注意2.並び替えの方法によって、異なる検索が行われる場合の注意
もし、郵便番号順や会社名順で並び替えが行われていると、検索が正しく行われません
そのために、フォーム自体に並び替え順を登録しておきます
並び替え順を登録しておくと、起動時や表形式編集から戻ったときに、実行されて
検索に矛盾がでません
方法は、フォーム(リストボックスの一番上)の、オブジェクト属性の、編集対象表の、表の操作(C)で、
開始条件種別1:並び替え  条件名1:五十音順 と、設定します。

以上で、コマンドボタンをクリックするだけで、インデックス機能が働きます。

※ 本当は、あとひとつありますが、下方で説明します

ふりがなインデックスを他と区別する

テキストボックスを利用します。

背景は、通常(選択されていない状態)のとき表示する色を指定します。
テキストのソース(S)には、「あ・か・さ・た・な・・・・」の、一文字を記入します

編集属性式で、上記コマンドボタンが何を押したか判断し、対象のテキストボックスの背景を変更します
日付の背景表示でも説明してありますが、
曜日背景の場合は、土曜・日曜・その他の3種類しかないので、計算式は簡単ですが
五十音インデックスでは条件がたくさんありますので、計算式が、かなりながくなります。
やってやれないことはないのですが、今回は他の方法を紹介します

[五十音]の項目値を評価して、条件選択式を記載します。
例:テキストボックス、「は}の編集属性式の内容は、
#条件選択([五十音]="は","背景色='黒'") と設定します。

これで、条件が一致したときのみ背景色が変更され、他の場合は、背景で設定した色が表示される
ようになります

ここまでご覧にいただいたお礼にあとひとつの方法を紹介します

それは、変数の利用です。&年月日等、最初から組み込まれてる変数のほかに
そのフォーム専用に利用する変数を設定することが出来ます。

その変数は、局所変数です。局所変数は、ツールの変数管理(V)で、新規・削除・変更ができます
ここに、文字列で局所変数を、新規作成しておきます。(例:索引)

そしてコマンドボタンを下記のように変更します

   コマンドボタンの記入例

番号 機能名 機能パラメータリスト
1. 検索_比較式 [五十音]="は"
2. なし #代入(&索引,"は")
3. なし  
4. なし  

そしてテキストボックスの編集属性式は、局所変数を利用した内容に変更します
#条件選択(&索引="は","背景色='黒'")

今回の住所録では、項目値からの式と局所変数からの式はあまり変わりませんが
局所変数のメリットは、表(tbl)がない、フォーム形式(例:メニュー等)にも利用できますし
一括処理からの操作も簡単にできますので、覚えておいたほうがいいでしょう

 

 

 

五十音インデックスの装飾

  

五十音インデックスを機能とは別に見栄えをよくするために、上図左と上図中を
重ねて上図右のように見せてます


重なり順で、インデックスボタンの上に来るように設定します
これで、電話帳や辞書のインデックスみたいに見えますね!!

 

 

 

処理行選択における技

  


上の図は、説明の都合上変形しています。
1.左:オブジェクト=ピクチャー、実際の三角は、もっと小さい、背景は透明、罫線はなしです
2.中:オブジェクト=テキストボックス、背景は透明、罫線はなし
3.右:オブジェクト=コマンドボタン、背景は透明、罫線はなしです

フォーム明細部の概略

帳票形式には、伝票形式・カード形式・一覧表形式の3種類があります。
・それぞれの説明(特徴)は、省略します。

今回は、この住所録で使用している伝票形式を紹介します。
伝票形式フォームは、ヘッダ部・明細部・フッタ部の3セクションで構成されてます。
・それぞれの説明(特徴)は、省略します。(こればっかりで、すみません)

氏名を表示するところは、明細部です。ここを中心に説明します
明細部では、最上段に項目を配置して、下方向へ指定した行数、繰り返し表示することが出来ます
もちろん、繰り返し表示は、ONにしておきます
行数の指定は、フォーム明細部オブジェクトの設定・セクショタブ・分割数(L)で、設定します

この住所録では、ピクチャー・テキストボックス・コマンドボタンの3個のオブジェクトを、配置しています
繰り返し数(分割数)は17に設定してます

通常繰り返し表示する項目は一番上の行に配置していますが、繰り返しさせない方法もあります

オブジェクト3個の説明

・ピクチャーオブジェクト
 氏名行の先頭に三角マークを表示します
・テキストオブジェクト
 ソースは、[氏名]を、設定します

ここまでで、三角のマークと、氏名の一覧を繰り返し表示することができます

・コマンドボタンの役割
 通常、テキストボックスは、マウスの指定で編集モードに変わります
 しかし、今回は、氏名を選択するインデックスとして利用するため
 マウスのクリックで編集モードへ変わると不都合です。
 そこで、テキストボックスのオブジェクトを、フォーカスの設定可能(F)を、禁止にしておきます
 すると今度は、マウスでクリックしても、選択ができません。これも不自由です。

 ようやくコマンドボタンの登場です

 コマンドボタンには、機能名・機能パラメータ・編集属性式等はなにも設定しません
 マウスのクリックでフォーカスの移動、つまり、行選択が出来るようになります
 コマンドボタンは、ピクチャーの上からテキストボックスの上まで、背景を透明で作ります

これで、氏名を選択して、行移動したように見えますヨ