過去の桐井戸端BBS (桐ver.8)
26025 フォームから欠番を絞り込みたい 渡辺金一 2004/04/23-10:50
桐の初心者です。定年後に表編集に取組み、4年目にしてフォームを作成中です。
桐V8 SP6
メイン&サブフォームの条件は
メイン:A.tbl 項目名:[ID];長整数型,主キー項目,重複値と未定義値は禁止,
編集初期値式 #直前値([ID],0+1)
         [NO];長整数型,重複値と未定義値は禁止
          [氏名];文字列,など
サブ:B.tbl 一覧表形式
項目名:[ID];長整数型,参照整合性定義,重複値は許可,未定義値 は禁止
     [NO];長整数型,重複値は許可,未定義値は禁止
[氏名];文字列 [番号];整数,など
メイン&サブに絞込み;単一化[NO]を設定
[NO],[氏名]などの絞り込み検索およびデータの新規登録は出来たのですが、
[NO]に欠番(削除)がありそれを利用するため欠番.tblに[連番],[NO]作成し、
併合でA.tblから[NO]に転記した後、表編集では絞込み_比較式 [連番]≠
[NO]で可能なのですが、
フォームのコマンドボタンでの設定がうまくいきません。
機能名     機能パラメータ
1 開く       "欠番.tbl"
2 絞込み_条件名   "欠番検索条件01"
KU0173 絞込み(検索)条件「欠番検索条件01」は登録されていません。
OKをクリックすると欠番.tblが開いているので上記の絞込み_比較式での検索は可能ですが、
機能名の2番がうまく設定できていません。
欠番.tblの併合、欠番の絞込みを一度に行うことは可能でしょうか。
また、別の方法で簡単に処理することも出来るのでしょうか。
ご教授いただければと思います。よろしくお願いします。
桐に関するHPがあることが最近わかり初めて投稿させていただきました。
マニュアルなどだけでは書いてあることはなんとなくわかるのですが、
具体的にどう記述するのかになるとわからないことが多い状況でこのサイトは大変参考になります。
   

26039 Re:フォームから欠番を絞り込みたいが 佐田 守弘 2004/04/24-09:50
記事番号26025へのコメント
渡辺金一さん
書かれている処理内容を理解できたわけではないのですが、かなり複雑な処理をしている様なので、
コマンドボタンの機能名だけでは難しいのではないかとおもいます。
むしろイベントの一般手続きで、目的の処理を行うのが良いかと思います。

コマンドの書き方が解らなかったら、履歴処理でコマンドを生成させ、
この中から必要なコマンドのみを取り出して、
上記のイベントファイルの中の一般手続きとして作ります。

一般手続きとは、「手続き定義開始 <手続き名>()」と「手続き定義終了」
の2つのコマンドを自分で作り、この間に実行させたいコマンドを記述します。
そしてコマンドボタンの機能名には「手続き実行」パラメータに上記の手続き名を記述します。

佐田守弘(KS-00119)
26041 Re:フォームから欠番を絞り込みたいが アックン(=^・^=) 2004/04/24-11:41
記事番号26025へのコメント
渡辺金一さん、こんにちは。アックンと申します。よろしくお願いします。
以下、動作しない原因と解決方法を書きます。
できるだけわかりやすく書きます。それでちょっと長いです。

> 機能名     機能パラメータ
>1 開く       "欠番.tbl"
>2 絞込み_条件名   "欠番検索条件01"

機能名を使って表を開いても、その表が編集表になるわけではありません。
編集表は、コマンドボタンが配置されているメインフォームの編集対象表の"A.tbl"のままです。
それで、条件名が登録されていませんというエラーメッセージが出ます。
メッセージ画面を閉じると、機能名の動作はすでに終わっているので、"欠番.tbl"をマニュアル操作できます。

ではどうするかですが。
編集表を"A.tbl"から"欠番.tbl"に切り替えればいいわけですが、
機能名にはもともとそのような機能がありません。
しかしイベントなら、編集表を切り替えできます。

そこで、いったん機能名を使って"欠番.tbl"を開いた直後に、
イベントに移行して、表を切り替える操作をしましょう。
そして、イベント上でさらに続けて絞り込みすればいいです。

機能名     機能パラメータ
1 開く       "欠番.tbl"
2 手続き実行    "欠番検索条件01"

・イベント作成手順
1)メイン&サブフォームを定義で開く。
2)フォームのワークスペース(フォームを囲む白い台紙)をクリックする。
3)メニューの「書式(S)」>「オブジェクトの属性(R)」画面を出す。
4)「イベント」(ダブ)>「イベントファイル名(C)」に A とだけ入力する。
 「イベント(E)」はチェックしない
5)いったんフォームを閉じて、再度定義で開くと、フォームとイベント各ウィンドウが同時に開きます。

・もし A.kev が画面に出てこないときは・・・・・・
1)いったんフォームを閉じる。
2)メニューの「書式(S)」>「定義画面の設定」>「イベント定義を起動す
る」をチェック(ON)する。
3)フォームを定義で開くと、フォームとイベント各ウィンドウが同時に開きます。

・A.kev イベントを記述します
下記の指定行のみコピーしてください。

-----------↓次行からがイベントファイル(A.kev)の内容です。
名札 メイン ←桐が自動的に作成する行(消さないこと)
        ←桐が自動的に作成する行
*       ←桐が自動的に作成する行
手続き定義開始 欠番検索条件01() ←ご自分でコピーする行
 編集表 "欠番.tbl"       ←ご自分でコピーする行
 絞込み 条件名="欠番検索条件01" ←ご自分でコピーする行
手続き定義終了          ←ご自分でコピーする行
-----------↑上の行まで

これで、出来上がりです。フォームを起動してください。

・補足1
絞り込みのコマンドは、比較式にしてもいいと思います。

 編集表 "欠番.tbl"
絞込み [連番]{≠[NO]}

・補足2
機能名の・・・・
   2 手続き実行    "欠番検索条件01"
と、イベントの・・・・
   手続き定義開始 欠番検索条件01()
の「欠番検索条件01」という名前は、同じ名前ならなんでもいいです。
わかりやすい名前に付け替えてください。

なお、イベントの方には、名前の後ろに必ず () を付けるのを忘れないようにしてください。
これを忘れるエラーが多いです。

・補足3
>欠番.tblの併合、欠番の絞込みを一度に行うことは可能でしょうか。

イベントに併合コマンドも記述すれば、一連の操作をボタン一発でできるようになりますよ。こんな風に書きます。

 編集表 "欠番.tbl"
 併合 "A.tbl" , ・・
 (↑)このパラメータが不明のときは、別質問(別スレ)にしてください。
 絞込み 条件名="欠番検索条件01"

・補足4
欠番を使いたいからということですが、もしコンピュータ上だけで使われる番号でしたら、
再利用は避けた方が無難です。データベースでは欠番があっても一向に構わないです。
そうでなくて必要なんだというときは、聞き流してください。(^^;
26044 Re:フォームから欠番を絞り込みたいが 渡辺金一 2004/04/24-14:04
記事番号26041へのコメント
うまくいきました。
佐田先生、アックンさんありがとうございました。
佐田先生のご指摘で履歴処理でコマンド生成のやり方がわかりました。
取り出すべきコマンドが生成されており大変勉強になりました。
表編集の操作で出来ることは履歴処理を活用したいと思います。
アックンさん問題解決についてわかりやすく書いていただきありがとうございました。
初めてのフォーム作成ですが使い方がわかってきました。
併合については別質問させていただきます。
今後ともご指導のほどよろしくお願い致します。
26045 Re:フォームから欠番を絞り込みたいが アックン(=^・^=) 2004/04/24-14:38
記事番号26044へのコメント
渡辺金一さん>
どうやら履歴を使ってうまくいったようですね。
それでしたら、機能名を使わないで、マウス左クリックイベントにだけイベントを記述するのをおすすめします。
26049 Re:フォームから欠番を絞り込みたいが 渡辺金一 2004/04/24-21:44
記事番号26045へのコメント
アックンさんありがとうございました。
2日間位マュアル読んだり、HPで調べ頭の中でいろいろ思い巡らしていました。
今回初めて投稿しまして、うきくいかない問題点などについて教えていただき
おぼろげながらアプローチの仕方がわかったような気がしております。
まだフォーム作成を始めたばかりなのでいろいろ問題が起きると思いますが
自分で解決すべく努力したいと考えています。
今後ともご指導のほどよろしくお願い致します。
今回は本当にありがとうございました。
関連身ら.26045

戻る