いつも拝見させていただいています。
わからないことがあるので質問させてください。
ClientDataSetのOnGetTextを使用し、月日をmm/ddと表示させていのですが
例えば、3/31の場合、グリッド上に33/1と表示されてしまいます。
12/12だと、ちゃんと12/12と表示されるのですが・・・
ソースは↓
procedure Tform1.ClientDataSet1AAAAAAGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
var
CCC: String;
begin
inherited;
if Sender.AsInteger <> 0 then
begin
CCC := IntToStr(Sender.AsInteger);
Text := FormatMaskText('00/00;0', CCC);
end;
end;
年月日をyyyy/mm/ddと表示するときに
このソースとほど同じようにして出来ていたので
「できるかな?」と思ったのですが。。
(yyyy/mm/ddの場合はFormatMaskText('0000/00/00;0', CCC)としていました)
何かわかればよろしくお願いいたします。
そのフィールドはTDateTime型ではなくてIntegerで格納されているの?
3/31は整数型で331として格納されてるわけですよね・・・
それならFormatMaskText('00/00;0', CCC)で '33/1'になるのは当たり前です。
整数の331を'3/31'としたければ、例えば・・・
Text := Format('%2d/%2d', [Sender.AsInteger div 100,Sender.AsInteger mod 100]);
date様
お返事ありがとうございました!
教えてもらった通りソースを書いてみたらできました☆
ありがとうございました!!
ツイート | ![]() |