過去の桐井戸端BBS (桐ver.9)
21798 表引き表を絞り込んで表示させ、その表をフォームで開きたい。 未熟者! 2003/08/08-16:27
イベント駆け出し者にございます。
皆さんの御知恵をどうか拝借させてください。

工場ごと(1〜4工場)作業時間を入力するフォームを作りました。
[工事番号][日付][作業者][時間][工事名]等々の項目があります。
工事番号を元に”工事番号.TBL”という台帳から工事名等々を表引きしています。
しかし、他の工場分のデーターが出ていると邪魔なので[工場]で絞込みをしています。

これはこのフォームを開いた時に表引き表を先に開いて、絞込みをかけています。
そこまではいいのですが、入力時には台帳に無いものを入力させると困るので、”
工事番号.TBL”をコマンドボタンでモーダルフォームで呼び出したいのですが、
「既に表は開いてます」とエラーになります。
表引き表は絞込んでいたいし、その場で台帳に新規登録もしたい。
単純に表引き表をフォームで呼び出したいだけなのですが、過去ログを見ても表引き表を
絞り込む方法はありましたが(その方法を使わせていただきました。
ありがとうございました)、その表を呼び出すというのが見当たりません。
宜しくご教示方お願い致します。
21799 Re:絞り込んだ表引き表を開く方法 bonito 2003/08/08-17:06
記事番号21798へのコメント
>これはこのフォームを開いた時に表引き表を先に開いて、絞込みをかけています。
という事で、既に工事番号.tblは開かれているとして

>工事番号.TBL”をコマンドボタンでモーダルフォームで呼び出したいのですが、

という所のモーダルフォーム、仮に工事番号e.wfmとしてこのフォームの定義画面から
フォームのプロパティ(オブジェクトの属性)の編集対象表タブを選び、
さらに右下の許可作業ボタンをクリックして、ぞろぞろ出て来る項目中の「多重化」にチェックを入れて下さい。

すっぽんぽんの工事番号.tblを開く事が出来る筈です。

多重化についてはここの過去ログにもいろいろある筈ですので参照してみて下さい。


21800 Re:絞り込んだ表引き表を開く方法 桐初心者 2003/08/08-17:13
記事番号21798へのコメント
どうも、桐初心者と申します。
お礼以外のレスとしては初めてとなります。

自分も最近似たようなものを作りました。
フォームの元となっている表のコピーをとって、コピーしたものの名前を変更し
(例えば後ろに"2"をつけるとか)、フォームにコマンドボタンを設けます。
コマンドボタンの機能名を
機能名:開く 機能パラメータリスト:"コピーした表の名前.tbl"
にします。

それでうまくいくかと思います。

もし、質問の論点がずれていたらごめんなさい。m(_ _)m
21804 Re:絞り込んだ表引き表を開く方法 うにん 2003/08/08-20:34
記事番号21798へのコメント
フォームで設定するんでなく表自体の表引きに「編集表を使用する」チェックをつければ絞った状態になるはずなんですが。

21811 Re:絞り込んだ表引き表を開く方法 未熟者! 2003/08/09-10:07
記事番号21798へのコメント
bonitoさん 早速のレス有難うございます。

>>これはこのフォームを開いた時に表引き表を先に開いて、絞込みをかけています。
>という事で、既に工事番号.tblは開かれているとして
はい、裏で動いております。

>>工事番号.TBL”をコマンドボタンでモーダルフォームで呼び出したいのですが、
>
>という所のモーダルフォーム、仮に工事番号e.wfmとしてこのフォームの定義画面
>からフォームのプロパティ(オブジェクトの属性)の編集対象表タブを選び、さらに
>右下の許可作業ボタンをクリックして、ぞろぞろ出て来る項目中の「多重化」に
>チェックを入れて下さい。

なるほど、多重化ですか!ってことでやってみました。

>
>すっぽんぽんの工事番号.tblを開く事が出来る筈です。
すっぽんぽんでもいいんですが、呼び出して入力したデーターが反映されていないので困ります。
いきなり"日報.TBL"に入力させて、てんでバラバラな事を打ち込ませないために"工事番号.TBL"という台帳を呼び出し、
そこに登録させたものを改めて表引きで入力させる。
ってことがしたいのです。
このすっぽんぽんではそこんとこが巧くありませんでした・・やはり。
因みになんでそんなややこしいことをさせるかと申しますと。
日々の日報(誰々さんはどの工事に何時間かかりましたっていう紙切れです)を毎日入力して行くのですが、
キーになる工事番号を今日はAB0308、昨日はab0308などと好き勝手に打ってしまい。
集計時に役に立たないデーターになってしまうのです。
で、これを解消すべくマスターから表引きするという訳なんですが、絞込みを掛けるために開いてますので巧くいきません・・。

>
>多重化についてはここの過去ログにもいろいろある筈ですので参照してみて下さい。
はい。色々拝見させていただきます。
また何か思いついたらお願い致します。
21812 Re:絞り込んだ表引き表を開く方法 未熟者! 2003/08/09-10:32
記事番号21798へのコメント
桐初心者さん、こんにちわー。
お互い頑張りましょう!
で、どうも有難うございます。

ただ、コピーしたものは多重化と同じでデーターが反映されませんでしょう?・・違うのかな。。
いやそんなことはないぞー。
今入れた(登録した)データーが即、表引きできるぞーって言うなら有り難いのですが・・・。


うにんさん、有難うございます。
>フォームで設定するんでなく表自体の表引きに「編集表を使用する」チェックを
>つければ絞った状態になるはずなんですが。
はい。それはなっております。
それで絞り込んだ表引き表を使って表引きしていますが、この表がマスターファイルなもので、
新しい工事が登場した時には、最初にこの表引き表に登録してから表引きさせたい
(なんかややこしい言い方ですみません)
しかし既に絞込みのために開いておりますので、あらたに開こうとするため「既に開いている」と怒られます。

その開いてる表をただただ画面に(前に)出してくれりゃーええんですけど。。。
それがどうしたらええのか。
はたまた、そんなこたぁ出来ないっていうのか。
そこんとこがよくわかりまへん。
ってことでおますm(__)m

21814 Re:絞り込んだ表引き表を開く方法 悲しげ 2003/08/09-11:59
記事番号21811へのコメント
どもっ、未熟者!さん、なるほど、話がだいたい見えました。

つまり、「作業時間を入力するフォーム」(仮称"作業時間入力.wfm")上で、
入力は項目属性の表引き(表引き対象のマスター表は"工事番号.tbl")を
使い、マスターへの新規登録にはモーダルフォーム(仮称"工事番号.wfm")を
使いたいと云うことですね。
これは、bonitoさんの仰るとおり、当該モーダルフォーム"工事番号.wfm"の定義で
「多重化」にチェックを入れておけば、「既に表は開いてます」
エラーは出なくなります。
次に、多重化表が「すっぽんぽん」──こんな下品な云い方を最初に使ったやつは誰だっ!(わらひ)──であることへの対策ですが、
次のようにするとよいでしょう。

牡丹だけでやるとすれば、

1)"作業時間入力.wfm"上のコマンド牡丹は
  機能名      同パラ
  なし       #代入(&STR,[工場名])
  モーダルフォーム "工事番号.wfm"

2)"工事番号.wfm"の(ワークスペース上の)コマンド牡丹は
  機能名      同パラ
  フォーカス移動  "t工場名"
  絞り込み_値   &STR
とし、この牡丹を「オプション」タブから「開始時」に指定しておく。

kev中心にやるなら、

3)"作業時間入力.wfm"上のコマンド牡丹は
  機能名      同パラ
  手続き実行    フォーム呼び出し
とし、kevの同手続き定義では
  代入 &STR=[工場名]
  フォーム呼び出し "工事番号.wfm"

4)"工事番号.wfm"では「フォーム開始」イベントで
  絞り込み [工場名]{&STR}

5)なお、3)でkevの記述を次のようにすると4)は不要となる。
  代入 &STR=[工場名]
  編集表 "工事番号.tbl"  /*表 "工事番号.tbl"かも?*/
  絞り込み [工場名]{&STR} /*既に絞り込み状態なら不要?*/
  フォーム呼び出し "工事番号.wfm",編集表=する
  *絞り込み解除 1     /*不要?*/
  *終了 表 編集対象表   /*不要?*/
  編集表 "作業時間入力.tbl"

ps:
入力は項目属性の表引き、新規登録はモーダルフォームとしているようですが、
私ならどちらもモーダルフォーム(フォーム呼び出し)で統一すると思います。
その方が編集表の管理も楽だし。
(表引きモドキのやり方は例えばNo.21810参照)

21815 Re:絞り込んだ表引き表を開く方法 悲しげ 2003/08/09-12:04
記事番号21814へのコメント
>ps:
>入力は項目属性の表引き、新規登録はモーダルフォームとしているよう
>ですが、私ならどちらもモーダルフォーム(フォーム呼び出し)で統一
>すると思います。その方が編集表の管理も楽だし。
>(表引きモドキのやり方は例えばNo.21810参照)

云い換えると、表引きモドキもモーダルフォーム(フォーム呼び出し)でやれば、
必要なデータが存在しない場合は、その場で新規登録してしまって、
そのままそのレコード値を取得すればよい訳で、ふたつのことが一発で済みます。(^^)v

21820 Re:絞り込んだ表引き表を開く方法 未熟者! 2003/08/09-14:15
記事番号21814へのコメント
悲しげさん、有難うございます。

>つまり、「作業時間を入力するフォーム」(仮称"作業時間入力.wfm")上で、
>入力は項目属性の表引き(表引き対象のマスター表は"工事番号.tbl")を
>使い、マスターへの新規登録にはモーダルフォーム(仮称"工事番号.wfm")
>を使いたいと云うことですね。
はい。その通りでございます。

>次に、多重化表が「すっぽんぽん」──こんな下品な云い方を最初に使っ
>たやつは誰だっ!(わらひ)──
はい。存じ上げております(笑)
そこに「多重化表は別物と考えた方がいい・・云々」と書かれておりまして、
すっぽんぽんの意味を理解いたしました。

>次のようにするとよいでしょう。
早速お示し下さり有難うございます。

とりあえず、「>kev中心にやるなら」から取り組んでみて、結果は後程報告させていただきます。

どうしてこっちかって言うと、理由はふたつ。
ひとつ目は
>牡丹だけでやるとすれば、
>
>1)"作業時間入力.wfm"上のコマンド牡丹は
>  機能名      同パラ
>  なし       #代入(&STR,[工場名])
>  モーダルフォーム "工事番号.wfm"

この「同バラ」というのは何なのでしょうか?
この意味が判らないんですね/汗
本当に未熟者!っで、申し訳ありません。

「機能名」はコマンド牡丹の機能名ですよね?
で、「なし」となるとそこで終わってしまうような・・・。
でもその後に #代入(&STR,[工場名]) から モーダルフォーム "工事番号.wfm" と続くのがイマイチ良く判りません
(代入やモーダルフォーム自体は判ります)
できましたらご解説を・・。


二つ目の理由は。
 
>云い換えると、表引きモドキもモーダルフォーム(フォーム呼び出し)で
>やれば、必要なデータが存在しない場合は、その場で新規登録してしまっ
>て、そのままそのレコード値を取得すればよい訳で、ふたつのことが一発
>で済みます。(^^)v
>
これこれこれー!
これがやりたいんす。
こっちに近づくのは、やっぱイベント方式かな・・と。
感覚的にそう思っておりますが・・・違ってませんか?
そこで
>(表引きモドキのやり方は例えばNo.21810参照)となる訳なのでしょうが・・。。
タイトルから見ても私のものと関連すると思い、初めから眺めてはおりましたが、難しいですね。
しかしこの壁はいつかは乗り越えないと前に進みませんので、頑張るつもりでおります。
今後とも宜しくお願い申し上げます。

21824 Re:絞り込んだ表引き表を開く方法 悲しげ 2003/08/09-15:01
記事番号21820へのコメント
未熟者!さん wrote

>>  機能名      同パラ
>>  なし       #代入(&STR,[工場名])
>>  モーダルフォーム "工事番号.wfm"
>
>この「同バラ」というのは何なのでしょうか?

「バラ」baraではなく「パラ」paraです。(^^;)
「機能パラメータリスト」と書くと長いので省略形で書いてしまったと。

>「機能名」はコマンド牡丹の機能名ですよね?
>で、「なし」となるとそこで終わってしまうような・・・。

機能名「なし」の場合は、終わらないで最後まで実行します。
機能の一部にはそこで終わってしまうものはあったかもしれませんし、
あるいは機能名「実行条件」を使って意図的に次行の記述を実行させな
いこともありますが。
この場合は、次のように挙動しています。
1行目.機能としては「なし」だから特段のことをしないで、同パラメタリストの記述による代入処理だけを行い、
2行目、「モーダルフォーム」機能として、同パラで指定したフォームを「フォーム呼び出し」する。

二つ目の方は、ご推察のとおりかと思います。

21825 Re:絞り込んだ表引き表を開く方法 未熟者! 2003/08/09-16:26
記事番号21824へのコメント
悲しげさん、ご解説有難うございます。

二つ目のほうにも「同パラ」があってどうしようかと思ってますた/汗

同バラは「パラメータリスト」でしたか・・・なるほろ。

>>「機能名」はコマンド牡丹の機能名ですよね?
>>で、「なし」となるとそこで終わってしまうような・・・。
>
>機能名「なし」の場合は、終わらないで最後まで実行します。
え”っ!!
そーなんすか!?
これ、全く知りませんでした/恥

ですから、
>1行目.機能としては「なし」だから特段のことをしないで、同パラメ
>タリストの記述による代入処理だけを行い、
こんなことをする(している)なんて、目からウロコです。
一行目に「なし」って入れれば後は全て無視されるんだと思ってました。
無知って怖いですねー(笑)

>二つ目の方は、ご推察のとおりかと思います。
では道は険しゅうございますね。・・ヨロヨロ
「月曜日から使えるぞー」なんて大ボラ吹いたこの口が恨めしゅうございます。
では、気を取り直して・・・とりあえず一服。

21826 ハズシまくりの回答者 しぼうかん 2003/08/09-16:39
記事番号21825へのコメント
未熟者!さん、こんにちは.

表引きモドキをする方法として入力前イベントを使う方法もあります。

http://www.fuku3.com/~habata/kbbs/kakov9/20384.htm

なんかは割と似ている質問だと思います。

私は表引きしたいデータが無い場合に、表引き用.kevファイルの
キーダウンイベントで下記の様に書いてもう一度登録用.wfmを
呼び出して登録しています。


手続き定義開始 フォーム::キーダウン(長整数・・・略)
ケース開始
ケース(&仮想キーコード=27)
フォーム呼び出し "登録用.wfm"
メソッド呼び出し @終了.実行()
ケース(&仮想キーコード=13)
・・・以下略
21827 Re:ハズシまくりの回答者 未熟者! 2003/08/09-18:22
記事番号21826へのコメント
しぼうかんさん、こんにちわ

>表引きモドキをする方法として入力前イベントを使う方法もあります。
>http://www.fuku3.com/~habata/kbbs/kakov9/20384.htm
>なんかは割と似ている質問だと思います。
拝見しました。
ABCDが入り混じって、焦ってる私にはじっくり考える余裕がございませんでした。
いえ焦っていなくても駄目かもしれません(苦笑)

>私は表引きしたいデータが無い場合に、表引き用.kevファイルの
>キーダウンイベントで下記の様に書いてもう一度登録用.wfmを
>呼び出して登録しています。

なるほど、皆さん色々工夫されているのですね。
今回の「絞り込んだ表引き表を開く方法」は悲しげ先生に教えて貰ったお陰でなんとか出来ました。
ただ、追加したデーターをそのまま写すという事ができていません。
その方法時に参考にさせていただきます。
今日中に仕上げないといけないことが山ほどあり、そこまでいきませんが、
また色々お尋ねするかと思いますので、その節は宜しくお願い致します。
21829 例を補完BBSに(再掲) 悲しげ 2003/08/09-18:42
記事番号21815へのコメント
大田弘さんと未熟者さんへの共通例を
こちら
に挙げておきました。

ps
このBBSでは、全く同じ投稿だと重複エラーとしてはねつけるんですね。(^^;)
21830 Re:絞り込んだ表引き表を開く方法 未熟者! 2003/08/09-18:47
記事番号21824へのコメント
悲しげ先生!
巧くいきました!
多重化表で登録したデーターが即、反映されておりました。

初めコマンド牡丹だけでやる方法ってのをやったんですが、エラーになり。
尚更難し気なKEVを恐る恐るやってみました。
するとやっぱりエラーになり・・・。
しかし良く見れば全然関係ないところのエラーでした。
ま、未熟者のやることは所詮こんなものでございまする(苦笑)
たぶんコマンド牡丹の方も巧くいく(すいません、当たり前ですね/笑)ものと思います。
何より、その方法の中で、ワークスペース上にコマンド牡丹などが
貼れるという方法を初めて教えていただき感謝いたしております。
あれはダミーとして初めにどうさせるとか、終わりにどうさせるなどと使えるものなのでしょう?
他の悲しげさんのコメントの中に、オブジェクトを重ねて使うなど色々必殺技がございますね。
大変勉強になります。

今回は「絞り込んだ表引き表を開く方法」ということで、解決させていただきましたが、
新規登録したデーターをそのまま使う(写す)というところを外してはサッパリまだまだですね。
しかし今はやる余裕がございません。
今日中に仕上げることが山ほどございます。
手が空いた折にやるつもりですが、またその時色々お尋ねするかと思います。
その節もどうか宜しくお願い申し上げます。
お忙しいところ、お付き合いくださり有難うございました。
21831 Re:例を補完BBSに(再掲) 未熟者! 2003/08/09-19:41
記事番号21829へのコメント
悲しげさん、サンプルファイルまでお示しいただいて有難うございます。
あの中でマスターに新規登録されたデーターがそのまま売上データーに収まっていますね。
あれがスマートでいいですね。
できることならコピペしてしまいたい衝動に駆られましたが、
一行ごとの意味が解らない部分多々多々多々タッタッタ(どこまで行くねん!/笑)有り。
残念ではございますが、今すぐにはあの回答を頂くことができませんでした。
ゆっくり勉強させていただきます。

*個人的には↑の「項目値代入」よりも↓の「行訂正」の方が諸々の点で融通が利いて好きなのだが(^^;)
と書いておられましたが、それは終了状態で色々後の処理が出来るということかと思いました。
グループ訂正は上欄訂正、表示は確定等々、使う側への配慮を感じました。
参考にさせていただきます。
21832 Re:例を補完BBSに(再掲) 悲しげ 2003/08/09-22:35
記事番号21831へのコメント
どもっ、未熟者!さん

>*個人的には↑の「項目値代入」よりも↓の「行訂正」の方が諸々の点で融通が利
> いて好きなのだが(^^;)
>と書いておられましたが、それは終了状態で色々後の処理が出来るということかと
>思いました。

いえ、特に終了状態変数の返り値でどうとかしようと云うものでもないのですが、
「項目値代入」の対象である更新中のモードでは意外とやれないことがすごく多いので、
どうも敬遠してしまうと云うことです(「行訂正」=表示モードにしてしまって色々な処理を制限なくさせたい場合とか)。
それだけ。

戻る