みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
書かれている情報だけでは、どのような状態を希望されているのか少しイメージしづらいように感じます。
社員名簿の変更時に印刷を行う必要があり、
その際に、今回変更したレコードのみ、色を付けたい…というような事でしょうか?
ボタン毎に条件付書式を割り当てては如何でしょうか。
条件がたとえば フィールドA="" or フィールドA≠""
など、どちらの場合でも、となるような式であれば、常にその色で表示されるようになります。
なるほど、html形式のメール本文中の、htmlで書かれている表を貼り付けたい、という事なのですね。
本文をタグごと全部ひっぱってきてウェブビューアーに表示させる、という方法はいかがでしょう?
若干重くなるかもしれませんが…
タグの付いたHTMLテキスト からMozさんの回答を抜粋しました。
> HTMLタグをフィールドに入れて、
> それを FileMaker 上で Internet Explorer 様に表示したいなら
> Web ビューア を作成してWeb アドレスに下記の様に記述してみて下さい。
> "data:text/html," & HTMLタグを入れたフィールド名
┌─────────┬────────────┬────────┐
│罫線文字を駆使した│クソみたいなテーブルなら│入れられるよ…!│
├─────────┼────────────┼────────┤
│こんな感じで・・・│めっちゃめんどくさいけど│入れられるよ…!│
└─────────┴────────────┴────────┘
冗談はさておき、
「テキストフィールドに表を挿入したい」というシチュエーションがあまり良く分からないのですが、
最終的にどういった状態を実現されたいのでしょうか?
別の方法でも対応できるかもしれません。
アプリのバージョンでも違うのは知りませんでした。
無料ですしアプリとしては両立するので、Go14~16も入れて比較してみても良いかもしれませんね。
アプリが落ちる対応してた当事になんとなくまとめたメモが見つかったので、参考になれば…
【FileMakerの動作を重くする原因】
・集計フィールド
・非保存のフィールド
・リレーション
・他のテーブルを計算対象に含む計算フィールド
・計算式内で同じ計算を何度も行う
・テーマ不使用
【小技】
★「レイアウト移動>検索実行」よりも「関連レコード移動」の方が百万倍早い!
→そりゃもうめちゃくちゃ早い!!!!!!
・同じフィールドを何回も呼び出す場合は記述せずにLetした方が早い
遅)test_table::test_field & " " & test_table::test_field & " " & test_table::test_field
早)Let ( tt = test_table::test_field;
tt & " " & tt & " " & tt )
・長文の完全一致比較は=よりもPatternCount関数のほうが早い
・作成時「索引」付だと動作が遅く、ファイルサイズが7割くらい重くなるので、索引設定はシビアに…Unicode、日本語で速度に変わりはないが、Unicodeの方がファイル容量は少ない。UUIDなら絶対Unicode!
・テキストの索引より数字索引の方が軽量
【オブジェクト毎の重さ】
索引なし計算フィールド(19.9)
索引つき計算フィールド(20.1)
ラベルなしマージフィールド3個(20.2)
ラベルなしマージ変数(20.3)
ラベルなしテキストフィールド(21.8)
スライド1枚(23.3)
スライド5枚(24.4)
WEBビューア(24.5)
ラベル付きテキストフィールド(24.7)
スライド10枚(25.7)
ポータル(26.8)
タブ1枚(27.0)
タブ5枚(38.4)
タブ10枚(51.0)
#がないと困る場面もないので気にしたことがなかったのですが、
#の後に文字列がない場合に見た目上#が消えるのは仕様です。
ステップ自体に#をつけるという事はできないのですが、
「スクリプトステップの無効化」でコメントアウトと同じ動作ができます。
https://www.filemaker.com/help/14/fmp/j … .25.3.html
macはわかりませんが、Windowsの場合、ステップを選択した状態で ctrl+/ でON/OFFです。
初代ipad mini/ipad mini2を使った点検システムで、同様に入力・スクリプト実行時にアプリが落ちる不具合が発生していました。
比較的スペックの高いipad(2017モデル)を導入したところ、このipadでのみ安定して動作するようになったのですが、
結局1つのレイアウト上に条件非表示オブジェクトや条件書式等の、入力後に判定が必要な処理を多用していた事が一因だったようで、
レイアウトを分割し、判定が必要なオブジェクト数を半分程度に分ける事でほぼほぼ再発しなくなりました。
計算と描画の速度は本体スペック依存なので、その兼ね合いではないかと思います。
タブ表示もかなり重い部類に入るようなので、ボタンを配置した擬似タブに変更されてみてはどうでしょうか。
参考:レイアウト表示速度比較
ポータルフィルタはレコードの絞込み表示と同様ですので、恐らくそれが原因ではないかと思うのですが…
フィルタを解除したときに新規レコードが表示されるようになるかテストして頂ければ、原因かどうか判断できると思います。
フィルタを使用せず、リレーション条件で絞込みをさせることは難しいのでしょうか?
ポータルレコードのフィルタを設定されているのでしょうか?
なるほど!とてもわかりやすいです。そういうことだったのですね…
Mozさんの仰るとおり、先ほどの#2,#6はいずれもFMServer上で稼働中の、絞込み条件ありのファイルでテストしていました。
全レコード表示状態で再テストしたところ、同一端末上ではリアルタイムで反映されることを確認致しました!
端末からは絞込み解除できないように設定しているので、別端末でどうかはまだ見てませんが、、たぶんこれでリアルタイム反映に関しては、解決しそうな気がします。
ただし絞り込み条件が死ぬので、そこは別の解決方法が必要になりますが…
. [テーブル]
∧
[レイアウト1] [レイアウト2]
| |
[端末A] [端末B]
上図の状態で、Aでレコード追加してもBにリアルタイム反映されない、という事?ですよね?
[テーブル]
|
[レイアウト]
| |
[端末A] [端末B]
このように試したのですが、こちらでも、Aでレコード追加してもBにリアルタイム反映されません。再読み込みすれば出ます。
[テーブル]
|
[端末]
∧
[レイアウト1] [レイアウト2]
| |
[ウィンドウ1] [ウィンドウ2]
こちらでも、ウィンドウ1でレコード追加してもウィンドウ2にリアルタイム反映されません。これも再読み込みすれば出ます。
仕様でしょうかね?
レイアウトが同じでも端末が異なる場合「新規レコードの作成」のみ、リアルタイムで反映されないですね…
「フィールド内容の更新」と「レコード削除」はリアルタイムでした。
原因が特定できなくて申し訳ないのですが、
レイアウトが同じでも発生するということは、リレーションの問題ではないということだと思います。
If [Get ( システムプラットフォーム ) = 3 ]
ツールバーの表示切り替え [ロック(L); レコードの編集ツールバーを含める; 隠す]
メニューバーの表示切り替え [隠す]
End If
以上のスクリプトをファイルオープン時のスクリプトとして設定しておけば、Goで開いたときにツールバーが使えなくなります。
このスクリプトをOnLayoutEnterに設定すると、そのレイアウトを開くタイミングでツールバーが使えなくなります。
私の場合、FMGoで動作させるものはすべてファイル起動時にツール・メニューバーを消して
レイアウト中のボタンでのみ操作をさせるようにしているのですが、それでは問題がありそうですか?
こちらで同じ系統の質問がありましたが、FMの機能で行う方法の返信はありませんね…
http://joy-h.com/bbs2/viewtopic.php?id=1296
仮想プリンタでは問題がありますか?
http://gigazine.net/news/20071107_virtu … er_driver/
wi-fiとFileMakerServer
https://community.filemaker.com/thread/153950
こちらが参考になりませんか?
タブ順設定でできませんか?
めっちゃ出来ました。感動…!
しょーもない部分とは思いながらクッソ煮詰まってたので、とてもすごく助かりました。ありがとうございます!!!
あれ、取り違えているか?
> フィールド入力後に押すボタンは
このボタンって何をしているのですか?
このボタンには、入力漏れチェック成否でダイアログ出して、別のレイアウトへ移動させるスクリプトが入ってます。
タブ順設定でできませんか?
そんな設定があったとは…!!
ありがとうございます!!!出来そうな気がします!
""で囲ってあるものは、文字列として扱われます。
検索モードで試してみて欲しいのですが、「 12* 」なら出てきますが、「 "12*" 」では出てきません。
Left ( フィールド名 ; 2 )="12"
で、12から始まるものだけが表示できます。
Left関数は、文字列の左から順に、任意の文字数以降の部分をカットする関数です。
Left ( フィールド名 ; 2 ) で、「フィールド名」の部分に対象となるフィールドの名前を入れると、その内容を左から2文字だけ抽出します。
=12 で、それが12のときだけ表示する、というフィルター条件になります。
まずこんなクソみたいな仕様にしてるところから怒られそうなのですが…
1□ □5
2□ □6
3□ □7
4□ □8
ポータルを上の図のように8個、それぞれ1レコード(入力が有効なのは1フィールド)ずつ表示させていて、
Enterで縦方向に順番どおり移動させて8に行ったら1に戻したいのですが、そのままだと1→5→2→6...と横方向に移動してしまいます。
入力をスルーする場合もあるので、ModifyではなくOnObjectExitで次番ポータルへ行くようには、なったのですが、
「OnObjectExit」なので他のボタンを押したときも「Exit」でトリガが動いて次のフィールドへ、その次のフィールドもExitで次へ・・・となり、
レイアウトに配置したボタンが永久に押せないどころか、レイアウトの編集にも戻れない、ウィンドウもFM自体も閉じれないまま
フィールド間を移動し続けるという状態になってしまいました。
フィールド入力後に押すボタンは一個しかないのでそのボタンさえ動けばいいのですが、
ボタンのスクリプトの一番上に「すべてのスクリプトを終了」を入れると、(当たり前ですが)ボタン自体が動作しません...
OnObjectExitの前に、何か割り込んで動作させられるスクリプト等がないでしょうか。
または、ポータル間の移動方向を任意で決めることができる方法がないでしょうか...
基本的なところからいくと、「スクリプト」というのは「作業を自動で行わせるために記述するもの」という感じです。
Filemakerでは、スクリプトは1つずつのステップを組み合わせて作るもので、実行時は(LoopやIfなどがない限り基本的には)上から順に1つずつ各ステップを行っていきます。
作成したスクリプトを、ボタンに割り当てたり、ファイルを開いたときやレイアウトを変えたとき、フィールドを変えたときなどの、
特定の変更があったタイミングで実行するという風に設定して、使っていきます。
Googleなどで「Filemaker なんとか」というふうに検索すれば、スクリプトの書き方や、実現方法などが出てくることがあります。
また、タイトルだけで使い方がわからないステップは、Filemakerでリファレンスが用意されているので、こちらでも確認ができます(下のリンクはFMP13版ですが…)。
http://www.filemaker.com/help/13/fmp/ja … .13.1.html
スクリプトは自分で作っていくのですが、作り方の流れはこちらが参考になるかもしれません。
002-ファイルメーカーにおけるスクリプトの書き方(俺流)
http://emptyhouse.jp/nikki/entry-975.html
このステップは、現在のレコードの、対象のフィールド(日付フィールド)に、「$dayに1を足した情報」を入れる、というステップです。
1~4は同じです。
5.ステップの中に、「フィールド」という項目があるのでクリックして開きます(開いている場合はそのままでOK)
6.「フィールド」のなかに「フィールド設定」という項目があるので、ダブルクリックしてスクリプトに追加します。
7.フィールド設定 [ ]というステップが中央に追加されたら、ダブルクリックして「フィールド指定」ダイアログを表示します。
8.フィールド指定ダイアログで、日付フィールドを選択してOKをクリックします(下の繰り返しは1になっていればOKです)。
9.フィールド設定 [テーブル名::日付] ✪ ←この星マークの部分に歯車マークが出ると思うので、それをクリックして「計算結果:」の右にある「指定」をクリックします。
10.「計算式の指定」ダイアログが開くので、こちらに $day + 1 と入力します(変数を設定ステップで作成した変数名と、半角で+1でOKです)。
11.OKで編集を確定して、歯車マークを閉じます。
12.ステップが フィールド設定 [テーブル名::日付] から、 フィールド設定 [テーブル名::日付; $day+1] になっていればこのステップはOKです。
前のステップで、「 $day 」という変数に、最初に居たレコードの、日付フィールドの値を持たせていました。
新規レコードで新しいレコードに移ったあと、その日付フィールドに、最初に居たレコードの日付に1日足した数字を入れるステップです。
$day(最初に居たレコードの日付フィールドの値)が「2017/10/19」の時、このステップの「 $day+1 」は「2017/10/20」を返します。
日付が「10/19」のレコードでこのスクリプトを使うと、日付に「10/20」が入力された新しいレコードが作成されます。
こんな感じでわかりますか?
※「日付フィールド」のフィールドタイプが「日付」であれば上記のように動きます。
フィールドタイプが「数字」や「テキスト」の場合、作成されたレコードの日付は「20171020」(スラッシュが勝手に削除された状態)になります。
弊社ではエクセルを少々レベルとhtmlを20年前に触ったことあるレベルの2名で、作成実質3ヶ月程度で社内の点検システムを完成させました。
1ヶ月通常業務と平行して事前学習して5日間の宿泊研修行って、帰って通常業務と平行して復習しながら作ったり詰まったりって感じでしたが。
Filemakerは現場レベルの人間でも開発できるのが最大の良いところだと思います。VBなんかではきっとこうはいかないので・・・
最終的に内製化できないのであれば、Filemakerでなくて良いんでは…という気もします。
ランニングもありますし、2年に1回のペースでバージョン上がるしバージョンごとにぐんぐん値上がりしてますし…
https://store.filemaker.com/
このステップは、新規レコードを作成する前に、基準となる日付情報を変数に入れて持っていく、というステップです。
どこからわからないのか微妙なので0から行くと、
1.上部メニューから、「スクリプト(S)」→「スクリプトワークスペース(W)」で、スクリプトワークスペースを開きます。
2.左上の+マーク(新規スクリプト)で、新しいスクリプトの作成を開始します。
3.スクリプトにタイトル(名前)をつけます(仮に ”次の日付を作成” とかにします。後で意味がわかれば何でもいいです)。
4.右側に「ステップ」の一覧表示がなければ、右上の「ステップ」をクリックして表示します。
5.ステップの中に、「制御」という項目があるのでクリックして開きます(開いている場合はそのままでOK)
6.「制御」のなかに「変数を設定」という項目があるので、ダブルクリックしてスクリプトに追加します。;
7.変数を設定 [ ]というステップが中央に追加されたら、ダブルクリックして[変数を設定]のオプションダイアログを開きます。
8.名前(N): に、変数名 $day を入力します(頭に$が付いていれば変数名は何でもいいです)。
9.値(V): の右側の「指定(S)」をクリックして、計算式の指定ダイアログを開きます。
10.左側のフィールド一覧から、日付フィールドをダブルクリックして、フィールド名を入力(=フィールドの情報を記録するように指定)させます。
空白部分に テーブル名::日付 だけが入っている状態で、OKボタンを押します。
11.[変数を設定]のオプションダイアログに戻ったら、OKボタンを押して編集を確定します。
12.ステップが 変数を設定 [ ] から、 変数を設定 [$day; 値 : テーブル名::日付 ] になっていればこのステップはOKです。
このステップでは、「 $day 」という変数に、現在のレコードの、日付フィールドの値を持たせています。
現在のレコードの日付フィールドの値が「2017/10/19」の時、このステップの「 $day 」は「2017/10/19」を返します。
トレーニングはお済みでしょうか?
Filemaker社が提供しているサンプルソリューションも勉強になります。
データベース初心者というか、私の場合ですが、自分がやりたい事と違うタイプのデータベースでは、とても参考にならない(できない)事が多かったです。
ncgさんが実現されたい事を書いて頂ければ、参考になりそうなファイルを案内しやすいと思いますよ。
追伸:
プログラミングのような技術知識は、習得のためにお金を払って研修を受けたり、独学でもその技術の習得までに多くの時間やお金を費やしていらっしゃる方がほとんどです。
実データを抜いたとしても、時間とお金がかかった実用完成品を無料でこちらにお出しする、というのは、私のようなものでもちょっと、できかねます。
構造の小さなサンプルレベルのものでしたら、アップロードできるものもあるかもしれませんし、過去アップロードしてくださっている方もいらっしゃいますが、
実用レベルのファイルでは、自分が作ったものでもつながりや意図が難解な部分が多く、完成品からその技を習得するのは、逆にとても難しいと感じます。
公式トレーニングを一通り完了しても目的のソリューションを作成することが困難な場合は、今一度マンツーマンでの研修を検討されてみるといいかもしれません。
[ Generated in 0.020 seconds, 7 queries executed - Memory usage: 698.86 KiB (Peak: 753.02 KiB) ]