XBROWSE - array no pinta cabeceras

XBROWSE - array no pinta cabeceras

Postby Verhoven » 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: Select all  Expand view
   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.
Verhoven
 
Posts: 505
Joined: Sun Oct 09, 2005 7:23 pm

Re: XBROWSE - array no pinta cabeceras

Postby FranciscoA » Wed Jul 07, 2021 4:50 pm

Verhoven:

Code: Select all  Expand view
   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
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBROWSE - array no pinta cabeceras

Postby Verhoven » Thu Jul 08, 2021 6: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: Select all  Expand view
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: Select all  Expand view
   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.}
                //:nfreeze:=
                :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
 
Verhoven
 
Posts: 505
Joined: Sun Oct 09, 2005 7:23 pm

Re: XBROWSE - array no pinta cabeceras

Postby cmsoft » Thu Jul 08, 2021 12:05 pm

Eso puedes hacerlo directamente en la query que levantas
Code: Select all  Expand view

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
 
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: XBROWSE - array no pinta cabeceras

Postby artu01 » Fri Jul 09, 2021 12:46 am

Verhoven wrote:
Code: Select all  Expand view
   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.}
                //:nfreeze:=
                :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: Select all  Expand view

oTbr:Fecha:={|| nomdia[dow(DIARIO->FECHA)] }
 
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
 
Posts: 397
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: XBROWSE - array no pinta cabeceras

Postby FranciscoA » Fri Jul 09, 2021 3:42 am

Otra opción que puedes intentar:
Code: Select all  Expand view
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
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBROWSE - array no pinta cabeceras

Postby FranciscoA » Fri Jul 09, 2021 4:26 am

Code: Select all  Expand view
#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
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: groiss and 55 guests