過去の桐井戸端BBS (桐ver.9)
27043 フォームを開いたときに特定のグループ項目を表示させるようにしたい mk 2004/07/15-09:08
桐9を使っているmkと申します。

桐を使って日記を書いています。項目は、年、月、日、曜日、本文です。
よくある5年連用日記のようなスタイルにするために、月と日をグループ項目にして、フォームを作りました。

フォームそのものはそれなりの体裁になり、例えば2004年のX月X日の記載をするときには、
過去の2003年、2002年、・・・の当該日の記述を見ながら書くことができます。

フォームを開くと必ず、1月1日の記載が表示されます。
フォームの上にある三角マークを押すと、1日づつ日付が移動するので、
本日の日付の場所にまで移動するのが大変です。

そこで今までは、(1)フォームを開く、(2)表に戻る、(3)行挿入して、
日付と曜日を記入する、(4)行挿入した箇所にカーソルをおいたままで、
フォームに戻る、(5)本文を記入する、というようにしていました。
なお、日付は挿入初期値で、今日の年月日を入れるようにし、曜日は値集合を使って選択するようにしていました。

最近になって曜日も項目計算式で自動で入るように改良したところ、
表で行挿入したあと、本文に何か1文字でも入れなければ、
表示モードに戻る時に挿入が取り消されることが判りました。

それなら、いっそフォームを開いたときに、今日の日付のところが表示されるようにしたいと考えて、
いろいろとやってみましたが、どれもうまくいきません。
いろいろといっても今までイベントを使ったことのない初心者なので、
たくさんのことはしていません。
マニュアルを見ながら、フォームの開始イベントで行挿入としたり、コマンドボタンを作ったりしたのですが、
結局はエラーか、あるいは1月1日のままで、行挿入されるかです。

フォームを開いたときに、デフォルトで今日の日付で表示されるようにするには
どうすればよいのでしょうか。よろしくお願いします。
27048 Re:特定のグループ項目でのフォーム表示 bonito 2004/07/15-14:39
記事番号27043へのコメント
>月と日をグループ項目にして、フォームを作りました。
年と曜日はテキストオブジェクトという事ですね

>フォームの開始イベントで行挿入としたり、
フォーム開始イベントは有効に設定されていますね

では
 手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
  グループ追加 {[月]=&月,[日]=&日},終了状態=&実行リターン
  条件 (&実行リターン<>1) グループ検索 {[月]=&月,[日]=&日},終了状態=&実行リターン
  条件 (&実行リターン<>1) メッセージボックス "×??","予期せねエラーが発生しました"
  条件 (&実行リターン<>1) 手続き終了
  検索 [年]{=&年},終了状態=&実行リターン
  条件 (&実行リターン<>1) 行追加 [年]=&年,[曜日]=#曜日(&年月日)
手続き定義終了

こんな感じでどうでしょうか?
(でも動作未検証です...すみません)


27049 お礼:うまくいきました mk 2004/07/15-19:02
記事番号27048へのコメント
mkです。

bonitoさんどうもありがとうございます。bonitoさんの作られたイベントをそのまま貼り付けたところ、思い通りの動作になりました。

ただし、最後の「[曜日]=#曜日(&年月日)」は削除して、項目の[年]、[月]、[日]を使った項目計算式で代入するようにしました。
2、3日分の日記をまとめて書くことがしばしばあるので。

コマンド一覧で、「グループXX」というところを見ていたのですが、
グループ追加の最初の説明だけで、違うと即断していました。
bonitoさんのイベントを見て、よく読むと、後ろの方に、「指定するグループ値をもつグループが、
すでに存在すれば実行前のグループや選択状態を変更せずにグループ内のカーソル位置だけを先頭レコードに移動する。」とありました。

これからもよろしくお願いします。

戻る