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

ファイルメーカーで、連続「書き出し」するには?

発言者:丸山高弘
( Date Tuesday, April 21, 1998 08:44:20 )


ファイルメーカーPROの計算フィールドを使ってhtmlを作成し、ファイル名をテキストフィールドからもらって、
スクリプトを使って「書き出し」で自動的にホームページを作ろうと試みているのですが、どうしても「書き出し」
ダイアログで、ファイル名をペーストできずに困ってます。
 そこで一発command + v、return さえできれば完全自動化で、1000や2000のページも楽々なのですが、

この「書き出し」ダイアログに、特定のフィールドからファイル名を持ってくる方法をご存じでしたら、教えてください。
もちろん、“ここを見ろ!”でも結構です。

では、では。

田中求之 さんからのコメント
( Tuesday, April 21, 1998 12:28:31 )

AppleScript を使っても良いのであれば、簡単にできますが…
(選んだフォルダーの中にまとめて一気に書き込んでいくなんて事も)


丸山高弘 さんからのコメント
( Tuesday, April 21, 1998 13:03:04 )

田中さん、ありがとうございます。
もちろん、AppleScriptを使ってでも、目的が達成されるなら大歓迎です。

ぜひ教えてください。
よろしくお願いいたします。

田中求之 さんからのコメント
( Tuesday, April 21, 1998 16:09:58 )

では、AppleScript の例です。なお、以下のスクリプトは、すべて英語表現形式でスクリプトをかきます。
AppleScript を初めて使う場合などは、AppleScript の設定を確認してください。
スクリプト編集プログラムの「編集」メニューの一番下の「書式」を選ぶと設定を
おこなうパネルが出てきます。

前置きが長くなりましたが、まずシンプルなものからいきます。

セル(フィールド) "HTML" に書かれているデータを、cell "Name" の内容を
ファイル名にして保存するというもの(保存先は自分で指定)

tell application "ファイルメーカー Pro"
  
  tell current record
    
    set myName to cell "Name"
    set myData to cell "HTML"
    
    writeHTML(myName, myData) of me
    
  end tell
end tell

on writeHTML(myName, myData)
  
  set myF to new file default name myName
  set myRef to open for access myF with write permission
  write myData to myRef
  close access myRef
  
end writeHTML

田中求之 さんからのコメント
( Tuesday, April 21, 1998 16:15:12 )

続いて、あるフォルダーの中に、現在のデータベース(レコード)のものを
まとめてファイルとして書き込んでしまうというもの。

set myFldr to (choose folder with prompt "ファイルを保存するフォルダーは?") as string

tell application "ファイルメーカー Pro"
  
  tell current record
    
    set myName to cell "Name"
    set myData to cell "HTML"
    
    writeHTML(myFldr, myName, myData) of me
    
  end tell
end tell


on writeHTML(myFldr, myName, myData)
  
  set myF to (myFldr & myName)
  set myRef to open for access file myF with write permission
  write myData to myRef
  close access myRef
  
end writeHTML

丸山高弘 さんからのコメント
( Thursday, April 23, 1998 02:57:55 )

田中さん、ありがとうございます。

さっそく試してみまして、フィールドの内容をhtmlファイルに保存することが
できました。
ただ、自動的に次のレコードにするためには、どうすればよいのでしょうか?
これも、AppleScriptからコントロールできますか?

すみません、初歩的な質問ばかりで...
では、では。

kozka さんからのコメント
( Thursday, April 23, 1998 11:07:18 )

  tell document "データベース名"
    repeat with i from 1 to count of records
      set myName to cell "Name"
      set myData to cell "HTML"
      writeHTML(myFldr, myName, myData) of me
    end repeat
  end tell

とするとRpeat文で囲まれたスクリプトを対象レコードの数だけ繰り返して処理します。

kozka さんからのコメント
( Thursday, April 23, 1998 11:09:01 )

間違えました。

  tell document "データベース名"
    repeat with i from 1 to count of records
      set myName to cell "Name" of record i
      set myData to cell "HTML" of record i
      writeHTML(myFldr, myName, myData) of me
    end repeat
  end tell

of record i が抜けていました。

丸山@八ヶ岳 さんからのコメント
( Saturday, April 25, 1998 00:31:32 )

田中さん、kozkaさん、ありがとうございます。
おかげで、1800ページにものぼる会員名簿のホームページができそうです。
これは使えますよ。

某ユーザー さんからのコメント
( Tuesday, April 28, 1998 10:57:24 )

こんな質問で申し訳ありません。
ファイルメーカーは基本的には連続用紙は
使えないのでしょうか?
もし、設定の仕方をご存じでしたら
教えてください。

木下@キー・プランニング さんからのコメント
( Tuesday, April 28, 1998 13:20:49 )

開発で何回も連続紙のレイアウトを作っていますが、プリンタドライバ上
での設定(給紙装置や用紙サイズ等)以外は、何も特別なことはしてません。

→  KEY Planning Web