XBrowse y campo MEMO

XBrowse y campo MEMO

Postby jfafive » 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
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Postby Antonio Linares » Sat Apr 19, 2008 4: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42161
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jfafive » Sat Apr 19, 2008 7:53 pm

Ok, Gracias.
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Postby Antonio Linares » Mon Apr 21, 2008 8:04 am

Javier,

Aqui tienes un ejemplo funcionando:
Code: Select all  Expand view  RUN
/*
*
*   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
User avatar
Antonio Linares
Site Admin
 
Posts: 42161
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jfafive » Mon Apr 21, 2008 8:26 pm

Ok, lo pondre en marcha a ver que tal va.
muuuchas gracias.
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 62 guests