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

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

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

You are not logged in.

Announcement

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


#1 2018-04-28 14:13:01

スイスポ
Member

桁数を合わせたい

FM7 WIN10 の環境です

フィールド
単価(数字)
数量(数字)
小計(計算:単価×数量)

上記フィールドを繰り返し(20)で作成しました。
計算値によって小計の桁数がまちまちになってしまいます。

印刷用紙に1桁ごとの罫線が引かれており、この罫線通りに印刷しようと思ったら、フォントサイズで調整するしか、自分は方法がわかりませんでした。

Middle ( テキスト ; 先頭文字位置 ; 文字数 )

の関数も繰り返しを使用できるので、この関数を使用したかったのですが、桁数が統一されていないために思ったようにできませんでした。

なので、小計をテキスト扱いにして桁数を揃え、上記関数を使用することは出来ないのでしょうか?

Offline

#2 2018-04-28 23:06:34

Hiro
Member

Re: 桁数を合わせたい

任意桁数の数値を、
繰り返し[20回]計算フィールドへ右寄せで桁分解・代入する、
計算式

Let(
[
   #20chr=substitute(10^20-1; [9; Char(8203)]);
   #20chr=Right(#20chr & 目的数値フィールド[1]; 20)
];
   GetAsNumber(Middle(#20chr; Get(計算式繰り返し位置番号); 1))
)

Last edited by Hiro (2018-04-29 03:45:48)

Offline

#3 2018-04-29 10:44:25

Shin
Member

Re: 桁数を合わせたい

プリプリントの枠に合わせるためには、フォントそのものを変えたり、その大きさを微調整することになります。全角表示にしておいた方が合わせやすいこともあります。また、文字間もほんの少しですが、スタイルの設定で広くしたり狭くできるので、お試しを。

元のフィールドが繰り返しになっているので、それをさらに繰り返しは無理でしょう。そこをそれぞれ1フィールドに分解する必要があります。
それをまとめて印刷するためには、別テーブルを作り、リレーションさせておく構造に変えた方がいいでしょうね。

その上で、
Let (
[
    L = 20 ; //最大桁数
    n = Div ( 小計[1] ; 10 ^ ( L - Get ( 計算式繰り返し位置番号 ) )
] ;
    Case ( n ; Mod ( n ; 10 ) )
)
という計算式の繰り返しフィールドにしておくといいです。

Last edited by Shin (2018-04-29 12:01:30)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 547.6 KiB (Peak: 579.51 KiB) ]