Page 1 of 1

oBrw:aCols[5]:SetColsAsRows( ) SOLUCIONADO

PostPosted: Wed Apr 23, 2014 2:09 am
by FranciscoA
Buenas noches amigos.
Estoy tratando de agregar nuevas funcionalidades a un programa de Nominas Quincenales que he desarrollado.

Tengo un pequeño inconveniente:
Al utilizar :SetColsAsRows() todo funciona, excepto porque el fondo de las columnas unidas no se pinta totalmente en la columna única creada.
Parece como que pinta segun el tamaño de las columnas agregadas. ¿Cómo solucionar esto?
Dejo la siguiente imagen.
Image
Muchas gracias de antemano.

Re: oBrw:aCols[5]:SetColsAsRows( )

PostPosted: Wed Apr 23, 2014 2:44 am
by FranciscoA
Disculpen, olvidé poner el código.
Code: Select all  Expand view
  REDEFINE XBROWSE oLbx ID 181 OF oDlg ;
      COLUMNS "Plani","Seccion","Ninssbi","Numemp","Nombre","MF","Sbasico","Dias_t";
      ALIAS cAlias CELL LINES FOOTERS  // FASTEDIT

   WITH OBJECT oLbx
      :Nombre:oDataFont := {|| oFont }

      :nFreeze       := 5
      :nMarqueeStyle := MARQSTYLE_HIGHLROW   //ilumina toda la linea
      :bClrHeader    := {|| { nRGB(140,  0,  0), nRGB( 231, 242, 255 ), } }
      :bClrFooter    := :bClrHeader                                 // Colores texto de footers
      //:bClrStd       := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }  // colores para lineas normales
      :bClrSel       := {|| { nRGB(  0,  0,  0), aGradRowSel } }  // para barra de linea selecc cuando el control no tiene el foco
      :bClrSelFocus  := { || { CLR_BLACK, aGradBarSel } }     // para barra de linea selecc cuando el control tiene el foco
      :lKinetic      := .f.
      :lContrastClr  := .f.  //para que no cambie color de texto automaticamente segun intensidad del fondo
      :nRowHeight    := 50  //altura entre lineas
      :nColDividerStyle:=LINESTYLE_LIGHTGRAY
      :nRowDividerStyle:=LINESTYLE_LIGHTGRAY

      For n := 1 to len(:aCols)
        :aCols[n]:nHeadStrAlign := AL_CENTER
      Next

      //SUPER HEADERS
      :SetGroupHeader( "DATOS  DEL  TRABAJADOR", 3, 7)   //, oFont1 )
      :SetGroupHeader( "DATOS DEL DEVENGADO",  8, 23)    //, oFont1 )
      :SetGroupHeader( "DATOS DE DEDUCCIONES",  24, 31)  //, oFont1 )
      :SetGroupHeader( "NETO",  32, 32)            //, oFont1 )

      :aCols[03]:AddBmpFile( ".\Emo1_16x16.bmp" )  ;  :aCols[03]:nGrpBmpNo  := 1
      :aCols[08]:AddBmpFile( ".\Emo2_16x16.bmp" )  ;  :aCols[08]:nGrpBmpNo  := 1
      :aCols[24]:AddBmpFile( ".\Emo4_16x16.bmp" )  ;  :aCols[24]:nGrpBmpNo  := 1
      :aCols[32]:AddBmpFile( ".\Emo3_16x16.bmp" )  ;  :aCols[32]:nGrpBmpNo  := 1
   END

    ADD oCol TO oLbx AT 6 DATA Capitalize((oLbx:cAlias)->Cargo) HEADER "Cargo"

    oLbx:aCols[5]:SetColsAsRows(5,6,8 )

   ACTIVATE DIALOG oDlg ;
      ON INIT ( DlgSetup(oDlg,oLbx,bGeneros,oFont1) )

  oFont:End()
  oFont1:End()
RETURN NIL
 

Re: oBrw:aCols[5]:SetColsAsRows( )

PostPosted: Wed Apr 23, 2014 4:34 pm
by FranciscoA
OK, solucionado. Debe ser mi version 1204. Voy a revisar la Classe y tratar de modificarla.
//Para pintar bien fondo de cols de menor tamaño a la que se unen con :SetColsAsRow()
oBrw:aCols[6]:nWidth := oBrw:aCols[5]:nWidth
oBrw:aCols[8]:nWidth := oBrw:aCols[5]:nWidth
Saludos.