begin
Result := itStockStringList;
end;
实现一个自定义的格式化器的第一步是确定哪种类型的内置察看器将被用来察看格式化后的数据,这里使用的是字符串列表察看器。察看器类型将被FormatData方法所使用。
procedure TCSEmployeeSummaryFormatter.FormatData( var Data );
var
EmpRec: TCSEmployee;
begin
EmpRec := TCSEmployee( Data );
AddLine( EmpRec.FirstName + '''' '''' + EmpRec.LastName );
AddLine( EmpRec.Address );
AddLine( EmpRec.City + '''', '''' + EmpRec.State + '''' '''' + EmpRec.ZipCode );
AddLine( '''''''' );
AddLine( ''''Phone: '''' + EmpRec.PhoneNumber );
AddLine( ''''Hire Date: '''' + DateToStr( EmpRec.HireDate ) );
AddLine( ''''Salary: '''' + Format( ''''%m'''', [ EmpRec.Salary ] ) );
AddLine( '''''''' );
AddLine( ''''Vacation Days: '''' + IntToStr( EmpRec.VacationDays ) );
AddLine( ''''Sick Days: '''' + IntToStr( EmpRec.SickDays ) );
if EmpRec.Manager then
AddLine( ''''Manager: Yes'''' )
else
AddLine( ''''Manager: No'''' );
end;
FormatData 方法是核心部分,注意传递给FormatData方法的Data参数是一个无类型的可变参数。这就意味着这个参数可以是任何数据类型的,通过格式注册过程,我们可以确保强制类型映射为自定义的数据记录,而不会发生转换错误。
转换数据类型后,我们就可以对数据进行格式化了,这里使用TCSFormatter 基类的 AddLine方法在字符串间添加分割线来进行格式化。
function TCSEmployeeSummaryFormatter.TypeName: string;
begin
Result := ''''TCSEmployee'''';
end;
TypeName方法的重载是可任选的,但通常我们可以用它来返回显示在消息列表中的字符串。
{=========================================}
{== TCSEmployeeDetailsFormatter Methods ==}
{=========================================}
function TCSEmployeeDetailsFormatter.InspectorType: TCSInspectorType;
begin
Result := itStockGrid;
end;
对于employeedetails格式器来说,命名网格察看器将被用来察看数据信息:
procedure TCSEmployeeDetailsFormatter.FormatData( var Data );
var
EmpRec: TCSEmployee;
begin
EmpRec := TCSEmployee( Data );
AddNameValuePair( ''''LastName'''', EmpRec.LastName );
AddNameValuePair( ''''FirstName'''', EmpRec.FirstName );
AddNameValuePair( ''''Address'''', EmpRec.Address );
AddNameValuePair( ''''City'''', EmpRec.City );
AddNameValuePair( ''''State'''', EmpRec.State );
AddNameValuePair( ''''ZipCode'''', EmpRec.ZipCode );
AddNameValuePair( ''''PhoneNumber'''', EmpRec.PhoneNumber );
AddNameValuePair( ''''HireDate'''', EmpRec.HireDate );
AddNameValuePair( ''''Salary'''', Format( ''''%m'''', [ EmpRec.Salary ] ) );
AddNameValuePair( ''''VacationDays'''', EmpRec.VacationDays );
AddNameValuePair( ''''SickDays'''', EmpRec.SickDays );
AddNameValuePair( ''''Manager'''', EmpRec.Manager );
&n 上一页 [1] [2] [3] [4] 下一页 [ORACLE]Oracle PL/SQL Profiler应用指南
|