FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour XBrowse y campo MEMO
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM

XBrowse y campo MEMO

Posted: Sat Apr 19, 2008 10:19 AM

Saludos de nuevo,

a todos en general y a Antonio en particular.

Estoy visializando una base de datos con XBrowse y uno de sus campos es MEMO.

Cuando muestro el XBrowse, solo enseña la primera linea del campo memo.
¿alguien sabe si se puede visualizar todo el memo desde el mismo browse?

Salu2

Javier,

FWH 8.04 2008
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

XBrowse y campo MEMO

Posted: Sat Apr 19, 2008 04:32 PM

Javier,

No se puede visualizar todo el memo desde el mismo browse, pero lo que puedes hacer es mostrar un botón en esa celda que al pulsarlo abra un diálogo en donde se muestre el campo memo

La clase xbrowse proporciona esa funcionalidad (mostrar un botón). Vamos a prepararte un ejemplo

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM

XBrowse y campo MEMO

Posted: Sat Apr 19, 2008 07:53 PM

Ok, Gracias.

Javier,

FWH 8.04 2008
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

XBrowse y campo MEMO

Posted: Mon Apr 21, 2008 08:04 AM
Javier,

Aqui tienes un ejemplo funcionando:
/*
*
*	XBRMEMO.prg
*	21-04-2008 11:19 AM
*
*/


#include "FiveWin.Ch"
#include "xbrowse.ch"

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

function Main()

   local oWnd, oBrw, oCol

   If !File( "xbrmemo.dbf" )
      CreateTable()
   endif

   USE XBRMEMO

   DEFINE WINDOW oWnd

   @ 0,0 XBROWSE oBrw ;
      OF oWnd ;
      ALIAS "XBRMEMO" AUTOCOLS

   oCol  := oBrw:oCol( "Notes" )

   oCol:nWidth       := 100
   oCol:nEditType    := EDIT_BUTTON
   oCol:bEditBlock   := { | r, c, o | EditNotes( r, c, o ) }
   oCol:bOnPostEdit  := { | o, cVal | If ( cVal != nil, FIELD->Notes := cVal, ) }

   oBrw:CreateFromCode()
   oWnd:oclient := oBrw

   ACTIVATE WINDOW oWnd


return ( 0 )

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

static function CreateTable()

   local n
   local aFlds := { ;
      { "FLDID",      "N",  3, 0  }, ;
      { "FLDNAME",    "C", 10, 0  }, ;
      { "NOTES",      "M", 10, 0  }  }


   dbCreate( "XBRMEMO", aFlds )

   Use XBRMEMO

   for n := 1 to 5
      dbAppend()
      FIELD->FldID      := n
      FIELD->FldName    := {'ONE','TWO','THREE','FOUR','FIVE'}[ n ]
      FIELD->Notes      := "Notes for " + Str( n , 2 )

   next

   CLOSE DATA

return nil

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

static function EditNotes( nRow, nCol, oCol )

   local oDlg, oGet
   local lEdited    := .f.
   local cNotes     := FIELD->NOTES
   local aPoint

   aPoint           := ClientToScreen( oCol:oBrw:hWnd, { nRow, nCol } )
   nRow             := aPoint[ 1 ]
   nCol             := aPoint[ 2 ]

   DEFINE DIALOG oDlg FROM nRow, nCol TO nRow +  230, nCol + 200 PIXEL STYLE WS_POPUP
   @ 02,02 GET oGet VAR cNotes TEXT SIZE 96,96 PIXEL OF oDlg

   @ 102,002 BUTTON "Ok" SIZE 47,10 PIXEL OF oDlg ;
      ACTION ( lEdited := .t., oDlg:End() )
   @ 102,051 BUTTON "Cancel" SIZE 47,10 PIXEL OF oDlg ;
      ACTION ( lEdited := .f., oDlg:End() )

   ACTIVATE DIALOG oDlg

   lEdited        := lEdited .and. ( cNotes != FIELD->Notes )

return If( lEdited, cNotes, nil )

//----------------------------------------------------------------------------//
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM

XBrowse y campo MEMO

Posted: Mon Apr 21, 2008 08:26 PM

Ok, lo pondre en marcha a ver que tal va.
muuuchas gracias.

Javier,

FWH 8.04 2008

Continue the discussion