FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Imprimir en base a una plantilla/doc. externo
Posts: 325
Joined: Sun Feb 03, 2008 11:04 PM
Imprimir en base a una plantilla/doc. externo
Posted: Mon Dec 01, 2008 07:31 AM

Hola a todos del foro

A ver si me explico para ver si se puede hacer

Quiero realizar impresiones en base a una plantilla/doc. externo (ejemplo TXT), osea que el programa lea una archivo externos al sistema donde yo haga la tabulaci贸n/ubicacion de lo quiera imprimir, de esa forma [u:i5sm8kg4]no[/u:i5sm8kg4] tendria que estar modificando el programa por cambios del listado. :shock:

Tengo que imprimir Cheques y cada banco tiene un formulario distinto por lo que tendria que hacer un prg por cada banco, de la forma que estoy intentando hacer tendria un doc externo de tabulacion por cada formulario de cheque y un solo prg. :wink:

espero haberme explicado.

saludos para todos

david
argentina

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Imprimir en base a una plantilla/doc. externo
Posted: Mon Dec 01, 2008 02:17 PM

Puedes utilizar una DBF con tantos campos como sean necesarios para identificar el codigo del banco correspondiente y las coordenadas de los datos del cheque. O, si lo deseas, puedes utilizar un fichero ini con una seccion para cada banco.

Desde tu prg solo tendr铆as que seleccionar el banco emisor y automaticamente se imprimiran los datos con las debidas coordenadas.

Saludos.

Francisco J. Alegr铆a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 28
Joined: Sat Oct 29, 2005 12:01 AM
Yo lo genero desde una plantilla txt sin necesidad de word
Posted: Tue Dec 02, 2008 03:20 PM

yo lo genero desde la plantilla txt sin necesidad de word

include 'TSButton.ch'

include "FiveWin.ch"

Define Enter CRLF

Static oDlg
Static oGet

Function Permiso()
local hFichero
local TxtGet, Txt2
local oCopias, nCopias:=1, lDisp:=.f.
local oChkBox, lChkBox:=.f.
local oIni

INI oIni File ".\Config.ini"
Get lChkBox Section "Configurar" Entry "Control Impresion" of oIni
EndIni

If .not. lChkBox
lDisp:=.t.
EndIf

Sele dgppea01

TxtGet:=MemoRead("ppeatxt.txt")
TxtGet:=StrTran(TxtGet,"{solicitante}",dgppea01->solicitant)
TxtGet:=StrTran(TxtGet,"{direccion}",alltrim(dgppea01->lugar_even))
TxtGet:=StrTran(TxtGet,"{permiso}",AllTrim(cwtperm->permiso)+" ")
TxtGet:=StrTran(TxtGet,"{comentarios}",AllTrim(dgppea01->comentario))
TxtGet:=StrTran(TxtGet,"{colonia}",AllTrim(colonias->nombre))
TxtGet:=StrTran(TxtGet,"{tiempo}",AllTrim(dgppea01->horario))
TxtGet:=StrTran(TxtGet,"{del}",dia2dig(dgppea01->fecha_del))
TxtGet:=StrTran(TxtGet,"{al}",dia2dig(dgppea01->fecha_al))
TxtGet:=StrTran(TxtGet,"{pesos}",Trans(dgppea01->cooperar,"999,999.99"))
TxtGet:=StrTran(TxtGet,"{mes_y_a帽o}"," del "+Str(year(dgppea01->fecha_al),4,0)+".")
TxtGet:=StrTran(TxtGet,"{nivel}",AllTrim(cwtfirms->nivel))
TxtGet:=StrTran(TxtGet,"{firma}",AllTrim(cwtfirms->nombre))

MemoWrit("final.txt",TxtGet)

Txt2:=MemoRead("final.txt")

Define Dialog oDlg ResName 'permiso' Title 'Impresion de permiso para [' +AllTrim(dgppea01->solicitant)+']'

ReDefine Get oGet var Txt2 TEXT id 101 of oDlg UpDate

ReDefine CheckBox oChkBox var lChkBox id 104 of oDlg UpDate ;
On Click( if (lDisp,(lDisp:=.f.), (lDisp:=.t.)), oCopias:Refresh())
ReDefine Get oCopias var nCopias id 105 of oDlg Picture "99" When lDisp

ReDefine Button id 106 of oDlg ;
Action PrinterSetup( oDlg )

ReDefine Button id 103 of oDlg ;
Action aImpresora(Txt2, lChkBox, nCopias)

ReDefine Button id 102 of oDlg ;
Action oDlg:End()

Activate Dialog oDlg
Return Nil


Static Function aImpresora(cTexto, lChkBox, nCopias)
local oFnt1, oFnt2, oFnt3, oFnt4, oFnt5
local nlinea:=75, nAncho:=2600
local nSeparacion:=19, nSaltoLinea:=60
local nColumna:=1000
local nCentro:=1400
local Imagen1:="logos\Aguila.bmp"
local Imagen2:="logos\MEscudo.bmp"
local Imagen3:="logos\Admo04.bmp"
local oPrn
local oLeyenda

If lChkBox
Print oPrn Name "Impresion de Permiso Provisional para Eventos 32Bits" From User
Else
Print oPrn Name "Impresion de Permiso Provisional para Eventos 32Bits"
EndIf

oPrn:SetPage(1)

If .not. Empty(nCopias)
oPrn:SetCopies(nCopias)
EndIf

If Empty(oPrn:hdc )
MsgStop('La impresora no se encuentra 贸 no esta lista para la impresion'+CRLF+;
'por favor verifique...','!Error en la Impresi贸n隆')
Return Nil
EndIf

Define Font oFnt1 Name 'Courier New' Size 0,-12 of oPrn
Define Font oFnt2 Name 'Georgia' Size 0,-16 BOLD of oPrn
Define Font oFnt4 Name 'Impact' Size 0,-06 of oPrn
Define Font oFnt5 Name 'Impact' Size 0,-10 of oPrn
Define Font oLeyenda Name 'Courier New' Size 0,-08 of oPrn

Page

cuadro(oPrn,80,30,510,2800)

Imp_Center(oPrn,130,nCentro,"PERMISO PROVISIONAL",oFnt2)
Imp_imagen(oPrn,120,45,Imagen1,118,120)
imprime(oPrn, 93,15,"PRESIDENCIA MUNICIPAL",oFnt4)
imp_Center(oPrn, 280,nCentro,"Oficialia Mayor de Padr贸n y Licencias",oFnt1)
Imprime(oPrn, 45, 500,"FECHA TRAMITE",oFnt5)
Imprime(oPrn,58,480,Str(Day(_Field->fTramite),2,0)+"-"+cMonth(_Field->fTramite)+"-"+Str(Year(_Field->fTramite),4,0), oFnt1)
Imprime(oPrn,80,500,"Permiso No." + Str(_Field->Control,8,0), oFnt5)

Imp_JBloque(oPrn, 610, 80, nAncho, nSaltoLinea,cTexto,oFnt1)

Imp_imagen(oPrn,1300,80,Imagen2,57,142)
Imp_imagen(oPrn,1300,2380,Imagen3,168,143)

Sele ADMO
//Imprime(oPrn,360,518,Alltrim(admo->periodo),oFnt1)
imp_Center(oPrn, 1300,nCentro,"Atentamente",oFnt1)
imp_Center(oPrn, 1370,nCentro,Alltrim(admo->leyenda),oLeyenda)
Sele CWTFIRMS
imp_Center(oPrn, 1450,nCentro,Alltrim(cwtfirms->nivel),oFnt1)
imp_Center(oPrn, 1600,nCentro,'--------------------------------------------------------------------------',oFnt1)
imp_Center(oPrn, 1680,nCentro,Alltrim(cwtfirms->nombre),oFnt1)
//imp_Center(oPrn, 1790,nCentro,'Para atenci贸n y quejas comunicarse al servicio T.A.S. Telefonos: 2-22-44-66 y 2-22-44-58',oFnt5)
EndPage
EndPrint

Sele DGPPEA01
Do While !Rlock()
Inkey(.5)
Enddo
Replace dgppea01->Impreso with .t.
Commit
unlock

Return Nil


Function dia2dig(campo)
local retval:=''
local dctos:=Str(Day(campo),2,0)

If Len(dctos) = 1
Retval:='0'+dctos +' de '+cMonth(campo)
Else
Retval:=dctos +' de '+cMonth(campo)
EndIf
Return Retval


plantilla del archivo txt

Para: {solicitante}

Esta autoridad municipal, le concede permiso provisional personal para {permiso},{comentarios}, sin afectar a terceras personas en el domicilio {direccion}, en la colonia {colonia}, con un horario {tiempo} del dia {del} al dia {al} {mes_y_a帽o}

El incumplimiento a lo estipulado sera聽 motivo de cancelaci贸n del mismo.
Donativo $ {pesos} al Fondo de


Asi me lo deja en archivo

Para: ANDRES GONZALEZ ESTRELLA

Esta autoridad municipal, le concede permiso provisional personal para TRABAJAR EN LO QUE REUNE REQUISITOS ,EL GIRO DE VENTA DE ALIMENTOS. ( LICENCIA EN PROCESO DE TRAMITE ), sin afectar a terceras personas en el domicilio AV. MEXICO NUM. 10, en la colonia MOJONERAS, con un horario del dia 7 de Mayo al dia 6 de Junio del 2008.

El incumplimiento a lo estipulado sera聽 motivo de cancelaci贸n del mismo.
Donativo $ 100.00 al Fondo de

Saludos, cualquier dudad estoy a tus ordenes.
Tosko

Posts: 28
Joined: Sat Oct 29, 2005 12:01 AM
imagenes...
Posted: Tue Dec 02, 2008 03:40 PM


la Salida:



Gracias a imaXenes.com por el servicio de alojamiento de im谩genes.

tosko

Continue the discussion