| ETさんこんにちは
>そうするとフォームのグループが10項目以上になると表の索引項目が10項目が限界でした
>フォームのグループに置くのは、10項目しかだめになってくるのでしょうか?
索引の制限に引っかかったのですか!!
わたしも見積書や請求書などでグループ項目は使いますが
ふりがな、得意先名、見積番号、登録日、見積日位で後はフォームに
テキスト表示に計算式を指定することがほとんどです。
得意先.tblには沢山項目がありますが、売上や見積には必要ありま
せんから、レポート印刷の時は表引きで印刷します。
話は本題に戻りますが、フォーム→再定義→オブジェクトの属性を
表示し、ワークスペースで左クリック→オブジェクトの属性からイベ
ントタブを指定しフォーム終了イベントをチェックをすれば、自分の
希望する並び替えで並び変わった後、カレントレコードで表編集でき
ると思います。
最初に説明した並び替え条件の指定は外した方が無駄がないと思い
ます。
索引定義がいくつかあるなら下記のようにイベントを書き換えると
好きな並び替え順で表示してくれると思います。
proc cmd表編集()
if (#総件数)
変数宣言 整数{&tmp状態,&取消は0},Str {&条件名="索引名"}
method @フォーム.更新モード取得(&tmp状態)
COND (&tmp状態<>0) method @フォーム.更新モード設定( 0 )
cond (#EOF) \
ジャンプ 行番号=前行 /* 終端行には行マークできない */
行マーク定義 2
グループ選択解除
解除 * /* 索引定義は基本状態でないとできない */
if (#処理条件名検索(14,"ふりがな")<1) /* オブジェクトのリストは shift+↑↓ で上下移動 */
索引定義 索引名="ふりがな", 重複=許可, 条件登録="ふりがな",\
{[ふりがな]辞書順,[得意先名]昇順,[住所]昇順,[得意先コード]昇順}
end /* オブジェクトのグループリスト順全部含むように定義すること */
call cmd条件指定(&条件名,&取消は0)
cond ( &取消は0<>0 ) 並べ替え 索引名=&条件名
ジャンプ 行マーク=2
end
end
proc cmd条件指定(参照 Str &条件名,参照 整数 &count)
var Str{&menu3str},整数{&桁数=0}
if (&条件名=索引名)
if (#索引条件数=1)
&条件名=#索引条件名(1),&count=1
else if (#索引条件数>1)
繰り返し &count=1,#索引条件数
&桁数=#cond(&桁数<#桁数(#索引条件名(&count)),#桁数(#索引条件名(&count)),1,&桁数)
&menu3str=#s(&menu3str,&count,#索引条件名(&count))
繰り返し終了
メニュー3 &count,1,(3,50),"&条件名",&menu3str,"中止:Esc"\
,行数=#索引条件数, 桁数=&桁数
&条件名=#対応文字列(&menu3str,&count)
else
&条件名="",&count=0
end
end
end
手続き定義開始 フォーム::フォーム終了() /* ワークスペースでイベントタブを開くと2行目にある□をι */
call cmd表編集() /* 普段は使用しないが索引を誤って削除した場合に実行する */
手続き定義終了
|