FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour tamaño renglones xbrowse
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
tamaño renglones xbrowse
Posted: Thu Dec 22, 2011 06:49 PM
hola foro,

Me inetersa tener de diferenetes tamaños en renglones en un xbrowse, ya que en algunos casos algunos productos tienen algunas notas( color rojo y este campo es un MEMO), por lo tanto el tamaño puede variar, alguna idea de como hacerlo?
adjunto imagen como me gustaria que quedara, (el producto + notas un solo renglon)



Uploaded with ImageShack.us

gracias
paco
____________________

Paco
Posts: 328
Joined: Fri May 19, 2006 04:08 PM
Re: tamaño renglones xbrowse
Posted: Thu Dec 22, 2011 07:36 PM

Francisco en "Samples" fíjate en Testmerg.prg. Ahi hace lo que vos queres.
Un abrazo.

FWH 32/64 14.04

Harbour 3.2.0 (r1306211258)

PellesC
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Re: tamaño renglones xbrowse
Posted: Thu Dec 22, 2011 08:06 PM

Gracias Loco,
le echare un vistazo
salu2
paco

____________________

Paco
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Re: tamaño renglones xbrowse
Posted: Fri Dec 23, 2011 04:02 PM

parece que no me funciono :-(

alguna otra sugerencia??
saludos
paco

____________________

Paco
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: tamaño renglones xbrowse
Posted: Sat Dec 24, 2011 02:49 PM
Loco, Francisco

I am following this thread with much interest .. I posted a thread similar to this question in the English Forum and Rao helped in creating a function to AutoSize a row based on the character depth of the Memo column .. unfortunately, the depth of the column once set .. would not resize based on the actual depth of the Memo column of each row ..

viewtopic.php?f=3&t=21601&p=114995#p114995

I tested my code and added the two columns I wanted merged like in the .. TestMerg.prg sample :

// Following two lines for vertical cell merging
oBrw:lMergeVert := .t.
oBrw:Description:lMergeVert := .t.

But it did not work :-)

Rick Lipkin

Code (fw): Select all Collapse
oRsReq:Filter := ""
oRsReq:Filter := "datereceived = null and datecancelled = null"

lOK := .F.
DEFINE ICON oICO RESOURCE "CLIENTS"

DEFINE WINDOW oWnd1                        ;
      FROM 0,0 to 35,100                   ;
      TITLE cTITLE                         ;
      MENU Buildmenu( oRsReq )             ;
      ICON oICO                            ;
      NOSYSMENU                            ;
      NOMINIMIZE                           ;
      NOZOOM                               ;
      MDICHILD

@ 0, 0 xBROWSE oBrw of oWnd1               ;
       RECORDSET oRsReq                    ;
       COLUMNS "PARTDESC",                 ; // insert for stock
               "CPHONE1",                  ;
               "VENDOR",                   ;
               "VPHONE1",                  ;
               "BIN",                      ;
               "STOCKNO",                  ;
               "DATEREQUESTED",            ;
               "DATEORDERED",              ;
               "DATESHIPPED",              ;
               "DATERECEIVED",             ;
               "DATECANCELLED",            ;
               "REQUESTNO"                 ;
       COLSIZES 138,75,100,75,33,80,65,65,65,65,65,65;
       HEADERS "Description",              ; // insert for stock
               "CustPhone",                ;
               "Vendor",                   ;
               "VendPhone",                ;
               "Bin",                      ;
               "Part Number",              ;
               "Requested",                ;
               "Ordered",                  ;
               "Shipped",                  ;
               "Received",                 ;
               "Cancelled",                ;
               "Request"                   ;
       AUTOSORT AUTOCOLS LINES CELL

       oWnd1:oClient := oBrw

   *   oBrw:nRowHeight := 45

    ADD oCol TO oBrw AT 1 DATA {|x| x := _ChkCust(oRsReq:Fields("clname"):Value,;
                oRsReq:Fields("cfname"):Value)  } HEADER "Customer" size 110

       oBrw:lFooter   := .t.
       oCol           := oBrw:aCols[ 1 ]
       oCol:bFooter   := { || Ltrim( Str( oBrw:KeyNo() ) ) + " / " + LTrim( Str( oBrw:KeyCount() ) ) }
       oCol:cHeader   := "Customer"
       oBrw:bChange   := { || oCol:RefreshFooter() }

       ADD oCol TO oBrw AT 8 DATA {|x| x := _ChkStock(oRsReq:Fields("OutOfStock"):Value)  } HEADER "For Stock" size 55

       oCol := oBrw:aCols[ 9 ]
       oCol:bStrData := { |x| x := if(oRsReq:eof,,oRsReq:Fields("DateRequested"):Value), If( Empty(x), '00/00/0000',DToC(x) ) }

       oCol := oBrw:aCols[ 10 ]
       oCol:bStrData := { |x| x := if(oRsReq:eof,,oRsReq:Fields("DateOrdered"):Value), If( Empty(x), '00/00/0000',DToC(x) ) }

       oCol := oBrw:aCols[ 11 ]
       oCol:bStrData := { |x| x := if(oRsReq:eof,,oRsReq:Fields("DateShipped"):Value), If( Empty(x), '00/00/0000',DToC(x) ) }

       oCol := oBrw:aCols[ 12 ]
       oCol:bStrData := { |x| x := if(oRsReq:eof,,oRsReq:Fields("DateReceived"):Value), If( Empty(x), '00/00/0000',DToC(x) ) }

       oCol := oBrw:aCols[ 13 ]
       oCol:bStrData := { |x| x := if(oRsReq:eof,,oRsReq:Fields("DateCancelled"):Value), If( Empty(x), '00/00/0000',DToC(x) ) }

       oBrw:aCols[ 2 ]:cDataType := "M"  // description

       // Following two lines for vertical cell merging
       oBrw:Customer:lMergeVert       := .t.
       oBrw:Description:lMergeVert    := .t.

       oBrw:bRClicked  := { | nRow, nCol | ShowPopup(oBrw,nROW,nCOL,;
                                           oRsReq,oBtn1,oBtn2,oBtn3,oBtn4,oBtn5,oBtn6 ) }
       oBrw:bLDblClick := { |nRow,nCol | _ReqView( "V", oRsReq,oBtn1,oBtn2,oBtn3,oBtn4,oBtn5,oBtn6,oWndFind) }
       oBrw:bKeyDown   := { |nKey| _Manual( nKey,oRsReq,oBtn1,oBtn2,oBtn3,oBtn4,oBtn5,oBtn6,oBrw ) }

       oBrw:bClrStd := {|| {CLR_BLACK, if( _CHkClosed(oRsReq) , RGB(179,203,204), CLR_WHITE ) } }

       oBrw:CreateFromCode()

ACTIVATE WINDOW oWND1 ;
         ON INIT( oBrw:SetFocus(), .F. ) ;
         VALID ( IIF( !lOK, ReqClose(.T.,oWnd1,oRsReq,oBar1,oBar2 ), .F. ))

Return(nil)
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Re: tamaño renglones xbrowse
Posted: Tue Dec 27, 2011 03:47 PM

Rick,
No se como explicarlo en ingles, pero creo es imposible hacerlo asi, ya que son 2 campos de un mismo registro tomandolos como un solo campo de un solo registro y poniendo el alto de la fila se ajuste automaticamente, entonces aqui el detalle es que cada registro puede tener alturas diferentes, aaaa y otra cosa, como es un campo MEMO que se ajustara el memo al ancho de la columna,,, ups lo voy a tener que solucionar poniendo un say y cada que recorra un registro ir actualizando ese sey que seria el campo MEMO,,,
saludos
paco

____________________

Paco
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: tamaño renglones xbrowse
Posted: Tue Dec 27, 2011 08:23 PM

Paco;
interesante el tema, aunuqe no puedo aportar una solución :oops: , por favor no dejes de postear si lo consigues

muchas gracias

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 401
Joined: Thu Oct 06, 2005 10:15 PM
Re: tamaño renglones xbrowse
Posted: Wed Dec 28, 2011 02:38 PM

Verificaste el ejemplo /fwh/samples/TestXbr6.prg

Saludos,



Pablo Alberto Vidal

/*

------------------------------------------------------

Harbour 3.2.0, Fivewin 17.02, BCC7

------------------------------------------------------

*/
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Re: tamaño renglones xbrowse
Posted: Wed Dec 28, 2011 05:40 PM

Pablo
si lo vi y probe, funciona a medias, ya que el datalines no he podidio ajustarlo automaticamente calculando las lineas del campo memo, cada registro deberia tener un alto diferente del renglon y no he dado como hacerlo..
salu2
paco

____________________

Paco
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Re: tamaño renglones xbrowse
Posted: Wed Dec 28, 2011 05:43 PM

si existiera una datalines por cada row seria estupendo,,, asi le das exactamente el alto a cada fila
de hecho asi tengo mi xbrowse,nada del otro mundo

aoCols[2]:bStrData := { || ::oQryMesa:FieldGet("nombre") + CRLF + ALLTRIM(::oQryMesa:FieldGet("comentarios")) }

salu2
paco

____________________

Paco
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Re: tamaño renglones xbrowse
Posted: Mon Jan 09, 2012 06:55 PM
Paco,

Me uno a los que nos interesa alguna solucion a este tema.

De momento, lo que hice fue hacerle un split al texto largo para poner varias lineas y usar colores para distinguir los renglones.

En mi caso lo estoy aplicando para un pequeño y limitado chat entre terminales.



Saludos

PD : Por lo que veo, para que se te vaya el tren va a estar cañon.... ya que no lo sueltas para nada !!! jejeje
FWH 10.6 + xHarbour + Borland 582
Posts: 205
Joined: Fri Oct 07, 2005 05:07 PM
Re: tamaño renglones xbrowse
Posted: Mon Jan 09, 2012 10:23 PM
No he testado esto, pero puede funncionar, no tengo como probarlo.
Adiciona una data a la clase xbrowse

Code (fw): Select all Collapse
     DATA lMultiHeight      INIT .F.   //NEW


Modifica o metodo DataHeight de la xbrowse
Code (fw): Select all Collapse
  
 METHOD DataHeight( nAux )   INLINE If( ::lMultiHeight, ( nAux := 0, ;   //NEW
                                                          AEval ( ::aCols, { | o,n ] Max( nAux, o:DataHeight() ) } ), ; //Para traer la celda mas alta. //NEW
                                                          ::nRowHeight := nAux ), ), ; //asignamos el nRow. //NEW
                                         ::nRowHeight - iif(::nRowDividerStyle > LINESTYLE_NOLINES, 1, 0) - ;
                                         If(::nRowDividerStyle >= LINESTYLE_INSET, 1, 0)

Despues en tu prg haces.
Code (fw): Select all Collapse
oXbr:lMultiHeight := .T.

Ahora esto creo que es mejor poner en el on init del dialog..puedes testar.

Seguro que en algun lado tenemos que recalcular el nMaxRows que es el maximo de lineas a pintar.
Pero por ahi debe ir los tiros.. Voy a testar cuando regrese de vagaciones :-).
Saludos/regards

RenOmaS



skype: americo.balboa
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Re: tamaño renglones xbrowse
Posted: Tue Jan 10, 2012 09:56 PM

RenOmaS,

Como ya he comentado anteriormente, las clases y todo lo relacionado nomas no se llevan conmigo :cry:

Pero creo que hace falta algo que "lea" el contenido de la celda para calcular el alto de la misma.
Si estoy equivocado, disculpa mi comentario.

Ojala los gurus del foro, encuentren alguna solucion a esto.

Saludos

FWH 10.6 + xHarbour + Borland 582

Continue the discussion