tamaño renglones xbrowse

tamaño renglones xbrowse

Postby Francisco Horta » Thu Dec 22, 2011 6: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)

Image

Uploaded with ImageShack.us

gracias
paco
____________________
Paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: tamaño renglones xbrowse

Postby El Loco » Thu Dec 22, 2011 7: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
El Loco
 
Posts: 328
Joined: Fri May 19, 2006 4:08 pm
Location: Buenos Aires - Argentina

Re: tamaño renglones xbrowse

Postby Francisco Horta » Thu Dec 22, 2011 8:06 pm

Gracias Loco,
le echare un vistazo
salu2
paco
____________________
Paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: tamaño renglones xbrowse

Postby Francisco Horta » Fri Dec 23, 2011 4:02 pm

parece que no me funciono :-(

alguna otra sugerencia??
saludos
paco
____________________
Paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: tamaño renglones xbrowse

Postby Rick Lipkin » Sat Dec 24, 2011 2: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:Customer:lMergeVert := .t.
oBrw:Description:lMergeVert := .t.

But it did not work :(

Rick Lipkin

Code: Select all  Expand view  RUN

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)
 
User avatar
Rick Lipkin
 
Posts: 2666
Joined: Fri Oct 07, 2005 1:50 pm
Location: Columbia, South Carolina USA

Re: tamaño renglones xbrowse

Postby Francisco Horta » Tue Dec 27, 2011 3: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
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: tamaño renglones xbrowse

Postby MarioG » Tue Dec 27, 2011 8: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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: tamaño renglones xbrowse

Postby pablovidal » Wed Dec 28, 2011 2:38 pm

Verificaste el ejemplo /fwh/samples/TestXbr6.prg
Saludos,

Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
User avatar
pablovidal
 
Posts: 401
Joined: Thu Oct 06, 2005 10:15 pm
Location: Republica Dominicana

Re: tamaño renglones xbrowse

Postby Francisco Horta » Wed Dec 28, 2011 5: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
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: tamaño renglones xbrowse

Postby Francisco Horta » Wed Dec 28, 2011 5: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
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: tamaño renglones xbrowse

Postby Raymundo Islas M. » Mon Jan 09, 2012 6: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.

Image

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
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: tamaño renglones xbrowse

Postby RenOmaS » 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: Select all  Expand view  RUN

     DATA lMultiHeight      INIT .F.   //NEW


Modifica o metodo DataHeight de la xbrowse
Code: Select all  Expand view  RUN
 
 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: Select all  Expand view  RUN
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 :D.
Saludos/regards
RenOmaS

skype: americo.balboa
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Re: tamaño renglones xbrowse

Postby Raymundo Islas M. » Tue Jan 10, 2012 9: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
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 9 guests