字段类型为日期,表现为字符串,然后在字段的这两个事件上写这样的代码(录入时:2008年11月01日;保存的是:2008-01-11):
procedure TB.BizFieldDef_aSetAsString(Field: TDataField; const Value: string);
var
lYear,lMonth,lDay : String;
lStr : String;
begin
//
try
lStr := Value;
lYear := Copy(lStr,1,Pos('年',lStr) - 1);
lStr := Copy(lStr,Pos('年',lStr) + 1,Length(lStr));
lMonth := Copy(lStr,1,Pos('月',lStr) - 1);
lStr := Copy(lStr,Pos('月',lStr) + 1,Length(lStr));
lDay := Copy(lStr,1,Pos('日',lStr) - 1);
Field.AsString := lYear + '-' + lDay + '-' + lMonth;
except
Dialogs.ShowMessage('输入日期不合法!');
Field.AsVariant := nil;
end;
end;
procedure TB.BizFieldDef_aGetAsString(Field: TDataField; var Value: string);
var
lYear,lMonth,lDay : String;
lStr : String;
begin
//
lStr := Field.AsString;
lYear := Copy(lStr,1,Pos('-',lStr) - 1);
lStr := Copy(lStr,Pos('-',lStr) + 1,Length(lStr));
lDay := Copy(lStr,1,Pos('-',lStr) - 1);
lStr := Copy(lStr,Pos('-',lStr) + 1,Length(lStr));
lMonth := lStr;
Value := lYear + '年' + lMonth + '月' + lDay + '日';
end; |