Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-04-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Impression TextFile

tengo una impression que deberia imprimir asi. Si hay una forma de pago, entonces imprime una linea e despues el registros del banco. Pero si hay dos o mas forma de pago, entonces, imprime un linea, todos los valores de la tabla e despues otra linea. Pero solo necesito hacer com que alguns texto no se imprimido en el relatorio, como sigue abajo:

Hoy estas asi:
-----------------------------------------------
00001 00458 93,00 Cartao de Credito
00001 00458 45,00 Cartao de Credito
-----------------------------------------------
pero debe estar asi:
-----------------------------------------------
00001 00458 93,00 Cartao de Credito
45,00 Cartao de Credito
-----------------------------------------------

Mira que la venta y el numero de la fatura solo mostra una vez, pero el nombre de la form de pago y el valor, no, deben siempre ser impresso.
Responder Con Cita
  #2  
Antiguo 29-04-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Wink

Hola Paulao...

Podrias poner algo de codigo para ver como lo imprimes o estas utilizando algun Reporteador ???

Salu2
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 29-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
TextFile? estas imprimiendo directamente al canvas de la impresora? una matricial? No usas reporteador, sino que imprimis directamente el txt con la data?

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #4  
Antiguo 30-04-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Pues tendrías que genrar el archivo de texto con un ciclo While.

Pones primero el encabezado que quieres y mientras sea el mismo, vas agregando el detalle, si cambia, agregas el nuevo encabezado
__________________

Responder Con Cita
  #5  
Antiguo 30-04-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Bueno, resolvi asi: Yo tenia um While con la tabla pricipal, entonces en cada registro, yo hizo un otro select usando las llaves del registro principal. Hizo otro select y hizo mi impression dentro deste while. Abajo mi codigo: Se que pude estar mas limpio mi codigo, pero estoy sin tiempo para hacer un codigo mejor. Quando quitar la instalacion en todas las filiales, y yo poder dormir por lo menos, 6 horas, entoces voy a mejorar el codigo, pero fue el que yo tuvo que hacer las prisas.

Cita:
var
lin,sParc, nRec:Integer;
sCupom,
sForma: string;
bNovaLinha,
bImprimeTitulo,bDevDoa: Boolean;
nVal_Parcouble;
cdsGeral: TClientDataSet;
begin
cdsGeral := TClientDataSet.Create(nil);
cdsGeral.RemoteServer := DM_Principal.scConsulta;
cdsGeral.ProviderName := 'dspTB_SAC_NF_PAGAMENTO';

sForma := '';
sParc := 0;
nVal_Parc := 0;
nRec := 0;

bNovaLinha := False;
bImprimeTitulo := False;
bDevDoa := False;

vTotal_Dia := 0;
vTotal_Geral := 0;
lin := 0;
DM_Principal.CDS_CNS_VENDAS.First;
while not DM_Principal.CDS_CNS_VENDAS.Eof do
begin
inc(lin);
sCupom := DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_NF').AsString;
if DM_Principal.CDS_CNS_AUX.Locate('NU_NF;NU_CX;SR_NF',VarArrayOf([
DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_NF').AsString,
DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_CX').AsString,
DM_Principal.CDS_CNS_VENDAS.FieldByName('SR_NF').AsString]), []) then
begin
sForma := DM_Principal.CDS_CNS_AUX.FieldByName('DESCRICAO').AsString;
sParc := DM_Principal.CDS_CNS_AUX.FieldByName('QT_PARC').AsInteger;
nVal_Parc := DM_Principal.CDS_CNS_AUX.FieldByName('VL_PAG').AsFloat;
end;

with cdsGeral do
begin
Close;
CommandText :=
' SELECT ' +
' PAGTO.NU_NF,PAGTO.NU_CX, ' +
' PAGTO.SR_NF,PAGTO.VL_PAG, ' +
' FORMA.DESCRICAO ' +
' FROM ' +
' TB_SAC_NF_PAGAMENTO PAGTO INNER JOIN TB_SAC_FORMA_PAGTO FORMA ' +
' ON(FORMA.CD_F_PAG = PAGTO.CD_F_PAG) ' +
' WHERE ' +
' PAGTO.NU_NF = ' + DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_NF').AsString + ' AND ' +
' PAGTO.NU_CX = ' + DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_CX').AsString + ' AND ' +
' PAGTO.SR_NF = ' + QuotedStr(DM_Principal.CDS_CNS_VENDAS.FieldByName('SR_NF').AsString);
Open;
end;

if (cdsGeral.IsEmpty) and (DM_Principal.CDS_CNS_VENDAS.RecordCount > 0) then
begin
//Imprime transferencias e doacoes
bDevDoa := True;
if sParc > 0 then
Writeln(prn,AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_BOL').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_NF').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('SR_NF').AsString,3) +
' ' + AjustaNum(FormatFloat('0.00',DM_Principal.CDS_CNS_VENDAS.FieldByName('VL_BRUTO').AsFloat),11) +
' ' + AjustaStr(DM_Principal.CDS_CNS_VENDAS.FieldByName('ST_CANC').AsString,9) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('CD_FUNC').AsString,8) +
' ' + AjustaStr(cdsGeral.FieldByname('DESCRICAO').AsString,18) + '[' + AjustaNum(IntToStr(sParc),1)+ 'X]' +
AjustaNum(FormatFloat('0.00',cdsGeral.FieldByName('VL_PAG').AsFloat),9))
else
Writeln(prn,AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_BOL').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_NF').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('SR_NF').AsString,3) +
' ' + AjustaNum(FormatFloat('0.00',DM_Principal.CDS_CNS_VENDAS.FieldByName('VL_BRUTO').AsFloat),11) +
' ' + AjustaStr(DM_Principal.CDS_CNS_VENDAS.FieldByName('ST_CANC').AsString,9) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('CD_FUNC').AsString,8) +
' ' + AjustaStr(cdsGeral.FieldByname('DESCRICAO').AsString,18) +
' ' + AjustaNum(FormatFloat('0.00',cdsGeral.FieldByName('VL_PAG').AsFloat),9));
end;

while not cdsGeral.Eof do
begin
if cdsGeral.RecordCount > 1 then
begin
bNovaLinha := True;
if cdsGeral.RecNo = 1 then
bImprimeTitulo := True
else
bImprimeTitulo := False;
end;

if not bNovaLinha then
begin
if sParc > 0 then
Writeln(prn,AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_BOL').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_NF').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('SR_NF').AsString,3) +
' ' + AjustaNum(FormatFloat('0.00',DM_Principal.CDS_CNS_VENDAS.FieldByName('VL_BRUTO').AsFloat),11) +
' ' + AjustaStr(DM_Principal.CDS_CNS_VENDAS.FieldByName('ST_CANC').AsString,9) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('CD_FUNC').AsString,8) +
' ' + AjustaStr(cdsGeral.FieldByname('DESCRICAO').AsString,18) + '[' + AjustaNum(IntToStr(sParc),1)+ 'X]' +
AjustaNum(FormatFloat('0.00',cdsGeral.FieldByName('VL_PAG').AsFloat),9))
else
Writeln(prn,AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_BOL').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_NF').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('SR_NF').AsString,3) +
' ' + AjustaNum(FormatFloat('0.00',DM_Principal.CDS_CNS_VENDAS.FieldByName('VL_BRUTO').AsFloat),11) +
' ' + AjustaStr(DM_Principal.CDS_CNS_VENDAS.FieldByName('ST_CANC').AsString,9) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('CD_FUNC').AsString,8) +
' ' + AjustaStr(cdsGeral.FieldByname('DESCRICAO').AsString,18) +
' ' + AjustaNum(FormatFloat('0.00',cdsGeral.FieldByName('VL_PAG').AsFloat),9));
end
else
begin
if bImprimeTitulo then
begin
if sParc > 0 then
Writeln(prn,AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_BOL').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_NF').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('SR_NF').AsString,3) +
' ' + AjustaNum(FormatFloat('0.00',DM_Principal.CDS_CNS_VENDAS.FieldByName('VL_BRUTO').AsFloat),11) +
' ' + AjustaStr(DM_Principal.CDS_CNS_VENDAS.FieldByName('ST_CANC').AsString,9) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('CD_FUNC').AsString,8) +
' ' + AjustaStr(cdsGeral.FieldByname('DESCRICAO').AsString,18) + '[' + AjustaNum(IntToStr(sParc),1)+ 'X]' +
AjustaNum(FormatFloat('0.00',cdsGeral.FieldByName('VL_PAG').AsFloat),9))
else
Writeln(prn,AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_BOL').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('NU_NF').AsString,6) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('SR_NF').AsString,3) +
' ' + AjustaNum(FormatFloat('0.00',DM_Principal.CDS_CNS_VENDAS.FieldByName('VL_BRUTO').AsFloat),11) +
' ' + AjustaStr(DM_Principal.CDS_CNS_VENDAS.FieldByName('ST_CANC').AsString,9) +
' ' + AjustaNum(DM_Principal.CDS_CNS_VENDAS.FieldByName('CD_FUNC').AsString,8) +
' ' + AjustaStr(cdsGeral.FieldByname('DESCRICAO').AsString,18) +
' ' + AjustaNum(FormatFloat('0.00',cdsGeral.FieldByName('VL_PAG').AsFloat),9));
end
else
Writeln(prn, RelRepStr(' ', 49) + AjustaStr(cdsGeral.FieldByname('DESCRICAO').AsString,18) +
' ' + AjustaNum(FormatFloat('0.00',cdsGeral.FieldByName('VL_PAG').AsFloat),9));
end;

cdsGeral.Next;

if cdsGeral.Eof then
Writeln(prn, RelRepStr('-', 80));

bNovaLinha := False;
end;//Fim do while do cdsGeral

DM_Principal.CDS_CNS_VENDAS.Next;

if (DM_Principal.CDS_CNS_VENDAS.Eof) and (bDevDoa) then
begin
Writeln(prn, RelRepStr('-', 80));
bDevDoa := False;
end;


if lin > 56 then
begin
Cabecalho;
end;
end;//Fim do while principal
FreeAndNil(cdsGeral);
end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Impression en red Paulao Varios 3 31-03-2008 19:57:48
Impression TextFile e Fuentes em negro Paulao Impresión 2 18-03-2008 14:44:10
Impression TextFile Paulao Impresión 0 13-03-2008 12:50:18
Problema con TextFile ElDioni Varios 3 20-09-2005 20:37:34


La franja horaria es GMT +2. Ahora son las 10:21:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi