Necesito ayuda con Tree

Necesito ayuda con Tree

Postby Ramón J. » Wed Jan 19, 2022 10:25 pm

Hola a todos.

Estoy ahora tratando de hacer una función en la que se inscriban acuerdo de empresas en libros de inscripciones. Muchos de vosotros ya conoceréis lo que es un tomo de libro inscripciones del Registro de la Propiedad, por ejemplo, pero en este caso se trata de empresas en la que se inscriben acuerdos (no es el Registro Mercantil).

Pues estoy trantado de hacer con un splitter y un otree ver la forma de cómo hacerlo. Veréis, cada tomo contiene 200 folios (tamaño un poco menor que un A3), por anverso y reverso, y de lo que se trata es de digitalizar lo que hay en papel y continuar con el pdf generado de los libro sy a partir de ahí hacer las inscripciones con el acrobat profesional. El otree más o menos lo tengo claro, pero me gustaría que se vería en la ventana de la derecha el pdf.

Aquí tenéis una composición de la de lo que sería la idea:
Image

El código con el que he empezado el tema es este:

Code: Select all  Expand view
#include "FiveWin.ch"
#include "Splitter.ch"

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

function Main()

   local oWnd, oBar, oTree, oItem1, oItem2, oBmp1, oBmp2, oImageList, oSplit

   DEFINE WINDOW oWnd FROM 3, 6 TO 20, 70 ;
      TITLE "Libro de registro de empresas"

   DEFINE BUTTONBAR oBar OF oWnd _3D

   DEFINE BUTTON RESOURCE "open" OF oBar ACTION oTree:aItems[ 1 ]:Expand() ;
      TOOLTIP "Expand" NOBORDER

   DEFINE BUTTON RESOURCE "close" OF oBar ACTION oTree:aItems[ 1 ]:Collapse() ;
      TOOLTIP "Colapse" NOBORDER

   DEFINE BUTTON RESOURCE "open" OF oBar ACTION oTree:ExpandAll() ;
      TOOLTIP "Expand all items" NOBORDER

   DEFINE BUTTON RESOURCE "close" OF oBar ACTION oTree:ColapseAll() ;
      TOOLTIP "Colapse all items" NOBORDER

   DEFINE BUTTON RESOURCE "close" OF oBar ACTION oTree:GetSelected():SetText( Time() ) ;
      TOOLTIP "Change Text" NOBORDER

   oImageList = TImageList():New()

   oBmp1 = TBitmap():Define( "folder",, oWnd )
   oBmp2 = TBitmap():Define( "fldMask",, oWnd )

   oImageList:Add( oBmp1, oBmp2 )

   oTree = TTreeView():New( 2, 0, oWnd )

   oTree:bChanged = { || oWnd:SetText( If( oTree:GetSelected():GetParent() != nil,;
                                           oTree:GetSelected():GetParent():cPrompt + " + ", "" ) + ;
                                       oTree:GetSelText() ) }
   oTree:SetImageList( oImageList )

   oItem1 = oTree:Add( "Tomo 1" )

   oItem2 = oItem1:Add( "Folio 1" )
      oItem2:Add( "Anverso" )
      oItem2:Add( "Reverso" )

     oItem2 = oTree:Add( "Tomo 2" )

      oItem2 = oItem2:Add( "Folio 2" )
      oItem2:Add( "Anverso" )
      oItem2:Add( "Reverso" )

   



   @ 29, 200 SPLITTER oSplit ;
      VERTICAL _3DLOOK ;
      PREVIOUS CONTROLS oTree ;
      SIZE 4, 200 PIXEL ;
      OF oWnd

   ACTIVATE WINDOW oWnd ;
      ON RESIZE oSplit:AdjClient()

   oImageList:End()
   oBmp1:End()
   oBmp2:End()

return nil

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

procedure AppSys  // Xbase++ requirement

return

//----------------------------------------------------------------------------//
 
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Necesito ayuda con Tree

Postby cnavarro » Wed Jan 19, 2022 11:38 pm

Bueno, yo no creo que en tu caso sea necesario un tree ( usaria un browse con una lista de los "Folios" nada más ), pero a ver si te sirve de algo
Tendrás que aplicar en el bChange del oTree o en el click
Pero, para que veas lo que quiero decir, creo que te puede servir.

Code: Select all  Expand view

#include "FiveWin.ch"
#include "Splitter.ch"

Static oPdfActX
Static oPdfPdfX

// Pon un fichero que exista
Static cFilePdf  := "testrtf.pdf"

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

function Main()

   local oWnd, oBar, oTree, oItem1, oItem2, oBmp1, oBmp2, oImageList, oSplit

   DEFINE WINDOW oWnd FROM 3, 6 TO 700, 1200 PIXEL ;
      TITLE "Libro de registro de empresas"

   DEFINE BUTTONBAR oBar OF oWnd _3D

   DEFINE BUTTON RESOURCE "open" OF oBar ACTION oTree:aItems[ 1 ]:Expand() ;
      TOOLTIP "Expand" NOBORDER

   DEFINE BUTTON RESOURCE "close" OF oBar ACTION oTree:aItems[ 1 ]:Collapse() ;
      TOOLTIP "Colapse" NOBORDER

   DEFINE BUTTON RESOURCE "open" OF oBar ACTION oTree:ExpandAll() ;
      TOOLTIP "Expand all items" NOBORDER

   DEFINE BUTTON RESOURCE "close" OF oBar ACTION oTree:ColapseAll() ;
      TOOLTIP "Colapse all items" NOBORDER

   DEFINE BUTTON RESOURCE "close" OF oBar ACTION oTree:GetSelected():SetText( Time() ) ;
      TOOLTIP "Change Text" NOBORDER


   oImageList = TImageList():New()

   oBmp1 = TBitmap():Define( "folder",, oWnd )
   oBmp2 = TBitmap():Define( "fldMask",, oWnd )

   oImageList:Add( oBmp1, oBmp2 )

   oTree = TTreeView():New( 2, 0, oWnd )

   oTree:bChanged = { || oWnd:SetText( If( oTree:GetSelected():GetParent() != nil,;
                                           oTree:GetSelected():GetParent():cPrompt + " + ", "" ) + ;
                                       oTree:GetSelText() ) }
   oTree:SetImageList( oImageList )

   oItem1 = oTree:Add( "Tomo 1" )

   oItem2 = oItem1:Add( "Folio 1" )
      oItem2:Add( "Anverso" )
      oItem2:Add( "Reverso" )

     oItem2 = oTree:Add( "Tomo 2" )

      oItem2 = oItem2:Add( "Folio 2" )
      oItem2:Add( "Anverso" )
      oItem2:Add( "Reverso" )

   @ 29, 200 SPLITTER oSplit ;
      VERTICAL _3DLOOK ;
      PREVIOUS CONTROLS oTree ;
      HINDS CONTROLS oPdfActX ;
      SIZE 4, 200 PIXEL ;
      OF oWnd

   ACTIVATE WINDOW oWnd ;
      ON INIT ( ShowPdf1( oWnd, cFilePdf, oBar:nBottom + 2, oSplit:nRight + 2, oWnd:nWidth - oSplit:nRight - 10, oWnd:nBottom - oBar:nBottom - 20 ) ) ;
      ON RESIZE oSplit:AdjClient()

   oImageList:End()
   oBmp1:End()
   oBmp2:End()

return nil

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

procedure AppSys  // Xbase++ requirement

return

//----------------------------------------------------------------------------//
 
Static Function ShowPDF1( oWnd, cFile, nT, nL, nW, nH )

   hb_default( @nT, 0 )
   hb_default( @nL, 0 )
   hb_default( @nW, oWnd:nWidth/2 - 4 )
   hb_default( @nH, oWnd:nHeight/2 - 19 )
   if Valtype( oPdfActX ) != "O"
      oPdfActX  := TActiveX():New( oWnd, "AcroPDF.PDF.1", nT, nL, nW, nH )
      if !Empty( oPdfActX ) .and. Valtype( oPdfActX ) = "O"
         //oPdfActX:nDlgCode = DLGC_WANTALLKEYS
         //oPdfActX:bLClicked := { || MsgInfo( "Hello1" ) }
         //oPdfActX:bGotFocus := { || oWnd:SetFocus() }
         //oPdfActX:bOnEvent := { | event, aParams, pParams | EventInfo( event, aParams, pParams ) }
         VerDocPdf( cFile )
      endif
   else
      VerDocPdf( cFile )
   endif
Return oPdfActX

//----------------------------------------------------------------------------//
// https://metacpan.org/pod/Wx::ActiveX::Acrobat#SetPageMode
//----------------------------------------------------------------------------//

Static Function VerDocPdf( cFile )
   local cOld
   local oE
   hb_default( @cFile, "" )
   cFile    := AllTrim( cFile )
   if Valtype( oPdfActX ) = "O"
      TRY
         SysWait( 0.5 )
         cOld   := oPdfActX:Src()
         if ( Valtype( cOld ) = "C" .and. cFile != "-" .and. ;
              Upper( AllTrim( cFile ) ) != Upper( AllTrim( cOld ) ) ) .or. Empty( cOld )
            oPdfActX:Do( "GetVersions" )
            oPdfActX:Do( "setShowToolbar", 0 )
            oPdfActX:Do( "setShowScrollbars", 0 )
            //oPdfActX:Do( "setView", "fitB" ) //"fitH" )
            oPdfActX:Do( "setPageMode", "none" )  //, "bookmarks" )  //

//            oPdfActX:Do( "setLayoutMode", "SinglePage" )
            oPdfActX:Do( "setLayoutMode", "TwoColumnLeft" )

            oPdfActX:Do( "LoadFile", cFile )
            oPdfActX:Do( "SetCurrentPage", 1 )
            //oPdfActX:Do( "postMessage", 0 )

            // Ver "setView"
            //oPdfActX:SetZoom( 51.0 )        // 1 .. 100 %

            oPdfActX:Show()
            //oPdfActX:Refresh()
            //SysRefresh()
         endif
      CATCH oE
         if cFile != "-" .and. !Empty( cFile )
            MsgInfo( cFile, "No se ha podido cargar el Documento" )
         endif
      END
   endif

Return oPdfActX

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

Static Function EventInfo( event, aParams, pParams )

   local n
   local cMsg := "Event: " + cValToChar( event ) + CRLF
   cMsg += "Params: " + CRLF
   for n := 1 to Len( aParams )
      cMsg += cValToChar( aParams[ n ] ) + CRLF
   next
Return cMsg

//----------------------------------------------------------------------------//
 
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
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Necesito ayuda con Tree

Postby Antonio Linares » Thu Jan 20, 2022 6:42 am

Ramón,

Revisa FWH\samples\pim.prg

buildh.bat pim

Ya que tiene mucha de la funcionalidad que comentas, la diferencia es que en el lado derecho se usa un control RichEdit,
pero desde ese RichEdit puedes mostrar letras de distintos tamaños y colores, e imágenes :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Necesito ayuda con Tree

Postby Ramón J. » Thu Jan 20, 2022 7:10 am

Gracias, Cristóbal, Antonio. Probaré vuestras sugerencias.

Saludos
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Necesito ayuda con Tree

Postby Ramón J. » Thu Jan 20, 2022 7:22 am

Antonio, perdona que te moleste. He intentado compilar pimp.prg como me has sugerido pero me da este error:
 
Compiling...
Harbour 3.2.0dev (r2008190002)
Copyright (c) 1999-2020, https://harbour.github.io/
Compiling 'pim.prg' and generating preprocessed output to 'pim.ppo'...
pim.prg(6) Error F0029 Can't open #include file 'c:\harbour\contrib\xhb\hbxml.ch'
* Compile errors *

C:\fwh\samples>

Efectivamente, dentro de Harbour no tengo la carpeta de contrib. ¿Dónde se puede conseguir para compilar pim.prg y probarlo?

Un saludo
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Necesito ayuda con Tree

Postby Ramón J. » Thu Jan 20, 2022 7:37 am

Buenos días, Cristóbal

Al compilar tu ejemplo, me da este error:

Image

Saludos
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Necesito ayuda con Tree

Postby Antonio Linares » Thu Jan 20, 2022 8:44 am

Ramón J. wrote:Antonio, perdona que te moleste. He intentado compilar pimp.prg como me has sugerido pero me da este error:
 
Compiling...
Harbour 3.2.0dev (r2008190002)
Copyright (c) 1999-2020, https://harbour.github.io/
Compiling 'pim.prg' and generating preprocessed output to 'pim.ppo'...
pim.prg(6) Error F0029 Can't open #include file 'c:\harbour\contrib\xhb\hbxml.ch'
* Compile errors *

C:\fwh\samples>

Efectivamente, dentro de Harbour no tengo la carpeta de contrib. ¿Dónde se puede conseguir para compilar pim.prg y probarlo?

Un saludo


https://github.com/harbour/core/tree/master/contrib
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Necesito ayuda con Tree

Postby Ramón J. » Thu Jan 20, 2022 9:29 am

Gracias, Antonio
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Necesito ayuda con Tree

Postby cnavarro » Thu Jan 20, 2022 10:52 am

Pues es muy raro
Si construyes el ejemplo tal cual lo he puesto me funciona correctamente
Image
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
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Necesito ayuda con Tree

Postby karinha » Thu Jan 20, 2022 11:47 am

cnavarro wrote:Pues es muy raro
Si construyes el ejemplo tal cual lo he puesto me funciona correctamente
Image


Desde cual version esto ejiste? Esto no funciona bien.

Code: Select all  Expand view

   ACTIVATE WINDOW oWnd ;
      ON INIT ( ShowPdf1( oWnd, cFilePdf, oBar:nBottom + 2, oSplit:nRight + 2, oWnd:nWidth - oSplit:nRight - 10, oWnd:nBottom - oBar:nBottom - 20 ) ) ;
      ON RESIZE oSplit:AdjClient()
 


Saludos
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Necesito ayuda con Tree

Postby Ramón J. » Thu Jan 20, 2022 1:58 pm

Cristóbal, lo he copiado tal cual lo has puesto y lo he compilado. No he tocado nada. Tengo la versión FWH 20-12

Saludos
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Necesito ayuda con Tree

Postby cnavarro » Thu Jan 20, 2022 4:45 pm

Ramón, prueba comentando la clausula ON RESIZE y me dices
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
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Necesito ayuda con Tree

Postby Ramón J. » Thu Jan 20, 2022 7:10 pm

Cristóbal, he probado quitando la claúsula ON RESIZE y ya no da error, pero no muestra el pdf. Me he asegurado de que el pdf "testrtf.pdf" está en el mismo directorio que el exe que genera.

Mira cómo sale:

Image
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Necesito ayuda con Tree

Postby karinha » Thu Jan 20, 2022 7:36 pm

Master Navarro, compilando PIM.PRG me genera este error, que esta errado?


Code: Select all  Expand view



PIM.prg(214) Error E0030  Syntax error: "syntax error at '@'"

   @ 0, 205 RICHEDIT5 oMemo VAR cItemText OF oWndData SIZE 300, 100 PIXEL BARBUTTON ;
      ON CHANGE ( cItemText := oMemo:SaveAsRTF(), oBtnSave:Enable(), oMemo:Cargo := .T.,;
                  If( oTree:GetSelected() != nil, oTree:GetSelected():Cargo := cItemText,) )
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Necesito ayuda con Tree

Postby Ramón J. » Thu Jan 20, 2022 8:04 pm

João

Code: Select all  Expand view
@ 0, 205 RICHEDIT5 oMemo VAR cItemText OF oWndData SIZE 300, 100 PIXEL BARBUTTON ;
      ON CHANGE ( cItemText := oMemo:SaveAsRTF(), oBtnSave:Enable(), oMemo:Cargo := .T.,;
                  If( oTree:GetSelected() != nil, oTree:GetSelected():Cargo := cItemText,) )                  
                 
   oMemo:Cargo = .F. // it has not changed   <----- João, esto lo tienes?
 
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 98 guests