みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
質問者です。
すみません、下がってしまったので上げさせて下さい。
Shin様に教えていただいたことが未だに理解できずにいます。。。
Let の中で、納期をグローバルフィールドに保存しておいて、それと比較し、同じなら上の式のまま、異なるならリセット、とされれば良いでしょうね。
どのように計算式を作ったらよいかご教示いただけますようお願い致します。
Shin様
お世話になっております。
ありがたいヒントをいただいたのに、勉強不足でできませんでした。
Let関数のヘルプを何度も読んだのですが、Letの中で比較する方法も、リセットする方法もわかりませんでした。
苦し紛れに計算式の中でCase関数を使ってみましたが、やはりグローバル変数の $$n=0 でリセットする方法がわからず、次の納期に移るとレコード番号は全部「1」になってしまいました。
大変心苦しいのですが、もう少しヒントをいただけませんでしょうか。
申し訳ありませんが、ご指導宜しくお願い致します。
質問者です。
#3でチポ様に教えていただいた方法でレコード番号がちゃんと表示される♪と喜んでいたのですが、
パーツIDの小計パートで、同じパーツIDがあった場合に合算されており、その合算されたレコードのレコード番号が飛んでしまうことに気が付きました。
パーツIDの小計パートに登場している順番で上から順番にレコード番号を振るにはどのようにしたらよいでしょうか?
ネットで検索してみたところ、似たような質問を見つけました。
http://www.russ.jp/stepbbs/step.cgi?mode=view&no=88087
himagine様の下記の方法を参考にさせていただいてレコード番号は飛ばなくなったのですが、納期で改ページをしたレコードにも連番で番号が入ります。
印刷だけなら、非保存フィールド
Let ( $$n = $$n + 1 ; $$n )
ぐらいでもいいかな?
(印刷する前にスクリプトとか、タイトルヘッダで変数を0にする)
次の納期でページが変わったらレコード番号も「1」から振り直したいです。
なかなか「解決」とで終了できずに申し訳ありませんが、ご指導宜しくお願い致します。
チポ様
お世話になっております。
お礼が遅くなり申し訳ありません。
チポ様に教えていただいた方法でも、私の環境ではやはり下側の枠線は表示されませんでした。
ソート順や小計パートの位置も変更してみたのですが・・・。
相変わらず複数ページにまたがる場合は一番下のレコードの下側は枠線が表示されません。
ファイルメーカーをインストールし直してみたり、13の体験版を入れてみたり、いろいろ試してダメだったの一旦諦めようかと思います。
横線だけ太くなりますが、下側の枠線も表示させることの方が重要なので仕方がないです。。。
不甲斐ない結果で申し訳ありません。
Shin様
ありがとうございます。
プレビューにしてるんですけども、下側は表示されないんです。
私の環境だけなんでしょうか?
すみません、何か考えられる原因などがあれば教えて下さい。
宜しくお願い致します。
Shin様
お世話になっております。
拙い説明をくみ取っていただいてありがとうございます。
枠線で試してみました。
上下とも1pxで表示、下側だけ1pxはみ出させました。
今度は上側は表示されますが、下側は表示されなくなりました。
はみ出す量を増やしてみましたが、ダメでした。
私の環境がダメなのでしょうか。。。
お蔭様で、ページ番号はできたっぽいです。
商品IDパートの前部は「各出現前に改ページ」として、後部に「各出現ごとにページ番号を再開」と設定しました。
ありがとうございました。
もう1つ思うようにできないことがあるので、ご教示宜しくお願いします。
パーツIDのパートにフィールドを設置しているのですが、各フィールドの罫線を上・下の両方に設定すると重なる部分が太くなってしまうため、上部の線は除外して、その上のパートに罫線を引いています。
1ページに収まる場合はキレイに表示されるのですが、複数ページになると、2ページ目の一番上の罫線が表示されずとても間抜けな感じになってしまいます。
どのように設定をしたら改ページをしても罫線が表示されるようになりますか?
どうぞ宜しくお願い致します。
チポ様
すみません、チポ様、tim様がご指摘の通り、改ページごとに「1」から番号を振りたいというのは間違いでした。
チポ様に教えていただいた方法で、「小計のグループごと」で設定したのでばっちり表示されました。
ありがとうございました!
tim様
ありがとうございます。
> 納期パートは後部にすればいいのでは。
ページ番号は普通全頁に出すんで、ヘッダやフッタでしょう。
納期パートを後部にしてみました。
白紙ページが消えました~!
この前部と後部の意味がいまいち理解できずにいます。
もうちょっと検索してみます。
> レコード番号は「改頁ごとに1から」じゃなく「商品IDごと」でいいんですか。
あああ~、そうです、tim様のおっしゃる通りです。すみません。
チポ様の教えていただいた方法で「商品IDごと」としていたので出来たのでした。
ありがとうございました!
チポ様
ありがとうございます。
> ページ番号は
##
ですよね、
ちゃんとそのページを表示するはずですが。
すみません、「##」の部分がわかりませんでした。
ページ番号は、メニューバーの「挿入」→「ページ番号」を使用しています。
> レコード番号は集計フィールドとして、
カウント・現在値・ソートされたグループごとに再開
でいいと思いますよ。
できました!できました!
こんなふうにしてやるんですね。
ありがとうございました。
Shin様
ありがとうございます。
> 同納期の2ページ目から印刷位置が下へずれるのは仕方なく、納期パートを極小の大きさにしておく以外無いでしょう。
ページ番号の更新は、商品IDの上部パートに設定されたほうがいいかも。
なるほど~。
何も設置しないパートがあってもよいものか、モヤモヤしていましたが構わなさそうですね。
高さ1pxにしてみました。
> ページ番号の更新は、商品IDの上部パートに設定されたほうがいいかも。
> また、改ページも、上部パートに設定し、出現前に改ページに変更してみてください。(これで、納期だけ印刷するページが作成され、ズレが無くなりますが、白紙が出力されるかも)
商品IDでソートする上部パートに「改ページ」と「出現前に改ページ」を設定しました。
ページ番号も同じく上部パートに設定しました。
ページ番号はメニューバーの「挿入」→「ページ番号」を使用しています。
これでプレビューモードにして、ソートをすると、以下のような結果でした。
・ 1ページ目が白紙でページ番号が非表示
・ 2ページ目からデータの印刷が始まり、ページ番号あり
・ 複数ページまであるデータは、2ページ目以降のページ番号が非表示
難しいです・・・・・。
> 確認欄は、商品IDの下部パートに作ればいいでしょう。
おおおお~!
次のページがある場合は表示されなくなりました~!!
レコード番号についてのヒント、ありがとうございます。
検索してみます。
お世話になっております。
集計表のレイアウトについて教えて下さい。
目標は以下の通りです。
・ 納期ごと、商品ごとに各パーツの小計をページの一番下に印刷
・ 納期、商品ごとに改ページをして、次の商品IDからはページ番号を「1」から振り直す
・ 商品ごとの最終ページに確認印を押すための図(罫線で作成)を印刷したい
・ 対象レコードにレコード番号を振りたい(改ページごとに「1」から振り直す)
自分で試してみたことは以下の通りです。
・ 集計したい区分けフィールドをパートのソート対象で設定
1. ソート対象 : 納期 ・・・ 前部
2. ソート対象 : 商品ID ・・・前部
3. ソート対象 : パーツID ・・・前部
4. ソート対象 : 商品ID ・・・ 後部、各出現ごとにページ番号を再開始、任意の回出現後に改ページ
・ 集計フィールドは4. のパートに置いています
上記の設定で試すと、1つ目の商品IDはまともですが、2つ目の商品IDは1. 納期のパートが表示されなくなります。
4つのパートを設定しましたが、フィールドを設置しているのは3. パーツID、4. 商品ID の2つだけで、
フィールド名を2. 商品ID のパートに置いています。
納期のパートには何も置いていないので、表示されなくても構わないのですが、印刷位置が微妙にズレるので気持ちが悪いです。
他に、ページ番号が全て「1」になってしまいます。
レコード番号はページをまたいで全てのパーツに通しで番号が振られてしまいます。
ヘルプを参考にしましたが、いまいちわかりませんでした。
どのように設定したらよいか教えて下さい。
どうぞ宜しくお願い致します。
Windows7、FileMaker Pro12
すみません、投稿者です。
私のPCがおかしかったのか、先ほどまでは何度試しても、結果が「1」か、「1001」が全行に入っていたのですが
今、手動ではなくスクリプトからやってみたら、ちゃんとできたようです。
一応正しい結果を得られたので解決とさせていただきます。
お騒がせしてすみません。
お世話になります。
「レコード内容の全置換」について教えて下さい。
テーブルAとテーブルBにリレーションを設定しています。
【テーブルA】 【テーブルB】
フィールドA >= フィールドB (いずれもデータの値は数字で、昇順で並んでいます)
【テーブルA】のフィールドCに上記のリレーションによって、
【テーブルB】のフィールドBで置換をしたいのです。
置換したいレコードが全行が空の状態で、以下のスクリプトで実行すると問題なく結果が得られました。
フィールドの全置換 [テーブルA::フィールドC;計算で置き換える:テーブルB::フィールドB]
今回ご相談したいのは、上記のスクリプトを途中で止めたため、途中の数字から置換を始めたいのです。
置換を始める【テーブルA】のフィールドAが1000の場合、
【テーブルB】のフィールドBが1001以上の値から順番に入れていきたいです。
手動で「フィールド内容の全置換」の計算式に以下のように記述してみましたが、全行に「1」と入ってしまいました。
テーブルB::フィールドB
リレーションのある関係で、特定の数字から置換をするにはどのようにしたらよいでしょうか?
わかりにくい説明で申し訳ありません。
ご指導よろしくお願い致します。
Windows7・FileMaker Pro12
Traveller様
早速のご回答ありがとうございます。
安心して閉じることができます。
ありがとうございました。
お世話になります。
Windows7
FileMaker Pro 12
スクリプトでデータを読み込んで、条件に見合ったデータがあればそのまま印刷に進み、データがなかった場合にはスクリプトを中止してファイルを閉じて終了したいのですが、検索結果が0だった場合の分岐からいきなり「ファイルを閉じる」を実行しても大丈夫ですか?
なんだか唐突過ぎて良くないかな?と思ったのですが、どのようにするのがベストですか?
ご教示宜しくお願い致します。
aqula様
ありがとうございます。
> ファイル参照が正しく指定されている場合、下記の記述を試してください。
> set myList to ( files of folder "○○○" of disk "△△△" whose name contains folderdName and name ends with "csv" )
結果は問題ないようで、下記のように表示されました。
-----------------------------------
get document file "140419100000□□□.csv" of folder "○○○" of disk "△△△"
--> "△△△:○○○:140419100000□□□.csv"
-----------------------------------
POSIX参照というのですね。
こちらの方がWindowsで見慣れている形式ですが、ファイルの検索の部分がわからないので調べてみます。
旅人様
ありがとうございます。
日付の整形については、長くなるので省略してしまったのですが、下記のサイトを参考にさせていただきました。
http://force4u.cocolog-nifty.com/skywal … t-2f0.html
yyyyをyyにするように、西暦のところは
set y to ((year of theDate) - 2000)
としており、「結果」には 「yyymmdd○○○.csv」となっています。
一応、自宅の環境では同じスクリプトで、フォルダ名が異なるだけの違いで、拡張子を指定してもちゃんと動いているのですが。。。
難しいですね・・・。
ちなみに、AppleScriptの方では、
set myList to files of folder "○○○" of disk "△△△" whose name contains folderdName and name contains ".csv"
"○○○" と同じサブフォルダの階層に "test" というフォルダを作って試してみたところ、コピーされました。
そこで、問題の "○○○" のフォルダ名を "test" に変更してみたら、ダメでした。
中に保存されているファイル数が多く、フォルダ全体の容量が800MBぐらいあるのですが、それも原因でしょうか?
フォルダ名を変更したことで、エラーの内容がタイムアウトに変わりました。
タイムアウトまでの時間を10分までと長くしてみましたが、ダメでした。
難しいです・・・。
引き続き、AppleScriptの方のアドバイスもお待ちしております。
宜しくお願いします。
旅人様
ありがとうございます。
Automatorをさわってみました。
なんかMacはスゴイですね。
カレンダーアラームとしても使えるみたいなので、Automatorに感動中です^^
ファイル名は変数で扱わないといけないので、今、その部分をネットで調べています。
どうしてもわからなかった時はまた相談させて下さい。
宜しくお願いします。
取り急ぎお礼まで・・・。
ありがとうございました。
お世話になります。
先日「AppleScriptで共有フォルダのファイルをコピー」というタイトルでお世話になった者です。
https://fm-aid.com/bbs2/viewtopic.php?id=1235
その節は大変お世話になりまして、ありがとうございました。
今回、自宅で試していたものを会社で動かしてみたら、全然動かなくて途方に暮れています。。。
また皆様のお力を貸していただけたら、と思い相談にまりました。
AppleScriptの勉強を始めたばかりで、まだまだ勉強が足りず、書き方でつまづいています。
フォルダ名が yymmddhhmmss□□□.csv となっていて、検索する条件としては文字列前方の「年/月/日/時」までと後方の「
□□□.csv」だけしか特定ができません。
「分/秒」は決め打ちができません。
以下のスクリプトで自宅で試していた時は無事に結果を得られたのですが、会社で試してみたところ、エラーとなってしまいます。
エラーの文章は、「Finderでエラーが起きました。fole of folder ¥"○○○"¥"of disk"¥"△△△"¥whose name=¥yymmddhh¥and name cntains¥".csv"¥を取り出すことはできません。"」という内容のものでした。
-------------------------------------------------
set folderdName to my DateAndTIme(current date) ← 日付からフォルダ名を作るための変数を使用(省略)
tell application "Finder"
set myList to files of folder "○○○" of disk "△△△" whose name contains folderdName and name contains ".csv"
duplicate myList to folder "Documents" of folder "FileMaker Server" of folder "Library" of startup disk
end tell
-------------------------------------------------
ファイル名を決め打ちで入れてみたら拾えたので、単純に私の記述が間違っているように思うのですが、いろいろ試しても全滅でした。
set myList to files of folder "○○○" of disk "△△△" この部分が怪しいと思うのですが、間違いを教えてください。
どうぞ宜しくお願いします。
Hiro様
ありがとうございます。
「レコードのインポート」では、フォルダの中にサブフォルダがいくつもあるからか、フォルダの指定すらできませんでした。
「レコードのインポート」はフォルダの中身をまとめてテーブルにインポートするんですよね。
今回は使用できませんでしたが、いつか使ってみたいです。
Moz様に教えていただいた方法を試すため、AppleScriptでファイル名をFileMakerのフィールドにコピペする方法をネットで探して、無事にできました。
今は移動中のため、実際に使ったスクリプトをこちらに書けませんが、ファイル名さえ入手できれば次に進めたのでこちらで相談して良かったです。
Moz様のご提案もとても興味があるので、今夜試してみたいと思います。
みなさま、拙い質問に親身になっていただいて本当にありがとうございましたm(_ _)m
今後ともご指導宜しくお願いします。
Moz様
何度もご丁寧に教えていただいてありがとうございますm(_ _)m
教えていただいた方法に挑戦してみます。
ありがとうございました。
またつまづいたら、ご指導宜しくお願いいたします。
Moz様
ありがとうございます。
説明が不足していましたので、補足させてください。
サーバーマシンにFileMaker Proを入れる理由は、印刷まで自動でやりたいからなんです。
サーバースクリプトでは印刷機能を使えなかったので、こちらで相談して、サーバーに入れたFMPでやってみることにしました。
解凍先のフォルダはサーバーが扱えるFileMaker Serverの中のDocumentsフォルダにしました。
ネットワークフォルダではありません。
圧縮フォルダ名も、解凍されたフォルダ名も、「yy/mm/dd/hh/mm/ss△△△」という名前で、年月日までは解凍する日と同じなので特定できるのですが、時分秒の部分がバラバラで、同じ日付の時間違いの圧縮フォルダが複数個できています。
△△△の部分も固定です。
Documentsフォルダにある解凍フォルダのフルネーム(?)がわからないので、指定ができない状態です。
教えていただいた方法も解凍フォルダを指定しないといけないですよね?
Documentsフォルダ内のファイルをFMPにインポートして、解凍フォルダを検索しようと試してみましたが、Documentsフォルダ内がテキストファイルや画像ではなく、フォルダばかりだからか、できませんでした。
説明が下手で申し訳ありません。
引き続きご指導いただけますようお願いいたします。
いつもお世話になっております。
またまた壁にぶち当たってしまったのでお力を貸して下さい。
こちらで相談にのっていただいて、Mac mini ServerからWindowsのネットワークフォルダに接続して、圧縮フォルダをコピーして、解凍するところまでできました。
あとは解凍されたフォルダ内のcsvファイルをFileMakerに読み込んで、集計をして印刷をしたいのですが、FileMakerからcsvファイルを選択するところでつまづいています。
集計、印刷はサーバーのMac mini ServerにFileMaker Proをインストールをして、FMSのサーバースケジュールで自動で実行したいと思っています。
圧縮フォルダは、yy/mm/dd/hh/mm/ss△△△.lzh という名前で、時・分・秒の部分は毎回変動するので決め打ちができません。
(△△△の部分が固定です)
AppleScriptでは 圧縮フォルダを拾いに行く時間の 「年/月/日/時」 と 「△△△.lzh」の条件で検索をして、拾えたのですが、いざFileMakerから解凍されたフォルダを選択してその中のcsvファイルを選択するにはどうしたらよいものか悩んでいます。
解凍されたフォルダ名は「yy/mm/dd/hh/mm/ss△△△」です。
AppleScriptでパスから抽出したファイル名をFileMakerに引き渡すことはできませんか?
他に何か手段はありますでしょうか?
ご指導宜しくお願いします。
Mac mini Server OS X 10.9 + FileMaker Server 12 + FileMaker Pro12
[ Generated in 0.010 seconds, 8 queries executed - Memory usage: 758.16 KiB (Peak: 811.94 KiB) ]