みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
リレーション、ExecuteSQLにおける空白桁数揃えについて、いくつかアドバイスをお願いします。
*説明を簡略化するために、意味あるテーブル定義ではないですが、ご容赦下さい。
▼Aテーブル構成は以下 (自己リレと日付リレーション)
・日付(タイプ:日付)
・内容(タイプ:テキスト)
・名前(タイプ:テキスト)
・名前_桁数(タイプ:計算) = Length(名前)
・名前_桁数MAX (タイプ:計算) = MAX (自己リレ::名前_桁数)
・フォロー全体(タイプ:計算) = Left ( 名前 & " (全角空白)";名前_桁数MAX+1 ) & 内容
・LIST_日付毎 (タイプ:計算) = List (自己リレ::フォロー全体)
・SQL_日付毎 (タイプ:計算) = ExecuteSQL ( "SELECT \"フォロー_全体\" FROM A WHERE \"日付\" = ?";"";"";日付 )
▼例:以下それぞれレコードに値が入っているとします。
・1レコード目 日付:2015/07/01 名前:赤木 内容:新規案件
・2レコード目 日付:2015/07/01 名前:佐々木 内容:アポ
-------
▼質問1
LIST_日付毎の結果:
赤木 新規案件
佐々木 アポ
上記のように、名前の桁数が同じでない場合、縦列が揃わず、ずれてしまいます。
これを空白で縦列を揃える手法がお聞きしたいです。実際にはカレンダーで利用しようと考えています。
▼色々と試行錯誤してみたのですが、以下の方法で何とかできました。
・フォロー全体(タイプ:計算) =
元:Left ( 名前 & " (全角空白)";名前_桁数MAX+1 ) & 内容
変:Left ( 名前 & TextColor ( "_________(全角アンダー)" ; RGB ( 255;255;255 ) );名前_桁数MAX+1) & 内容
上記に変更すると、
・LIST_日付毎 に関しては何とか出来ました。
・SQL_日付毎 の場合、この方法だと全角アンダー部分が白色化せずに、____が残ってしまいます。
赤木__新規案件
佐々木_アポ
*そもそも、もっと良い方法、もっと簡略化できると思うのですが悩んでおります。
FM12始人様、ありがとうございます。実際してみたら分かるのですが、全角空白だとなぜかズレます。
苗字文字数は桁数計算で出来てるので、それを空白にあてがってるのですが
なぜか全角空白だとずれてしまい、全角アンダーライン他だと綺麗に縦列が並んでくれます。
ん~という感じです。
字数が同じで長さが揃わないのは、フォントのせいでSQLとは無関係では。
Offline
フォントを変えたくなければ、スペースでなくChar(9)を1つ入れて、表示するフィールドでタブ位置を設定すればそこに揃います。
もう一つ、
ブランクがダメなら、その代わりに
TextColor関数
で背景色にした、適当な文字を入力。
Offline
表示上揃えたいということなら空白で位置調整しなくても
計算繰り返しフィールドに展開すると簡単です。
皆様、ご意見ありがとうございます。返信遅くなり申し訳ございません。
フォントを他利用しましたが、結果が変わらなかったので、何かいいフォントがあるのでしょうか。
Charについては利用したことなかったので、触ってみます。
TextColor関数でした場合、SQLで取得した値では無効化されてしまいました。
計算繰り返しフィールドに展開すると簡単とのことなので、表示上ずれてるのが気持ち悪いと営業から言われたので、
なんとかしたいなという事でした。
皆様ありがとうございました。
SQLではデータしか扱いませんから、データ内の書式は無視されます。
連結しないで取得してから加工します。
ExecuteSQL ( "SELECT \"名前,\","内容\" FROM A WHERE \"日付\" = ?";Char(9);"";日付 )
calcerさん、おっしゃる形にすれば、よほど長い苗字でない限り問題ない範囲でできました。
助かりました!
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 517.46 KiB (Peak: 522 KiB) ]