• ベストアンサー

ファイルメーカーPro7でカレンダーを作成したい。

とても急いでいます。 なるべく簡単な方法でお願いいたします。 カレンダーのレイアウトには表示西暦年と表示月、次月へボタンと前月へボタンを配置して、レイアウトが開かれた時は今月を、ボタンで任意の月のカレンダーが表示できるものが希望です。 テーブル構造とレイアウト表示時・ボタンに設定するスプリクトをご指導下さい。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a2c_2005
  • ベストアンサー率49% (29/59)
回答No.4

カレンダーに書き込みは出来なくて良いんだよね? テーブル1:<<カレンダー表示用>> フィールド カレンダー_day  日付 カレンダー_Month 数字・グローバル カレンダー_Year  数字・グローバル カレンダー_Day増加 計算 =If(DayNameJ ( カレンダー_Day ) = "日曜日" ; TextColor ( Day( カレンダー_Day) ; RGB ( 255 ; 0 ; 0 )) ; Day( カレンダー_Day ) ) 【日曜を赤く表示する為のもの、不要なら作らなくても可】 カレンダー_初日番号 計算・グローバル =DayOfWeek ( Date ( カレンダー_Month ; 1 ; カレンダー_Year ) ) カレンダー_設定日  日付・グローバル テーブル2:<<カレンダー>> フィールド 表示日付  日付・グローバル 表示年   計算・グローバル =Year(表示日付) 表示月   計算・グローバル =Month(表示日付) リレーション: カレンダー_Year = 表示年 and カレンダー_Month = 表示月 カレンダー作成スクリプト: ・まず全レコード削除 ・37レコード新規作成 ・カレンダー設定日に今日の日付を入れる ・カレンダー_Yearとカレンダー_Monthにカレンダー設定日から計算で年と月を入力 ・レコード移動(計算で指定)でカレンダー_初日番号を指定 ・カレンダー_Dayに計算代入 Date(カレンダー表示用::カレンダー_Month ; 1 ; カレンダー表示用::カレンダー_Year) ・カレンダー増加に計算代入 カレンダー表示用::カレンダー_Day + 1 ・次のレコードへ移動して、以下Loop ----Loop ・カレンダー_dayにカレンダー_Day増加の値を代入 ・カレンダー増加に計算代入 カレンダー表示用::カレンダー_Day + 1 ----ExitLoopIf =カレンダー表示用::カレンダー_Day = Date(カレンダー表示用::カレンダー_Month + 1 ; 0 ;カレンダー表示用::カレンダー_Year)【月末来たら終わる】 ・次のレコードへ移動 ----EndLoop これでカレンダーができる。 あとはカレンダーテーブルのレイアウトにカレンダー表示用にリレーションしたポータルを横に7個、5行+6表目2個の合計37行つくって、各ポータルにカレンダー_Day表示(作ってないときはカレンダー_Day)フィールドをいれて、カレンダーテーブルのスクリプトで、表示日付に今日の日付を入れるスクリプトを作って今月表示。 あとはカレンダー設定日と表示日付に一月づつ足すスクリプトと引くスクリプト作って貼り付けるだけ。 またわからんかったら聞いて。

yuuki_555
質問者

お礼

ありがとうございます。 カレンダーに書き込みはなしです。日付にボタンでももたせて該当日の予約管理画面を表示させるつもりです。 今日は打合せが午前午後ともに入っているので週末は早速取り組んでみます。 取り急ぎ、テーブル構造と作成方法で答えて下さってすごく感謝しています。

yuuki_555
質問者

補足

(1) 定義→データベースで「カレンダー初日番号」をタイプ「計算」で設定するのですが、計算式の中にカレンダー_monthのようにその値自身がグローバルなものを使うと「カレンダー初日番号」がグローバル設定できないようですが…。 (2) スクリプトを見ていただけますか? データベースはACCESSで6年ほど作っています。今回ファイルメーカーは初めてで、テーブルやレコードの追加や更新、削除などスクリプトで自由にいじれなくてもじもじしています。 今、ループしっぱなしのようです。見てあきれないで下さい。宣しくお願いします。 1.全てを選択 2.対象レコード削除[ダイアログなし] 3.新規レコード/検索条件 ↓ 37行 39.新規レコード/検索条件 40.計算結果を挿入[選択;カレンダー表示::カレンダー設定日;Get(日付)] 41.計算結果を挿入[選択;カレンダー表示::カレンダーYear;year(カレンダー表示::カレンダー設定日)] 42.計算結果を挿入[選択;カレンダー表示::カレンダーMonth;Month(カレンダー表示::カレンダー設定日)] 43.レコード/検索条件/ページへ移動[ダイアログなし;カレンダー表示::カレンダー初日番号] 44.計算結果を挿入[選択;カレンダー表示::カレンダーDay;Date(カレンダー表示::カレンダーMonth;1;カレンダー表示::カレンダーYear)] 45.計算結果を挿入[選択;カレンダー表示::カレンダー日付増加;カレンダー表示::カレンダーDay + 1] 46.レコード/検索条件/ページへ移動[次の] 47.Loop 48.計算結果を挿入[選択;カレンダー表示::カレンダーDay;カレンダー表示::カレンダー増加] 49.計算結果を挿入[選択;カレンダー表示::カレンダー増加;カレンダー表示::カレンダーDay + 1] 50.Exit Loop If [カレンダー表示::カレンダーDay = Date(カレンダー表示::カレンダーMonth + 1;0;カレンダー表示j::カレンダーYear)] 51.レコード/検索条件/ページへ移動[次の] 52.End Loop 53.レイアウト切り替え[”カレンダー”(カレンダー)] 54.フィールド設定[カレンダー::表示Year;Year(Get(日付))] 55.フィールド設定[カレンダー::表示Month;Month(Get(日付))] お願いします。

その他の回答 (4)

  • a2c_2005
  • ベストアンサー率49% (29/59)
回答No.5

日付にボタン持たせるなら、カレンダー表示用の関連レコードへ飛ばすスクリプトを書いて、カレンダー表示用の カレンダー_Day の内容をコピーしておいて、予約管理の日付で検索させればOKです。 下の作成方法がわかりづらいと思うので解説すると・・・ カレンダーは37コマ(7日かける5週+2日)あれば一ヶ月の日にちを完全に表示できます。 カレンダー表示用というテーブルに表示したい月の日が入ったレコードを作ります。 最終的にポータルで表示する為、その月の初めの日が何曜日かで、何レコード目から1日を作るのかが決まりますから、それを =DayOfWeek ( Date ( カレンダー_Month ; 1 ; カレンダー_Year )) という計算式で計算します。 その計算結果の数のレコードまで移動して、そこから順番に1.2.3・・・と日を入れていきます。 その月の末日まできたらやめます(ExitLoopIf) この末日はDate関数で求めれます。 これで37コマのうち必要な場所に必要な数字がはいるので、後はポータルで表示してやるだけですが、日付でリレーションすると一日分しかこないので、年と月でリレーションさせます。 これで、理論上万年カレンダー(もちろん閏年も計算)の完成です。が、FileMakerの成約上0001/1/1 から 4000/12/31 (Ver.7)までしか作れません。 Ver.6でもテーブルをそれぞれのファイルに分ければ(日曜日を赤くする以外は)同じ要領で作成可能です。カレンダー表示用のフィールドに備考欄でも持たしておけば簡単なスケジュールなどは作成可能ですが・・・ Ver.6ではポータルは縦のみですので、普通のカレンダーのような表示は出来ません(曜日単位でリレーション組めば出来ないことは無いですが。。。) 以上参考にしてください

yuuki_555
質問者

お礼

とにかくいろいろありがとうございます。 盛りだくさんのご指導で週末の作業が楽しみです。 a2c_2005さんの指導をもとに思い描いている予約管理に近づけたいと思っています。頑張ります。 結果はまた週明けにご連絡します。

yuuki_555
質問者

補足

スクリプトは数行ずつに分けて実行して問題解決し、無事カレンダーも表示、←や→ボタンで前月次月動作も出来ました。カレンダーの日付にボタンをもたせて予約管理のタイムテーブル表示も出来ました。ついでに前月次月を表示する際、タイムテーブルがまだ作成されていない月の表示の時にはタイムテーブルに1ヶ月分の日付データを作成することも設定しました。細かい指導で大変わかりやすかったです。ありがとうございました。補足でお礼させて頂きました。

回答No.3

> あらかじめ1月1日から12月31日までを入力しておかなくてはならない > ということでしょうか? そうです。 > 範囲指定した期間でカレンダーテーブルに日付を入力するスプリクト 面倒くさいのでExcelで表を作って読み込みました。邪道?

回答No.2

私はまだ5.5なんですが、 一ヶ月のカレンダーを表示させるには、一週間を1レコードにして日 曜から土曜までの日付フィールドを持たせます。レイアウトは当然、 日曜から土曜までを横に並べて、月の最初の週から最後の週までリス ト形式でたてに並べるイメージになりますね。で、対象となる期間分 のレコード(1年間で52レコード)を作成し、それぞれの曜日に日付を 入力しておきます。 あとは表示したい年月を適当に設定して、検索するだけ。私は「表示 月」ってフィールドを持たせて、日曜または月曜の年月が一致したら 「今月」フラグが立つようにしましたが、そこらへんは適当に。

yuuki_555
質問者

補足

ありがとうございます。 何となくテーブル構造はわかりましたので作ってみます。「それぞれの曜日に日付を入力します」とありますが、2005年の12ヶ月を表示するカレンダーだとすると、あらかじめ1月1日から12月31日までを入力しておかなくてはならないということでしょうか? もしそうだとすると、範囲指定した期間でカレンダーテーブルに日付を入力するスプリクトはありますか?

  • aqula
  • ベストアンサー率60% (70/115)
回答No.1

私もチャレンジしたことがあるのですが、私のスキルでは無理でした。 >テーブル構造とレイアウト表示時・ボタンに設定するスプリクトをご指導下さい。   このあたりは簡単に出来ますが、その前に月ごとのカレンダー表示が難しいと思います。   私には日付と祭日フラグだけのシンプルなカレンダーと別のスケジュールソフトで   充分でしたので深く考えていませんが、、、 下のサイトに有料テンプレートがあります。 http://www.computerworks.co.jp/ のデモ版ダウンロード「アイデア集」に「暦と予定」 下の2つは詳しい方が多いので行ってみては? kipwmiのファイルメーカー会議室 http://www.kipwmi.com/fmbbs/wwwlng.cgi ファイルメーカユーザのページ http://www.ogawa.tokushima.tokushima.jp/~fmjuser/ のメーリングリスト

yuuki_555
質問者

お礼

いろいろ紹介してくださったサイトも含め探したのですが、なかなか「○○のようなカレンダーの作り方を教えて下さい」→「このようにして作成します」というようなシンプルな質疑応答が見つからないのです。 引き続き探しながら頑張ってみます。

関連するQ&A

  • カレンダーから日付の取得

    いつもお世話になっております。 サーブレット/JSPの仕組みで、ブラウザに表示させたカレンダーの日付をクリックすると 日付を取得できるような機能が欲しいと思い、いろいろ探しているんですが、よく分かりません。 前月や次月もクリックして表示できるようにしたいです。 どうぞ良きアドバイスを宜しくお願いします。

    • ベストアンサー
    • Java
  • カレンダー作成について質問です。

    初めましてGANJISと申します。 今Javaの勉強をしていて課題でカレンダーを作っているのですが、 解らなくて困っているので助けてください。 どういったカレンダーを作りたいかというと、 ・パラメータから年・月を受け取り、 その「前月」「当月」「次月」の3ヶ月をコンソールに 出力するカレンダーを作成する。 (要するに、2008、5と入力したら、4月、5月、6月の3か月分を出力する) 条件として、 ・パラメータチェックメソッドを実装すること。 ただし、同メソッド内にtry/catch句を記述してはいけない。 (自前で数値チェックを実装する) ・mainメソッドはControllerとしてのみ使用すること。 (実際の作成/出力処理は別メソッドに実装すること) 一番最初に私が作ったカレンダーのソースを載せたいのですが、文字数制限に掛かりますので断念しました。 何卒みなさんの知恵を与えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • JSPでstrutsを用いた万年カレンダーの作成

    JSPでstrutsを用いた万年カレンダーの作成に困っています。 先日大学でこのようなことを言われたのですが、全くわかりません。 内容はHTMLでいうselect文で西暦と年を選び、ボタンを押すと ページの下部にカレンダーのテーブルが表示されるというものです。(カレンダーは土曜日始まりです。)さらに、土曜と日曜と国民の祝日には<td>セルに色を付けると言うものです。 また一桁の日にちには頭に0をつけて表示するみたいです。 少し前にプログラミングを始めた自分にとっては厳しいです。 もしわかる方がいたら教えていただけないでしょうか?(ちなみにエディタはエクリプスを使用しています)

  • Javaでカレンダー作成

    Java超初心者です。 JavaでSwingを使ってカレンダーを作ることになったんですが、 カレンダーに日付を表示する方法がわかりません。 JButtonで縦6個、横7個の計42個のボタンを作り、 そのボタン1個1個に起動した月の日付を表示する カレンダーを作りたいんです。 Calendarクラスでモデルを作った後に、そのクラスをどのように 利用してボタン1個1個に日付を表示させればいいのでしょうか? 説明してくれる方、よろしくお願いします。

    • ベストアンサー
    • Java
  • C言語でのカレンダー作成

    今、C言語でカレンダーを表示させるプログラムを作成しています 西暦と月を入力すると、その年、その月の1ヶ月分のカレンダーが表示されるプログラムを作りました そこで、次は入力した月から3ヶ月分のカレンダーを表示させるプログラムを作成したいのですが、どなたか教えてくださいませんか? 配列を使う方法や文字列など色々な方法があると伺って、どの方法が作りやすいのかわからないんです・・・ borland c を使用しています

  • カレンダーの作り方教えてください!

    西暦年と月を入力すると、その年月のカレンダーが出てくる万年カレンダーのC言語プログラムを教えてください! という質問をしたのですが、12か月分一度に表示させるには、どうしたらいいのでしょうか?

  • ファイルメーカー 指定アイコンの表示方法について

    ファイルメーカーでカレンダーを作成しました。 一つ目のテーブルではカレンダーを作成するよう定義し、二つ目のテーブルで予定を書き込めるように定義し、その二つのテーブルの日付をリレーションで結びカレンダーのレイアウトのその日付に予定が書き込んであれば"予"のマークを表示するようにしました。 ですが、この"予"の文字での表示ではなく、自分で持ってきたのアイコンなどを代わりに表示させたいのですが、その方法が分かりません。 どうかその方法を教えてください。

  • iPhoneアプリプログラミングButtonの削除

    iPhoneアプリ開発の勉強のため、Objective-Cを用いてカレンダーを作成しています。 前月、来月のボタンを押した時、カレンダーに表示される月を更新したいのですが、うまくいきません。 今の段階では、まず今の月のカレンダーを表示して、前月のボタンが押された時に画面に表示されるボタンを更新する感じでプログラムを組んでいます。 今月のカレンダーを表示するところまでは出来ているのですが、前月ボタンを押しても何も反応がありません。 自分では恐らく、ボタンの上にボタンを表示するようになっているから、前月のボタンを表示する前にもともとのボタンを削除しなくてはいけないのではと思っていますが・・・ そこでボタンを削除する処理とを組み込みたいのですが、うまくいかず、実行できませんでした。 Buttonの削除方法をいろいろと検索したのですが、なかなか解決に至る処理を見つけられませんでした。 以下にコードを晒します。(無理やりだったり、変数の設定仕方など、汚い点はありますが、その点は甘く見てもらえればと思います・・・) ■ViewController.h http://www.dotup.org/uploda/www.dotup.org4896354.txt ■ViewController.m http://www.dotup.org/uploda/www.dotup.org4896356.txt 余談ですが、この方法でカレンダーのレイアウトを描画していては、この先日付ごとにデータを管理する場合、どうなるんだろうと悩んでいます。 この方法では限界があるのでしょうかね。

  • Flash8proで作成した再生ボタン付きswfファイルが・・・

    FLASH初心者です。。HP上に再生ボタン付きの動画を置く事になり、Flash8Proで作成した再生ボタン付き(スキン付き?)swfファイルを作成するところまではなんとか出来たのですが、HP上に配置すると再生ボタンが表示されず、swfファイルだけが表示されてしまいます。ですが、swfファイル自体を開くときちんと再生ボタンつきで表示されます。 ドリームでの配置の仕方は、動画swfと再生ボタン用swfの二つのファイルが出来ていたので、その二つをhtmlの任意のフォルダに入れ、動画swfだけをhtmlファイルに配置しました。この場合、再生ボタン用のswfファイルも同じく配置しないとだめなのでしょうか? 試しに配置してみたところ、プレビューよりもかなり大きいサイズで表示され、サイズを小さくしたところ、縮んでしまい正常に表示されませんでした。 説明下手なので通じない箇所もあるかと思いますが、ご回答よろしくお願い致します。

  • カレンダーを作成するに当たって

    エクセル2003です。 年間のカレンダーを作成しています。 A1 B1 C1 D1 E1 F1 G1 日 月 火 水 木 金 土 と曜日を固定した場合 年 もしくは月によりセルの位置が変わります。 この時何か良い方法があるのでしょうか。 例えば 2009/1/1は木曜日で「E1」のセルからスタートするとカレンダーが見やすくなるので何とかしたいのですが。 どうかご指導ご協力のほど宜しく御願いします。