Olá, gostaria de informar que o SPED na última versão estava criticando o registro 0110, informando que o registro deveria conter apenas 4 campos, e continha 5, analisando o código e o layout, percebi que no layout o último campo estava em azul e com um condicional (COD_INC_TRIB = 2), no meu entender, se o COD_INC_TRIB for igual a 1 ou 3, então o último campo não deveria ser enviado, minha alteração do método "WriteRegistro0110" da classe "TBloco_0" unit "ACBrEPCBloco_0_Class" ficou assim:
procedure TBloco_0.WriteRegistro0110(Reg0001: TRegistro0001) ;
var
strCOD_INC_TRIB: string;
strIND_APRO_CRED: string;
strCOD_TIPO_CONT: string;
strIND_REG_CUM: string;
begin
if Assigned(Reg0001.Registro0110) then
begin
with Reg0001.Registro0110 do
begin
case COD_INC_TRIB of
codEscrOpIncNaoCumulativo: strCOD_INC_TRIB := '1';
codEscrOpIncCumulativo: strCOD_INC_TRIB := '2';
codEscrOpIncAmbos: strCOD_INC_TRIB := '3';
end;
case IND_APRO_CRED of
indMetodoApropriacaoDireta: strIND_APRO_CRED := '1';
indMetodoDeRateioProporcional: strIND_APRO_CRED := '2';
end;
case COD_TIPO_CONT of
codIndTipoConExclAliqBasica: strCOD_TIPO_CONT := '1';
codIndTipoAliqEspecificas: strCOD_TIPO_CONT := '2';
end;
case IND_REG_CUM of
codRegimeCaixa : strIND_REG_CUM := '1';
codRegimeCompetEscritConsolidada : strIND_REG_CUM := '2';
codRegimeCompetEscritDetalhada : strIND_REG_CUM := '9';
end;
// Manoel - 09/01/2012 - Estava dando erro no SPED, pois o mesmo falava que tinha que haver 4 campos
// olhando no layout, entendeu-se que só se deve mandar o campo 5 se o mesmo existir, ou seja, se ele
// estiver em branco (campo strIND_REG_CUM) não é enviado
if COD_INC_TRIB = codEscrOpIncCumulativo then begin
Add( LFill('0110') +
LFill( strCOD_INC_TRIB ) +
LFill( strIND_APRO_CRED ) +
LFill( strCOD_TIPO_CONT ) +
lFill( strIND_REG_CUM ) ) ;
end else begin
Add( LFill('0110') +
LFill( strCOD_INC_TRIB ) +
LFill( strIND_APRO_CRED ) +
LFill( strCOD_TIPO_CONT ) ) ;
end;
///
if IND_APRO_CRED = indMetodoDeRateioProporcional then
WriteRegistro0111(Reg0001.Registro0110);
end;
Registro0990.QTD_LIN_0 := Registro0990.QTD_LIN_0 + 1;
/// Variavél para armazenar a quantidade de registro do tipo.
FRegistro0110Count := FRegistro0110Count + 1;
end;
end;
Posso estar enganado, se estiver gostaria que me informassem como proceder com este registro, e o porquê da reclamação do gerador...