Ver Mensaje Individual
  #298  
Antiguo 08-11-2010
Roberto_Garcia Roberto_Garcia is offline
Registrado
NULL
 
Registrado: oct 2010
Posts: 3
Reputación: 0
Roberto_Garcia Va por buen camino
Interface not supported

Saludos
He comenzado a trabajar con esto de los CFD para el sistema Aspel SAE 3.0 ya genere el archivo cfdv2.pas con XML Data Binding y ya redacte la carga de los datos pero al probarlo en esta instruccion
Código Delphi [-]
CFD := GetComprobante( XMLDoc );
me vota este error "Interface not supported" nunca habia usado XMLDocument a si que no tengo ni idea de donde revisar.

Código Delphi [-]

procedure TfpRUEBAS.CargarDatosCFD( TipoDocu, SaeFolio: string; DatosDb: T_ConfigDbSae;
  DatosEmisor: T_ConfigCFDEmisor );
var
  _FacD, _FacP, _Clie, _Inve: TTable;
  _DFacD: TDataSource;
  procedure _ConfigDb;
  begin
    _FacD := TTable.Create( nil );
    _FacP := TTable.Create( nil );
    _Clie := TTable.Create( nil );
    _Inve := TTable.Create( nil );
    _DFacD := TDataSource.Create( nil );
    DatosDb.TrasfiereDatos( tiFact0x, _FacD );
    DatosDb.TrasfiereDatos( tiFa0tyx, _FacP );
    DatosDb.TrasfiereDatos( tiClie0x, _Clie );
    DatosDb.TrasfiereDatos( tiInve0x, _Inve );
    _DFacD.DataSet := _FacD;
    _FacD.IndexName := 'FACT01';
    _FacP.IndexName := 'iTip_Doc';
    _Clie.IndexName := 'CCLIE';
    _Inve.IndexName := 'Clv_Art';
    _FacP.MasterSource := _DFacD;
    _FacP.MasterFields := 'TIP_DOC;CVE_DOC';
    _FacD.Open;
    _FacP.Open;
    _Clie.Open;
    _Inve.Open;
    if not _FacD.FindKey( [ TipoDocu, SaeFolio ] ) then begin
      MessageDlg( 'No se encontro el documento', mtWarning, [ mbOk ], 0 );
      XMLDoc.Active := False;
      Abort;
    end;
    if not _Clie.FindKey( [ _FacD.FieldByName( 'Cve_ClPv' ).Value ] ) then begin
      MessageDlg( 'No se encontro el Cliente', mtWarning, [ mbOk ], 0 );
      XMLDoc.Active := False;
      Abort;
    end;
  end;
begin
  XMLDoc.XML.Text := '<? xml version="1.0" encoding="UTF-8" ?> <Comprobante xmlns="---sat.gob.mx/cfd"> </Comprobante >';
  XMLDoc.Active := True;
  CFD := GetComprobante( XMLDoc ); // *** al ejecutar esta instruccion me vota el error
  CFD.SetAttribute( 'xmlns:xsi', '---w3.org/2001/XMLSchema-instance' );
  CFD.SetAttribute( 'xsi:schemaLocation', '---sat.gob.mx/cfd ---sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd' );
  _ConfigDb;
  with CFD do begin
    Version := '2.0';
    Serie := 'A';
    Folio := '1';
    Fecha := DateTimeToStr( Now );
    { TODO : Falta especifcar "Sello" }
    { TODO : Falta especifcar "NoAprobacion" }
    { TODO : Falta especifcar "AnoAprobacion" }
    FormaDePago := 'Pago en una sola exhibición';
    { TODO : Falta especifcar "NoCertificado" }
    { TODO : Falta especifcar "Certificado" }
    CondicionesDePago := IntToStr( _Clie.FieldValues[ 'Dias_Cred' ] ) + ' Dias';
    SubTotal := FloatToStrF( _FacD.FieldValues[ 'Can_tot' ], ffNumber, 14, 2 );
    Descuento := FloatToStrF( _FacD.FieldValues[ 'Des_tot' ], ffNumber, 14, 2 );
//  MotivoDescuento // Opcional
    Total := FloatToStrF(
      ( _FacD.FieldValues[ 'Can_tot' ] - _FacD.FieldValues[ 'Des_Tot' ] ) +
      _FacD.FieldValues[ 'Imp_Tot4' ], ffNumber, 14, 2 );
//  MetodoDePago // Opcional
    if TipoDocu = 'F' then
      TipoDeComprobante := 'ingreso' // ingreso egreso traslado
    else if TipoDocu = 'D' then
      TipoDeComprobante := 'egreso';
    with Emisor do begin
      Rfc := DatosEmisor.Rfc; // SIN ESPACIOS O GUIONES
      Nombre := DatosEmisor.Nombre;
      with DomicilioFiscal do begin
        Calle := DatosEmisor.DomFisCalle;
        NoExterior := DatosEmisor.DomFisNoExterior;
        NoInterior := DatosEmisor.DomFisNoInterior;
        Colonia := DatosEmisor.DomFisColonia;
        Localidad := DatosEmisor.DomFisLocalidad;
        Referencia := DatosEmisor.DomFisReferencia;
        Municipio := DatosEmisor.DomFisMunicipio;
        Estado := DatosEmisor.DomFisEstado;
        Pais := DatosEmisor.DomFisPais;
        CodigoPostal := DatosEmisor.DomFisCodigoPostal;
      end;
      with ExpedidoEn do begin
        Calle := DatosEmisor.ExpEnCalle;
        NoExterior := DatosEmisor.ExpEnNoExterior;
        NoInterior := DatosEmisor.ExpEnNoInterior;
        Colonia := DatosEmisor.ExpEnColonia;
        Localidad := DatosEmisor.ExpEnLocalidad;
        Referencia := DatosEmisor.ExpEnReferencia;
        Municipio := DatosEmisor.ExpEnMunicipio;
        Estado := DatosEmisor.ExpEnEstado;
        Pais := DatosEmisor.ExpEnPais;
        CodigoPostal := DatosEmisor.ExpEnCodigoPostal;
      end;
    end; // with emisor
    with Receptor do begin
      Rfc := _Clie.FieldValues[ 'Rfc' ];
      Nombre := _Clie.FieldValues[ 'Nombre' ];
      with Domicilio do begin
        Calle := _Clie.FieldValues[ 'Dir' ];
        //NoExterior := ; //opcional
        //NoInterior := ; //opcional
        Colonia := _Clie.FieldValues[ 'Colonia' ];
        //Localidad := //opcional
        //Referencia :=  //opcional
        Municipio := _Clie.FieldValues[ 'Pob' ];
        //Estado := //opcional
        Pais := _Clie.FieldValues[ 'Campostru2' ];
        CodigoPostal := _Clie.FieldValues[ 'Codigo' ];
      end;
    end; //With Receptor
    while not _FacP.Eof do begin
      with cfd.conceptos.add do begin
        Cantidad := FloatToStr( _FacP.FieldValues[ 'Cant' ] );
        Unidad := _FacP.FieldValues[ 'UNI_VENTA' ];
        //NoIdentificacion // opcional
        if _Inve.FindKey( [ _FacP.FieldValues[ 'Cve_Art' ] ] ) then
          Descripcion := _Inve.FieldValues[ 'Descr' ]
        else
          Descripcion := _FacP.FieldValues[ 'Cve_Art' ];
        ValorUnitario := FloatToStrF( _FacP.FieldValues[ 'Prec' ], ffNumber, 14, 2 );
        Importe := FloatToStrF( _FacP.FieldValues[ 'Prec' ] * _FacP.FieldValues[ 'Cant' ],
          ffNumber, 14, 2 );
        //InformacionAduanera  // no aplica
        //CuentaPredial // no aplica
        //ComplementoConcepto // no aplica
        //Parte // no aplica
      end;
      _FacP.Next;
    end;
    with Impuestos do begin
      //TotalImpuestosRetenidos  // no aplica
      TotalImpuestosTrasladados := _FacD.FieldValues[ 'Tot_Imp4' ];
      //Retenciones     // no aplica
      with Traslados.Add do begin
        Impuesto := 'IVA';
        Tasa := '16';
        Importe := FloatToStrF( _FacD.FieldValues[ 'Tot_Imp4' ],
          ffNumber, 14, 2 );
      end; //With Traslados
    end; //With Impuestos
    //Complemento
    //Addenda
  end; // with CFD
end;
Responder Con Cita