procedure TOCXPrint4ITHC.Init(const printContent: WideString);
var
  buffer : Pchar;
  winDir : string;
begin
  //判断报表类型
  docType := GetPrintType(printContent);  //取得windows路径,报表模板存在windows目录中
  getMem(Buffer,256);
  getwindowsdirectory(Buffer,256);
  winDir := strpas(Buffer);
  freemem(Buffer);  //载入报表模板
  frReport.LoadFromFile(windir + '\' + docType + '.frf');
  if docType = 'Vaccination_Doc' then
    SetDoc4Vaccination_Doc(printContent);
  //默认可以打印背景图
  printBK := true;
  //预览报表
  frReport.ShowReport;
end;procedure TOCXPrint4ITHC.SetDoc4Vaccination_DOC(printContent : WideString);
var
  VaccinationDoc : TVaccinationDoc;
  json : TJSONObject;
begin
    json := TJSONObject.create(printContent);      VaccinationDoc := TVaccinationDoc.Create;
      VaccinationDoc.certno := json.getString('certno');
      doc := VaccinationDoc;
      frReport.OnGetValue := GetValue4Vaccination_DOC;
end;procedure TOCXPrint4ITHC.GetValue4Vaccination_DOC(const ParName: String;var ParValue: Variant);
var
  VaccinationDoc : TVaccinationDoc;
begin
  VaccinationDoc := TVaccinationDoc(doc);  ParValue := '';  if AnsiCompareText(ParName,'certno')=0 then
    ParValue:=VaccinationDoc.certno;
end;
这里 certno 已经定义值了呀.为什么还报 符号没定义"certno" 的错误?