初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2017-04-30 17:26:10

質問者
Member

フォントについて

同一フィールドでも文字を選択すれば
選択範囲のフォントを変更できるようです

このフィールドの
半角英数はこのフォント
日本語はこのフォント
という設定はできませんか?

入力するとそれぞれ指定したフォントで入力されるという具合です

FMP15
WIN10

Offline

#2 2017-05-01 09:59:09

チポ
Member

Re: フォントについて

日本語のフォントをデフォルトにしておき、
半角英数のフォントを変更する式。

  Let ( [
       $t = フィールド ;
       $c = 0 ;
       $l = Length ( $t ) ;
       $ff = "" ;
       $ss = "Case ( $c = $l ; $ff ; Let ( [ $c = $c + 1 ; $m = Middle ( $t ; $c ; 1 ) ;
                                                            $ff = $ff & Case ( $m ≤ \"z\" ; TextFont ( $m ; \"フォント名\" ) ; $m ) ] ;
                    Evaluate ( $ss ) ) )"
        ] ;
        Evaluate ( $ss ) )

半角の判定を、
小文字の「z」以下としました。
実用上これでいいと思います。

Offline

#3 2017-05-01 16:16:53

質問者
Member

Re: フォントについて

これを条件式にいれておけば
そのフィールドに英数字が入った時だけ自動でフォントがかわるということでしょうか?

Offline

#4 2017-05-01 16:34:16

チポ
Member

Re: フォントについて

とりあえず別の計算フィールドとして、
試してみたらいかがでしょう。


元のフィールドにしたいのでしたら、
入力値の自動化・既存値置き換え
とします。

Offline

#5 2017-05-01 17:14:23

質問者
Member

Re: フォントについて

フォント名の綴りを間違っていました
きちんと動作しました

ところで ! や ? などを除外するにはどのようになりますか?

Offline

#6 2017-05-01 17:33:34

チポ
Member

Re: フォントについて

半角英数のみ
にしたいのなら、
  $m ≤ \"z\"
この部分をその条件に合わせて変更します。

Codeで書けば、
  Code( 0 ) = 48
  Code( 9 ) = 57

  Code( A ) = 65
  Code( Z ) = 90

  Code( a ) = 97
  Code( z ) = 122
で、その間は連続しています。

Offline

#7 2017-05-01 17:47:46

チポ
Member

Re: フォントについて

ああ、間違えてる
  Code( 0 ) = 48
これは
  Code( "0" ) = 48
こう書かなければダメです。

他も変更してください -_-

Offline

#8 2017-05-01 20:23:21

質問者
Member

Re: フォントについて

ありがとうございます
自力ではこんな複雑な式とてもかけそうにありません

ちなみに
$m = Middle ( $t ; $c ; 1 ) ;
ですが先頭文字位置 を
$c = 0 と変数にしているのはなぜですか?

$m = Middle ( $t ; 0 ; 1 ) ;
では何が違うのですか?

Offline

#9 2017-05-02 08:58:32

チポ
Member

Re: フォントについて

判定を繰返す式
Case ( $c = $l ; $ff ; Let ( [ $c = $c + 1 ;
                                        $m = Middle ( $t ; $c ; 1 ) ;
                                        $ff = $ff & Case ( $m ≤ \"z\" ; TextFont ( $m ; \"フォント名\" ) ; $m ) ] ;
                                        Evaluate ( $ss ) ) )
これをよく見てください。

最初の条件式
  $c = $l
$c(カウンタ)とテキストの長さを見ています。
カウンタの初期値は0ですから、
Let関数に飛びますね。

そこで、
  $c = $c + 1
カウンタを +1 しています。

これによって、
次のMiddle関数でテキストの左から一文字ずつ順にとり、判定していけるのです。

Offline

#10 2017-05-02 17:55:40

質問者
Member

Re: フォントについて

大変ためになりました

ところでこのような式をかくとき
頭に式すべてが浮かぶのですか(例えば用途ごとの変数の数かど)
文字を書くようしてからさくさくとかいていけるのでしょうか?

どうやったらこのような複雑な式を書けるようになりましたか?

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 517.4 KiB (Peak: 521.94 KiB) ]