Con la idea de poner alguna cosa más a disposición de los miembros Premium, aquí dejo una parte del módulo de exportación a ContaPlus que hice en su día y que sigue funcional.
La segunda parte es decir como utilizar esta unidad cuanto tenga un rato, mañana lo dudo pero el fin de semana seguro lo publicaré en este mismo hilo.
A ver que os parece.
Código Delphi
[-]unit SpConta;
interface
uses
DmXX,Global,Dialogs, System;
Procedure Crear_Datasi();
Procedure Exportar_Datos_Cliente(c:String);
Function FillSpacesRight(cVar:String;nLen:Integer):String;
Function FillSpacesLeft(cVar:String;nLen:Integer):String;
Function FillZerosLeft(cVar:String;nLen:Integer):String;
Type
SPDiar = Record
Asien :String[06];
Fecha :String[08];
Subcta :String[12];
Contra :String[12];
PtaDebe :String[16];
Concepto :String[25];
PtaHaber :String[16];
Factura :String[08];
BaseImpo :String[16];
TIva :String[05];
Trec :String[05];
Document :String[10];
Departa :String[03];
Clave :String[06];
Estado :String[01];
NCasado :String[06];
TCasado :String[01];
Trans :String[06];
Cambio :String[16];
Debeme :String[16];
Haberme :String[16];
Auxiliar :String[01];
Serie :String[01];
Sucursal :String[04];
CodDivisa:String[05];
ImpAuxme :String[16];
Monedauso:String[01];
EuroDebe :String[16];
EuroHaber:String[16];
BaseEuro :String[16];
NoConv :String[01];
NumeroInv:String[10];
end;
SPSubcta = Record
Cod :String[12];
Titulo :String[40];
Nif :String[15];
Domicilio:String[35];
Poblacion:String[25];
Provincia:String[20];
CodPostal:String[05];
Divisa :String[01];
CodDivisa:String[05];
Documento:String[01];
Ajustame :String[01];
TipoIva :String[01];
end;
Const
cCamino ='\\Puesto1\puesto1\GrupoSP\COE08R01\Tmp\';
cDiario ='Xdiario.Txt';
cSubcta ='Xsubcta.Txt';
cDatasi ='Xdatasi.Txt';
cFile1 =cCamino + cDiario;
cFile2 =cCamino + cSubcta;
cFile3 =cCamino + cDatasi;
CrLf:String = Chr(13)+Chr(10);
var
FDiario :TextFile;
FCliente:TextFile;
implementation
Procedure Crear_Datasi();
var
F1:TextFile;
begin
AssignFile(F1, cFile3);
Rewrite(f1);
CloseFile(F1);
end;
Procedure Exportar_Datos_Cliente(c:String);
var
spDatCli:SPSubcta;
begin
if DmXX.Cli.FindKey([c]) then
begin
spDatCli.Cod :=FillSpacesRight(DmXX.CliCodigo.Value,12);
spDatCli.Titulo :=FillSpacesRight(DmXX.CliRSOCIAL.Value,40);
spDatCli.Nif :=FillSpacesRight(DmXX.CliNif.Value,15);
spDatCli.Domicilio :=FillSpacesRight(DmXX.CliCalle.Value,35);
spDatCli.Poblacion :=FillSpacesRight(DmXX.CliPoblacion.Value,25);
spDatCli.Provincia :=FillSpacesRight(DmXX.CliProvincia.Value,20);
spDatCli.CodPostal :=FillSpacesRight(DmXX.clicPostal.Value,5);
spDatCli.Divisa :='F';
spDatCli.CodDivisa :=FillSpacesRight('',5);
spDatCli.Documento :='F';
spDatCli.Ajustame :='F';
spDatCli.TipoIva :=FillSpacesRight('',1);
Write(FCliente, spDatCli.Cod );
Write(FCliente, spDatCli.Titulo);
Write(FCliente, spDatCli.Nif);
Write(FCliente, spDatCli.Domicilio);
Write(FCliente, spDatCli.Poblacion);
Write(FCliente, spDatCli.Provincia);
Write(FCliente, spDatCli.CodPostal);
Write(FCliente, spDatcli.Divisa);
Write(FCliente, spDatCli.CodDivisa);
Write(FCliente, spDatCli.Documento);
Write(FCliente, spDatCli.Ajustame);
Write(FCliente, spDatCli.TipoIva);
Write(FCliente,CrLf);
end
else
ShowMessage('Cliente no encontrado:'+DmXX.FacturasCodclient.Value);
end;
Function FillSpacesLeft(cVar:String;nLen:Integer):String;
begin
Result:=StringOfChar(' ',nLen - Length(cVar))+cVar;
end;
Function FillSpacesRight(cVar:String;nLen:Integer):String;
begin
Result:=cVar+StringOfChar(' ',nLen - Length(cVar));
end;
Function FillZerosLeft(cVar:String;nLen:Integer):String;
begin
Result:=StringOfChar('0',nLen - Length(cVar))+cVar;
end;
end.
Un Saludo y espero vuestros comentarios.