bom dia, na condição do trabalhador com vários vínculos no mesmo empregador, com cnpj único, a tag IdeEstabLot vai uma única vez e subsequentemente, informar somente as remunerações. Ao não informar tpInsc, nrInsc, codLotacao e qtdDiasAv, a tag é gerada sem conteúdo, gerando erro. A forma que encontrei foi testar se o nrInsc for vazio, não criar os dados relacionados a tag (desculpem, não tenho domínio sobre componentes). seque o conteúdo alterado.
procedure TEvtRemun.GerarIdeEstabLot(objIdeEstabLot: TIdeEstabLotCollectionS1200; const nomeRemunPer: string = 'remunPerApur');
var
i: integer;
begin
Gerador.wGrupo('ideEstabLot');
for i := 0 to objIdeEstabLot.Count - 1 do
begin
if (objIdeEstabLot.Items[i].nrInsc <> EmptyStr) then
begin
Gerador.wCampo(tcInt, '', 'tpInsc', 1, 1, 1, eSTpInscricaoToStr(objIdeEstabLot.Items[i].tpInsc));
Gerador.wCampo(tcStr, '', 'nrInsc', 1, 15, 1, objIdeEstabLot.Items[i].nrInsc);
Gerador.wCampo(tcStr, '', 'codLotacao', 1, 30, 1, objIdeEstabLot.Items[i].codLotacao);
Gerador.wCampo(tcInt, '', 'qtdDiasAv', 1, 2, 0, objIdeEstabLot.Items[i].qtdDiasAv);
GerarRemunPer(objIdeEstabLot.Items[i].remunPerApur, nomeRemunPer);
end
else
GerarRemunPer(objIdeEstabLot.Items[i].remunPerApur, nomeRemunPer);
end;
Gerador.wGrupo('/ideEstabLot');
if objIdeEstabLot.Count > 500 then
Gerador.wAlerta('', 'ideEstabLot', 'Lista de Estabelecimentos/Locação', ERR_MSG_MAIOR_MAXIMO + '500');
end;
pcesS1200.pas