初心者のFileMaker pro Q&A

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス


#1 2019-07-10 10:27:20

つぶて
ゲストユーザー

[解決] 「URLを開く」スクリプトステップでフォルダを開きたい

FileMaker Pro Advanced 18
OSはWindows7です。

タイトルの通り「URLを開く」スクリプトステップでフォルダを開きたいのですが、URLを指定する計算式のことで困っています。

商品を管理する番号(管理番号)を手掛かりにフォルダを特定するようにしたいです。
例えば、「12345」という番号の商品は「C:\Users\ユーザー名\Desktop\商品\12301_12400\12345」というフォルダに入っています。
「変数を設定」スクリプトステップで、「$pathleft=Left(管理番号;3)」として123を抽出、「$path01=$pathleft & "01"」として「12301」を導き、
「URLを開く」スクリプトステップには「"C:\Users\ユーザー名\Desktop\商品" & "\\" & $path01 & "_" & path01+99 & "\\" & 管理番号」
とすることでフォルダを開けるようになりました。

しかし、商品の中には異なる管理番号が与えられていても共通するパーツがある場合にはフォルダをまとめているものがあり、
例えば「23456」という商品は「34567」と同一のパーツを持つ為ひとまとめにして「23456_34567」というフォルダに格納されています。
その場合のフォルダパスは「C:\Users\ユーザー名\Desktop\商品\23401_23500\23456_34567」となります。

こうなると上記の計算式ではフォルダを開くことができません。また、同一パーツが複数にわたることもあり、その場合「23456_34567_45678」のように増えていきます。
基本的にはひとつの商品には管理番号ひとつが与えられているので、8~9割は上記の計算式で対応可能なのですが、このようなイレギュラーにもできれば対応したいです。

どのような計算式であれば対応可能でしょうか。ご教示お願い致します。

#2 2019-07-10 12:30:42

Hiro
メンバー

Re: [解決] 「URLを開く」スクリプトステップでフォルダを開きたい

>#1『商品の中には異なる管理番号が与えられていても共通するパーツがある場合にはフォルダをまとめている』

・そのためには、「商品」と「管理番号」との関連付け要素データが必須です。ありますか?
・また、共通[子]フォルダ「23456_34567_45678」と[親]フォルダ「23401_23500」の生成ロジック(代表順位付け?)も必要です。

オフライン

#3 2019-07-10 13:22:10

Shin
メンバー

Re: [解決] 「URLを開く」スクリプトステップでフォルダを開きたい

フォルダーの中身と、管理番号を管理するテーブルを作るしかないのでは。

オフライン

#4 2019-07-10 13:53:02

チポ
メンバー

Re: [解決] 「URLを開く」スクリプトステップでフォルダを開きたい

23456_34567
23456_34567_45678
これらが管理番号になっているのでしょうか?

でなければどのようにフォルダが決定出来るのでしょうか?

また、
23456_34567
この上の階層は、前の数字から得る
でいいのでしょうか?

さらに、
23456_34567_45678
この上の階層のフォルダの規則性は?


このような場合、
全てのケースに対応できる規則性を明示する必要がありますよ。

オフライン

#5 2019-07-10 15:45:16

Shin
メンバー

Re: [解決] 「URLを開く」スクリプトステップでフォルダを開きたい

ひょっとして、
「C:\Users\ユーザー名\Desktop\商品\23401_23500\23456」
というフォルダーが、
「C:\Users\ユーザー名\Desktop\商品\23401_23500\23456_34567」
に変更され、さらに、
「C:\Users\ユーザー名\Desktop\商品\23401_23500\23456_34567_45678」
に変更される、という事ですか。

そうならば、命名規則を変える方がいいですよ。

編集者 Shin (2019-07-10 15:49:52)

オフライン

#6 2019-07-10 16:29:22

つぶて
ゲストユーザー

Re: [解決] 「URLを開く」スクリプトステップでフォルダを開きたい

皆様回答有難うございます。

説明が足りず申し訳ありません。
管理番号は5桁の数字のみで構成されています。

「23456_34567」フォルダには、「23456」と「34567」の商品が格納されており、上の階層は「23401_23500」フォルダになります。
このような場合、若い番号の場所に格納するルールがあるため、「34501_34600」フォルダの中には、「34567」というフォルダは存在しません。

Shinさんの仰るように、新しい注文が来たとき既存のパーツを流用できる場合にこのような命名になるため、複雑になっている節がありますね。
命名規則の変更から考え直すべきかもしれません。

とりあえず、管理番号と商品名を管理する商品マスタテーブルがあるので、そちらにパーツを流用している商品の管理番号を入力するフィールドを作って、関連付けを行おうと思います。

#7 2019-07-10 18:10:13

qb_dp
メンバー

Re: [解決] 「URLを開く」スクリプトステップでフォルダを開きたい

直接の回答ではありませんが.....

PowerShell で以下のようにするとフォルダの検索が可能です。

$Dir="D:\!TEMP";
get-childitem -Name -Directory "*34567*" $Dir -Recurse;

FileMakerから実行する場合、
Event を送信 で

"powershell -Command \"$Dir='D:\!TEMP';(get-childitem -Name -Directory '*34567*' $Dir -Recurse)|clip;\""

このようにすると、見つかったフォルダパスが、クリップボードに保存されます。

※フォルダが多い場合、検索に時間がかかります。

参考:
以下戻り値をクリップボードで受ける以外の方法
FileMaker cmd.exe dirコマンドを実行して戻り値を取得。あれこれ。
https://qbxxdp.blogspot.com/2017/04/fil … e-dir.html

FileMaker PowerShell と連携、戻り値取得。cmdコマンドを実行。プラグイン不要
https://qbxxdp.blogspot.com/2017/03/

編集者 qb_dp (2019-07-10 18:13:17)

オフライン

#8 2019-07-11 10:21:16

つぶて
ゲストユーザー

Re: [解決] 「URLを開く」スクリプトステップでフォルダを開きたい

ありがとうございます。

ひとまず、管理番号2つまで対応することができました。
Powershellについては不勉強なため、勉強して使えそうなら利用していこうと思います。

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer