Como crear el complemento Donatarias
Publicado: Sab Dic 04, 2010 8:41 am
Hola a todos, gracias por su valiosa ayuda en todo este proceso para la generacion de cfd,
tengo un problema pues un cliente me pidio la facturacion electronica para una Donataria,
y como sabes hay que agregar este concepto, y bueno pues lo hice y
creo debe de jalar, pero me esta marcando un error en run time,
el cual dice: "Projet MiCFD.exe raised exception class EIntfCastError with message Interface Not Supported".
Process stopped
Estoy agregando el codigo para ver si me pueden echar una mano y salir de este problema, agradesco de antemano
toda la ayuda posible.
{ Forward Decls }
IXMLComplemento = interface; == > Este ya esta definido Complemento
IXMLComplementoDonat = interface; == > Agregue este para Donatarias
{ IXMLComplemento }
IXMLComplemento = interface(IXMLNode)
['{2A73E219-B90F-4D73-B74A-B05E2A4761AB}'] == > Se tiene Definido el Complemento pero en Blanco, y agregue
function Get_Donatarias : IXMLComplementoDonat; == > El Procedimiento para Obtener valores de donatarias
property Donatarias : IXMLComplementoDonat read Get_Donatarias;
end;
== > Asi defino IXMLComplementoDonat, donde creo esta el error pues me marca interface not supported en run time
IXMLComplementoDonat = interface(IXMLNode)
['{502DF01A-B90F-4D73-ADAF-B05E2A4761AB}']
{ Property Accessors }
function Get_Version: WideString;
procedure Set_Version(Value: WideString);
{ Methods & Properties }
property Version: WideString read Get_Version write Set_Version;
end;
{ Forward Decls }
TXMLComplemento = class; == > Ya se tiene esta Definicion
TXMLComplementoDonat = class; == > yo añadi este
{ TXMLComplemento }
=== >>> Esta def. la modifico y le agrege
TXMLComplemento = class(TXMLNode, IXMLComplemento)
protected
{ IXMLComplemento }
function Get_Donatarias : IXMLComplementoDonat; == > Modifico esta parte para donatarias
end;
== >> Complemente con esta definicion
TXMLComplementoDonat = class(TXMLNode, IXMLComplementoDonat)
protected
{ IXMLComplemento }
function Get_Version: WideString;
procedure Set_Version(Value: WideString);
end;
== >> y Finalmente los procedimientos
{ TXMLComplemento }
// estos son mis procedimientos para Donatarias
function TXMLComplemento.Get_Donatarias : IXMLComplementoDonat;
begin
Result := ChildNodes['Donatarias'] as IXMLComplementoDonat; == > EL SISTEMA TRUENA AQUI Y MARCA "INTERFACE NOT SUPPORTED"
end;
function TXMLComplementoDonat.Get_Version : WideString;
begin
Result := AttributeNodes['Version'].Text;
end;
procedure TXMLComplementoDonat.Set_Version(Value: WideString);
begin
if Value <> '' then SetAttribute('Version', Value);
end;
(* ESTE ES MI PROCEDIMIENto PARA AGREGAR DATOS A DONATARIAS EN FacturaE
With Complemento Do
begin
With Donatarias Do
begin
Version := '1.0';
// NoAutorizacion := 'PRUEBA AUTOR.';
// FechaAutorizacion := '2010-12-05';
end {CFD.Complemento.Donatarias}
end; {CFD.Complemento}
tengo un problema pues un cliente me pidio la facturacion electronica para una Donataria,
y como sabes hay que agregar este concepto, y bueno pues lo hice y
creo debe de jalar, pero me esta marcando un error en run time,
el cual dice: "Projet MiCFD.exe raised exception class EIntfCastError with message Interface Not Supported".
Process stopped
Estoy agregando el codigo para ver si me pueden echar una mano y salir de este problema, agradesco de antemano
toda la ayuda posible.
{ Forward Decls }
IXMLComplemento = interface; == > Este ya esta definido Complemento
IXMLComplementoDonat = interface; == > Agregue este para Donatarias
{ IXMLComplemento }
IXMLComplemento = interface(IXMLNode)
['{2A73E219-B90F-4D73-B74A-B05E2A4761AB}'] == > Se tiene Definido el Complemento pero en Blanco, y agregue
function Get_Donatarias : IXMLComplementoDonat; == > El Procedimiento para Obtener valores de donatarias
property Donatarias : IXMLComplementoDonat read Get_Donatarias;
end;
== > Asi defino IXMLComplementoDonat, donde creo esta el error pues me marca interface not supported en run time
IXMLComplementoDonat = interface(IXMLNode)
['{502DF01A-B90F-4D73-ADAF-B05E2A4761AB}']
{ Property Accessors }
function Get_Version: WideString;
procedure Set_Version(Value: WideString);
{ Methods & Properties }
property Version: WideString read Get_Version write Set_Version;
end;
{ Forward Decls }
TXMLComplemento = class; == > Ya se tiene esta Definicion
TXMLComplementoDonat = class; == > yo añadi este
{ TXMLComplemento }
=== >>> Esta def. la modifico y le agrege
TXMLComplemento = class(TXMLNode, IXMLComplemento)
protected
{ IXMLComplemento }
function Get_Donatarias : IXMLComplementoDonat; == > Modifico esta parte para donatarias
end;
== >> Complemente con esta definicion
TXMLComplementoDonat = class(TXMLNode, IXMLComplementoDonat)
protected
{ IXMLComplemento }
function Get_Version: WideString;
procedure Set_Version(Value: WideString);
end;
== >> y Finalmente los procedimientos
{ TXMLComplemento }
// estos son mis procedimientos para Donatarias
function TXMLComplemento.Get_Donatarias : IXMLComplementoDonat;
begin
Result := ChildNodes['Donatarias'] as IXMLComplementoDonat; == > EL SISTEMA TRUENA AQUI Y MARCA "INTERFACE NOT SUPPORTED"
end;
function TXMLComplementoDonat.Get_Version : WideString;
begin
Result := AttributeNodes['Version'].Text;
end;
procedure TXMLComplementoDonat.Set_Version(Value: WideString);
begin
if Value <> '' then SetAttribute('Version', Value);
end;
(* ESTE ES MI PROCEDIMIENto PARA AGREGAR DATOS A DONATARIAS EN FacturaE
With Complemento Do
begin
With Donatarias Do
begin
Version := '1.0';
// NoAutorizacion := 'PRUEBA AUTOR.';
// FechaAutorizacion := '2010-12-05';
end {CFD.Complemento.Donatarias}
end; {CFD.Complemento}