このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

ファイルメーカでWebを公開していますが

発言者:菅沼
( Date Monday, May 17, 1999 12:27:33 )


はじめまして。

ファイルメーカーで、会員専用Webを運営しています。私の役割は、
会員に提供する情報のデータベースの構築で、もう一人、九州に
いる人が、会員名簿の管理を行なっています。会員名簿の管理者が

 「会員数を表示するHTMLを作って欲しい
  できたら、私が入力して、その結果を1つのHTMLに表示させたい」

と要望を出しました。私が考えたところ、別のファイルメーカのデ
ータベースファイルを作り、それをカスタムWebにして会員数を表
示させる、という方法で対応したいと思ってます。そこで質問です。

会員には4種類のタイプがあり、A、B、C、Dとなっています。
ファイルメーカーでは、

  「会員タイプ」フィールド・「会員数」フィールド

とフィールドを作ることにします。
そして、それを表示する「number.HTML」には

   Aタイプ会員数XXX、Bタイプ会員数YYY、・・・

と表示させたいと思っています。

論理関数を使えばうまくいくのじゃないかと思っていますが、理解が
悪く、その解決方法が見つかりません。ちょっとわかりづらい質問か
もしれませんが、どなたか教えてください。

なお、ファイルメーカー Pro4.0、Macintosh OS 8.0という環境で
行なっています。よろしくお願いいたします。



藤川 さんからのコメント
( Monday, May 17, 1999 14:48:09 )

菅沼さん、こんにちは。

どういった設計にされているのか、よく見えないのですが・・・

「会員タイプ」フィールドに入力されている言葉が
A、B、C、Dのいずれかであるならば
各文字(A、B・・)をPatternCount関数で数えて、それを集計したらどうでしょう?
これは文字列またはフィールド内の任意の文字が何回登場するかを
数えるものです。

的外れだったらゴメンナサイ。

田中求之 さんからのコメント
( Monday, May 17, 1999 19:06:26 )

菅沼さんより、WSM Express に対する返事のメールとしてメッセージが投稿されて
いましたので、以下に転載します。

WSM Express は、メーリングリストと違って、メッセージを投稿できませんので
気をつけてくださいね。

=======

会員タイプフィールドにあるタイプをそのまま引き継いで表示することは
できないのです。(私もそうしようと、依頼者に言ったのですが)

どちらかというと、

 1現在運営しているデータベースファイルとはまったく
  別のデータベースファイルを用意し
 2担当者が自由に会員数を操作し、
  且つコメントなども入力できるもの

が求められています。ちょっと私の説明不足だったのですが、
具体的には、

 A会員 「100人突破」
 B会員 「200人達成」

というようなコメントも数字と合わせてフィールドに入力し、
そのフィールドに入力された「数字とコメント」を、A、B、
C、Dにそれぞれ表示したい、という仕組みなのです。説明
不足でしたら、すみません。

菅沼 さんからのコメント
( Monday, May 17, 1999 19:07:18 )

藤川さん、ありがとうございます。

>「会員タイプ」フィールドに入力されている言葉が
>A、B、C、Dのいずれかであるならば
>各文字(A、B・・)をPatternCount関数で数えて、それを集計したらどうでしょう?

菅沼です。私が説明不足でした。すみません。
会員タイプフィールドにあるAやBをカウントして、それを表示する、
という方法は既に提案したのですが、会員数とあわせて、

 例:Aタイプ会員 XXX人突破
   Bタイプ会員 YYY人達成

といったコメントを遭わせて表示したいのです。また、XXXやYYYとい
った数字も、385とか458といった具体的な数字ではなく、400とか450
といった感じに表示させたい、だから、手入力したい、ということな
んです。

なので、既存のデータベースとは連動しないものになります。上のよ
うなコメントを入力し、表示させる方法はわかっています。あとは、
私が、Aタイプの会員数を、きちんとHTML上で表示できればいいので
すが。。。。
これって、『CDMLでIF文を使う』、ということで対応するんですよね。。

藤川 さんからのコメント
( Wednesday, May 19, 1999 17:18:07 )

菅沼さん、こんにちは。

Case関数で条件分岐してAとBの集計をそれぞれおこない、
最後の集計数を丸めるのはRoundで四捨五入っいうのはどうでしょう。

Aタイプの会員のみのカウントは
Case(会員タイプフィールド="A",1 , 0)

Bタイプの会員のみのカウントは
Case(会員タイプフィールド="B",1 , 0)

  ・
  ・
  ・
とやり、各々をsumで集計したフィールドでRound(Aタイプ集計フィールド,-2)をとやれば
10の位を四捨五入した数値になると思います。

これで
   Aタイプ会員 1300人達成
   Bタイプ会員 1200人達成

という同時表示ができるのではないでしょうか?