FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Alquien tiene TxtPreview o TXTVIEW
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Alquien tiene TxtPreview o TXTVIEW
Posted: Thu Dec 11, 2014 07:20 PM
Antonio Linares wrote:Ruben,

Si la consigues publica por favor el enlace aqui y la guardamos en bitbucket :-)
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Alquien tiene TxtPreview o TXTVIEW
Posted: Thu Dec 11, 2014 07:23 PM
Antonio Linares wrote:Ruben,

Si la consigues publica por favor el enlace aqui y la guardamos en bitbucket :-)



Aqui esta del Enlace de TXYTVIEW

https://www.dropbox.com/s/9k2cmy4y9io6a ... W.PRG?dl=0
" rel="noopener">
https://www.dropbox.com/s/9k2cmy4y9io6a ... W.PRG?dl=0
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: Alquien tiene TxtPreview o TXTVIEW
Posted: Thu Dec 11, 2014 07:40 PM

Ruben prueba esta clase :

include "FiveWin.ch"

FUNCTION Main()
LOCAL oPen
PUBLIC oImp, aoFont[4], aAnchop[4]
SET DATE TO FRENCH
DEFINE PEN oPen WIDTH 5
IniImp(21.5, 27.9, 72, 90, "CompraVenta de Hacienda", .t., .t., .f., 1 )
PAGE
PrnBox (22, 7,28,89,oPen)

    PrnLine(30, 7,30,89,oPen)
        PrnLine(33, 7,33,89,oPen)
        prnLine(43, 7,43,89,oPen)

        PrnLine(45, 7,45,32,oPen)
        PrnLine(51, 7,51,32,oPen)
        PrnLine(53, 7,53,32,oPen)
        PrnLine(57, 7,57,32,oPen)
        PrnLine(43,62,43,89,oPen)
        PrnLine(54,62,54,89,oPen)
        PrnLine(45,36,45,57,oPen)
        PrnLine(52,36,52,57,oPen)
        PrnLine(45,62,45,89,oPen)
        PrnLine(52,62,52,89,oPen)

        //cabezal
        PrnSay(16,60, "Form.:   "+ "123425", aoFont[1],80)
        PrnSay(18, 8,"Empresa XXXXXX")
        PrnSay(18,60,Date())
        PrnSay(19, 8,"123456")
        PrnSay(19,60,1250)
        PrnSay(23, 8,"Productor:", aoFont[1],80)
        PrnSay(24, 8,"El Productor que vende", aoFont[1],80)
        PrnSay(23,45,"Consignatario:", aoFont[1],80)
        PrnSay(24,45,"El Consignatario que Vende", aoFont[1],80)
        PrnSay(25, 8,"RUT: "+"12 345678 9123", aoFont[1],80)
        PrnSay(25,30,"CI: " +"173216547",aoFont[1],80)
        PrnSay(25,45,"RUT: "+"12 345678 9123", aoFont[1],80)
        PrnSay(26, 8,"Dicose: "+"123 456 789", aoFont[1],80)
        PrnSay(26,45,"Dicose: "+"123 456 789", aoFont[1],80)
        PrnSay(27, 8,"Guia: "+"123456", aoFont[1],80)
        PrnSay(27,45,"Guia: "+"567890", aoFont[1],80)
        PrnSay(29, 8,"Tiene flete? ", aoFont[1],80)
        PrnSay(29, 21,.t., aoFont[1],80)
        PrnSay(35, 7, "Este es un texto largo escrito para utilizar 120 columnas en medio de un documento que estaba en 80 columnas" )

        PrnSay(63,8,"      ..............................     ...............................",aoFont[1],120)
        PrnSay(64,8,"            Firma del Comprador          Firma de Vendedor/Representante",aoFont[1],120)
    ENDPAGE
//Finalizo impresion
FinImp()
oPen:End()

RETURN NIL
/*Fin Funci贸n Main()


/
Funciones para imprimir con la clase tprint a la manera de la impresi贸n de clipper en modo consola.
/
/*
Funciones de Impresi贸n con clase tPrint


IniImp( nAncho, nLargo [, nFilas, nColumnas, cNom_spooler, lsel_imp, lpreview, lLnds ,nCopias ] )
    Configura la impresi贸n indicando: ancho y largo de p谩ginas en cms.
    cantidad de filas y columnas
    Nombre del spooler de impresi贸n
    Seleccion de Impresora
    si va Preview
    si es apaisado
    cantidad de copias
    (Como la impresi贸n de Consola pero con Tprint)
PrnSay( nFila, nColum, Var, oFuente[ , nC ] )
    Versi贸n del viejo Say de consola con la clase Tprint
PrnBox( nFila1, nCol1, nFila2, nCol2, oPen, nC )
    Imiprimir una caja con fila columna y fila columna estilo consola con tPrint
PrnLine( nFila1, nCol1, nFila2, nCol2, oPen, nC )
    Imprimir una l铆nea estilo consola con TPrint
FinImp()
    Cierre de la impresi贸n

FUNCIONES DE IMPRESI脫N

----------------------------------------------------------------------------------------------------------------------/
/

Variables p煤blicas requeridas en programa principal:
PUBLIC oImp, aoFont[4], aAnchop[4]
*/

include "Fivewin.ch"

FUNCTION IniImp(nAncho, nLargo, nFilas, nColumnas, cNom_spooler, lsel_imp, lpreview, lLnds ,nCopias)
/
Sintaxis:
IniImp( nAncho, nLargo [, nFilas, nColumnas, cNom_spooler, lsel_imp, lpreview, lLnds ,nCopias ] )
Requeridos:
cAncho - Ancho de pagina en cms.
cLargo - Largo de p谩gina en cms.
Opcionales:
nFilas - Cantidad de filas en el largo DEFAULT 60
nColumnas - Cantidad de columnas en el ancho 80 o 120 DEFAULT 80
cNom_Spooler - Nombre del listado en Spooler de impresion de Windows DEFAULT "Listado"
lSel_imp - .t. para que el usuario seleccione la impresora que usar谩 DEFAULT .t.
lPreview - .t. para que se vea una vista preliminar. DEFAULT .f.
lLnds - .t. para Apaisado DEFAULT .f.
nCopias - Cantidad de copias DEFAULT 1
/

LOCAL cFuente
cFuente:="Lucida Console" //Se utiliza aqu铆 una fuente escalar
//evitando as铆 mala ubicaci贸n de caracteres
//Valores default
IF cNom_Spooler=NIL
cNom_Spooler="Listado"
ENDIF
IF lSel_Imp=NIL
lSel_imp=.t.
ENDIF
IF lPreview=NIL
lPreview=.f.
ENDIF
IF lLnds=NIL
lLnds=.f.
ENDIF
IF nCopias=NIL
nCopias=1
ENDIF

PrnSetSize(nAncho*100, nLargo*100)

//Creo objeto tprinter
IF !lSel_imp .AND. !lPreview
PRINT oImp TITLE cNom_Spooler
ELSEIF lSel_imp .and. !lPreview
PRINT oImp TITLE cNom_Spooler FROM USER
ELSEIF !lSel_imp .and. lPreview
PRINT oImp TITLE cNom_Spooler PREVIEW
ELSEIF lSel_imp .and. lPreview
PRINT oImp TITLE cNom_Spooler FROM USER PREVIEW
ENDIF
IF lLnds
oImp:SetLandscape()
ENDIF
//establezco las copias
oImp:SetCopies(nCopias)
//calculo anchos de fila y columna segun la resolucion de la impresora
aAnchop[1]:=oImp:nVertRes()/nFilas
aAnchop[2]:=oImp:nHorzRes()/nColumnas //ancho en pixels de columna
aAnchop[3]:=nColumnas //hago publica nColumas en vector
aAnchop[4]:=lLnds //hago publica lLnds en el vector
//Defino Fonts
//Font normal
DEFINE FONT aoFont[1] NAME "Lucida Console" SIZE 0, -10 OF oImp
//Font Comprimida
DEFINE FONT aoFont[2] NAME "Lucida Console" SIZE 0, -8 OF oImp
//Font Muy Grande
DEFINE FONT aoFont[3] NAME "Lucida Console" SIZE 0, -24 OF oImp
//Font Grande
DEFINE FONT aoFont[4] NAME "Lucida Console" SIZE 0, -16 OF oImp
RETURN NIL

/Fin Funcion IniImp
----------------------------------------------------------------------------------------------------------------------
/
FUNCTION PrnSay( nFila, nColum, Var, oFuente, nC )
LOCAL i, wVar, nesp, nCorr
/*Sintaxis:
PrnSay( nFila, nColum, Var [, oFuente, nC ] )
nFila es la fila donde se hace la impresion
ncolum es la columna donde comienza
var es una variable de cualquier tipo que contiene lo que se va a imprimir
nC es el total de columnas base (80 o 120)

El par谩metro var es convertido a texto sin espacios al final y alineado a la derecha.

/
IF nC=NIL
//Si no se especifica cantidad de columnas uso las especificadas en IniImp()
aAnchop[2]:=oImp:nHorzRes()/aAnchop[3]
ELSE
//Si se especifico cant. de columnas recalculo el ancho de columna
aAnchop[2]:=oImp:nHorzRes()/nC
ENDIF
//Convierto Var a texto para imprimir
IF VALTYPE(Var)="A" .or. VALTYPE(Var)="B" .or. VALTYPE(Var)="M" .or. VALTYPE(Var)="O" .or. VALTYPE(Var)="U"
wVar=Space(1)
ELSEIF valtype(Var)="C"
wVar=Rtrim(Var)
ELSEIF VALTYPE(Var)="D"
wVar:=Transform(Var,"@D")
ELSEIF VALTYPE(Var)="L"
IF Var
wVar="Si"
ELSE
wVar="No"
ENDIF
ELSEIF VALTYPE(Var)="N"
wVar:=Alltrim(Str(Var))
ENDIF
//paso fila y columna a pixels
nFila := nFila * aAnchop[1]
nColum := nColum * aAnchop[2] //Columna en pixels
nesp=( len(wVar) - len( Ltrim( wVar ) ) ) * aAnchop[2]
wVar:=Ltrim(wVar)
IF wVar<>Space(1)
IF Pcount()=3 //Si no indique fuente
oImp:Say( nFila, (nColum + nesp), wVar, if( aAnchop[3]<=80, aoFont[1], If( aAnchop[4], aoFont[1], aoFont[2] ) ) )
// si menos 80 cols uso aofont[1] sino si es apaisado, aofont[1] o sino aofont[2]
ELSE //si indique fuente
oImp:Say(nFila,(nColum + nesp),wVar, oFuente)
ENDIF
ENDIF
RETURN NIL
/
Fin Funcion PrnSay
----------------------------------------------------------------------------------------------------------------------/
FUNCTION PrnBox(nFila1, nCol1, nFila2, nCol2, oPen, nC)
/
Sintaxis:
PrnBox( nFila, nCol1, nFila2, nCol2, oPen, nC )
nFila es la fila donde se hace la impresion
ncolum es la columna donde comienza
var es una variable de cualquier tipo que contiene lo que se va a imprimir
nC es el total de columnas base (80 o 120)
*/
IF nC=NIL
//Si no se especifica cantidad de columnas uso las especificadas en IniImp()
aAnchop[2]:=oImp:nHorzRes()/aAnchop[3]
ELSE
//Si se especifico cant. de columnas recalculo el ancho de columna
aAnchop[2]:=oImp:nHorzRes()/nC
ENDIF
//paso fila y columna a pixels
nFila1 := nFila1 * aAnchop[1]
nCol1 := nCol1 * aAnchop[2]
nFila2 := nFila2 * aAnchop[1]
nCol2 := nCol2 * aAnchop[2]
//dibujo el cuadro
oImp:Box(nFila1, nCol1, nFila2, nCol2, oPen)
RETURN NIL

/Fin Funcion PrnBox
---------------------------------------------------------------------------------------------------------------------
/
FUNCTION PrnLine(nFila1, nCol1, nFila2, nCol2, oPen, nC)
IF Pcount()=6
//si se especifico cant. de columnas recalculo el ancho de columna
aAnchop[2]:=oImp:nHorzRes()/nC
ELSE
//Si no se especifica cantidad de columnas uso las especificadas en IniImp()
aAnchop[2]:=oImp:nHorzRes()/aAnchop[3]
ENDIF
//paso fila y columna a pixels
nFila1 := nFila1 * aAnchop[1]
nCol1 := nCol1 * aAnchop[2]
nFila2 := nFila2 * aAnchop[1]
nCol2 := nCol2 * aAnchop[2]
//Dibujo la linea
oImp:Line(nFila1, nCol1, nFila2, nCol2, oPen)
RETURN NIL
/Fin Funcion PrnLine
---------------------------------------------------------------------------------------------------------------------
/
FUNCTION FinImp()
//Destruyo las fuentes
//finalizo la impresi贸n
ENDPRINT
//elimino los fonts
aoFont[1]:End()
aoFont[2]:End()
aoFont[3]:End()
RETURN NIL
/*Fin Funcion FinImp


Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Alquien tiene TxtPreview o TXTVIEW
Posted: Fri Dec 12, 2014 08:15 AM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Alquien tiene TxtPreview o TXTVIEW cerrar vtna con ESC
Posted: Fri Jan 20, 2017 09:08 PM

Para la Gente que trabaja con txtview,
han logrado cerrar la ventana del preview con la tecla Esc en modo ejecuci贸n?

podriar darme una ayudita

Gracias

fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql

Continue the discussion