みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
WIN 10
Pro15を使用しています。初心者です。
スクリプトを作成したいです
使用するテーブルは一つ
使用するフィールドは2つ
・年度フィールド(テキスト)
・確認フィールド(テキスト)
仮に年度フィールドで「2022」を検索して100レコード検索されたとします。
そこからloopで1レコードごとに「「確認」という文字が存在してないのであれば」というif構文を作成し動かしていきたいと思います。
※「もし確認フィールドのに「確認」という文字が存在していたら」であれば
If[PatternCount ( テーブル::確認フィールド ; "確認" )]
であるということは理解しました。今回はそのその逆の方法が知りたいのです。
※確認フィールドには業務上いろいろな文字を使用しているため「確認」という文字の存在の有無でその後の動きを変えていきたいのです。
是非ご教授よろしくお願いします。
Offline
その検索の100レコードに対しての処理ですか。それともそれぞれのレコードに対しての処理ですか。
検索の後で、"確認" を含まないレコードに絞り込みをするのが簡単なのでは。
確認フィールドに "確認" を設定して、除外 とするか、スクリプトでしたら、レコードを対象外 のステップを追加します。
> ※確認フィールドには業務上いろいろな文字を使用しているため「確認」という文字の存在の有無でその後の動きを変えていきたいのです。
ということですが、その文字があるかどうかの処理は面倒です。例えば、"確認" ; "未確認" という文字が設定されるとすると、確認 で両方とも反応してしまいますので、間違いのもとです。確認フィールドを
Case ( PatternCount ( テーブル::確認フィールド ; "確認" ; "未確認" )
という計算フィールにしましょう。それら1項目ごとに有・無で1フィールド作っていかれる方が、将来的には面倒がなくなります。
Last edited by Shin (2022-09-16 10:14:20)
Offline
論理値を逆にしたいときは、notを頭につければいいんですが、この場合はもっと素直に
If[PatternCount ( テーブル::確認フィールド ; "確認" )=0]
でしょうね。
もともとが本来なら
If[PatternCount ( テーブル::確認フィールド ; "確認" )>0]
と書くところです。論理値としては1以上なら何でも真とみなされるので「>0」を省略しているわけです。
他の条件で何か別の処理するんでなければ、「確認」を除外で検索した方がいいのかも??
>※確認フィールドには業務上いろいろな文字を使用しているため「確認」という文字の存在の有無で
どっちにしても、「未確認」という語があっても「確認」だとみなされてしまいますが...
If[PatternCount ( テーブル::確認フィールド ; "確認" )]
Else
こんな方法も、、
Offline
皆さまありがとうございます。
himadanee様,SHIM様
ご指摘通り、このままではよくはないですね、いままでのやり方があり、急には変えれませんでした。今後一つ一つ会社に理解を得て改善していくところです(;^_^A
himadanee様のご教授の通りで
If[PatternCount ( テーブル::確認フィールド ; "確認" )=0]で思想のスクリプトが組めました。ありがとうございました。
Offline
Pages: 1
[ Generated in 0.007 seconds, 10 queries executed - Memory usage: 512.95 KiB (Peak: 517.49 KiB) ]