ホームへ戻るData Base 桐 User Board過去ログ一覧検索プロパティほっ!
過去ログ No9


   書き込み数 : 450件


<450> 佐田 守弘 1999年10月31日 日曜日 10時58分49秒
<448> hidetakeさん
>逐一「ウィンドウ ……」と記述するのは面倒ですね
拗音の入力は結構面倒ですね。
私は「ウィンドウ」を「ういんどう」の読みで辞書登録しています。

E-Mail  URL

<449> 佐田 守弘 1999年10月31日 日曜日 10時51分13秒
御挨拶
皆さん、こんにちわ。
HPの「未来桐」を拝見させて頂きました。「成程!」と思う要望が多数掲載されていますね。
これから時々参らせて頂き、ボードにもおじゃまさせて頂こうと思っております。

E-Mail  URL

<448> hidetake 1999年10月30日 土曜日 21時01分06秒
>ps1:
>  余談ながら、逐一「ウィンドウ ……」と記述するのは面倒ですね。
> 特に「ィ」をしばしば「イ」に書き間違えたりして。(^^;)
>  略称記述の仕方をご存知の方いらっしゃいましたら、教えて下さい。
> ちなみに私は「窓 …」と記述して試してみましたら、ハネられちまい
> ましたわ、「窓」でもいいのにね。(^^;)

そんな時のコマンド一覧のつもりだったのだけれど... (^_^;
<447> 【多遊】 1999年10月30日 土曜日 15時27分36秒
悲しげさん>いつもありがとうございます

悲しげさんのこだわり(真剣さ?)が、本当によくわかります

前から感じてたのですが、確認やメッセージボックスの位置指定の
不便さは本当に別フォームで表示するしかなさそうですね

ところで、現在V5版を、WIN版に移行中ですが
メニューの多用で、レイアウトも含め非常に苦労いたしております
悲しげさんの、今回の内容を読ませていただき、たいへん参考に
させていただいております。ありがとうございます
あと、初期値で、マウスのポイントを表示されたフォームの標準的な
ボタンの場所に、いどう出来るようになればいいなーと思いました


>私個人は、これから超多忙モードに突入しますから、しばらくは登場
>しません。他の方がボードを賑わして下さいますよう。
と、書いていただいてますが、私もあと半月くらいで峠を越えられそうです。
本当に、この掲示板のご心配までいただきまして重ね重ねありがとうございます


V5からの移植中に気づいたのですが、帳票形式編集用の FRM を、そのまま
V8で開くと、オブジェクト名が、テキスト1〜テキストnn等の連番になり、
オブジェクト名=項目名となりません。

最初はいちいち、オブジェクト名の変更をしていました。
ふとした拍子に、カード作成で読み込めばオブジェクト名が項目名に
なることを気づきました。「ラッキー」と思いましたが・・・・・
結局レイアウトを0からの作成となります。

結論として、まず、V5 *.FRM を正式名称で作成し一度保存しておく
次に、ダミー名で、新規作成で *.TBL を利用してオブジェクト名を取得して
作成し、先のファイルにコピーして完成させています。
文章にかくと面倒そうなのですが、すべてをマウスで操作できますので
以外と早くできます。(もっといい方法もあるかと思いますが)


先ほどのメニュー処理や、画面表示関係や、一括処理で行っていた処理を、
すべてイベントに移行できるか等の問題等はまだ、残ってますが、
(桐のシステムではなく私のレベルの問題ですが)まだまだ大いに
楽しめそうです。

いまの課題は、
1.メニューをファンクションキーの表示のように横一列や2段・3段表示にして
  どこにでも置けるようにならないかと思案中です。なかなかうまくいきませんが、
2.DOS桐V5の頃時間がかかる作業をしていて、あとどれくらい時間が
  かかるか不明の時、ストップキーを押して、処理済み75%みたいな
  表示をさせて確認をしたことがありましたが、イベント(で、なくても可)で
  残り時間(量)を取得する方法はないものか悩んでいます

どなたかお知恵を下さいませんか

<446> 悲しげ 1999年10月30日 土曜日 13時21分40秒
え〜、ふたつに分けた続きです。

 「罪」の方ですが、これはイベントにおける表の扱いに関わって来ま
す。フォームの場合は、前述のとおり「フォーム呼び出し」を使うので
特段「ウィンドウ作成」を使う必要もありませんが、表の場合ではこれ
に代替できる機能----云い換えれば表を画面(ウィンドウ)に表示させ
る方法----が「ウィンドウ作成」以外に無さそう(?)なんですね。しか
るに、前述「モーダルフォーム」の関係で殆ど使い物にならないのが辛
いです。あえて禁じ手とする以前に。
 対策は、したがって、イベントで使いたい表は、全て一覧表フォーム
を割り当てて「フォーム呼び出し」して使うしか無さそうだと云うこと
になります。となると、表の数だけフォームが必要になって、逐一の作
成が面倒ですし、フォームだらけになってしまいそうです。あと、項目
の表示幅が随時変更(表示幅ゼロ化とその逆も)できないとか、列固定
ができないとか・・・・・。プンプン
 願わくは、「フォーム呼び出し」と同じノリで、仮称「表 呼び出し」
ができたらいいんですけどね。多くは望みません、実行コマンドの「開
始時」と「終了時」だけがあるだけでもいいです。
 あるいは、フォームの「モーダル」性を少しだけ緩めて、表ウィンド
ウだけは前面表示・会話的操作を可能とする、さらに表ウィンドウを閉
じる際に表自体も同時に閉じるようにするような、特殊な「ウィンドウ
作成 表……,モーダル=する,オプション=表も閉じる」的な扱いを付加
するとかの暫定措置とかでもいいですけどね。

 以上、「ウィンドウ作成」禁じ手の話ばかりで長くなってしまいまし
たが(^^;)、話は冒頭に戻りまして、要するに「ウィンドウ会話」や「ウ
ィンドウ作成」を一切使わずに、「フォーム呼び出し」オンリーで走る
こと、これがV8イベント記述方法における唯一無比の推奨である。この
大胆な試論を書くための前置きだったのであります。(^^;)
 で、本論は(既に別例集の「補足.txt」で触れていますから)簡単に
済ませます。
 「フォーム呼び出し」コマンドのパラメータは余りないので、幾つか
の不満はありますが、フォーム開閉関連はこのコマンドオンリーの記述
でもほどほどの(と云うかかなりの)ことができます。
 「フォーム呼び出し」を「手続き実行 名札」のノリで使う。これは、
何か処理させたいことがあれば、それを別フォームとして呼び出し、必
要な処理をさせた結果を(呼び出したフォームを閉じた時に)元フォー
ムに返すと云う意味で、これをうまく使い回せば、処理できることが随
分ダイナミックになります。
 あと、上述したように「ウィンドウ作成」に伴う、表番号等の扱い等
の煩雑さからサッパリ解放されるってことかな。
 ……と、本論はたったこれだけです。(^^;)(^^;)


ps1:
 余談ながら、逐一「ウィンドウ ……」と記述するのは面倒ですね。
特に「ィ」をしばしば「イ」に書き間違えたりして。(^^;)
 略称記述の仕方をご存知の方いらっしゃいましたら、教えて下さい。
ちなみに私は「窓 …」と記述して試してみましたら、ハネられちまい
ましたわ、「窓」でもいいのにね。(^^;)

ps2:
 私個人は、これから超多忙モードに突入しますから、しばらくは登場
しません。他の方がボードを賑わして下さいますよう。
<445> 悲しげ 1999年10月30日 土曜日 13時20分38秒
 過日、或る方とお電話でお話する機会がありまして、それで思った
こと---大胆な試論になるかもしれませんが---を書きます。
---------------------------------------------------------------
イベントで記述して行く場合は「フォーム呼び出し」オンリーで走る。
---------------------------------------------------------------
 云い換えれば、次のふたつを使わないことになります。
▼「ウィンドウ会話」コマンド
 これはそもそもイベントでは使えないので考慮外となります。したが
って、ボタンの機能として「一括に戻る」と云う、一種姑息な記述をし
ないで済みます。「『ウィンドウ会話』が使えなくなって不便だ」と考
えるのは(確かにちょっと便利ではありましたが)、考え方としては本
末転倒に当たるような気がします。そもそも一時しのぎの仕様だったの
ではないか、ってゆ〜かみないな〜。
▼「ウィンドウ作成」コマンド
 これも現状では使う意味がないように感じました。
 その理由は、何と云っても「フォーム呼び出し」で呼び出したフォー
ムは「モーダルフォーム」であること----つまり現仕様では、最前面に
表示されたウィンドウ以外にはアクセスできない----ことによります。
呼び出された「モーダルフォーム」(最前面に表示)から、「ウィンド
ウ作成」したフォームなり表ウィンドウは、後ろに隠れて表示されるた
めに使い物にならないからです。
 ただし「フォーム呼び出し」以外でオープンしたフォームから「ウィ
ンドウ作成」したウィンドウは前面に表示されるので使えますが、しか
しそうすっと、冒頭の前提が成立しないことになりますから、ここでは
不採用としておきます。

 次、「ウィンドウ作成」を禁じ手とすることの功罪にふれます。

 「功」の方としては、表番号やウィンドウハンドルを殆ど気にしなく
てもいいことです。「フォーム呼び出し」では、桐システム側で勝手に
ウィンドウハンドルを付けてしまいますし、フォームの編集対象表も自
動的にオープン(したがって表番号も自動取得)されます。と云うこと
は、こちら側がウィンドウハンドルや表番号を指定することが不可能で
あることも意味するのですが、これらが必要な場合は、「#表番号取得」
関数や「#ウィンドウハンドル取得」関数等を使って、その都度取得しな
がら進める形になろうかと思います(これらは、桐のメニューバーのヘ
ルプ/関数一覧/システムで探せます)。
 「ウィンドウ作成」でしばしば引っ掛かる点を、表ウィンドウを作成
した場合で挙げてみます。この時、まず表をオープンすると表番号がか
らんで来ます。次に「ウィンドウ作成 表,……」とする訳ですが、こ
こでも明示的にウィンドウハンドルを指定する必要があります。そして
この時、表(番号)と表ウィンドウ(ハンドル)は別物であることには
実に要注意です。
 手順としては、次のようになります。
 1)表を開く(画面には表示されない)
 2)表ウィンドウを作る(ここで初めて画面に表示される)
  (会話的に何らかの処理をする)
 3)表ウィンドウを(会話的に)閉じる(画面から消える)
  (表自体は開いたまま)
 4)表を閉じる
しばしば、4)の手順を抜いてしまうために、エラーメッセージの襲撃を
受けてワケワカメになった経験、ありますでしょ?
 では、4)の過程をどう記述するか? 何らかのイベント手続きで1)2)
の過程を記述することはできます。が、4)の過程はどのタイミング(イ
ベント手続き)で記述すればいいのかは、実際問題なかなか難しいケー
スがあります。最終的には「フォーム終了」イベントを使わざるを得な
いとすれば、1)のタイミングの問題もからんで来まして、そのフォーム
がオープンしている間中、表番号がずれないようにキープし続けていな
ければならない……とか。「ウィンドウ作成」を禁じ手にすると云うこ
とは、この辺りが面倒さからも逃げることをも意味します。(^^;)



長いので、ふたつに分けます。ここで切ります。

<444> 悲しげ 1999年10月25日 月曜日 19時31分00秒
どもっ、いか様、イベントハンドラ内の参照変数につき、明快な
ご返答ありがとうさんです。

>一般的には特に気にしなくて良いのではないでしょうか?
>返すといっても、呼び出しは桐がシステム内部よりイベント手続きとして行って
>いるわけで、ユーザーが定義しているわけではないですから…
>上の例で言えば、桐システムが自動的にt某オブジェクト内の「文字列」を
>変数&編集文字列に渡して、手続き後、それをまたシステムに返すという
>ような事でしょう…
>もっとも、返された値をシステムがどう利用しているかは、ブラックボックスで
>もあり、ケースバイケースでしょうけど…
>例えば、手続き内で&入力継続にフラグを立ててやれば、その値を受けて
>システムが再入力をするとか…

ですね。ブラックボックスで構わないみたいです。
実は今日は出張していまして、帰りに車を運転しながら、似たような
ことを思いました。私が好んで使っている「キーダウン」イベントで

  手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード\
                ,長整数 &スキャンコード\
                ,長整数 &フラグ\
                ,参照 長整数 &処理中止)
    ・・・・・・
    &処理中止=1
    ・・・・・・

とやる時の&処理中止なんかモロに参照変数でしたもんね。
非参照変数は手続き定義内だけで有効ですが、この&処理中止の
場合はこの手続き定義を抜けた後、フォームに戻った時に有効に
するためでしたから。
おかげで納得できました。(^^)v
<443> いかすぱげてぃ 1999年10月25日 月曜日 10時22分53秒
>う〜ん、一般的な手続きの場合は少しは判るようなところもありますが、
>イベントハンドラー内の参照変数がどうも・・・
> 例えば
> 手続き定義開始 t某::入力後(参照 文字列 &編集文字列\
>               ,長整数 &モード\
>               ,参照 長整数 &入力継続)
>のような場合、呼び出し元に返すとは、どういうことを意味するのか? (?_?)
>別に気にしなくてもいいのでしょうかね。判っていた方が便利に使えるのか。

一般的には特に気にしなくて良いのではないでしょうか?
返すといっても、呼び出しは桐がシステム内部よりイベント手続きとして行って
いるわけで、ユーザーが定義しているわけではないですから…

上の例で言えば、桐システムが自動的にt某オブジェクト内の「文字列」を
変数&編集文字列に渡して、手続き後、それをまたシステムに返すという
ような事でしょう…
もっとも、返された値をシステムがどう利用しているかは、ブラックボックスで
もあり、ケースバイケースでしょうけど…
例えば、手続き内で&入力継続にフラグを立ててやれば、その値を受けて
システムが再入力をするとか…
<442> 悲しげ 1999年10月24日 日曜日 12時08分54秒
どもっ、【多遊】さん、早速の登録、且つ紹介文も書いていただき
まして、ありがとうございます。

ところで、

>コマンドボタンを押したとき、下方からスーッと(うまい表現ができませんが)
>フォームがでてくるのがきれいで自然で、大変驚きました

とのことですが(^^;)、補足.txtでも書いたように、私はあれが
「不自然で」嫌いなのであります。(^^;)(^^;)
「スーッ」とアニメーションしないで、パッと表示されて欲しい
ので、そのやり方が判る方、教えて下さい。
<441> 【多遊】 1999年10月24日 日曜日 09時46分12秒
悲しげさん>いつもありがとうございます
今回も力作ありがとうございます。
本当に遅くなりまして申し訳ございませんでしたが、先ほどUPさせていただきました


すこしだけですが拝見させていただきました
コマンドボタンを押したとき、下方からスーッと(うまい表現ができませんが)
フォームがでてくるのがきれいで自然で、大変驚きました
いまからkevも拝見させていただきます
ほんとうにありがとうございました


余談ですが、以前バックアップの話題がでてましたので、
先週HDを購入しました。本当にやすくなりましたね
私が最初に購入したHDは20Mで16万したのですが
今回は20Gで3万強でした。
昔の値段(20Mで16万)で、購入したと計算すると
約1億6千万円になります。技術の進歩と片づけるには???
と、馬鹿な計算をしてしまいました


最近、仕事に追われて休日は、心身ともに休日しています
皆さんもご自愛のほどを・・・

<440> 悲しげ 1999年10月23日 土曜日 21時47分17秒
どもっ、いか様、コメントをおありがとうございます。

「ソース値更新」は、そうですか、「名前の付け方に不具合」ね。(^^;)

ちなみに「本当にソース値が更新された時のみ最新更新日時を更新する」
([Enter]空打ちでは更新しない)は、次のようにしても可能でした。

手続き定義開始 t某::編集文字列変更()
 項目値代入 [最新更新日時]=#日時値
手続き定義終了

これだと、訂正時には確定前に(入力途中で)更新日時が更新されました。
もちろん[Esc]でも、編集文字列を変更しない単なる[Enter]空打ちでも、
更新日時は不変です。当然、数値系・文字列系も問わずです。
ひょっとするとこれが一番ラクチンかも?(^^;)



次、参照付き変数の件、

>イベントハンドラーの引数は自動定義ですので、意識する必要はありませんが、
>一般的な手続き定義の参照付き引数という意味で言えば、参照付きの場合、その
>値を呼び出し元の「手続き実行」の変数に値を返します。

う〜ん、一般的な手続きの場合は少しは判るようなところもありますが、
イベントハンドラー内の参照変数がどうも・・・
例えば

手続き定義開始 t某::入力後(参照 文字列 &編集文字列\
              ,長整数 &モード\
              ,参照 長整数 &入力継続)

のような場合、呼び出し元に返すとは、どういうことを意味するのか? (?_?)
別に気にしなくてもいいのでしょうかね。判っていた方が便利に使えるのか。



イベントの順番ですが、私は何だか逆に書いてしまったみたいです。(^^;)
改めて実行順序の挙動を再確認してみたところ、
 「入力後」
   ↓
 「ソース値更新」
の順番ようになっていました。そして、マニュアル(html、pdfとも)の
記述もそのとおりに修正されておりました。確認しないで書いてしまって、
どうもすみません。<(_ _)>
言い訳しますと、実はWin95を再インストールした後、Acrobat Readerが無
いままになっていて、つい先ほどインストールしまして、ようやくpdfのヘ
ルプを読むことができたと云う次第であります。(^^;)
<439> いかすぱげてぃ 1999年10月23日 土曜日 11時21分49秒
>「ソース値更新」イベントの現在の挙動(前述)は仕様なの?
>それとも不具合?

ソース値更新の件

それが全てじゃないんだろうけど、ソース値更新イベントってのは、
どうももともと「トグルボタン」を主たる目的にしたイベントってのが
正解なんじゃないかな。なんか、そんな気がします。
だから、たぶん仕様なのじゃないかなぁ…

ただ、もし仕様であればイベント名の名付け方には不具合があるって感じもします。(^^;
例えば、うーん、そうですね。
「項目確定後」イベントとかいう名前だったら、混乱が少ないかも…(笑)

-----------------------
入力前イベント手続き
 &STR=&編集文字列

入力後イベント手続き
 if(&編集文字列<>&STR)
  項目値代入 [最新更新日時]=#日時値
 end
-----------------------

正しい処理方法だと思います。

>(ちなみに「参照 文字列 &編集文字列」とありますが「参照」変数はどう使うんで
>したっけ?)

イベントハンドラーの引数は自動定義ですので、意識する必要はありませんが、
一般的な手続き定義の参照付き引数という意味で言えば、参照付きの場合、その
値を呼び出し元の「手続き実行」の変数に値を返します。

手続き実行 あいうえお(&errer) */ &errer="" /*


手続き定義開始 あいうえお(参照 文字列 &エラー作業)
 if(なんたらこうらた)
  &エラー作業="なんたらエラー"
 end
手続き定義終了

という場合、&エラー作業の値が&errorに返されるわけです。

>ところが、マニュアルの記述では「ソース値更新」は「入力後」の後
>となっていますが、実際には逆の挙動をします。これはマニュアルの

「入力後」の後?ならとりあえず、正しいのではないでしょうか?

確か、「入力後」の前となっているのは実際の動作と違うので、「変だゾ!」
ってV8発売の直前にマニュアルの作成者に報告したのですが、
「がちょーん!ダメ、もう直せないのでSP2版で直します」という返事を
頂いておりました。
てっきり、直っているんじゃないかと思ってましたが…どうなんでしょう。

・・・のようなことを、memo.kevの作者の方は感じる今日この頃であります。(^^;
<438> 悲しげ 1999年10月22日 金曜日 12時24分34秒
どもっ、しつこくすいません。(^^;)
「ソース値更新」イベントの現在の挙動(前述)は仕様なの?
それとも不具合?
<437> 悲しげ 1999年10月22日 金曜日 10時42分44秒
どもっ、
今までここで書き殴って来た処理を試作品にまとめまして、先ほど
【多遊】さんに送っておきました。近々公開されると思います。
(【多遊】さん、ご多用中でしょうけど、よろしくね)

やっていることは、そっくりの別フォームを、位置をぴったり決め
て全く同じ場所に表示させることを中心に、「確認」、「キー入力」、
「メニュー2(横2段)」、「メニュー3」コマンドもどきの試行、
それとメイン&サブフォームでのkevの扱い方の例などです。
よく判んないままに試行錯誤で作りましたから、使い方の間違いや
「ここはこうすればもっと簡単に実現できるのに」と云った箇所が
多々あると思います。それらのご指摘もぜひ戴きたいところですし、
修正の必要があれば責任を持って(^^;)、修正版を挙げる所存にて
ござ候。

それと先にふれた「ソース値更新」ならぬ、「ソース(項目値)が
本当に更新された場合のみ更新日時も更新する」の件ですが、次の
ようにするだけでうまく動きました(つまり[Enter]空打ちでは更新
されないようになった)。ご報告させていただきます。
-----------------------
入力前イベント手続き
 &STR=&編集文字列

入力後イベント手続き
 if(&編集文字列<>&STR)
  項目値代入 [最新更新日時]=#日時値
 end
-----------------------
と云う訳で、更新フラグ用変数を介する必要も、さらには「ソース
値更新」イベントを使う必要もなくなりました、チャンチャン。
<436> 【多遊】 1999年10月21日 木曜日 23時18分33秒
悲しげさん>いつもありがとうございます

>ps:
>なんか私ばっかし書いてて、なんか浮いてるな。(^^;)(^^;)
とんでもございません。なかなかご返事が書けなくて恐縮いたしております
私も試そうと思ってはいますがなかなか時間がとれなくて

先日、悲しげさんのかかれた内容<434>までを読もうとプリントしたら
範囲指定を忘れて、A4で22ページもでてしまいました
通勤途中で読ませていただいてます。ありがとうございます

いまV5で作成した物をWIN版に移植中ですが、以外とV5以前に
作成した物があって多少てこづってます。
?DOSV3<DOSV5<WINV8がなりたたず、困ってるのが
本音です。

現在、休日出勤と残業の連続ですが11月後半になればおちつくと思います
また頑張りますので、いつでもなんでも書いて下さいね。
  よろしくお願いいたします
<435> 悲しげ 1999年10月21日 木曜日 11時25分24秒
以前、更新レコードが後で判るようにしたいのなら「ソース値更新」
イベントで(下記のように記述しておけば)簡単に実現できる旨を書
いたことがありましたが、どうもこれはアカンようでした。
-------------------------------------------------------------
以下、Ika氏作のタブコン集のmemo.kevを題材にしてみます。
----------------------
手続き定義開始 t某項目obj名::ソース値更新()
項目値代入 [最新更新日時]=#日時値
手続き定義終了
----------------------
/*ちなみに新規レコードは挿入初期値で同計算式を設定*/
/*訂正モード中だから「行訂正」ではなく「項目値代入」を使用*/
--------------------------------------------------------------
なぜなら、「ソース値更新」イベントは、値が更新(変更)された時
(読んで字の如くに)だけに発生するのではなく、会話処理で(ここ
一寸重要!)且つ訂正(または項目訂正)モードで、且つ[Enter](ま
たは[f・4])で終了した時に(ここ非常に重要!)発生するからです。
云い換えれば、値を変更(更新)せずに単に[Enter]した場合にも発生
する訳でして、文字どおりに「ソース値が更新された時」と解釈でき
ないことが判明したのであります。
ま、会話処理ではない場合だと、同時に[最新更新日時]も訂正してお
くと云う方法が使えますので、何とかなりそうでけど、会話的にやっ
た時の扱いが要検討だと思いました。まいったな。(;_;)
で、対応策を考え中ですが、いま考え中の最中にこれを書いています。(^^;)
最新更新日時が問題となるのは、ソースが(変数ではなく)項目値で
ある場合でしょうから、「行訂正*」イベント辺りで何とかするのか
な、とも思いましたが、「入力前」「入力後」イベントの所与のパラ
メータに&編集文字列なんてのがありました。ではこれを使ってみた
らどうだろう?(ちなみに「参照 文字列 &編集文字列」とあります
が「参照」変数はどう使うんでしたっけ?)
先ず「入力前」の&編集文字列を(手続き外で使える変数の)&STRに
受けるとする。
 &STR=&編集文字列
次に「入力後」の&編集文字列とこれを比較して
 if(&編集文字列<>&STR)
  &更新フラグ=1
 else
  &更新フラグ=0
  &編集文字列=&STR
  /*元値データ型が数値系でも&編集文字列を介せば何とかなる?*/
 end
で、&更新フラグ=1の場合にのみ、次のイベントで項目値を項目値代
入(または行訂正)する。
ところが、マニュアルの記述では「ソース値更新」は「入力後」の後
となっていますが、実際には逆の挙動をします。これはマニュアルの
誤記なのか、将来的にはマニュアルどおりに「修正」されるのかが不
明なので、次のイベントとして「ソース値更新」を使うのは不安があ
ります。で、本ケースの対象は項目値objに限られるので、「行訂正
終了」または「終了前」辺りでやった方が無難かも?
なお、「行訂正終了前」で得られる&モードは(実は調べていないの
だが)項目値に変更があったかどうかに関わらず、単に[Enter]=1、
[Esc]=0だけだろうから使えないと思っています。

・・・のようなことを考え中ですが、memo.kevの作者の方、いかがな
もんでしょう?

ps:
なんか私ばっかし書いてて、なんか浮いてるな。(^^;)(^^;)
<434> 悲しげ 1999年10月19日 火曜日 01時06分17秒
この間、書きなぐってきたことを、まとめてアップロードしよう
と思って、今日は色々試作してみたところ、不思議な現象を幾つ
か見つけましたので、報告します。

ひとつは、あるフォームのある場所に、別なフォームをぴったり
と重ねるの件。
これは、前述のとおり、「フォーム開始」イベントでウィンドウ
の位置を取得できないがために、代替策として「タイマー1」イ
ベントを「フォーム開始直後(またはウィンドウ開始直後)」イ
ベントと見なして扱っているのですが・・・、
A.wfmからB.wfmを「フォーム呼出し」でオープンして(「タイマ
ー」でB.wfmの親ウィンドウ位置を「取得」しておく)、そこから
更にC.wfmを呼び出して(これも「タイマー」で)子ウィンドウ位
置を「設定」する方法でうまく行っていました。が、A.wfmからの
呼出しではなく、B.wfmを直接(会話的に)オープンして、上記と
同様の処理をさせても、C.wfmはお目当ての場所に位置してくれま
せん。
結果的には、「フォーム呼出し」した場合の挙動が正しいのでしょ
うけど、このように異なる挙動を示すようです。このことに気が付
くのに随分時間が取られました。(;_;)

ふたつめ、kevからの「フォーム呼出し」と、ボタンの機能として
の「モーダルフォーム wfm名」は挙動が異なると云うこと。
ボタンの場合、全然モーダルじゃありませんね(^^;)。
※ ここで云う「モーダル」とは、最前面のウィンドウとして扱わ
  れて後ろのウィンドウにアクセス不能と云った程度の意味で使
  っています。
なぜなら、ボタンで呼び出したモーダルフォームは、[Home]キーで
表ウィンドウを(再前面で)使えますから。まるで半分会話処理み
たいです。(^^;)
これは便利なことは便利ですけど、上述の意味でのモーダルではあ
りませんから、いずれは「フォーム呼出し」と同じようになってし
まう可能性もあり、使わないでおこうと思いました。(^^;)
ただ、この方式(ボタンからモーダルフォーム)では、1段目で書
いたウィンドウ位置関係は正しく挙動しました。

もうひとつ、「キー入力」イベント。
メイン&サブフォームでこれを使う場合、フォーカスがメイン部に
存在しないと動かないことが判明しました。フォーカスがサブ部に
在ったまま試していて、何で動かないのか、これにもかなりの時間
悩みました。(;_;)
メイン/サブでは、フォーカスがサブ部にあることも多いくらいで、
フォーカス位置は概ね不定ですから、結局は「キー入力」イベント
の「発生に先立って」フォーカス位置を決めることは困難と判断し
ました。で、「キーダウン」イベントで代替しました。(^^;)
でも、これは仕様としてはおかしい。ともかく「キー入力」と云う
イベントが発生したのだから、フォームのフォーカス位置に縛られ
る必要はないと思う(「キーダウン」と同様に)。

以上です。
アップロードは今日やっつけてしまおうと思いましたが、そんな事
情で、もう少し後になります。
<433> 悲しげ 1999年10月14日 木曜日 21時02分47秒
どもっ、どうしてもやらなければならない面倒な別件を抱えていると、
そのことからの明確な逃避行為として、このところ、V8イベントにず
っぽりとハマっています。(をいをい、本業はどうすんだ>自分)(^^;)

1)
そのせいで、V8のイベントへの考え方の一端が幾分わかって来たよう
な気がします。(あくまで、とっかかり程度ですけどね)
で、V8のイベントを一言で乱暴に云うならば、
「『フォーム呼出し』とは、古典一括で云う『手続き実行 名札名』
に相当する」でしょうか。
呼び出すフォーム自体は名札と考えて、その名札の中の幾つかの記述
がフォームに付属するkevと見なすことができる(もちろんボタン等で
フォーム自体に処理を持たせることもできるが)。
あるサブルーチンを呼び出したいとすれば、そのサブルーチン的な処
理を内包するフォームを呼び出すことによって実現する。呼び出した
フォームを終了することによって、呼出し元ではその結果を受け取っ
て次なる処理に進む。
  フォーム呼出し "処理a.wfm" /*処理aをさせる*/
  if(その結果)
   ・・・・
   フォーム呼出し "処理b.wfm" /*処理bをさせる*/
    if(その結果)
    ・・・・
つまり、フォームを閉じた時、処理は次行に来ているのだから、古典
一括で云えば
  手続き実行 名札a
  if(その結果)
   ・・・・
   手続き実行 名札b
   if(その結果)
    ・・・・
と同様に考えると、とても理解しやすいし、やれることがダイナミッ
クになったように、私は思えました。
かなり乱暴な考え方ですけど、ま、参考になれば・・・・。(^^)


2)「絞り込み解除」コマンドの落とし穴
これには数時間悩みました。ひょっとして、場合によりけりなのかも
知れませんが、え〜、並べ替え状態にある表(正確には伝票フォーム
の編集表)をさらに1段絞り込んだ状態で
  絞り込み解除   /*段を指定せず*/
とやると、単なる解除と同じく、並べ替え状態まで解除されてしまい
ます(されることがある?)。
ここは明示的に
  絞り込み解除 1
と記述しなければならないようです。これにはすっかりだまされてし
まいました。
「解除」も「並べ替え解除」も「絞り込み解除」も、別名は確かbreak
だったような気がします(違ったかな)。
 基本状態
  ↓
 並べ替え=基本状態から見ると絞り込み1段
  ↓
 絞り込み1段=基本状態からは絞り込み2段
のようなことを、これは確か『由紀子本』で読んだことがあるような
気がします。「絞り込み解除 段数」の明記については、皆さん、注
意しましょうね。(^^;)


3)obj属性の表示タブ/編集属性式で、文字数(桁数)に合わせて、
表示フォントサイズも変更しようと思いました。
 #cond(#桁数([某])>34,"フォントサイズ'8pt'"\
    ,#桁数([某])>28,"フォントサイズ'10pt'")
ところが、これでは全く変わりませんでした。確か、以前にやった時は
うまく行ったはずだが・・・・、と悩むこと数日間。
本日ようやくその原因が判りました。フォントサイズを「継承」にして
ある場合は、「継承」モードから「指定サイズ」モードに書き換える必
要があるのでした。次のようにしてようやくできましたが、編集属性式
は随分複雑なものになってしまいました。
 #計算(#代入(&秒,#桁数([医療機関名]))\
    ,#cond(&秒<29,"フォントサイズモード'継承'"\
    ,&秒<35,"フォントサイズモード'指定フォントサイズ',フォントサイズ'10pt'"\
    ,1,"フォントサイズモード'指定フォントサイズ',フォントサイズ'8pt'"))


以上、
明日からは本業にかかります。(^^;)
<432> 悲しげ 1999年10月14日 木曜日 10時11分13秒
どもっ、

1)伝票(一覧表)フォームで左右矢印キー押下時、左右両端項目で
カーソルを止めるの件、次のようにしてうまく行きました。(^^)

「キーダウン」イベントで

 else if(&仮想キーコード=37 .or &仮想キーコード=39)
  /* 左右矢印キー押下時、左右両端でカーソル止める */
  method @フォーム.フォーカスオブジェクト取得(&focus)
  if((&focus="t右端" .and &仮想キーコード=37)\
    .or (&focus="t左端" .and &仮想キーコード=39))
   method &focus.フォーカス設定()
   &処理中止=1
  end

2)次、単項目訂正の件、結局は「ソース値更新」イベントで支障な
かったみたいのなので、これを採用しました。

 else if(あるトリガー)
  &項目訂正=1        /*単項目訂正のフラグを立てる*/
  method @t某.フォーカス設定()  /*カーソルがどこにあってもここに移す*/
  変数宣言 整数{&文字位置,&文字数}
  method @フォーム.更新モード設定(2)  /*モード8(項目訂正)があればいいのに*/
  method @t某.編集選択位置取得(&文字位置,&文字数) /*以下は定石*/
  method @t某.編集選択位置設定(&文字位置,-1)
  &処理中止=1
 ・・・・・・

手続き定義開始 t某::ソース値更新()
 条件(&項目訂正<1) return
 method @フォーム.更新モード設定(0)  /*表示モードに戻す*/
 method @t某.フォーカス設定()  /*カーソルをその場にとどめる*/
 &項目訂正=0         /*項目訂正のフラグを降ろす*/
手続き定義終了
<431> いかすぱげてぃ 1999年10月13日 水曜日 12時20分46秒
>フラグを降ろすのは「キーダウン」時の仮想キーコード=13でしょうかね?

でしょうね。(^^;
<430> 悲しげ 1999年10月13日 水曜日 11時40分38秒
また書きます。(^^;)

「項目訂正」の件、

>普通に考えれば、「項目訂正」に入るとき、
>1)項目訂正だよっていうフラグを立てておいて
>2)フラグが立ってる時だけ、キーダウンイベントで更新モードを
>  表示に代えてやるてのが簡単かも…

とやった場合、フラグとして例えば
 &項目訂正=1  ;項目訂正フラグが立つ
 &項目訂正=0  ;フラグを降ろす
としたとします。で、あるトリガーでフラグを立てるのは
いいのですが、通常はフラグを降ろしておかなければなり
ませんよね。では、立てたフラグはどこで降ろせばいいの
でしょう?
いえ、実はまだ試していないのですが、フラグを降ろすの
は「キーダウン」時の仮想キーコード=13でしょうかね?
でも、書いていて思ったのですが、前述の「ソース値更新」
に項目訂正フラグの組合せでもいいかもしれませんね。
(今はオンラインなので後で試してみます)(^^;)



次、別件「両端objでカーソルを止める」です。

伝票(または一覧表)フォームの場合、表形式とは違って、
矢印キーでは左右両端の項目でカーソルが止まりませんよね。
前行または次行の端項目objに流れてしまいます。
これを、両端で止めるにはどうしたらいいか?
今考えている方法は、「キーダウン」イベントで、左右矢印
キー押下の場合に、フォーカスobj名を取得し、objが右端で
→キー、左端で←キーならば、フォーカスをそのobjに設定
すると云うものなのですが、どうでしょう?
他にうまい方法ありますか?
タブオーダの設定だとうまく行きませんでした。使い方がま
ちがっていたのかもしれませんが。
<429> 悲しげ 1999年10月12日 火曜日 23時02分24秒
どもっ、#427【多遊】さん、

>イベント説明の907は項目訂正をマウスで行ってますが
>お役にたちませんか?

あっ、ありがとうございます。早速見てみました。なかなか
面白い処理ですね。
でも、ちょっと私のやろうとしていることとは違いました、
すいません。(^^;)

あれをいじくっていて、気が付いた点があったのでご報告
させていただきますと、
左側を訂正モードにしたままで、右側をマウスでクリック
すると、エラーになります。ちなみにわざと試した訳では
ありませんよ。(^^;)(^^;)
理由は、更新モードで「行訂正」は使えないからです。
試してはいませんが、この辺りにも対応しようと思えば、
更新モード取得メソッドで、更新モードを調べて、
・表示モードならば「行訂正」
・更新中のモードならば「項目値代入」
のような条件分けをしたらいいのかもしれません。って、
これで動くかどうかは判りませんが、機会があれば試して
結果を教えて下さい。(^^;)

#428 いかさま、

>普通に考えれば、「項目訂正」に入るとき、
>1)項目訂正だよっていうフラグを立てておいて
>2)フラグが立ってる時だけ、キーダウンイベントで更新モードを
>  表示に代えてやるてのが簡単かも…

あっ、な〜るほど、それ簡単そうですね。(^^)v
明日試してみて、結果を報告します(しないかもしれないが)。

実は私はそのオブジェクト(項目)について「ソース値更新」
イベントで、更新モードを0にし、且つフォーカスを固定して
試してみたのです。で、うまく行ったつもりだったのですが、
今度は純粋の訂正モード(項目訂正ではなく)の時に、その
項目を通った時に、表示モードとなって且つフォーカスを移せ
なくなっていたのでした。お粗末。(^^;)

ps:
相変わらず私のパソコン環境でのトラブルみたいなのは続いて
います。
が、今日は、ちょっと面白い処理の仕方を思いつきました。
DOS風に云えば「帳票形式編集 許可作業=なし」または「処理
行指定 帳票」みたいな感じで、とにかく先ずはやることを決
めて、次に処理対象行を[Enter]で指定していく方法です。
詳細は後報します。(^^)
<428> いかすぱげてぃ 1999年10月12日 火曜日 12時41分55秒
>「入力後」「ソース値更新」「行訂正終了前」「同後」「フォーカス喪
>失」「同取得」のどれがいいのか、あるいは全く別な切り口でやるのか、
>ちょっとだけ試しかけて、いま現在放置中なのであります。

普通に考えれば、「項目訂正」に入るとき、
1)項目訂正だよっていうフラグを立てておいて
2)フラグが立ってる時だけ、キーダウンイベントで更新モードを表示に代えてやる
てのが簡単かも…

試していないので手抜き回答ですけど…
<427> 【多遊】 1999年10月11日 月曜日 22時33分55秒
いかすぱげてぃさん>

ありがとうございます
>どうやら、オブジェクト取得オブジェクトの番号パラメータが
>1からではなく、0から指定する仕様になっているのですね。

いろいろ試しても、仕様かどうかがわからなくて、だいぶ時間を使いました
いかすぱげてぃさんに書いていただくと安心です

>「こんなの使う奴は「ばー業者」位で、まっ、適当でいいや」
>っていう感じで作られてるって言えば少し大げさかな。

『こんなの使う奴は』は、すこしドキッとしましたが、少し大きなプログラムを
作成中でして、ボタン名やオブジェクト名を統一したく利用しています


悲しげさん>
なにやらお取り込み中のご様子ですが

イベント説明の907は項目訂正をマウスで行ってますが
お役にたちませんか?

まとはずれでしたらすみません

<426> 悲しげ 1999年10月11日 月曜日 18時33分34秒
すいません、手抜きで質問させて下さい。(^^;)
「手抜き」と云うのは、自分で色々試さないで、ひと様が苦労して会
得したやり方の結果だけ教えてもらおうと云う、ずるい考えを指して
います。(^^;)(^^;)

さて、質問はこうです。

---------------------------------------------------------------
イベントで「項目訂正」を実現させるにはどうしたらいいのでしょう?
---------------------------------------------------------------

「そんなもん、手動でフォーカスを移して、スペースキーを押せばい
いじゃん」とのご意見もあろうかと思いますが、場所がちょっと離れ
ていたりとか、色々あって、イベントでやってみたいのであります。

操作としては
1)ある引き金によって、対象となるテキストobjにフォーカスを移す。
2)訂正モードにする。
 ご承知のとおり、更新モード設定methodには「8」即ち「項目訂正」
 のモードはありませんから、「2」即ち「訂正」しか使えません(よね?)
 ※ 余談ながら、この時には、定石どおり編集選択位置取得・同設定
   methodで初期値を設定しております。
3)適当な値を訂正入力し、[Enter]で決めます(あるいは[Esc]でキャン
 セル、要するにこの辺りは会話処理の操作ですね)。
4)問題はこの後です。このままだと、[Enter]した後は、次のobjに進ん
 でしまいます、しかも訂正モードのままで。

望む形は、ここで更新モード(0)に戻して、且つフォーカスをそのobjに
止め置きたい、と云うことです。
この時にどのような記述をすればいいのかを教えていただきたいのであ
ります。
「入力後」「ソース値更新」「行訂正終了前」「同後」「フォーカス喪
失」「同取得」のどれがいいのか、あるいは全く別な切り口でやるのか、
ちょっとだけ試しかけて、いま現在放置中なのであります。

すいません、よろしくお願いします。<(_ _)>

<425> いかすぱげてぃ 1999年10月11日 月曜日 15時42分38秒
多遊さん、こんにちわ。

どうやら、オブジェクト取得オブジェクトの番号パラメータが
1からではなく、0から指定する仕様になっているのですね。
ようするにオブジェクト番号は「0から」ってことです。

うーん、でも、どうなんだろう。
これって、一般的でなく、実に分かりにくい仕様な気がする。
「こんなの使う奴は「ばー業者」位で、まっ、適当でいいや」
っていう感じで作られてるって言えば少し大げさかな。

悲しげさま>

ながーーーーいMSGをご苦労様です。
後でゆっくりと拝読させていただきます。
<424> 【多遊】 1999年10月10日 日曜日 10時58分22秒
悲しげさん。いかすぱげてぃさんこんにちは

私もちょっと疑問をもってることがあるのですが

メソッド呼び出しを利用してフォームのオブジェクト名を表に書き出す一括を
作成したのですが、動きがおかしいようです

一括処理で、
メソッド呼び出し・・・オブジェクト数  を、利用して、オブジェクト数を取得


繰り返しコマンドで 1から先ほどのオブジェクト数をループ

  メソッド呼び出し・・・オブジェクト取得

これが、なぜかエラーになります。

結局、

繰り返しコマンドを 0からオブジェクト数−1としてループ

と、して処理してますが、変数は0から始まって正常でしょうか?
一応、正常に取得できてはいますけどなにか納得出来ない状態です
<423> 悲しげ 1999年10月09日 土曜日 16時49分33秒
3発目(先の発言の続きから)。
多重化した場合の表番号の取得の仕方が判りました。(^^)v

  編集表 "なんとか.TBL"
  多重化                /*表番号パラメータを書かない*/
  &表番号=#表番号取得("なんとか.TBL",2) /*多重化がひとつの場合は2*/
* 置換 終了状態=&実行リターン,[なんとか]
  終了 表 &表番号

多重化表には表名を取得できないところへもって「#表番号取得」
関数なんてのはV7ではありませんでしたからね、これで随分使え
るようになりました。
ところで、多重化のもうひとつの用途として次のようなのがあり
ます。(以下、ヘルプHTMLから抜粋)

--------------------------------------------------------------------------------
【イベント処理】他の表を操作する

■ノート
1レコードずつ繰り返し操作するような処理を行なった場合、画面の再描画の
ために、処理速度が低下することがあります。このような処理を行なう場合は、
つぎのような工夫をしてみるとよいでしょう。

・[多重化]コマンドで表をもうひとつ開き、その表に対して操作する
・[ウィンドウ位置]コマンドで、対象となる表のウィンドウを非表示にする
・表の編集状態から結合する結合表を使用して表をもうひとつ開き、その表に
 対して操作する
--------------------------------------------------------------------------------

つまり処理速度アップに使えそうだと云うことであります。
上記の例で「置換」を実行させているのはこのテストのためです。
確かにV7での、フォーム上における「置換」や「繰り返し」画面表
示の遅さと云ったら、話にならないくらいでした。と云う訳で、ま
ずは「多重化」において試してみました。
で、その結果ですが、実はV8になってから、フォーム上での置換は
かなり速くなっていまして※、多重化表において実行させた場合と
殆ど変わらないように体感しました。と云うより、多重化で開いた
表は、整列されていないし、またグループ選択状態にもない訳です
から、別途に並べ替え・絞り込みの過程を必要とする分、却って多
重化表経由の方が遅いような感じすらしました。
※ 速くなったと云っても、V5ほど速くなった訳ではありません。
  V7でのそれが「トロットロッ・ノロノロ」だとすれば、V8では
  「ススゥーッ」でしょうか(ちなみにV5だと「ピュッ」)。(^^;)
  K3でもかなり無理して高速化させたんだと推察しています。
ところで、他のふたつの方法は試しておりません。
2番目のは表ウィンドウの場合に限りだと思われます。表ウィンド
ウの場合だと、前の発言で書いたように、モーダルフォームから実
行させると使えないみたいなので。
3番目の結合を利用する方法、これは、実は私の場合、結合はV6以
来、一度しか使ったことがなく、やり方がよう判らんのです。どな
たか、テストして結果を教えて下さい。併せて、そのやり方(対象
表がひとつで実表を更新できる結合)を私に教えて下さい。

<422> 悲しげ 1999年10月09日 土曜日 16時49分08秒
2発目。
私は桐ver5の一括では随所で「会話処理」を多用して来ました。
表形式編集(許可作業=なしを含む)とか、帳票形式編集(同)、
それと処理行指定もずいぶん使いました。だって、楽なんです
もんね。(^^;)

さて、イベントでは使えない。と云うことで、代替策を講じなけ
ればなりません。
が、今回書くことは、直接そのことではありません。ですから、
前置きとしては迂遠なことを書いてしまいました。(^^;)

え〜、V5で私は伝票入力は専ら画面伝票(V6以降の云い方ではグ
ループ項目のある伝票フォーム)を使って来ました。V8でもこれ
は使えるけれども、折角だから、メイン&サブフォームで試して
います。メイン&サブはV8イベントにしてようやく使えるように
なったからです(と思う)。
画面伝票では私は、[HOME]キーで表形式編集に降りて操作する方
法を好んで取りました(機能キー入力を使った一括処理です)。
しかし、メイン&サブでは、明細部はサブフォーム(対象表)側
にあるため、[HOME]キーで表形式で参照することができません。
この場合、[HOME]キー押下では、単にメイン部(ヘッダ部等)対
象表しか一覧できない訳です。
これを何とかできないものかと色々試した結果、何とかサブフォ
ーム明細の対象表を表形式で扱うことができるようになりました。
引き金とするのは[HOME]キーで、これは「キーダウン」イベント
を使いました(すいません、マウス嫌いな私はこれが好きなもん
で、こればっかし)。サブフォーム対象表は「多重化」で開くよ
うにしました。で、最終的にどうするかと云うと、
  「ウィンドウ作成 表,・・・・・」
たったこれだけの記述でした。これだけで表形式編集が可能とな
ったのであります。(^^)v
多重化する際の表番号の指定では(再度開こうとした時など)若
干問題を残してはおりますが、ま、それなりのメドは立ったと思
いました。(多重化の件は別に書きます)
そこで、今度は親フォーム(メイン&サブ)をメニュー的フォーム
から「フォーム呼出し」で呼び出してから、上記のイベントを実行
させることにしました。
すると、な・な・なんと! 表ウィンドウは確かに表示はされるも
のの、親フォームが前面にど〜んと居座ったままです。これにはま
いりました。
その理由はマニュアルの記述を読んで判りました。「フォーム呼出
し」コマンドは、「モーダルフォーム」として呼び出すのでした。
つまり、呼び出されたフォームは常に再前面に表示され、後ろのウ
ィンドウへはアクセス不能である。しかるに、kevでは「フォーム呼
出し」コマンドしか使えない。
そうゆう訳で、結局は一覧表フォームを作成して、それをさらに呼
び出すことで、表形式編集モドキとして対応するしかありませんで
した(必要に応じて透明ボタンをかぶせて)。
と云うことは、どうゆうことになるかと云うと、wfmとkevだらけに
なってしまったと云うことです。これはちょっと辛いな。(;_;)

<421> 悲しげ 1999年10月09日 土曜日 16時48分05秒
先の発言の補足です。
「マウス左クリック」で実行させるためには、何も透明ボタンを
重ねる必要もありませんでしたね。単にテキストオブジェクトへ
のイベント指定だけでよかったのでした。
併せてご報告しますと、類似のオブジェクト名で重ねていたもの
で、kevの記述において、ボタンobjのイベントとテキストobjの
イベント(左ダウンとかマウス移動とか)が錯綜しておりました。
挙動不審はこのせいだった可能性大ではあります。(^^;)
その後、単に「左クリック」のみで可と判ったからには、これ以
上追求するつもりもありませんで、どうもお騒がせしました。<(_ _)>


そのお詫びと云っては何ですが、引き続き3連発で書きます。(^^)

その一発目。
例の「フォーム開始」イベントについて、いかさまらが繰り返し
指摘なさっていたことがようやく実体験できました。要するに、
ウィンドウハンドルをはじめ、ウィンドウとして諸々の要素を取
得・設定できないと云うことですね。
この「フォーム開始」イベントは、正しくは「フォーム開始直前」
イベントに過ぎませんですね。となると「フォーム開始直後」イ
ベントがどうしても必要になって来ると思います。で、いかさま
苦心の手法であるところの「タイマー」イベントが専ら「フォー
ム開始直後」イベントの代わりになると云う。(^^;)
何をやろうとしたのかと云うと、あるフォームのある場所にピッ
タリと別のフォームを(呼び出して)かぶせることです。位置合
わせは、V7.*ではどうしてもうまく行きませんでしたが、V8でよ
うやく「#PointToDot」関数が出て来たので、何とかうまく行きま
した(試した結果、解像度の違いにもきちんと対応できます)。
その際、ウィンドウ位置を設定するためには、フォーム開始直後
でなければならなかったからです。
ついでに云うと、別な場所で一瞬フォームが開き、次の瞬間に所
定の場所に移動するってのがどうしても美しくなかったので、や
むを得ず「最小化」で(画面左下に)開き、次いでスルスルッと
伸びて所定の場所にはまるような形になりました。本当は「無」
から現れるようにしたかったんですけどね。
そのためには「フォーム呼出し」コマンドで「非表示」オプショ
ンがあればいいのに、と思いました。

この辺りの記述例を挙げておきます。
------------------ 元フォームのkev -----------------------
手続き定義開始 何かのイベント・・・・
 変数宣言 数値{&窓始x,&窓始y},文字列{&ob始x,&ob始y}
 ウィンドウ位置 取得,&hwindow,位置=(&窓始x,&窓始y) /*Dot(数値)*/
 オブジェクト操作 &ob始x=@a某.始点X,&ob始y=@a某.始点Y /*Pt(文字列)*/
 /* &始点xと&始点yは共通変数(長整数)として宣言済 -2は補正値*/
 &始点x=#int(&窓始x)+#int(#PointToDot(#num(&ob始x)))-2\
 ,&始点y=#int(&窓始y)+#int(#PointToDot(#num(&ob始y)))-2
 *&処理中止=1
 フォーム呼出し "某2.wfm"

-------------- 呼び出されたフォームのkev ----------------
手続き定義開始 フォーム::タイマー1()
 /*タイマー値1は「0.01」となっている*/
 /*フォームobj属性のフォームタブでは「最小化」にチェックを入れてある*/
 ウィンドウ位置 設定,&hwindow,位置=(&始点x,&始点y)
 *・・・・・・ /*なんらかの処理*/
 オブジェクト操作 @フォーム.タイマー1="0"
手続き定義終了

<420> 悲しげ 1999年10月09日 土曜日 12時45分13秒
どもっ、いかさま、
その後対応策*を見つけたので、それを書こうと思っていました
ら、早速のコメントをいただきまして、おありがとうございます。

>特にマウス移動イベントを使う理由って言うのがよくわからん。
>処理対象行の取得以外になにに使ってるのですか?
>なぜ、マウスクリックイベントだけじゃダメなのでしょうか?

あらっ? あららららら?
先の私の発言を読み直してみたら、私は嘘を書いていました。(^^;)
私が使ったのは「マウス左クリック」イベントではなく、「マウス
左ダウン」イベントだったのでした。(^^;)

※ 前回書き忘れましたが、当該テキストオブジェクトの上には、
 透明ボタンをかぶせています。操作としては、一見すれば表の項
 目オブジェクト、実はボタンをクリックする訳です。

で、「マウス左ダウン」だと、先に書いたとおりの結果とあいなり
まして、それでやむなく「マウス移動」イベントも使ってみた訳で
あります。(^^;)
しかるに、いかさまから「マウス左ダウン」ならぬ「マウス左クリ
ック」で問題ない旨のコメントをいただきまして、ハタと悔い改め、
「マウス左クリック」イベントの方で試してみたところ・・・・、
なはははは、なんなく期待どおりの結果を得ることができました。(^^;)

そうなんだ、「クリック」でいいんですよね。いえね、スケベ根性
を出して、「左ダウン」で表示、「左アップ」で表示解除なんてこ
ともチラッと頭にあったのがいかんかったです。(^^;)

* 冒頭に書いた「対応策」ってのは、もう既に書く必要もなくなっ
たのですが、ついでに書いておきます。全てボタンで済ませると云
う方法です。ちなみにこれは(C)Rose.Cです。(^^;)
  機能名         機能パラメータリスト
1 なし        #setq(&line0,#cond(&line2=#行番号,1))\
           ,#setq(&line2,#行番号)
2 実行条件      (&line0=1 .and .not #eof)
3 なし        #setq(&ナントカ,[ナントカ])
4 モーダルフォーム  カントカ.wfm
<419> いかすぱげてぃ 1999年10月09日 土曜日 10時41分28秒
悲しげさん、ちわっ。

>1)「マウス移動」は「左クリック」に先立って実行される方が挙
> 動としては自然なような気がするのですが、どうなのでしょう?
> それとも逆となっている深い理由があるのでしょうか?
>2)このような場合の代替策はあるでしょうか?


うーん、いまいちご質問の意味がよくわからないのです。(^^;
特にマウス移動イベントを使う理由って言うのがよくわか
らん。
処理対象行の取得以外になにに使ってるのですか?
なぜ、マウスクリックイベントだけじゃダメなのでしょうか?

質問を質問で返す馬鹿なイカ

<418> 悲しげ 1999年10月08日 金曜日 23時39分46秒
そうそう、別件です。

私の環境も着々と(^^;)再構築されつつあります。
で、災い転じて福となったことが幾つかありました。

1)これはNIFTY関連なんですが、通信環境を再設定するに際して、
次の発見がありました。私のところのような辺境の土地にも、近隣
にroad7のアクセスポイントが出来ていたのであります。いつ出来た
のかは判りませんが、比較的最近のことだと想像しています。私な
んか、いわゆる「通信環境におもる南北問題」と称して、すっかり
諦めてずーっとroad2(2400bps)でアクセスしていたのでやんす。信
じ難いとお思いの方もいらっしゃるでしょうけど、そうなんです。
今回のような再設定の機会がなければずっとそのままだったと思い
ます。先日からroad7でアクセスしてその速さ(あるいは以前の遅さ)
にびっくりしています。(^^;)
ま、NIFTYなんてのは、もうマイナーな世界なのかも知れませんが。

2)お次はメジャーなインターネット関連です。
数日前ですが、ようやく私もISDN回線にしました。いえね、地元商
工会から、1万円の補助が出たんです。上述1)ほどの衝撃はあり
ませんでしたが、それでもやはり速いですね、28800で繋ぐよりは。
アックンからはルータを勧められてたんですが、当店の場合、モデ
ムを3台使わざるを得ないと云う特殊事情もありまして、配線や工
事の関係で、業者のお勧めに従ってTAの採用とあいなりました。

3)例の私の固有の不具合「wfmを再定義するとしばしば『他のユ
ーザが使用中』のエラーが出て、そのwfmが使用不能になる」件、
この度、少し進展がありました。詳細は、もう少し突き詰めた後に
報告させていただこうと思っておりますが、どうもネットワークが
らみのような印象を強くしました。
<417> 悲しげ 1999年10月08日 金曜日 23時14分49秒
どもっ、guldaさん、hidetakeさん、【多遊】さん、
システムのバックアップに関するご助言ありがとうございました。
この問題は、追って検討してみたいと思っています。

さて、ここ数日、久しぶりにイベントを使っていますので、その
話題です。
ひとつ、合点が行かないところがありますので、報告と云うか、
質問と云うか・・・。

ある一覧表フォームがありまして、ある項目に色々メモしている
もんで、ここを「マウス左クリック」イベントで拡大表示させる
ようにしてみました。
つまり、拡大表示用のカードフォームを呼び出す訳ですが、呼出し
に先立って、当該レコードの項目値を変数に取得するようにしてい
ます(カードフォームで表示させるソースはその変数です)。ここ
まではいいのですが・・・・。
今、レコードポインタが仮に2行目にあるとします。この時、5行
目の当該項目を左クリックして、5行目の値を拡大表示させようと
思いました。
そのため、「マウス移動」イベントで明細行数(この場合は5行目)
を取得し、そのレコードにジャンプして項目値を取得すれば一発で
うまく行くはず、やったぜ!(^^)v と云うことで試してみたところ、
駄目でした。(;_;)
なぜ駄目だったかと云うと、マウスイベントにはガッチリと順番が
ありまして、「マウス左クリック」は「マウス移動」よりも先に実
行されるようだからです。この場合は、5行目をクリックしても、
カードフォームで拡大表示されるのは2行目の項目値なのでした。
そして虚しくも、拡大表示フォームを閉じた後に、レコードポイン
タが5行目に移動したのであります。

と云う訳で、
1)「マウス移動」は「左クリック」に先立って実行される方が挙
動としては自然なような気がするのですが、どうなのでしょう?
それとも逆となっている深い理由があるのでしょうか?
2)このような場合の代替策はあるでしょうか?


ps:
合点が行かないこと、質問したいことは山ほどありますが、それも
追ってぼちぼちと。(^^;)
<416> hidetake 1999年10月02日 土曜日 21時05分37秒
システムバックアップ方法>

私の場合、Windows のシステムは DOS のツールで Angie さん作
のLDCOPYと言うものを使っています。これはWindows95が出きる前
のツールですが、ドライブをクラスタ単位でそのままのイメージ
でコピーするツールですのでWidows95のLFNもそのままコピーされ
ます。DOSのツールなので、コピーする時も復元する時もWindowsは
使わないのでDOSプロンプトを起動するだけで単純に行なえます。

私はこのツールを使い、月に1度バックアップを取るようにしてい
ます。月初めにログを整理しLZHに圧縮して保存し、不要になった
ファイルを削除した上でデフラグをかけバックアップを取ります。
(データドライブはほぼ毎日バックアップを取っています)

バックアップは基本的に内蔵した別のドライブ上に取るようにして
いますが、そのままドライブが見えるようになっているとシツコイ
インストーラがそのドライブ上のファイルまで消す場合があるので、
通常は非表示にしています。この設定は、以前は Altair☆ さんの
ADISK と言うものを使っていましたが、さすがに8GB以上のドライブ
になると古いソフトなものでうまく動作しないため、PowerQuest社
のDriveCopyを使うことが多くなりました。DriveCopyでもHDDを
そのままコピーする事はできるのですが、遅いのと、パーティション
単位でギリギリの容量同士をコピーする際、どうもうまく行かない
場合があるので、未だにLDCOPYの方を多用しています。
LDCOPYはDOSの古いツールですのでFAT16しか対応しておらず2GBまで
しか使えません。FAT32を使わざるを得ない場合はDriveCopyを使う
ことになります。

私はWidnowsのシステムドライブは非常時に備えて、あらゆるツール
の使えるFAT16で2GB以内に設定し使っているので、LDCOPYでなんら
困ってはいないのです。

さてコピーのスピードですが2GB弱をコピーするのに数分程度です。
システムがいかれても、別のバックアップしたドライブを生かすか、
元のドライブにコピーして戻してもよいのですが、10分もあれば、
月初めの状態に戻せるということです。

ところで今日は今週東京へ言ってきたついでに買ってきた IDE RAID
の FastTrack66 のセットアップを行ないましたが今まで使ってきた
UltraWide SCSI 9.1GB 7200rpm から、ATA66 9.1GB 7200rpm 2M CACHE
×2台の RAID 0 にコピーしたところ 1.6GB が約2分でした。
HDBENCH でも30MB/SECを越えているし、デフラグも流れるように進み
気持ちよいです。本当に凄い時代です。 (^_^;

<415> hidetake 1999年10月02日 土曜日 19時19分53秒
【多遊】さん、悲しげさん>
>dos版の「Mirin's Filer」を使用すると、デイレクトリーごとコピーできます
>(もちろんロングネームには対応していませんが)
>しかしもう必要ないですか。もしご必要でしたらご一報を・・

PC-VAN の j98C には LFN に対応した FD (城パッチ版)があります。
DOS でも使えるので便利です。

<414> 【多遊】 1999年10月02日 土曜日 12時37分00秒
guldaさんこんにちは

悲しげさんの悲しい(?)お話のあとに、かなり興味のあお話をいただきまして
ありがとうございます。どうやら悲しげさんも95%の復旧されたそうで
なによりです

しかし、
>再インストールするとディスクが100M単位で空いてくるので、
>無駄なゴミファイルを捨てるにはちょうど良いイベントかもしれません。
そうですか。イベントと考えれば、時には必要ですね。
わかってはいるのですが、なかなか機会がなくて
私もクラッシュしないうちに、今日あたりバックアップしておきます
貴重なご意見ありがとうございます

悲しげさん>
dos版の「Mirin's Filer」を使用すると、デイレクトリーごとコピーできます
(もちろんロングネームには対応していませんが)
しかしもう必要ないですか。もしご必要でしたらご一報を・・

<413> gulda 1999年10月01日 金曜日 11時36分22秒
マシンが飛んで復旧した話につい引きこまれて、投稿してしまいました。
私は、次のようにして飛ぶことを前提に環境を設定してます。
   必要量の1.5倍のディスクを用意する
   c:以外のドライブにWindowsCDとNetwordkボードとSCSIのドライバを複写したフォルダを作る
   インストール手順とネットワーク設定の手順を書いた紙を手帳に挟んでおく
   なくなると困るファイルはドライブを固定して、C:以外のドライブに保存して、1年に1回はCD-RやZIP,ClickIt,FD等にBackUpする。
これで再インストール時にWindowsやドライバのCDを探し回ったり、マニュアルを探して必要事項を読んだりする必要はなくなります。要するに、FDでブートして、WindowsのCDの複写してあるフォルダのSetup.exeを実行すればよいのです。
いままでに、1回だけWIndowsが動かなくなり再インストールしましたが、半日程度で復旧できました。それにしても、再インストールするとディスクが100M単位で空いてくるので、無駄なゴミファイルを捨てるにはちょうど良いイベントかもしれません。
<412> 悲しげ 1999年09月30日 木曜日 14時16分46秒
どもっ、hidetakeさん、【多遊】さん、お心遣いありがとさんです。

>>それにしてもよくここに書き込めましたね。

> システムが飛んだと思ったもので... (^_^;

いえ、大体そんなとこです。必死で復旧に努めましたから。(^^;)
先に「以下次号」としましたので、この辺の事情をご報告させていた
だきます。(某氏らへのメールからの引用・一部改ですが)

//////////////////////////////////////////////////////////////
私こと、金曜日の夜、ほんの出来心でHD(Cドライブのみ)を消してし
まいました。(;_;)
※クラッシュではありません、純然たる私の誤操作です。
Cドライブのバックアップは殆ど取っていなかったこと、しかしながら
データの殆どがDドライブにあったため、最悪の事態はまぬがれましたが、
金曜夜から日曜にかけて復旧に努めまして、ヘトヘトです。
ドライバーがどうしてもひとつ見つからず、未だに不完全状態ですが、
辛うじてinternetにアクセスできるまでにはなりました。
・・・・・・それにしてもトホホです。(;_;)
//////////////////////////////////////////////////////////////
・・・・・最終的にWin自体が全く起動しなくなりました。で、Cドライ
ブのバックアップは取っておりませんでした。ただ、Cドライブのデータ
自体は(Windowsシステム関連以外は)その時点では殆ど残っていたの
であります。フロッピー起動したら、それが見えるのが何とも残念だっ
たです。退避のためのMOドライブも認識できません。そこで思い立った
のは、Dドライブに十分な空き(4Gbほど)があったことで、Cドライブの
フォーマットに先立って、主要なデータのみをDに退避させておこうと
云うことでした。
幸い、DドライブにはDOS用ファイル管理ソフト"FD"がありましたから、
何とかそれを使いました。その際、ディレクトリ丸ごとのコピーがどう
してもうまく行かず、結局は逐一ディレクトリを新設してのコピーとな
ったため、その逐一が非常に面倒でした。これだけで殆ど徹夜作業とな
ってしまいました。あと、いわゆるロングファイルネームは、これはど
もならんので、後で推測するにまかせるしかありませんでして、この点
は後でさほど困ることはありませんでした(十分に推測できた)。
徹夜になったのは、もうひとつ訳があります。私の場合、ハード的なこ
とは素人同然(要するに桐しか使えない人)ゆえ、このような場合にど
うしたらいいのかが全く判りませんでした。私のマシンはGateWay2000
でして、あそこは24時間サポート体制を取っていますから、これにすが
ることにしました。が、電話は延々と話中です。この間ず〜っと繋ぎぱ
なしでして(どうせ0120だし)、繋がったのは明け方4時くらいだった
と思います。それで大体のやり方が判って、ここまで至ることができた
と云う次第であります。
Cドライブデータの退避は翌日に持ち越し、土曜日はその続きと、慣れ
ないWin95の再インストールで辛い1日を過ごしました。この時も明け
方までの作業となりました。そのため、日曜日はダウン、夜まで寝込
んでしまったと云う次第ですが、日曜夜にはインターネットへのアク
セスまでには至るようにできました。実際、不足ドライバーの取得等
の関係で通信回りが最優先事項のひとつではあったのです(パソコン
は複数台あれど通信環境が整っているのは本機だけだったので)。
未だに実務の多くはDOS桐であり、このデータは丸ごとDドライブでし
たから、この点は全く問題はありませんでした。
今回の教訓として、データは基本的にCドライブには置かないこと。
当然ながら、バックアップはマメに取ること(何の為に640MbのMOを
付けてたんだか)。
もうひとつ、システムのパックアップですね、これはどうしたらいい
のか判りません。うまい方法があったらそのうち教えて下さい。
ただ少なくとも各種ドライバはまとめておいた方がいいですね。最終
的にはFDにでしょうけど、当面はD:\Driversなるフォルダを設けて、
そこに集中して保存させておくことにしました。ドライバを探すのに
今回こりごりしましたから。
////////////////////////////////////////////////////////////
95%くらいまでの復旧に5日ほど要しました。これ以上はもういい。
消えたのは殆どゴミです。それにしても1年半ほどでずいぶんゴミ
が溜まっていたもんだ。これでしばらくはスッキリ暮らせそうです。
////////////////////////////////////////////////////////////

と云う訳で、ゴミを長々と失礼しました。<(_ _)>
<411> hidetake 1999年09月30日 木曜日 07時59分30秒
そう言えば、先日 K3 に桐の「読み取り一貫性(参照一貫性)」に
ついて桐の仕様を教えていただくようFAXしたのですが、回答
が送られてきたものの私に取っては内容が意味不明なので、再度
FAXしたらわざわざ電話で説明をしてくれた。

しかし、その内容が凄い内容で私は呆気に取られてしまった。

私の考えている「読み取り一貫性(参照一貫性)」とは、データを
共有している状態で、処理に時間の変化に伴い、読み取り最初と
その後で、共有データ(参照データ)に更新が発生した場合、どの
ようにそのデータの一貫性を保つかという問題で、InterBase や
Oracle 等の解説の様にシステム側でどのように仕組みを作るか、
作ってあるかを聞きたかったわけです。要は、トランザクション
処理で Read Only を指定するだけとか...

もちろん、桐にそのような機能が現時点で盛り込まれているとは
思っていなかったので、その確認と、ある程度の制限は発生する
もののその解決のための1手段を提案したのですが、返ってきた
回答は「同期型」とか「非同期型」とか、「制御系では」とか、
「メインフレームでは」とか、「銀行では」とか...
そして、桐で実現する手法も面白かった。

それにしても、世の中いろいろな考え方があるものですネ。

E-Mail

<410> hidetake 1999年09月30日 木曜日 07時31分25秒
【多遊】さん、悲しげさん>
>>それにしてもよくここに書き込めましたね。
> ????
> お気軽に、なんでもお書きいただいて結構です
> こんごともよろしくお願いいたします

システムが飛んだと思ったもので... (^_^;

E-Mail

<409> 【多遊】 1999年09月29日 水曜日 23時19分16秒
ぼたさん>

はじめまして。桐の話しがしたくて開設したHPです
時間の関係でリアルタイムにはお答えできませんが(私は)
気長におつきあい下さい

ご質問の件ですが、

>自分が使うのであれば、新規の曲名が出てきたら曲CODE.TBLに追加してからランキング.TBLを
>入力、新規の歌手名が出てきたら歌手CODE.TBLに追加してからランキング.TBLを入力すれば
>いいと思うのですが、初心者や横着者はそれが面倒らしいのです。あえて数値でCODE管理する
>理由は、このCODEがユニークで3〜5桁で成立する伝票を打たせたいのです。伝票を打つときに
>「曲CODE.TBL」や「歌手CODE.TBL」を更新させる作業を意識せずにやらせたいのです。

結局、現在入力している表に表引き等を設定しておき、新規データが発生してら、表引き用の
表にも同時に追加していくという意味でしょうか?

そうすると、
>結合表等を駆使して
と、意味が多少違ってきますが、少しご紹介いたします

現在 win 版を利用されてますので、同時に複数の表を開くことができますが、
DOS 版の頃は、一度に1つしか表を開くことが出来ませんでした。新しいデータがでるたびに
別の表をを開いて登録をして、またもどり、次のデータを入力をするなんて、かなり面倒でした。
そこで、一括処理で、入力終了後、表引きされる方から対象データを読込、単一化しておくように
しました。もし、たくさんの新しいデータを入力する必要がありましたら、定期的に
表引きされる表を更新すればいいのですが、PCの性能・データー件数等に影響されるとおもいます。

時間はかかってもいい・PCの性能もいい。とにかく、面倒な事はしたくないという場合は
イベントを利用してデーター入力後上記の操作を行えばいいと思いますが、あまり現実的では
無いと思います。


>[歌手名]のところに「モーニング娘。」が現れる。そんな雰囲気の入力を、フォームを
>作らずにやりたいと思っています。
こうなると、コマンドボタンやイベントの使用も難しく、やはり一括処理に頼るしかなさそうですが

お答えになってるかどうかわかりませんが、いろいろ試して下さいね


他の皆さんも、是非ごお力添えを、お願いいたします

<408> 【多遊】 1999年09月29日 水曜日 23時18分35秒
悲しげさん>

>Cドライブデータがフッ飛んでしまっただ。(;_;)
ほんとうに、大変ですね。アプリのドライブでしたら再インストールすれば
いいのですが、データのドライブでしたら・・・本当にご愁傷さまです
でも、再インストールも環境を全部戻すのは、大変ですね。頑張って下さい

>以下次号。
お待ちいたしております


hidetakeさん>

>それにしてもよくここに書き込めましたね。
????

お気軽に、なんでもお書きいただいて結構です
こんごともよろしくお願いいたします

<407> ぼた 1999年09月29日 水曜日 04時21分59秒
1箇所間違っていました。

>このような感じで、結合表で[日時]→[順位]→[曲CODE]と打っていき、[曲CODE]のところに
>くると、とうぜん最初は曲CODE.TBLにはデータがないので何も出ないので[曲名]を入力します。

この1行目の最後、「[曲CODE]のところに」の部分は「[曲名]のところに」と読み替えて、

>このような感じで、結合表で[日時]→[順位]→[曲CODE]と打っていき、[曲名]のところに
>くると、とうぜん最初は曲CODE.TBLにはデータがないので何も出ないので[曲名]を入力します。

と読んでください。一番キモの部分を間違っていました。

E-Mail

<406> ぼた 1999年09月29日 水曜日 04時17分15秒
はじめまして。
早速ですが、質問です。

現在、桐8の結合表等を駆使して以下のことができないかどうか悩んでいます。
桐8で可能なのか、可能ではあるが現実的でないか、など教えてもらえればと思います。
(サンプルとして某社カラオケ利用曲ランキングを例にあげます(^_^;) )

入力元となる資料--------------------------------------------------------
[日付]|[順位]|[曲CODE]|[曲名]|[歌手CODE]|[歌手名]
1999/09/20|1|033789|LOVEマシーン|001299|モーニング娘。
1999/09/20|2|033433|FIRST LOVE|001448|宇多田 ヒカル
1999/09/20|3|033719|AS TIME GOES BY|000546|hiro
1999/09/20|15|033225|Automatic|001448|宇多田 ヒカル
1999/09/27|1|033789|LOVEマシーン|001299|モーニング娘。

今は、これらの表を3つのファイルに分けてTBLを作り、結合表を使って入力する方法を
考えています。具体的には、以下のとおりです。

曲CODE.TBL--------------------------------------------------------------
[曲CODE]|[曲名]    ※[曲CODE]=主キー
033789|LOVEマシーン
033433|FIRST LOVE
033719|AS TIME GOES BY
033225|Automatic
歌手CODE.TBL------------------------------------------------------------
[歌手CODE]|[歌手名]  ※[歌手CODE]=主キー
001299|モーニング娘。
001448|宇多田 ヒカル
000546|hiro
ランキング.TBL----------------------------------------------------------
[日付]|[順位]|[曲CODE]|[歌手CODE]
1999/09/20|1|033789|001299
1999/09/20|2|033433|001448
1999/09/20|3|033719|000546
1999/09/20|15|033225|001448
1999/09/27|1|033789|001299
※[曲CODE]=外部キー→主キーは曲CODE.TBL
※[歌手CODE]=外部キー→主キーは歌手CODE.TBL

これを結合表で最初の「入力元となる資料」のように定義して入力すればいいのでは
ないかと考えました。具体的には以下のとおりです。

[日付]/ランキング.TBL/[日付]/抽出on
[順位]/ランキング.TBL/[順位]/抽出on
[曲CODE]/ランキング.TBL/[曲CODE]/抽出on
[曲名]/曲CODE.TBL/[曲名]/抽出on
[歌手CODE]/ランキング.TBL/[歌手CODE]/抽出on
[歌手名]/歌手CODE.TBL/[歌手名]/抽出on

このような感じで、結合表で[日時]→[順位]→[曲CODE]と打っていき、[曲CODE]のところに
くると、とうぜん最初は曲CODE.TBLにはデータがないので何も出ないので[曲名]を入力します。
そして[歌手CODE]→[歌手名]も打ち、次行に行くと、共有で開いている曲CODE.TBLには、
今の曲CODEと曲名が増え、歌手CODE.TBLには歌手CODEと歌手名が1行増える…。当然、
ランキング.TBLには「1999/09/20|1|033789|001299」という情報が入る。そんなことが
できないかと考えています。ここまでならなんとなく実現するのですが、例えば元データの
4行目を入力する時、[歌手CODE]の項目に「001448」を入力すると歌手CODE.TBLにはその値が
あるので[歌手名]にはポコッと「宇多田ヒカル」が現れる。また5行目を入力するときは、
[曲CODE]に「033789」を打つと「LOVEマシーン」が、[歌手CODE]に「001299」を打つと
[歌手名]のところに「モーニング娘。」が現れる。そんな雰囲気の入力を、フォームを
作らずにやりたいと思っています。

一見、欲張りに見えると思いますが、現実的にはありがちなことではないかと思います。
自分が使うのであれば、新規の曲名が出てきたら曲CODE.TBLに追加してからランキング.TBLを
入力、新規の歌手名が出てきたら歌手CODE.TBLに追加してからランキング.TBLを入力すれば
いいと思うのですが、初心者や横着者はそれが面倒らしいのです。あえて数値でCODE管理する
理由は、このCODEがユニークで3〜5桁で成立する伝票を打たせたいのです。伝票を打つときに
「曲CODE.TBL」や「歌手CODE.TBL」を更新させる作業を意識せずにやらせたいのです。

無茶なオーダーかもしれませんが、桐8の結合表や表引きで実現できませんでしょうか?

ちょっと分かりにくかったかもしれず、また長々と書いてしまいましたが、数日やって
どうやっても解法が思いつかず、実現性の有無も含め、ここで相談してみようと思った次第
です。よろしくお願いします。


E-Mail

<405> hidetake 1999年09月28日 火曜日 00時50分53秒
>ううう・・・・(;_;)
>Cドライブデータがフッ飛んでしまっただ。(;_;)

ご愁傷様
でも、これで Windows を入れ替える機会が持てたのでしょうか
それにしてもよくここに書き込めましたね。

ではでは

E-Mail

<404> 悲しげ 1999年09月27日 月曜日 23時03分51秒
ううう・・・・(;_;)
Cドライブデータがフッ飛んでしまっただ。(;_;)

以下次号。
<403> 【多遊】 1999年09月19日 日曜日 22時15分07秒
みなさんこんばんは。

今日は少し時間があって(必要もあって)、桐V5からのV8への移植を
やってみました。

やはり新規作成ですね。ただ、どうしてもイベント(kev)ファイルで
処理できないコマンドが多数あって困りました。そこは、一括(cmd)にて
とりあえず対応しているのですが。

ところで、V8のコマンドボタンを利用して、
一括(cmd)ファイルの指定した名前から実行する方法は
ないのでしょうか?。

従来の一括処理からの方法だと、
一括処理実行 一括ファイル名 名札名で、できたと思うのですが
V8のコマンドボタンは、機能とパラメーターに
開く:一括ファイル名となるため、特定の名札からの実行ができないような
感じです。(名札名を書いても先頭から処理しているような気がします。
書き方が、ミスしているのかもしれませんが)

そこで、変数を利用して、先に名札名を変数代入して、一括処理の
先頭に変数名で分岐するように書きましたが、あまりスマートじゃないですね、

まだまだ、V8はわからないことが多いですが、また調べてお知らせします。


<402> 【多遊】 1999年09月15日 水曜日 21時46分58秒
皆さんこんばんは
また10000カウント応援いただきましてありがとうございました
約100名の方にダウンロードいただきました
あんな駄作で、またファイルも大きいのに本当にありがとうございました
また、20000カウント目指して頑張りたいと思います

とりあえずお約束ですので、ファイルの削除を行いました。ご報告申し上げます
今後ともよろしくお願いいたします。
<401> 【多遊】 1999年09月14日 火曜日 22時16分48秒
どもっ、悲しげさん>

ご回答ありがとうございます
私はいつか聞いたような気がしてなりませんが、ずいぶん前の事なので・・

こちらでも、薬屋さん(個人商店)は、かなり厳しいようですよ。
ドラッグストアーのチェーン店がどんどん出来て、私の家族にいる町では、
店頭に野菜や食べ物も扱ってます。

いつかは、悲しげ魚屋さんも・・
今年の2月に函館にカニを食べに遊びに行きましたが、やはり北海道ですね
大変おいしくて、満足して帰ってきました
                  では、明日は仕事なので、また
Copyright (C) 2000 CGI Arkadia All rights reserved.
Script written by Shintaro Wakayama.
BBS-TypeN Ver.2 Preview4
remodel advice by hidetake