é vi isso tambem. minha sugestão de correção é a seguinte:
1) em TRespMonit = class adiconar o método:
function IsEmpty: Boolean;
function TRespMonit.IsEmpty: Boolean;
begin
Result := (Trim(FCPFResp)+Trim(FNMResp)+Trim(FNRCRM)+Trim(FUFCRM)) = EmptyStr;
end;
2 em TevtMonit.GerarRespMonit; fazer assim:
procedure TevtMonit.GerarRespMonit;
begin
if not self.exMedOcup.RespMonit.IsEmpty then
begin
Gerador.wGrupo('respMonit');
if Trim(self.exMedOcup.RespMonit.cpfResp) <> '' then
Gerador.wCampo(tcStr, '', 'cpfResp', 11, 11, 0, self.exMedOcup.RespMonit.cpfResp);
Gerador.wCampo(tcStr, '', 'nmResp', 1, 70, 1, self.exMedOcup.RespMonit.nmResp);
Gerador.wCampo(tcStr, '', 'nrCRM', 1, 8, 1, self.exMedOcup.RespMonit.nrCRM);
Gerador.wCampo(tcStr, '', 'ufCRM', 2, 2, 1, self.exMedOcup.RespMonit.ufCRM);
Gerador.wGrupo('/respMonit');
end;
end;