FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Cargar y mostrar un archivo PDF RESUELTO
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cargar y mostrar un archivo PDF
Posted: Thu Feb 27, 2014 05:27 PM

Armando, comenta // esto:

oBrx:bKeyCount := {|| oRsAdj:RecordCount() }

Que retorna ahora?

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cargar y mostrar un archivo PDF
Posted: Thu Feb 27, 2014 06:09 PM
Complete el codigo abajo, conforme tu modelo.

Y envia por correo: joao@pleno.com.br

en archivo.zip

Gracias,

Code (fw): Select all Collapse
#include "FiveWin.ch"
#include "xbrowse.ch"

function Main()

   local oDlg, oBrw, nKey := VK_RETURN

   DEFINE DIALOG oDlg SIZE 300, 200

   @ 0, 0 XBROWSE oBrw OF oDlg ARRAY { { "one","two","three" } } AUTOCOLS
      
   oBrw:CreateFromCode()

   oBrw:nMarqueeStyle          := MARQSTYLE_HIGHLROW       // Con cursor de todo el renglón
   oBrw:nColDividerStyle       := LINESTYLE_LIGHTGRAY
   oBrw:nRowDividerStyle       := LINESTYLE_LIGHTGRAY  // ok

   oBrw:lColDividerComplete    := (.F.)                            // (.T.) Matiene siempre llena la pantalla

   oBrw:nHeaderHeight          := 25                               // Altura de los encabezados
   oBrw:nRowHeight             := 22                               // Altura del renglón

   oBrw:nHeaderLines           := 1                                // Número de líneas de encabezados
   oBrw:nDataLines             := 1                                // Número de líneas de detalle
   oBrw:nFooterHeight          := 20                               // Altura del footer
   oBrw:nFooterLines           := 1                                // Número de líneas en el footer
   oBrw:lFooter                := (.T.)                            // Sí queremos línea de footer
   oBrw:lHScroll               := (.F.)                            // Quitamos el scroll horizontal
   oBrw:bChange                := { || PonImagen(oFld,oBrw,oImagen) }

   /* // ????
   aCols[ 1]                   := oBrw:AddCol()

   aCols[ 1]:bStrData          := { || IF(oRsAdj:RecordCount() > 0,oRsAdj:Fields("ADJ_FIL"):Value,SPACE(1))}

   aCols[ 1]:cHeader           := "Nombre del archivo"
   aCols[ 1]:nHeadStrAlign     := AL_LEFT
   aCols[ 1]:nDataStrAlign     := AL_LEFT
   aCols[ 1]:nWidth                := 70
   */

   oBrw:l2007                  := (.F.)
   oBrw:nStretchCol            := STRETCHCOL_LAST

   // ???
   oBrw:bClrHeader := { || {CLR_WHITE,CLR_BLACK} }
   oBrw:bClrStd    := { || {CLR_BLACK,CLR_WHITE} }
   oBrw:bClrFooter := { || {CLR_WHITE,CLR_BLACK} }

   // ???
   // oBrw:nRecSelColor   := oApp:nRowParClr                  // Triangulo de selección

   oBrw:bClrSel        := { || {CLR_BLACK,CLR_WHITE} }

   // ???
   //oBrw:bClrSel        := {|| IF( oRsAdj:AbsolutePosition % oApp:nRowsInt == 0 ,{ CLR_BLACK, oApp:nRowParClr },{ CLR_BLACK, oApp:nRowNonClr }) }
   //oBrw:bClrSelFocus   := { || {oApp:nFClrFocus,oApp:nBClrFocus} }

   oBrw:bGoTop     := { || IF( ! oRsAdj:BOF() .AND. ! oRsAdj:EOF(), oRsAdj:MoveFirst(), ) }
   oBrw:bGoBottom  := { || IF( ! oRsAdj:BOF() .AND. ! oRsAdj:EOF(), oRsAdj:MoveLast(), ) }

   oBrw:bBof       := { || oRsAdj:BOF() }
   oBrw:bEof       := { || oRsAdj:EOF() }

   // ???
   // oBrw:bBookMark  := { | uBm | IF( oRsAdj:BOF() .AND. oRsAdj:EOF(), 0, IF( uBm == NIL, oRsAdj:BookMark, oRsAdj:BookMark := uBm ) ) }
   // oBrw:bKeyNo     := { | n | IF( oRsAdj:BOF() .AND. oRsAdj:EOF(), 0, IF( n == NIL, oRsAdj:AbsolutePosition, oRsAdj:AbsolutePosition := n ) ) }
   // oBrw:bKeyCount  := {|| oRsAdj:RecordCount() }

   // ????
   // oBrw:SetAdo(oRsAdj)
   // oBrw:bClrStd    := {|| IF( oRsAdj:AbsolutePosition % oApp:nRowsInt == 0 ,{ CLR_BLACK, oApp:nRowParClr },{ CLR_BLACK, oApp:nRowNonClr }) }
   // oBrw:nRecSelColor   := oApp:nRowParClr

   oBrw:bKeyDown   = { | nKey, nFlags | IIF( nKey == VK_DELETE, DltAdj( oDlg, oBrw ), ) }

   oBrw:bLDblClick = { | nRow, nCol, nFlags | MsgInfo( "Left Doble Click" ) }
      
   ACTIVATE DIALOG oDlg CENTER ON INIT ( oDlg:oClient := oBrw, oDlg:Resize() )

return nil

Static function DltAdj( oDlg, oBrw )

   ? "Wow... Go on..."

   oBrw:Refresh()

Return Nil

function PonImagen(oFld,oBrw,oImagen)

return nil


Salu2.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Cargar y mostrar un archivo PDF
Posted: Thu Feb 27, 2014 06:27 PM

Karinha:

Ajustando tu ejemplo con array funciona bien, yo uso recordset y ahí ya no funciona.

Que deseas que te envíe?

Saludos y en verdad aprecio tu esfuerzo

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cargar y mostrar un archivo PDF
Posted: Thu Feb 27, 2014 06:44 PM

No uso xbrowse, que hace recordset? És necesario mismo?

Mira en \samples\TESTXBR3.PRG si ayuda.

No necesita enviar un ejemplo autocontenido.

Salu2.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Cargar y mostrar un archivo PDF
Posted: Thu Feb 27, 2014 06:54 PM
Karinha:

Usando el mismo código solo cambiando a una de estas dos líneas
Code (fw): Select all Collapse
oBrx:blDblClick             := { | nRow, nCol, nKey | Editar(oBrx)}
//oBrx:blDblClick           := { | nRow, nCol, nKey | MuestraPDF(oBrx) }


Con la primera línea funciona de 100 pero
Con la segunda línea se queda congelado, tengo que ir al administrador de tareas. :-)

Este es el código de la función MuestraPDF, no me muestra el MsgInfo("HOLA")
Code (fw): Select all Collapse
/*
============================================================================
============================================================================
*/
STATIC FUNCTION MuestraPDF()
   LOCAL oWndPdf, oPdf, cTmp, cFilePdf

    MsgInfo("HOLA! ")
RETURN(.T.)


El recordset es para trabajar tablas con MySql.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cargar y mostrar un archivo PDF
Posted: Thu Feb 27, 2014 07:03 PM
Cambie para:

PRIV nKey := VK_RETURN

Code (fw): Select all Collapse
FUNCTION EditarPDF( oBrx )

   LOCAL oWndPdf, oPdf, cTmp, cFilePdf

    MsgInfo("HOLA! ")

RETURN(.T.)


salu2.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Cargar y mostrar un archivo PDF
Posted: Thu Feb 27, 2014 08:00 PM

Karinha:

Tal parece que el problema va entre diálogos y ventanas, finalmente lo estoy resolviendo con un simple

WaitRun()

En verdad aprecio todo el tiempo e interés por ayudarme.

Un abrazo

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Cargar y mostrar un archivo PDF RESUELTO
Posted: Thu Feb 27, 2014 08:13 PM
Armando, la data aCols[ 1]:bLDClickData, creo que equivale al lDblClick que estabas usando
Habia entendido que tenías problemas en dicha data (no mostraba el mensaje "YES")
Lo que intentas hacer es que de una base de datos con los nombres de archivos .PDFs seleccionas con el raton para mostrarlo, es asi ?
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Cargar y mostrar un archivo PDF RESUELTO
Posted: Thu Feb 27, 2014 09:52 PM

Cristóbal:

Exacto, eso busco, que el usuario de un doble clic al renglón del browse que contiene
el nombre del fichero PDF a abrir y que este se abra con Acrobat Reader.

Como mencioné, con el mortal WaitRun() lo solucioné.

Como dice nuestro amigo R.F. "Estaba matando pulgas a cañonazos!."

Saludos y gracias por el aporte.

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero

Continue the discussion