みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
「フィールドへ移動」ステップの説明に
対象フィールドが Web ブラウザウインドウに表示されない場合は、「フィールドへ移動」はウインドウをスクロールして対象フィールドを表示しません。
とあるので、スクリプトでどうにかできる余地はなさそうです。
「ポータル内の行へ移動」の方の説明は、英語版と照らし合わせても意味が解りませんでした。
承知しました。 ありがとうございました。
FileMakerのポータルを使っています。
下記のようなポータルです。 設定の列内容を入力で結果1と結果2を表示します。
項目 設定 結果1 結果2
A □ ** **
B □ ** **
C □ ** **
D □ ** **
FileMaker環境でテストの際に設定1の内容を入力完了すれば、フォーカスも自動的に次項目の設定に遷移されています。
フォーカスはポータルのMax行数分の項目に遷移されている際にポータルも自動的にスクロールされています。
しかし、chromeのweb画面で上記ポータルのレイアウトを表示させて動作確認の際に、
上記の自動スクロール機能が効かないみたいです。
※フォーカスはポータルのMax行数分の項目に遷移されている際に自動的にスクロールされないです。
上記のスクロール機能効かないことについて、なんか対策などを教えていただけますでしょうか?
ご回答ありがとうございます。
試します。
繰り返しの計算フィールドを作って、インポートする時「レコードに分割」します。
GetValue(List(Value1; value2; value3);Get(計算式繰り返し位置番号))
検索結果DBのValue1~Value3
をnewDBに移したいです。
なんか簡単な方法がありませんか?
検索結果DB
key1 key2 key3 Value1 value2 value3
000 A * 1 2 3
001 B * 4 5 6
002 C * 7 8 9
↓↓
newDB(local)
key1 key2 key3 Value1
000 A * 1
000 A * 2
000 A * 3
001 B * 4
001 B * 5
001 B * 6
002 C * 7
002 C * 6
002 C * 9
トレーニングの資料を確認します。ありがとうございます。
厳密に言うと、Onobjectvalidate トリガーの使い方も正しくないし、もっと基本的なリレーション という考え方を全く理解されていないようです。
https://fm-aid.com/bbs2/viewtopic.php?pid=72061#p72061
と同じことを言っています。
FIleMakerのリソースの、公式トレーニング教材 あたり(USのサイトからは英語版もあります)を一通り理解されたほうが、進歩は早いと思います。
>計算フィールドで参照や、ルックアップするなどいろいろできます。
すみませんが、少し詳細の内容を教えていただけますでしょうか?
こちらはAの入力後、Onobjectvalidateイベントのスクリプトにレイアウト切替、会社IDフィールド設定、検索実施、レコードの取得、フィールドBに設定をしています。ちょっと複雑です。
テキストフィールドAtと会社ID をリレーションすれば、Bの代わりに リレーション::社員名 を参照させてもいいでしょうし、フィールドBが必要なら、計算フィールドで参照や、ルックアップするなどいろいろできます。
テキストフィールドAの入力内容により、自動的にDBを検索し、テキストフィールドBにDBの内容を表示させる。
上記の実現は可能でしょうか?よろしければ、方法概要も教えてください。
例:以下のDBにテキストフィールドAにID1入力後、テキストフィールドBに社員1を表示させる。テキストフィールドAにID2入力後、テキストフィールドBに社員2を表示させる。
会社ID 部門名 社員名
ID1 部門1 社員1
ID2 部門2 社員2
ID3 部門3 社員3
ID1 部門4 社員4
この方法で実装し、動作確認もできました。
具体的に書いてみたら、わかりやすいのでは。
例えば、
テキストフィールドAのどこかに、「今日」という単語が入れば、テキストフィールドBを黄色に変更したい。 ※Bのデフォルトは黒色です。
とか。
この条件ならば、フィールドBの条件つき書式の条件に、PatterCount ( フィールドA ; "今日" ; 1 ; 1 ) という計算式を設定し、フォントの色を指定すればいいです。
ありがとうございます。オブジェクトの更新も試しました。同じようにできます。
フラグの設定がうまくいってるなら、とりあえずその次に行に
オブジェクトの更新「フィールドBのオブジェクト名」
を入れてみては?(フィールド名でなくオブジェクト名が必要)レコード確定後にも条件付き書式が反映されないなら、条件自体が間違っているんでしょう。
ありがとうございます。試しました、Flgなしでも行けます。
入力内容のチェック必要があるのである文字含めるとテキストフィールドBの色変更をさせたいです。
よく分かりませんが、日本語がネイティブではないのですか?
テキストフィールドAの内容によってテキストフィールドBの表示色を条件付き書式で変えたいならflagフィールドは不要です。
テキストフィールドBの条件付き書式の条件式でテキストフィールドAを評価すれば良いだけです。
↑の部分は理解されていますか?テキストフィールドAに特定の文字が含まれているレコードを検索する目的ならばflagフィールドがあっても良いかも知れません。
(その場合でもテキストフィールドAを特定の文字列で検索すれば済む話です)
条件付き書式で色を変えても色で検索できるわけではないのでレコードを視認性以外の効果はありません。
ありがとうございます。
>わざわざフィールドflgを書き換える理由があるのでしょうか?
⇒そうですね、入力内容のチェック必要があるのである文字含めるとテキストフィールドBの色変更をさせたいです。
その内容であればテキストフィールドBの条件付き書式でテキストフィールドAの値を直接評価すれば良いでしょう。
わざわざフィールドflgを書き換える理由があるのでしょうか?
もし、書式変更のためにフィールドを作成しているとしたら不要です。
(機能のためにリソースを増やすのは開発の中では悪手です)
①テキストフィールドAの[OnObjectKeystroke]トリガで 入力内容によりあるフィールドflgをON/OFFの設定をします。
②はテキストフィールドBの条件付き書式に フィールドflgON時黄色変更の設定をします。 ※Bのデフォルトは黒色です。
ほしいのはAの入力の内容によりBの色を変換させる。
現在フィールドA入力後 フィールドflgのON・OFFが実施されましたが、Bの色が更新されていないです。
フィールドflgの値を変更した際にフィールドBの色更新も自動的に実施されていることですか?
再評価(更新)が行われるのは評価式の中にあるフィールドが直接変更されたときです。
①は[OnObjectKeystroke]トリガで実行されるスクリプトによります。
→つまり[OnObjectKeystroke]なら必ず更新されるわけではないですし、
必ずしも[ウインドウ内容の再表示]が必要なわけではありません。②は条件付き書式にテキストフィールドAが含まれていればフィールドAを変更した際に更新されます。
flag とは何を指すのでしょうか?条件となる要素を必要以上に作るのは不具合の原因を増やすだけです。
テキストフィールドAの内容により テキストフィールドBの文字色を変更させる。
現在は、①の処理後Bの色変更がされていないですが、更新処理が必要ですか? 教えてお願いします。
①Aの入力に文字内容をチェックしflagをON/OFFを設定する
onobjectkeystrokeの処理
②テキストフィールドBの条件付き書にflagにより色変更を設定
そうですね、テキストフィールドの内容によりテキストフィールドの色変更させることです。難しいですか?
すみません、このトピックでチャットしていました。
日付がテキスト?
テキストフィールドの中に日付が入力されているのですか
スケジュールの日付ではなく、一般的なテキストに表示されているので、テキストに日付入力後更新させたいです。
指定日を書き換えたのでしたら、ウインドウの再表示が行われますので、すぐに更新されます。
更新されないのは、そのレイアウトを開いたままで日付が変わった時です。ですから、一般的なスケジュール(朝開いて夕閉じる)で動いているのでしたら、更新の心配はされなくていいでしょう。
たとえば、条件変更後、すぐ更新したい場合に、どの更新処理を実行すればいいですか?
可能ですよ
ただし、そのレイアウトが読み込まれたり、ウインドウの再表示が行われた時点で、表示が変更されます。
日付ずっと表示中に、条件付き書式で色の切替も可能ですか?
Abs ( Get ( 日付 ) - 指定日 ) < 14
で良いでしょう。不等号は、境界を含めるかどうかで考えてください。
テキストの色をフィルダー(true,flase)により切替ることをじつげんしたいです。
trueの場合に青字、falseの場合黒字
条件付き書式に一つ計算式で対応可能ですか?
ありがとうございます。
その通りで動作確認しました。
同じユーザーが同じ端末からアクセスしている間だけ、グローバルフィールドに設定された値は保持されています。
ちなみに、グローバルフィールドのデフォルト値は、サーバーに保存されている値(共有される直前に保持していた値)です。①同じユーザが複数端末からログインし、同じレイアウトを操作する。
②違うユーザが違う端末からログインし、同じレイアウトを操作する。
同じユーザーであっても異なる端末からは別のユーザーと見做されますので、どちらの場合もそれぞれの値になります。
ありがとうございます。
「レイアウトのローカルテーブル」とは何ですか?
どのように共有を行っているか分かりませんが、
グローバル格納に設定したフィールドは共有環境ではセッション毎に値を持ちます。①ユーザがフィールドの値を入力してファイルを閉じるまでは維持される。
同じユーザがサインアウトして再度サインインした際には初期化される。②異なるユーザ間で値は維持されない。
あるレイアウトのローカルテーブルに下記グローバルフィールド三つを追加しました。DB関連せず。
・会社名
・設定日数
・最後設定時刻
①同じユーザが複数端末からログインし、同じレイアウトを操作する。
②違うユーザが違う端末からログインし、同じレイアウトを操作する。
①の際に、上記三つフィールドが共有されているか?
②の際に、上記三つフィールドが共有されているか?
※端末ごとの操作時、フィールドそれぞれ設定できることをやりたいです。
複数レイアウト間に共有させたいデータがあります。DBに保持される必要がない。
単純に複数レイアウトに一つレイアウトに設定されたら、他のレイアウトにも自動反映させたいです。
・会社名
・設定日数
・最後設定時刻
※一つレイアウトのローカルテーブルに上記三項目追加しましたが、他のレイアウトも参照/設定させたいです。
ありがとうございました。
判定式を書いちゃいますね
IsEmpty ( Filter ( テキスト ; RomanZenkaku ( テキスト ) ) )
半角英数のみのとき、1を返します。
大変ありがとうございました。確かにその通りです。
グローバルテーブル とは何のことでしょうか。FIleMaker には、その概念はありません。
また、おそらく SQL 系のデータベースの概念を持ち込もうとされているのでしょうが、全く違う概念で動いていますので、考え方をゼロから変えてください。SQL 系は、極端に言うと、ファイルを開いて個別に必要なデータをワークテーブルへ取り込んでそのファイルへのアクセスはせずに、ローカルでワークテーブルに対して処理を行い、その結果をサーバーのファイルへ書き戻す、という動きです。FM は、共有するファイルを開いて、そのレコードのデータを直接操作して、結果をそのまま書き込む、という動きです。共有するファイルは、直接クライアントが同時にアクセスできる開いたままになります。1ファイルの中で、テーブルを横断して共通のデータを持たせ、保存の必要がないのでしたら、いずれかのテーブルに作ったグローバルフィールドを参照するのがいいでしょう。グローバルフィールドは、リレーションに関係なく参照できます。グローバルフィールドのみを持たせた、グローバルテーブルみたいなテーブルも作成できます。
マスターになるようなテーブルということでしたら、テーブルを1個作り、別のテーブルからそのテーブルを参照するようにリレーションを張ればいいのかも。
ただし、別ファイルは参照出来ませんので、共有するファイルが必要になります。ただ、
> B画面に操作後の文字をgXXXtableテーブルのテキスト項目に設定する
> C画面、D画面にgXXXtableテーブルのテキスト項目を参照する。
画面というのがレイアウトのことで、レイアウトごとに別のテーブルに紐付いている、という構造なのでしたら、
そのテーブル間の関連性(リレーション)によっては、テーブルBのフィールドを関連フィールドとして参照すればいいのでは。今お使いのDBMSとは、かなり概念が違っているようです。
https://www.claris.com/ja/resources/
の公式トレーニング資料に目を通されればいかがでしょうか。
今、グローバルテーブル追加してもダメ見たいです。わからないことが多いので、一応実現したい内容を説明します。
あるユーザログイン中に、このユーザ操作のデータを複数画面間に共有したいです。ログアウト時データクリアする。データベースに保持する必要がないです。
最初.net開発と同じように グローバルテーブルを追加して、テーブルテーブルの一部データを複数画面間に使用すると思いましたが、
画面ごとに同じ名前のグローバルテーブルを追加し、テーブルに同じ項目を追加しました。それぞれの画面に参照または設定処理を追加しました。
だめぽい。
ファイル全体の構造がわからないと、見当がつきません。
テーブルを作っても、そのテーブルとのリレーションを張らないと、テーブルの参照はできません。
[ Generated in 0.010 seconds, 6 queries executed - Memory usage: 671.14 KiB (Peak: 724.8 KiB) ]