みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
バックアップを作成するスクリプトをつくろうと思ったのですが
フォルダパスを指定するのではなく、そのファイルがあるフォルダにバックアップを作成するには
どのようにしたらいいですか?
パスを取得する関数では、ファイル名まで含めたフルパスになってしまうようで
それではできませんよね?
WIN10
FMP16
Offline
ファイルパスからファイル名を取り除けばいいんでは。
テキスト関数を駆使してできますが、、
Offline
Substitute ( Get ( ファイルパス ) ; Get( ファイル名 ) & ".fmp12" ; "") & "バックアップ/" & Get( ファイル名 ) & Substitute ( Get ( タイムスタンプ ) ; [ "/" ; "_" ] ; [ " " ; "_" ] ; [ ":" ; "" ] ) & ".fmp12 "
こんな感じでしょうか?
もっとスマートにかけますか?
Last edited by TAKESA (2017-07-13 01:38:56)
Offline
ところでバックアップ完了後に
完了したことを通知したいのですがカスタムダイアログではOKを押すだけの
無駄なものを表示してしまうことになります
使いやすいソフトをつくるときに
そういった意味のないダイアログはUIやUX的にはタブーだということです
画面中央あたりに、ふわっとバックアップ完了というテキストを表示させるようなことはできないでしょうか?
Offline
素朴な疑問ですが OK を押すだけで閉じるダイアログが UI/UX 的NGで
画面中央にふわっとでるテキストだと OK な理由は何でしょうか?
Offline
わざわざOKをクリックする必要があるからです
つまりOKしかないダイアログを出すのは無意味だということです
削除しますか? はい いいえ
ならいいのですが
削除しました はい
というのは無駄です
Last edited by TAKESA (2017-07-13 06:05:40)
Offline
なるほど。そういった考え方もあるのですね。ありがとうございます。
"通知は通知内容を確実に視認させられなければ意味がない"という観点もありますね。
参考までにどのような資料・Web サイトから情報を得られているのか教えて頂けませんか?
古い人間なのでダイアログ出してしまいがちなのです。
最新の UI / UX 事情について少しでも知ることができればと。
Last edited by Moz (2017-07-13 06:09:51)
Offline
どこでみたか忘れました
ファイルメーカーで、というわけではないのですが
配色や、レイアウトなど
デザイン的な勉強をしているときにみつけました
ダイアログでは
はい いいえ ok などではなく
削除しますか?
する しない
などとしたほうがよいようですし
そもそも選択肢がないなら必要ないようです
OK押そうが押すまいがもう終わったことなので…
OKを押すことによって、ユーザーが確認した、とかいう承認印的な証拠を残したいなら別でしょうけど
Offline
これだったかどうかわかりませんがここの真ん中あたりに書いてありました
2) 不必要なインターフェース
https://emptypage.jp/translations/benroe/gui.html
Offline
わざわざありがとうございます。早速読んで参考にします。
終わったことにダイアログを出さないというのは合理的ですね。
自然に消える進捗表示のためのダイアログも最新のバージョンであれば実現できそうですね。
早起きの年寄りに付き合って頂きありがとうございました!
Offline
いいと思いますが、あえて、、
ファイル名を一旦消して、新たにタイムスタンプを入力
していますよね。
これを
ファイル名をタイムスタンプに直接変更
できますよね。
それと、
日付と時刻のセパレータはシステムに左右される場合がありますからご注意を。
カスタムダイアログがいやなら、
別ウインドを表示とか、レイアウト切り替えて表示とか、
それを一定時間で元に戻すこともできますね。
Offline
完了したことを通知したいのですがカスタムダイアログではOKを押すだけの
無駄なものを表示してしまうことになります
通知したいだけの場合は、私は、PowerShellを使っています。
以下のようにすると、指定秒後に自動で閉じるダイアログが出せます。
※Windowsのみで動作。
Event を送信 [「aevt」; 「odoc」; "powershell -windowstyle hidden -Command \" (New-Object -COM Wscript.Shell).PopUp('内容', 3, 'タイトル', 0)\""]
また、記述が多くなりますが、以下のようにすると画面右下に通知を出すことが出来ます。
Event を送信 [「aevt」; 「odoc」;
"powershell -windowstyle hidden -Command \"param([int]$timeout = 3, [string]$tilte = '{tilteタイトル}', [string]$body = '{body}', [string]$toolTipIcon = 'Info');
[Void][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');
$notifyIcon = New-Object System.Windows.Forms.NotifyIcon;
$powerShellExe = $PSHOME+'/powershell.exe' ;
$icon = [System.Drawing.Icon]::ExtractAssociatedIcon($powerShellExe);
$notifyIcon.Icon = $icon;
$notifyIcon.Visible = $true;
$notifyIcon.ShowBalloonTip($timeout, $tilte, $body, $toolTipIcon);
$notifyIcon.Visible = $false;\""
]
あと、プラグインを使うと、「OK」「キャンセル」をクリックした、または自動で閉じたなどの情報の取得が出来ます。
変数を設定 [$Result; 値:SMPS_ExecSync( " (New-Object -COM Wscript.Shell).PopUp('内容', 3, 'タイトル', 1)" )]
ScriptMakerPS | FileMaker Plugin for Windows : https://sites.google.com/site/scriptmakerps/
Last edited by qb_dp (2017-07-13 10:01:08)
Offline
僭越ながら私も一案。
Mac の通知センターを利用して通知を行う方法を。
[AppleScript を実行]スクリプトステップに以下の計算式を入れます。
Let ( [
タイトル = "バックアップ" ; //メッセージのタイトル
サブタイトル = "完了の通知" ; //メッセージのサブタイトル
メッセージ = "バックアップが完了しました。" ; //メッセージの本文
通知音 = "Frog" //メッセージを表示する際の通知音
] ;
"set notificationTitle to the \""& タイトル &"\"¶
set notificationSubTitle to \""& サブタイトル &"\"¶
set notificationMessage to \""& メッセージ &"\"¶
display notification notificationMessage with title notificationTitle subtitle notificationSubTitle sound name \""& 通知音 & "\"¶
Delay 1"
) // Let
Offline
qb_dpさん
Event を送信 を選んでどこにそれを記述したらよですか?
テキストや計算のところにかきましたがファイルエラーやフィールドがありません
のエラーがでてできません
Offline
Event を送信 の 計算 に記述します。
Offline
「aevt」; 「odoc」
は記述しなくてよかったんですね
できました
一瞬DOS窓みたいなのがうつりますね
Offline
>一瞬DOS窓みたいなのがうつりますね
Event を送信 の オプション
「対象アプリケーションを手前に表示」のチェックを外せば、PowerShellのウインドウが後ろに隠れるので、気にならなくなります。
Offline
チポさん
ファイル名を直接タイムスタンプに変更すると
file:/E:/フォルダ/バックアップ/ファイル名2017‐07‐13‐181655.fmp12
という形にできなくありませんか?
file:/E:/フォルダ/2017‐07‐13‐181655.fmp12
となってしまいます
Offline
こんなのでいいのでは。
Substitute ( Get ( ファイルパス ) ; Get ( ファイル名 ) ; Substitute ( Get ( タイムスタンプ ) ; ・・・・・・ ) )
もちろん、
ファイルパスにファイル名と同じものがないのが条件です。
Offline
「バックアップ/」も追加しなくてはならないから、こんな感じかな、
Substitute(Get(ファイルパス); [Get(ファイル名); "バックアップ/"&Get(ファイル名)&Substitute(Get(タイムスタンプ);・・・・・・ )])
(あまりスマートにならないけど、.fmp12分だけ短くできる)
Offline
ああ、
バックアップホルダ、
すっかり抜けいていました。
Hiroさん
ご指摘ありがとうございます-_-
Offline
バックアップフォルダにあるバックアップを起動してバックアップすると
フォルダパスの都合で保存できなくなります
変数を使ってできないか色々ためしてみましたが
うまくいきません
Last edited by TAKESA (2017-07-14 17:53:12)
Offline
パスに
「バックアップ」が含まれているかで条件分岐するとか、
最初にスレ主さんが書かれた様に、
「バックアップ」を消してからまた加える。
とか、でいいのでは
Offline
Pages: 1
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 567.53 KiB (Peak: 588.44 KiB) ]