1000のデータを10.00様に表示をしたいのです。TQueryを利用して行いたいのですが項目が不定の為、TTableのDisplayFormatの様な指定方法がありますか。 XP、D4です。
同じプログラムで表示項目(コントロールデータ)を変えて表示しています。
フォームにTComboBox1つと複数のTDBEditを置き関連を付けて、TQueryで処理しています。
for III:= 1 to 10 do begin
ItemNo := Get_ItemNo('DBEdit'+IntToStr(III)); // 画面ItemデータNo 読込み
TDBEdit(Components[ItemNo]).Clear;
Ed0.Items.AddObject(IntToStr(III),TDBEdit(Components[ItemNo]));
end;
・
・
Query1.SQL.Add('select');
Query1.SQL.Add(' S.A010');
Query1.SQL.Add(',S.A020');
for III:= 0 to 9 do
if KeyNo[III] <> 0 then begin //コントロールが存在(データフィールド名=No)
Sspa := 'S.A'+(IntToStr(KeyNo[III]));
Query1.SQL.Add(','+Sspa);
.
.
end;
Query1.SQL.Add(' from ');
Query1.SQL.Add('Data S'); //TbS.TableNameはコントロールデータによって変わる
Query1.Open;
Query1.First;
うまく説明できないのですが表示データによって1000が10.00や100.0のようにコントロールしたいのですが、どなたか妙案がありませんか。
1000が10.00や100.0が良くわかりませんが
動的に発行したSQLで取得した項目に、TTableのDisplayFormatの様に
することは出来ます。
例ですが openした後で
{FieldByName で指定した項目を TFloatField で型キャスト}
TFloatField(Query1.FieldByName('KINGAKU')).DisplayFormat := '#,##0';
意味が違っていたら、読み捨ててください。
AY さん、ありがとうございました。
返事遅くなってすみません。
ご指定の方法で解決しました。
TNumericField(Query1.FieldByName('A'+(IntToStr(KeyNo[III])))).DisplayFormat := '#0"."##';
ヘンな質問ですみませんでした。
うれしくて、ほっとしています。
ツイート | ![]() |