diff --git a/Source/Modulos/Banca electronica/Utiles/CVBNorma32CSB.pas b/Source/Modulos/Banca electronica/Utiles/CVBNorma32CSB.pas new file mode 100644 index 0000000..ea02b2c --- /dev/null +++ b/Source/Modulos/Banca electronica/Utiles/CVBNorma32CSB.pas @@ -0,0 +1,716 @@ +unit CVBNorma32CSB; + +interface + +uses + Messages, SysUtils, Classes, Dialogs, CVBUtils; + +type + + TProcedimiento = (prPrimero, prSegundo); + TCVBParte = (CABECERA_GENERAL, CABECERA_REMESA, + REGISTRO1, REGISTRO2, REGISTRO3, FIN_REMESA, FIN_GENERAL); + + TCVBNorma32CSB = class(TComponent) + private + pReg: array[0..152] of char; // Un digito más por el /0 + _LL_: integer; // Longitud Línea. Aquí almacenamos el valor 164 para usarlo + // en el resto del componente. + _INDICA_: string; + _CERO_, _SPCE_: char; + _MSK_PT_, _MSK_EU_: string; + + prProced: TProcedimiento; + HayError: boolean; + + FEuro: boolean; + FDepura: boolean; + + NFic: file; + + fSumaImpRecibos: double; // Suma de los recibos dentro de una remesa + fSumaImpRemesas: double; // Suma de las remesas dentro del fichero + + iNumRecibos: integer; // Nº de recibos dentro de una remesa + iNumRemesas: integer; // Nº de remesas dentro del fichero + + iTotalLineas: integer; // Nº de líneas en el fichero + iTotalRecibos : integer; // Nº de recibos dentro de un fichero + + FEnCasoError: TNotifyEvent; + sReg: string; + + _19_, _58_, _32_: integer; + protected + procedure ChequearDatos(Parte: TCVBParte); overload; + procedure Error(iErr: integer); dynamic; + procedure CompRegistro1; + procedure CompRegistro2; + procedure CompRegistro3; + public + _NORMA_: integer; + NrError: integer; + CRLF: string; + FNomFic: string; // Nombre del archivo en disco + + // CABECERA FICHERO + FechaFichero: TDateTime; + EntReceptora: string; //4 + SucReceptora: string; //4 + + // CABECERA REMESA + NumRemesa: string; //4 + IdCedente: string; //15 + + AboEnt: string; //4 + AboOfi: string; //4 + AboDC: string; //2 + AboCC: string; //10 + + AdeEnt: string; //4 + AdeOfi: string; //4 + AdeDC: string; //2 + AdeCC: string; //10 + + ImpEnt: string; //4 + ImpSuc: string; //4 + ImpDC: string; //2 + ImpCC: string; //10 + + // REGISTRO REMESA + // (I) + RegNumRecibo: string; // 7 + RegCodigoINE: string; // 9 + RegPlazaLibr: string; // 20 + RegImpEfecto: double; // 9 + RegVtoEfecto: TDateTime; // 6 + // (II) + RegCodEnt: string; // 4 + RegCodOfi: string; // 4 + RegDC: string; // 2 + RegCC: string; // 10 + RegLibrador: string; // 34 + RegLibrado: string; // 34 + RegInfoAdic: string; // 30 + // (III) + RegDomicilio: string; // 34 + RegCodPostal: string; // 5 + RegPoblacion: string; // 20 + RegNIF: string; // 9 + + + + constructor Create(AOwner: TComponent); override; + procedure Abrir; + procedure Cerrar; + procedure IniCabeceraFichero; + procedure IniCabeceraRemesa; + procedure IniRegistro; + procedure CompCabeceraFichero; + procedure CompCabeceraRemesa; + procedure CompRegistro; + procedure CompFinRemesa; + published + property NomFichero: string read FNomFic write FNomFic; + property Procedimiento: TProcedimiento read prProced write prProced default prPrimero; + property Euros: boolean read FEuro write FEuro default False; + property Depura: boolean read FDepura write FDepura default False; + property EnCasoError: TNotifyEvent read FEnCasoError write FEnCasoError; + end; + +implementation + +constructor TCVBNorma32CSB.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + {Asignar la propiedades por defecto} + + _32_ := 32; + _19_ := 19; + _58_ := 58; + + _LL_ := high(pReg); + + _INDICA_ := '<--'; + _CERO_ := '0'; + _SPCE_ := ' '; + + _MSK_PT_ := '0000000000'; + _MSK_EU_ := '00000000.00'; + +end; + +//******************************************************************************* + +procedure TCVBNorma32CSB.Abrir; +begin + HayError := False; + + AssignFile(NFic, FNomFic); +{$I+} + rewrite(Nfic, _LL_); +{$I-} + if IOResult <> 0 then + error(0); + + fSumaImpRecibos := 0.0; + fSumaImpRemesas := 0.0; + + iNumRecibos := 0; + iNumRemesas := 0; + + iTotalLineas := 0; + iTotalRecibos := 0; + + IniCabeceraFichero; + IniCabeceraRemesa; + IniRegistro; + + if CRLF = '' then + CRLF := #13 + #10; +end; + +procedure TCVBNorma32CSB.IniCabeceraFichero; +begin + FechaFichero := 0; + EntReceptora := ''; + SucReceptora := ''; +end; + +procedure TCVBNorma32CSB.IniCabeceraRemesa; +begin + NumRemesa := '0001'; // <-------------------------------------------- + + AboEnt := ''; + AboOfi := ''; + AboDC := ''; + AboCC := ''; + + AdeEnt := ''; + AdeOfi := ''; + AdeDC := ''; + AdeCC := ''; + + ImpEnt := ''; + ImpSuc := ''; + ImpDC := ''; + ImpCC := ''; +end; + +procedure TCVBNorma32CSB.IniRegistro; +begin + // (I) + RegNumRecibo := ''; + RegCodigoINE := ''; + RegPlazaLibr := ''; + RegImpEfecto := 0.0; + RegVtoEfecto := 0; + // (II) + RegCodEnt := ''; + RegCodOfi := ''; + RegDC := ''; + RegCC := ''; + RegLibrador := ''; + RegLibrado := ''; + RegInfoAdic := ''; + // (III) + RegDomicilio := ''; + RegCodPostal := ''; + RegPoblacion := ''; + RegNIF := ''; +end; + +procedure TCVBNorma32CSB.CompCabeceraFichero; +begin + HayError := False; + sReg := ''; + ChequearDatos(CABECERA_GENERAL); + + // A + sReg := '02' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); //2 + + // B + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FechaFichero), 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('1', 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // C + sReg := sReg + Ajusta('', 'I', 15, _SPCE_); //15 + sReg := sReg + Ajusta('', 'I', 4, _SPCE_); //4 + sReg := sReg + Ajusta('', 'I', 4, _SPCE_); //4 + sReg := sReg + Ajusta(EntReceptora, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(SucReceptora, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // D + sReg := sReg + Ajusta('', 'I', 61, _SPCE_); //61 + + // E + sReg := sReg + Ajusta('', 'I', 24, _SPCE_); //24 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); +end; + +procedure TCVBNorma32CSB.CompCabeceraRemesa; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(CABECERA_REMESA); + Inc(iNumRemesas); + + // A + sReg := '11' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); //2 + + // B + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FechaFichero), 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta(IntToStr(iNumRemesas), 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // C + sReg := sReg + Ajusta(IdCedente, 'D', 15, _SPCE_); //15 + sReg := sReg + '1'; + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 5, _SPCE_); //5 + sReg := sReg + Ajusta('', 'I', 4, _SPCE_); //4 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // D + sReg := sReg + Ajusta(AboEnt, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(AboOfi, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(AboDC, 'I', 2, _CERO_); //2 + sReg := sReg + Ajusta(AboCC, 'I', 10, _CERO_); //10 + + sReg := sReg + Ajusta(AdeEnt, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(AdeOfi, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(AdeDC, 'I', 2, _CERO_); //2 + sReg := sReg + Ajusta(AdeCC, 'I', 10, _CERO_); //10 + + sReg := sReg + Ajusta(ImpEnt, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(ImpSuc, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(ImpDC, 'I', 2, _CERO_); //2 + sReg := sReg + Ajusta(ImpCC, 'I', 10, _CERO_); //10 + + sReg := sReg + Ajusta('', 'I', 1, _SPCE_); //1 + + // E + sReg := sReg + Ajusta('', 'I', 24, _SPCE_); //24 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); +end; + +procedure TCVBNorma32CSB.CompFinRemesa; +var + sTotImp, cIT : string; + iP : integer; +begin + HayError := False; + sReg := ''; + ChequearDatos(FIN_REMESA); + + // A + sReg := '71' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); //2 + + // B + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FechaFichero), 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta(NumRemesa, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // C + sReg := sReg + Ajusta('', 'I', 37, _SPCE_); //37 + + // D + sReg := sReg + Ajusta('', 'I', 10, _SPCE_); //10 + + sTotImp := FormatFloat(_MSK_EU_, fSumaImpRecibos); + iP := pos(',', sTotImp); + if iP < 1 then + iP := pos('.', sTotImp); + cIT := copy(sTotImp, 1, iP - 1); + sTotImp := cIT + copy(sTotImp, iP + 1, 2); + sReg := sReg + Ajusta(sTotImp, 'I', 10, _CERO_); // 10 + + sReg := sReg + Ajusta('', 'I', 10, _SPCE_); //10 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 7, _SPCE_); //7 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // E + sReg := sReg + Ajusta('', 'I', 5, _SPCE_); //5 + { Nº de registros de la remesa incluidos la cabecera y éste mismo: + Num.registros = 1 (cabecera) + (3 registros * Num.recibos) + 1 (este pie) + } + sReg := sReg + Ajusta(IntToStr(1 + (3*iNumRecibos) + 1), 'I', 7, _CERO_); //7 + sReg := sReg + Ajusta(IntToStr(iNumRecibos), 'I', 6, _CERO_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); + + // Acumular la suma de los importes de las remesas en el fichero + fSumaImpRemesas := fSumaImpRemesas + fSumaImpRecibos; + + // Poner a cero la suma de los recibos y el número de recibos + fSumaImpRecibos := 0.0; + iNumRecibos := 0; +end; + +procedure TCVBNorma32CSB.CompRegistro; +begin + CompRegistro1; + CompRegistro2; + CompRegistro3; + + // Acumular la suma de los recibos en la remesa + fSumaImpRecibos := fSumaImpRecibos + RegImpEfecto; + + // Acumular el nº de recibos en la remesa + Inc(iNumRecibos); + Inc(iTotalRecibos); +end; + +procedure TCVBNorma32CSB.CompRegistro1; +var + sTotImp, cIT : string; + iP: integer; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(REGISTRO1); + + // A + sReg := '25' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + + // B + // Convertir referencia EL/0001 - 1 => EL00001-1 + RegNumRecibo := StringReplace(RegNumRecibo, '/', '0', []); + RegNumRecibo := StringReplace(RegNumRecibo, ' - ', '-', []); + sReg := sReg + Ajusta(RegNumRecibo, 'D', 15, _SPCE_); // 15 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FechaFichero), 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta(NumRemesa, 'I', 4, _CERO_); // 4 + + // C + sReg := sReg + Ajusta(RegCodigoINE, 'D', 9, _SPCE_); // 9 + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + + // D + sReg := sReg + Ajusta(RegPlazaLibr, 'D', 20, _SPCE_); // 20 + sReg := sReg + Ajusta('', 'I', 1, _SPCE_); // 1 + + // E + sReg := sReg + Ajusta('', 'I', 15, _SPCE_); // 15 + sReg := sReg + Ajusta('', 'I', 9, _SPCE_); // 9 + + sTotImp := FormatFloat(_MSK_EU_, RegImpEfecto); + iP := pos(',', sTotImp); + if iP < 1 then + iP := pos('.', sTotImp); + cIT := copy(sTotImp, 1, iP - 1); + sTotImp := cIT + copy(sTotImp, iP + 1, 2); + sReg := sReg + Ajusta(sTotImp, 'I', 9, _CERO_); // 9 + + sReg := sReg + Ajusta('', 'I', 15, _SPCE_); // 15 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', RegVtoEfecto), 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 1, _SPCE_); // 1 + sReg := sReg + Ajusta('', 'I', 4, _SPCE_); // 4 + + // F + sReg := sReg + Ajusta('', 'I', 16, _SPCE_); // 16 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); +end; + +procedure TCVBNorma32CSB.CompRegistro2; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(REGISTRO2); + + // A + sReg := '26' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + + // B + sReg := sReg + Ajusta(RegNumRecibo, 'D', 15, _SPCE_); // 15 + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + sReg := sReg + Ajusta('2', 'I', 1, _SPCE_); // 1 + sReg := sReg + Ajusta('000000', 'I', 6, _CERO_); // 6 + sReg := sReg + Ajusta('2', 'I', 1, _SPCE_); // 1 + sReg := sReg + Ajusta('0', 'I', 1, _SPCE_); // 1 + + // C + sReg := sReg + Ajusta(RegCodEnt, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(RegCodOfi, 'I', 4, _CERO_); //4 + if Length(RegDC) = 0 then + RegDC := '**'; + sReg := sReg + Ajusta(RegDC, 'I', 2, _CERO_); //2 + sReg := sReg + Ajusta(RegCC, 'I', 10, _CERO_); //10 + + // D + sReg := sReg + Ajusta(RegLibrador, 'D', 34, _SPCE_); // 34 + sReg := sReg + Ajusta(RegLibrado, 'D', 34, _SPCE_); // 34 + sReg := sReg + Ajusta(RegInfoAdic, 'D', 30, _SPCE_); // 30 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); +end; + +procedure TCVBNorma32CSB.CompRegistro3; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(REGISTRO3); + + // A + sReg := '27' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + + // B + sReg := sReg + Ajusta(RegNumRecibo, 'D', 15, _SPCE_); // 15 + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + sReg := sReg + Ajusta(RegDomicilio, 'D', 34, _SPCE_); // 34 + sReg := sReg + Ajusta(RegCodPostal, 'I', 5, _SPCE_); // 5 + sReg := sReg + Ajusta(RegPoblacion, 'D', 20, _SPCE_); // 20 + sReg := sReg + Ajusta(RegCodigoINE, 'I', 2, _SPCE_); // 2 + sReg := sReg + Ajusta('', 'I', 7, _SPCE_); // 7 + sReg := sReg + Ajusta(RegNIF, 'I', 9, _SPCE_); // 9 + sReg := sReg + Ajusta('', 'I', 50, _SPCE_); // 50 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); +end; + +procedure TCVBNorma32CSB.Cerrar; +var + sTotImp, cIT : string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotalLineas); + + // A + sReg := '98' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + + // B + sReg := sReg + Ajusta('', 'I', 22, _SPCE_); // 22 + + // C + sReg := sReg + Ajusta('', 'I', 37, _SPCE_); // 37 + + // D + sReg := sReg + Ajusta('', 'I', 10, _SPCE_); // 10 + + sTotImp := FormatFloat(_MSK_EU_, fSumaImpRemesas); + iP := pos(',', sTotImp); + if iP < 1 then + iP := pos('.', sTotImp); + cIT := copy(sTotImp, 1, iP - 1); + sTotImp := cIT + copy(sTotImp, iP + 1, 2); + sReg := sReg + Ajusta(sTotImp, 'I', 10, _CERO_); // 10 + + sReg := sReg + Ajusta('', 'I', 10, _SPCE_); // 10 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 7, _SPCE_); // 7 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + + // E + sReg := sReg + Ajusta(IntToStr(iNumRemesas), 'I', 5, _CERO_); //5 + sReg := sReg + Ajusta(IntToStr(iTotalLineas), 'I', 7, _CERO_); //7 + sReg := sReg + Ajusta(IntToStr(iTotalRecibos), 'I', 6, _CERO_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + CloseFile(NFic); +end; + + +procedure TCVBNorma32CSB.ChequearDatos(Parte: TCVBParte); +var + bError: boolean; +begin +{ bError := False; + + if Parte = CABECERA_GENERAL then + begin + if ((Presentador = '') or (NomCliPres = '') or + (EntRecepPres = '') or (OfiRecepPres = '')) then + begin + if Presentador = '' then + Presentador := _INDICA_; + if NomCliPres = '' then + NomCliPres := _INDICA_; + if EntRecepPres = '' then + EntRecepPres := _INDICA_; + if OfiRecepPres = '' then + OfiRecepPres := _INDICA_; + bError := True; + end; + end + else + if iParte = 2 then + begin + if ((Ordenante = '') or (NomCliOrd = '') or + (EntOrde = '') or (OfiOrde = '') or + (CcOrde = '')) then + begin + if Ordenante = '' then + Ordenante := _INDICA_; + if NomCliOrd = '' then + NomCliOrd := _INDICA_; + if EntOrde = '' then + EntOrde := _INDICA_; + if OfiOrde = '' then + OfiOrde := _INDICA_; + if CcOrde = '' then + CcOrde := _INDICA_; + bError := True; + end; + end + else + if (iParte = 3) or (iParte = 4) then + begin + if ((Referencia = '') or (NomTitDom = '') or + (EntTitDom = '') or (OfiTitDom = '') or + (ccTitDom = '')) then + begin + if Referencia = '' then + Referencia := _INDICA_; + if NomTitDom = '' then + NomTitDom := _INDICA_; + if EntTitDom = '' then + EntTitDom := _INDICA_; + if OfiTitDom = '' then + OfiTitDom := _INDICA_; + if ccTitDom = '' then + ccTitDom := _INDICA_; + bError := True; + end; + end; + + if bError then + ShowMessage('' + CRLF + + 'Faltan datos al procesar el siguiente registro: ' + CRLF + CRLF + + 'Código Cli/Pro: ' + Referencia + CRLF + + 'Nombre Titular: ' + NomTitDom + CRLF + + 'Entidad Domiciliar: ' + EntTitDom + CRLF + + 'Oficina Domiciliar: ' + OfiTitDom + CRLF + + 'Cuenta Domiciliar: ' + ccTitDom + CRLF + + 'Presentador: ' + Presentador + CRLF + + 'Nombre Cliente Pres:' + NomCliPres + CRLF + + 'Entidad Receptora P:' + EntRecepPres + CRLF + + 'Oficina Receptora P:' + OfiRecepPres + CRLF + + 'Ordenante: ' + Ordenante + CRLF + + 'Nombre Cliente Ord.:' + NomCliOrd + CRLF + + 'Entidad Ordenante: ' + EntOrde + CRLF + + 'Oficina Ordenante: ' + OfiOrde + CRLF + + 'Cuenta Ordenante: ' + CcOrde + ); + + if iParte = 3 then + begin + if bError then + begin + if ((fImportePts = 0) and (FEuro = False)) or + ((fImporteEu = 0) and (FEuro = True)) then + begin + ShowMessage('¡¡¡ El importe no puede ser cero !!!'); + Error(27); + end; + end; + end;} +end; + +procedure TCVBNorma32CSB.Error(iErr: integer); +begin + NrError := iErr; + HayError := True; + if Assigned(FEnCasoError) then + FEnCasoError(Self) + else + if FDepura = False then + begin + CloseFile(NFic); + if NrError = _LL_ then + raise Exception.Create('Error en la longitud de la línea') + else + raise Exception.Create('Error en la generación del fichero'); + end; +end; + + +end.