みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも大変お世話になっております。
バージョン19.6.3.302になります。
検索のスクリプトを組んでおりまして、任意の案件名を検索しているのですが、今回案件名が
案件"テスト"のような案件名になりまして、ようは""が邪魔して検索がヒットしていないのだと思いますが
案件"テスト"を含んで検索する設定は可能でしょうか?
ご確認よろしくお願いいたします。
Offline
*テスト* や、@テスト@ で検索してしてみてください。
Offline
Shinさん
ありがとうございます。
@案件"テスト"@
などで検索してもヒットしませんでした。
""は含んだまま検索をしたいのですが、私の理解がまちがっていますでしょうか?
お手数ですがご確認お願いいたします。
Offline
レコード内のテキストの検索
を参照ください。
案件\"テスト\"
で検索できるでしょう
Offline
Shinさんありがとうございます。
検索できました。
実際はスクリプトを組んでおり、変数を使用した$案件名で検索したいのですが、もちろん普通に「案件のテスト」といった案件名もあり、「案件"テスト"」といった案件名もあります。
$案件名の中に""が入っている場合のみ\を入れる。などといった設定は可能なのでしょうか?
何度も申し訳ございませんが、ご確認よろしくお願いいたします。
Offline
\を入れる「特別な意味を持つ文字」が列挙されてますが、実際は¥を使わなくても""で囲んでもいいみたいなので、(¥@としなくても"@"で@を検索する)
検索実行のスクリプトで条件に
"$変数名"
とすれば、変数値に"が含まれてれば、"があるレコードを検索しますね。
条件を保存する検索は実地ではほとんど使ったことなかったので、何か穴があるかも...
$案件名 に 案件"テスト" が設定できたなら、変数で検索できます。
その設定で、やはりエスケープが必要でしょうね。
Offline
検索する文字列の定数をスクリプト内に書こうとするとエスケープが必要になりますが、ユーザが入力するなら
例えばカスタムダイアログで「案件"テスト"」を変数に設定(フィールドから設定しても)
検索実行でその変数を""内に書く
でエスケープ処理は必要なくなります。
ただ
"$変数"
と書いてるときに変数値が展開されるという動作は、何となく気持ち悪いです。
PHPでは、そうだったかな??
みなさま
ありがとうございます。
エスケープ処理とはどのうなものでしょうか?
私の知識不足から追いつけず、結果#5のところで止まったままです。
急ぎではないので、再度お教え願えますでしょうか?
Offline
#4のリンク先に
表示されない文字や FileMaker Pro で認識される検索演算子など、特別な意味を持つ文字:
@、*、#、?、!、=、<、>、" (次の文字をエスケープ)
と書いてあります。
が、「次の文字をエスケープ」するのは"でなく\のはずなので、この部分はちょっと変ですね。
英語ヘルプでも「" (escape next character)」と書いてあったので誤訳ではなかった。「¥」の書き間違いかな?
その項の説明に「検索する特殊文字の前に \ 記号を入力します。」とあるように、¥を前置するのがエスケープです。
その前の項に「句読点やスペースなどを含む演算子または英数字以外の文字 」は「スペースや句読点を含む文字をダブルクォーテーションマーク (") で囲んで入力します。」とあるように、ダブルコーテーションが特殊文字なので、それ自体を検索したい場合は\"とする必要があります。
ただし、定数で直接書く場合(スクリプトでない場合)は
>“\"小田\"”と入力すると、「"小田"」が検索されます。
ですが、スクリプトで変数を使う場合は
変数値が「"小田"」であれば検索実行スクリプトに「"$var"」と書けば¥の必要はありませんでした。(「」は含みません」)
himadaneeさん
エスケープのご説明ありがとうございます。
スクリプトですが、”$案件名”で検索してもうまくスクリプトが動作せずでして・・・
理解不足でも申し訳ございません。
設定としましては様々な形式で入力される案件名を$案件名の変数で検索したいというシンプルなものになります。
Offline
変数の設定はどうやってますか?
himadaneeさん
ありがとうございます。
現状の設定は、
①ガントチャート内の案件名をコピー
②検索用のレイアウトに切り替え
③検索モードに切り替え、案件名のフィールドに移動
④貼付け
⑤検索実行
だったのですが、これだと””を含む検索が厳しそうなので、
①ガントチャート内の案件名をコピー
②検索用のレイアウトに切り替え
③検索モードに切り替え、案件名のフィールドに移動
④貼付け
⑤貼り付けた案件を$案件名として変数に設定
⑥$案件名を検索実行
おおまかにこのように考えています。
Offline
①ガントチャート内の案件名をコピー
②検索用のレイアウトに切り替え
③検索モードに切り替え、案件名のフィールドに移動
④貼付け
⑤フィールド設定[案件名のフィールド ; Quote ( 案件名のフィールド )]
⑥検索実行
でいいようですよ。
Offline
Shinさん
ありがとうございます。
問題なさそうに動作しております。
他の設定との兼ね合いもありまして、少しこれで様子をみてみます。
またご報告させていただきます。
himadaneeさんもありがとうございました。
大変勉強になりました。
Offline
「ガントチャート内の案件名」だったら、部分一致検索がしたいわけではないですよね。
本来ならそれそのものでなくその案件のIDをどこか見えないところに持っていてそれを検索するように作るのが良いと思います。
(同名の古い案件などが検索されないように)
使用してるガントチャートに組み込めるかはわかりませんけど...
Quoteで処理されない@とか他の文字もエスケープが必要かも?
\100をQuote関数に入れると
"\100"
になりますが、これで検索すると
100
もヒットしてしまいますね...う~ん。ややこしい。計算式では文字列定数内の¥が常に\\とはならないことの悪い面がこういうところに出たか...
Pages: 1
[ Generated in 0.005 seconds, 8 queries executed - Memory usage: 552.95 KiB (Peak: 573.86 KiB) ]