FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour XBROWSE - array no pinta cabeceras
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
XBROWSE - array no pinta cabeceras
Posted: Wed Jul 07, 2021 11:17 AM
Al actualizar al FWH64 de la fecha me encuentro con que un xbrowse ( que antes era un listbox ) no me funciona como se espera.
Code (fw): Select all Collapse
    REDEFINE XBROWSE oLbx DATASOURCE aVannos ID 101;
              HEAD "YEAR" ;
              PICTURE "@E 9,999";
              COLOR clrLtrBrow,clrFonBrow OF oDlg;
              ON DBLCLICK ( lChDir(cYear:=aVannos[oLbx:KeyNo]), oDlg:end() )

         WITH OBJECT oLbx
              :nRowDividerStyle:= LINESTYLE_LIGHTGRAY
              :nColDividerStyle:= LINESTYLE_LIGHTGRAY
              :nMarqueeStyle   := MARQSTYLE_HIGHLROW
              :nStretchCol     := STRETCHCOL_LAST
              :aJustify:={2}  //{.t.,.f.}
              :bClrStd:={|| { CLR_BLACK, iif(oLbx:KeyNo % 2 == 0,ClrFlbxPar,ClrFlbxImp)} }
              :lRecordSelector:=.F.  //Quita el selector de registros izquierdo
         end


No pinta la cabecera y no muestra el valor conforme al PICTURE.

No sé que estoy haciendo mal.
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBROWSE - array no pinta cabeceras
Posted: Wed Jul 07, 2021 04:50 PM
Verhoven:

Code (fw): Select all Collapse
    REDEFINE XBROWSE oLbx DATASOURCE aVannos ID 101 ;
              COLUMNS {1} ;     // <<----  Ej: {1,2,5,6} según  cols a mostrar del array.
              HEAD "YEAR" ;

Saludos
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: XBROWSE - array no pinta cabeceras
Posted: Thu Jul 08, 2021 06:36 AM
Se solucionó con eso. Gracias.

Ahora, en el proceso de pasar de LISTBOX a XBROWSE, me encuentro con otro problema:
En el listbox, la primera columna es el nombre del día "lunes", "martes",... y el resto de columnas pertenecen a una dbf.
No se como resolverlo con XBROWSE para añadirle una primera columna que permita incorporar el nombre del día con la búsqueda en un array con nomdia[dow(DIARIO->FECHA)].
Copio el código:

LISTBOX:
Code (fw): Select all Collapse
REDEFINE LISTBOX oTbr FIELDS ;
             nomdia[dow(DIARIO->FECHA)],;
             dtoc(DIARIO->FECHA),;
             transform(DIARIO->ENTRADA,'999,999.99'),;
             transform(DIARIO->SALIDA,'999,999.99'),;
             transform(DIARIO->STOCK,'999,999.99') ;
             HEAD ' - ','Día','Entrada','Salida','Stock';
             ID 301 COLOR clrLtrBrow,clrFonBrow OF oDlg;
             ON RIGHT CLICK Dbfaexcel(oDlg)


XBROWSE:
Code (fw): Select all Collapse
    REDEFINE XBROWSE oTbr ID 301 OF oDlg;
             DATASOURCE "DIARIO" ;
             COLUMNS  "FECHA","ENTRADA","SALIDA","STOCK" ;
             PICTURES nil, "@E 999,999.99", "@E 999,999.99", '@E 999,999.99' ;
             HEAD 'Día','Entrada','Salida','Stock' ;
             COLOR clrLtrBrow,clrFonBrow ;
             FONT oFontDoble ;
             ON RIGHT CLICK Dbfaexcel(oDlg) ;
             UPDATE 
       
             WITH OBJECT oTbr
                :nRowDividerStyle:= LINESTYLE_LIGHTGRAY
                :nColDividerStyle:= LINESTYLE_LIGHTGRAY
                :nMarqueeStyle   := MARQSTYLE_HIGHLROW
                :aJustify:={.f.,.t.,.t.,.t.}
                //:= 
                :nStretchCol:= STRETCHCOL_LAST
                :nColSel:= 2
                :nRowSel:= 1
       
                // Pinta líneas de colores distintas si son pares o impares.
                :bClrStd := {|| {CLR_BLACK, iif((oTbr:cAlias)->(ordkeyno())%2==0,ClrFlbxPar,ClrFlbxImp) } }          
             END
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: XBROWSE - array no pinta cabeceras
Posted: Thu Jul 08, 2021 12:05 PM
Eso puedes hacerlo directamente en la query que levantas
Code (fw): Select all Collapse
diario := oServer:Query("SELECT CONCAT(ELT(WEEKDAY(fecha) + 1, 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado', 'Domingo')) AS DIA_SEMANA,FECHA,ENTRADA,SALIDA,STOCK from mitabla")
REDEFINE XBROWSE oTbr ID 301 OF oDlg;
             DATASOURCE "DIARIO" ;
             COLUMNS  "DIA_SEMANA","FECHA","ENTRADA","SALIDA","STOCK" ;
             PICTURES nil,nil, "@E 999,999.99", "@E 999,999.99", '@E 999,999.99' ;
             HEAD "Dia",'Fecha','Entrada','Salida','Stock' ;
             COLOR clrLtrBrow,clrFonBrow ;
             FONT oFontDoble ;
             ON RIGHT CLICK Dbfaexcel(oDlg) ;
             UPDATE
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: XBROWSE - array no pinta cabeceras
Posted: Fri Jul 09, 2021 12:46 AM
Verhoven wrote:
Code (fw): Select all Collapse
    REDEFINE XBROWSE oTbr ID 301 OF oDlg;
             DATASOURCE "DIARIO" ;
             COLUMNS  "FECHA","ENTRADA","SALIDA","STOCK" ;
             PICTURES nil, "@E 999,999.99", "@E 999,999.99", '@E 999,999.99' ;
             HEAD 'Día','Entrada','Salida','Stock' ;
             COLOR clrLtrBrow,clrFonBrow ;
             FONT oFontDoble ;
             ON RIGHT CLICK Dbfaexcel(oDlg) ;
             UPDATE 
       
             WITH OBJECT oTbr
                :nRowDividerStyle:= LINESTYLE_LIGHTGRAY
                :nColDividerStyle:= LINESTYLE_LIGHTGRAY
                :nMarqueeStyle   := MARQSTYLE_HIGHLROW
                :aJustify:={.f.,.t.,.t.,.t.}
                //:= 
                :nStretchCol:= STRETCHCOL_LAST
                :nColSel:= 2
                :nRowSel:= 1
       
                // Pinta líneas de colores distintas si son pares o impares.
                :bClrStd := {|| {CLR_BLACK, iif((oTbr:cAlias)->(ordkeyno())%2==0,ClrFlbxPar,ClrFlbxImp) } }          
             END
Prueba agregando al final
Code (fw): Select all Collapse
oTbr:Fecha:={|| nomdia[dow(DIARIO->FECHA)] }
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBROWSE - array no pinta cabeceras
Posted: Fri Jul 09, 2021 03:42 AM
Otra opción que puedes intentar:
Code (fw): Select all Collapse
WITH Object oTbr:InsCol(1)
     :bEditValue  := { ||  nomdia[dow(DIARIO->FECHA)] }
     :cHeader     := "Dia"
     :nWidth       := 100
  END

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: XBROWSE - array no pinta cabeceras
Posted: Fri Jul 09, 2021 04:26 AM
Code (fw): Select all Collapse
#include "FiveWin.ch"
        
function MAIN()
local oDlg, oLbx
local aVannos := { ctod("01/01/2021"),;
                   ctod("02/01/2021"),;
                   ctod("04/01/2021"),;
                   ctod("06/01/2021") }

    DEFINE DIALOG oDlg RESOURCE "BROWSITO"

    REDEFINE XBROWSE oLbx DATASOURCE aVannos ID 118 OF oDlg;
              COLUMNS {1} ;
              HEAD "FECHA" 

   WITH Object oLbx:InsCol(1)
      :bEditValue := { || SpaDay(oLbx:Fecha:Value) }    //Esta es una funcion mia.
      :cHeader    := "Dia"
      :nWidth     := 100
   END
  
   ACTIVATE DIALOG oDlg CENTERED
return nil
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql

Continue the discussion