みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Shinさん
ありがとうございます。望み通りの結果になりました。
ある程度まで同様に書き上げたのですが「"Case(」を使うことが気が付かずでした。
教えていただいたことが自身の能力ではいまいちFM18以前環境で再現が難しいかったので、以下のように考えてみてできないのか?というとこにたどり着きました
「2−30−400」「2丁目30番400」をkanjiNumeralで「二−三〇−四〇〇」「二丁目三〇番四〇〇」にしてから、二桁漢数字だけを選ぶことができれば、あとはSubstituteで[ "一〇" ; "十" ];[ "一一" ; "十一" ]・・・・[ "二〇" ; "二十" ];[ "二一" ; "二十一" ]・・・[ "九九" ; "九十九" ]で可能ではないか?
そのような考えのもと、現状二桁漢数字だけを選ぶという方法で現状足止めされています。
漢数字なので十の位「,一,二,三,四,五,六,七,八,九」と一の位「〇,一,二,三,四,五,六,七,八,九」の組み合わせで、漢数字が3連続でないものという条件で確実に二桁漢数字を掴めそうなのですが、これがなかなかどうすれば良いのかわかりませんのでご教授頂きたいです。
よろしくお願いいたします
チポさん
ありがとうございます
Shinさん
お答えありがとうございます。なかなかレベルが高くて・・・
Evaluate() 使った再帰式って未経験ですので少しずつ確認しながらできるのかチャレンジしてみます
チポさん
はがき用の印字データとして使用したいのでNumToJTextで「四百」ではダメなのですよ。
単純に二桁の数字だけを「十」「十五」「三十」「六十五」って変換が理想なのですが
FileMakerpro12 Mac環境です。
住所の丁目、番地等の漢数字変換について教えていただきたいことがあります。
例えば「2−30−400」or「2丁目30番400」の場合「二−三十−四〇〇」or「二丁目三十番四〇〇」と言う風に漢数字変換したく、
kanjiNumeralを使用すれば二桁数字が「三十」ではなく「三〇」になってしまいます。
どのようにすれば望むような漢数字変換できるのでしょうか?
よろしくお願いします。
トップページの切り替えだけですよね。
それであればファイルオプションからスクリプトトリガでOnFirstWindowOpenに以下のスクリプト指定でOKなのでは?
If [ Get ( アカウント名 ) = "管理者"
レイアウト切り替え [ 「TOP (管理者用) 」]
Else
レイアウト切り替え [ 「TOP (スタッフ用)」 ]
End If論理関数ifを使い、Get ( アカウント名 )="管理者"で管理者モードの設定をし、それ以外はスタッフモードと言う考え方でスクリプトを作成すればできると思います。
Hiroさんのダウンロードデータで確認してるので人為的ミスの可能性は低いのかと思います。
「自動的にURLエンコードする』オプションをON/OFFでは変化なく、手動検索テストではOS10.6環境下ではブラウザによって差異がありますね。
OS10.10では問題なく表示はされます。
なので微妙に謎ではあるのですがOSの関係があるのではないかと見てます。
とりあえずは教えていただきました内容で使用はできる感じなので、一応は解決ではありますが・・・
WEBビューアで以下を表示してみては。
http://mojikiban.ipa.go.jp/search/result?UCS=0x8fbb
直接設定してみたのですが、ちょっと古いOSではダメでしたね。
Hiroさん、サンプルどうもありがとうございます。
FileMakerpro12 Mac環境で確認したところ、どうやらOSのバージョンが違うと表示できたりできなかったりするようです。
WEBビューアの表示ってOS環境に依存してるのでしょうかね。
●ループ計算式だけで、目的のWebビューアへのサーチURLを一発生成するチョット楽ちんな方法、
「"辻"」→「http://mojikiban.ipa.go.jp/search/result?UCS=0x8fbb」※検索対象の標準体文字「"辻"」は「文字フィールド」に格納してあるとして、
"http://mojikiban.ipa.go.jp/search/result?UCS=" & "0x" & Let([ $fnc= "Case($div=0; $hex; Let([ $mod=Mod($div;16); $div=Div($div;16); $hex=Substitute($mod ;[10;""a""] ;[11;""b""] ;[12;""c""] ;[13;""d""] ;[14;""e""] ;[15;""f""]) & $hex ]; Evaluate($fnc)) )" ]; Let([$div=Code(文字フィールド);$hex=""]; Evaluate($fnc)) )
この計算式でWebビューアには表示はされませんでした。
WEBブラウザでは表示できたのでFMのバージョンとか仕様の問題なのかな?
FileMakerのスクリプトだけで16進数を取得できる感じです。たぶん。
変数を設定 [$Hex; 値:Substitute ( $remainder ; Substitute ( $remainder ; [10; "A"] ; [11; "B"] ; [12; "C"] ; [13; "D"] ; [14; "E"] ; [15; "F"] ) & $Hex]
この関数式成立しない模様です
qb_dpさん、Hiroさんありがとうございます。
自身の能力をはるかに超えるようなお答えです。
実際できるか、試してみます
Hiroさん、ありがとうございます。
やはりそうでしたか。自身でもいろいろ試してはみたのですが、「MJ文字図形名」で引っかかっていたとこもありました。
うまく文字情報基盤データベースを利用できれば、異体字等の確認ができるのではないかと考えておりました。
FileMakerpro12 Macです。
文字フィールドに入力された値をWEBビューアを使い、文字情報基盤データベース(http://mojikiban.ipa.go.jp/search/home)で文字フィールドに入力された値を検索したいと考えてます。
具体的には「? 」を文字フィールドに入力するとその文字を文字情報基盤データベースで検索。
その結果は、検索結果一覧としてhttp://mojikiban.ipa.go.jp/search/result?UCS=0x20BB7で表示されます。
可能であるならその文字の詳細情報があるhttp://mojikiban.ipa.go.jp/search/detail/MJ032129を表示できるとありがたいです。
このようなことはWEBビューアで可能なのでしょうか?
どなたかご存知の方がいらっしゃいましたらご指南頂ければと思います。よろしくお願いします
Hiroさんありがとうございます。
サンプルデータとても理解しやすくて助かります。
チポさん、Hiroさんありがとうございます。
頂戴しました内容を参考に自分なりに考え一つの答えだしました
名前テーブルに該当文字フィールドを作成し、以下の計算式を設定
Let([
#対象文字 = ExecuteSQL("SELECT \"文字\" FROM \"文字\""; ""; "")
];
Filter(名前; #対象文字)
)
これで文字フィールドと該当文字フィールドのリレーションで、結果フィールドに対応フィールドの値を入れることができました。
ただ該当文字が2文字になると機能しないのですが・・・
WHERE ""文字フィールド"" IN ('邉','﨑')
Hiroさんありがとうございます。
この場合だとINの後の( )に文字を一字ずつ入力が必要になるってことですかね?
FileMakerpro12 Macです。
名前テーブルの名前フィールドにある値に、文字テーブルの文字フィールドにある値があれば、名前テーブルの結果フィールドに文字テーブルの対応フィールドの値を入れたいです。
以下の例では、結果フィールドに「異体字」の値を入れたいです。
■名前テーブル
名前フィールド 結果フィールド
渡邉
■文字テーブル
文字フィールド 対応フィールド
邉 異体字
辺 別字形
名前フィールドの部分一致でのリレーションと言う感じになるのか?と思いましたが、ここから検討がつかなくなりました。
いくつかの方法があるのかもしれないのですが、可能であれば新たなフィールドを増やさずにできるとありがたいです。
どなたかご存知の方がいらっしゃいましたらご指南頂ければと思います。よろしくお願いします
CD等を定期的に回収と言うことはランタイム作成したものを含めて回収?
ランタイム作成したものでデータのエクスポートを行い必要な内容だけ書き出す。
そしてそれをUSBメモリーやメモリーカード、メール添付送信で、インポート→集計・編集できるのではないでしょうか?
「X」
のリレーションですから、照合はどのフィールドでもかまいませんよ。
チポさんありがとうございます。
勉強になりました
あなたが#1で説明した呼称に基づいて、式は書いてあります。
こちらが勝手に作っているものではありません。
先ずは、動作試行してみて下さい。
ありがとうございます。思うような感じで表示はできました。
ただどうしてこれで行けるのかよくわかってはおりませんが・・・
この方法ならリレーションなしでいけるということですかね
Hiroさん以外の方からお教えいただいた方法も可能なのか気にはなっております
余分な事前の設定を一切ナシで、条件付き書式の条件式 単独で済む方法です。
条件式は、
Let([
#arg=ExecuteSQL("SELECT \"文字\" FROM \"別テーブル\""; ""; "")
];
Length(Filter(Self; #arg))
)
なかなかレベルが高く、知識がおいつかないのですが・・・
"SELECT \"文字\" FROM \"別テーブル\"
の部分、文字と言うのは「対象文字(フィールド)」、別テーブルと言うのは「対象文字(テーブル)」ってことになるのですかね?
リレーションは
名簿テーブルと対象文字テーブルとで結ぶんですよ。
名簿テーブルの名前フィールドと対象文字テーブルの対象文字フィールドってことですか?
Shinさんありがとうございます。
別テーブル(対象文字テーブル)の「対象文字」フィールドをデカルト積でリレーションし、「対象文字一覧」フィールドにてList() で対象文字の一覧を取得することはできました。
名簿テーブル「名前」フィールドの条件付き書式の計算式に、Filter ( 名簿::名前 ; 対象文字::対象文字一覧 )を設定したのですがうまくいきませんでした。
この設定で間違っていますでしょうか?
[ Generated in 0.011 seconds, 7 queries executed - Memory usage: 705.22 KiB (Peak: 743.13 KiB) ]