Problemas con xbrowse

Problemas con xbrowse

Postby informaticaeloy » Mon Dec 08, 2014 6:01 pm

Hola. Estoy pasando mis códigos de listbox a xbrowse. Este es el código que tengo (lo he reducido):

Code: Select all  Expand view
#include "FiveWin.ch"
#include "xbrowse.ch"

FUNCTION MAIN()
         SET EPOCH TO 1990
         SET DATE ITALIAN
         SET DELETED ON
         SET SCOREBOARD OFF
         SET CONFIRM ON
         SET WRAP ON
         SET CENTURY ON
         SETHANDLECOUNT(255)
         SET 3DLOOK ON

         DEFINE WINDOW PRIN TITLE "titulo";
                 VSCROLL HSCROLL MDI icon oIco

         DEFINE BUTTONBAR oBar _3D SIZE 33, 33 OF PRIN
         if activ_menu(1,1)
            DEFINE BUTTON FILE "BMP\ICON32\ARTICULO32.bmp"  OF oBar ;
                ACTION articul() tooltip "Artículos" GROUP NOBORDER
         endif


         ACTIVATE WINDOW PRIN;
         ON RESIZE OBMPFndo:Center();
         MAXIMIZED;
         VALID FIN()
RETURN NIL

FUNCTION CLIENTES(prin)
         CLOSE ALL

         SELECT 1
         USE CLIENTES INDEX CODCLIEN,NOMCLIEN,COMCLIEN, TELCLIEN, DNICLIEN, POBCLIEN NEW ALIAS dbCLI SHARED

DEFINE WINDOW INICIO_C TITLE "Gestión de Clientes" MDICHILD OF PRIN

@ 0, 0 XBROWSE LIS_CLI;
       FIELDS dbCLI->CODIGO,dbCLI->NOMBRE,dbCLI->NOMBRECOM,dbCLI->TELEFONO,dbCLI->DNI,dbCLI->POBLACION;
       HEADERS  "Código","Nombre","Nombre Comercial","Teléfono","DNI","Pob.";
       COLSIZES nil,15 OF INICIO_C ;
       SIZE 800,600 PIXEL
       //AUTOSORT FOOTERS LINES CELL


       
                         
         LIS_CLI:CreateFromCode()
         
         
         ACTIVATE window INICIO_C
         CLOSE ALL
RETURN NIL
 


Y es te es el fallo que me salta:

Code: Select all  Expand view

Application
===========
   Path and name: C:\ges5.0\menu.exe (32 bits)
   Size: 4,428,288 bytes
   Compiler version: Harbour 3.2.0dev (r1307082134)
   FiveWin  Version: FWH 13.12
   Windows version: 6.1, Build 7601 Service Pack 1

   Time from start: 0 hours 0 mins 4 secs
   Error occurred at: 08-12-2014, 18:56:11
   Error description: Error DBCMD/2001  Area de trabajo no usada: __DBSKIPPER

Stack Calls
===========
   Called from:  => __DBSKIPPER( 0 )
   Called from: .\source\classes\XBROWSE.PRG => (b)TXBROWSE_SETRDD( 4048 )
   Called from: .\source\classes\XBROWSE.PRG => (b)TXBROWSE( 441 )
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:SKIP( 0 )
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:PAINT( 1500 )
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:DISPLAY( 1355 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1699 )
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT( 12194 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3236 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 1003 )
   Called from: .\menu.PRG => MAIN( 186 )

 


He probado, según he leído en el foro a poner esta función en mi prg, con un solo guión "_" con dos guiones "__", y nada:

Code: Select all  Expand view


FUNCTION _DbSkipper( n )
 
RETURN __DbSkipper( n )

 


Os agradezco la ayuda. Un saludo.
Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
User avatar
informaticaeloy
 
Posts: 118
Joined: Fri Dec 20, 2013 10:39 am
Location: Zaragoza, España

Re: Problemas con xbrowse

Postby mastintin » Mon Dec 08, 2014 6:13 pm

Has probado poniendo el alias en el xbrowse ?

Code: Select all  Expand view


@ 0, 0 XBROWSE LIS_CLI;
        ALIAS dBcli ;   // asignamos el dbf a usar en el xbrowse
        FIELDS dbCLI->CODIGO,dbCLI->NOMBRE,dbCLI->NOMBRECOM,dbCLI->TELEFONO,dbCLI->DNI,dbCLI->POBLACION;
       HEADERS  "Código","Nombre","Nombre Comercial","Teléfono","DNI","Pob.";
       COLSIZES nil,15 OF INICIO_C ;
       SIZE 800,600 PIXEL

 
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Problemas con xbrowse

Postby informaticaeloy » Mon Dec 08, 2014 6:29 pm

Hola. Salvo que no se haga así, cuando hago el select 1 llamo al alias dbCLI y en el xbrowse lo pongo también:

Code: Select all  Expand view

         public dbcli

         SELECT 1
         USE CLIENTES INDEX CODCLIEN,NOMCLIEN,COMCLIEN, TELCLIEN, DNICLIEN, POBCLIEN ALIAS dbCLI SHARED


@ 0, 0 XBROWSE LIS_CLI alias dbCLI;
       FIELDS dbCLI->CODIGO,dbCLI->NOMBRE,dbCLI->NOMBRECOM,dbCLI->TELEFONO,dbCLI->DNI,dbCLI->POBLACION;
       HEADERS  "Código","Nombre","Nombre Comercial","Teléfono","DNI","Pob.";
       COLSIZES nil,15 OF INICIO_C ;
       SIZE 800,600 PIXEL
 


En el ejemplo anterior se me olvidó actualizar ese dato que ya tenía puesto.

Image
Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
User avatar
informaticaeloy
 
Posts: 118
Joined: Fri Dec 20, 2013 10:39 am
Location: Zaragoza, España

Re: Problemas con xbrowse

Postby informaticaeloy » Tue Dec 09, 2014 12:31 am

Bueno, ya he avanzado bastante. El código que tengo ahora y funciona es este:

Code: Select all  Expand view

     FUNCTION CLIENTES(prin)
         LOCAL  lORDENCLI, INICIO_C, dbcli := cGetNewAlias( "CUST" )  

         PUBLIC OCOM

         DEFINE FONT oFont1 NAME "COURIER" SIZE 8,0 BOLD
         DEFINE FONT oFont2 NAME "ARIAL" SIZE 15,0 BOLD
         define font ofontdlg name "Tahoma" //SIZE 10, -8

         SET CENTURY ON
         CLOSE ALL
         select 125
         use .\param
         lORDENCLI:=fieldget(16)
         close 125
         
         CLOSE ALL
         SELECT 2
         USE FORMAPAG INDEX CODPAGO SHARED

         SELECT 3
         USE BANCOS INDEX CODBANCO SHARED
         SELECT 1                                   //
         USE CLIENTES  ALIAS dbCLI INDEX CODCLIEN,NOMCLIEN,COMCLIEN, TELCLIEN, DNICLIEN, POBCLIEN SHARED
         SET 3DLOOK ON

         DEFINE WINDOW INICIO_C TITLE "Gestión de Clientes" MDICHILD OF PRIN
         DEFINE BUTTONBAR oBar_CLI _3D SIZE 64, 64 OF INICIO_C
         
            DEFINE BUTTON FILE "BMP\ICON32\ANADIR.bmp"  OF oBar_CLI ;
                ACTION edit_cli(.t.) tooltip "Añadir" NOBORDER
            DEFINE BUTTON FILE "BMP\ICON32\MODIFICAR.bmp"  OF oBar_CLI ;
                ACTION edit_cli(.f.) tooltip "Modificar" NOBORDER
            DEFINE BUTTON FILE "BMP\ICON32\ELIMINAR.bmp"  OF oBar_CLI ;
                ACTION eli_cli() tooltip "Eliminar" NOBORDER
            DEFINE BUTTON FILE "BMP\ICON32\SALIR.bmp"  OF oBar_CLI ;
                ACTION  INICIO_C:END() tooltip "Salir" NOBORDER

         NRECS=1
         REGIS=1
         
         
       @ 65, 0 XBROWSE LIS_CLI;  
               HEADERS  "Código","Nombre Fiscal","Nombre Comercial","Teléfono","DNI/CIF","Dirección","Población","Provincia";
               OF INICIO_C;
               LINES  CELL;// COLSIZES nil,15;     fastedit     CELL
               COLUMNS DBCLI->CODIGO,DBCLI->NOMBRE,DBCLI->NOMBRECOM,DBCLI->TELEFONO,DBCLI->DNI,DBCLI->DIRECCION,DBCLI->POBLACION,DBCLI->PROVINCIA;
               FIELDS DBCLI->CODIGO,DBCLI->NOMBRE,DBCLI->NOMBRECOM,DBCLI->TELEFONO,DBCLI->DNI,DBCLI->DIRECCION,DBCLI->POBLACION,DBCLI->PROVINCIA;              
               PIXEL ;
               update SIZE 1024,768;
               on dblclick edit_cli(.f.)

               LIS_CLI:CreateFromCode()
               LIS_CLI:nStretchCol  := 2

               lis_cli:aCols[1]:bLClickHeader := {|| dbsetorder(1)}
               lis_cli:aCols[2]:bLClickHeader := {|| dbsetorder(2)}
               lis_cli:aCols[3]:bLClickHeader := {|| dbsetorder(3)}

         ACTIVATE WINDOW INICIO_C MAXIMIZED
RETURN NIL

 



Ahora os expongo los siguientes dilemas:

1º ¿como hago para que el xbrowse se cree maximizado, aprovechando al máximo la ventana INICIO_C?
2º al hacer click sobre las headers, el xbrowse se ordena, pero ?como hago para que salga al lado del texto de cabecera las flechitas indicando el orden?
3º ¿hay alguna forma de que al clickar con el ratón en una row se seleccione toda la row en vez de solo la celda?
4º ¿puede hacerse que las columnas tengan la anchura exacta del contenido que eta tenga, o que al hacer doble click sobre la separación entre dos columnas esta se ajuste al contenido (tipo excel)?
5º en el xbrowse he puesto fields y columns. Si solo pongo columns me salen todos los campos de la BD en vez de los que le indico, pero me salen las flechitas en el header al ordenar. No se esto como dejarlo

Gracias.
Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
User avatar
informaticaeloy
 
Posts: 118
Joined: Fri Dec 20, 2013 10:39 am
Location: Zaragoza, España

Re: Problemas con xbrowse

Postby informaticaeloy » Wed Dec 10, 2014 9:13 am

Hola, buenos días. ¿Nadie se anima con inguna de las 5 dudas? gracias.
Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
User avatar
informaticaeloy
 
Posts: 118
Joined: Fri Dec 20, 2013 10:39 am
Location: Zaragoza, España

Re: Problemas con xbrowse

Postby MarioG » Wed Dec 10, 2014 11:15 am

Eloy;
2º - El icono del Orden sale por defecto, segun el declarado en el primer indice (ASC/DESC) de la DBF que mostras, luego como bien decis un clic cambia el estado. Para que se muestre, en el DEFINE XBROWSE... debes incluir la cláusula AUTOSORT
3º - xBrowse usa la selección por filas al estilo Windows (Shift/Ctrl +clic), pero para ello debes declarar el estilo de linea:
oBrw:nMarqueeStyle:= MARQSTYLE_HIGHLROWMS (mirá xbrowse.ch)

No obstante te sugiero que veas los samples, hay muchos en esa carpeta y ayudan bastante (aunque para todos es mas cómodo preguntar, va con onda :wink: )
Te dejo este .doc, que alguien me lo paso
https://app.box.com/s/iflosqalq41en9um006c
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: Problemas con xbrowse

Postby informaticaeloy » Wed Dec 10, 2014 11:47 am

Hola. Gracias por tu ayuda.
Con el oBrw:nMarqueeStyle:= MARQSTYLE_HIGHLROWMS ya conseguí que se seleccione toda la row

Pero con el tema de la flechita en el header la verdad que ando desesperado. Si en el xbrowse pongo los datos con COLUMNS, la flechita sale, pero en el xbrowse me aparecen todos los campos de la base de datos. Si pongo los datos con FIELDS, solo salen los que indico, pero no sale la flechita. La verdad que probé y reprobé y leí y releí, pero no pude.

Gracias.
Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
User avatar
informaticaeloy
 
Posts: 118
Joined: Fri Dec 20, 2013 10:39 am
Location: Zaragoza, España

Re: Problemas con xbrowse

Postby Antonio Linares » Wed Dec 10, 2014 11:54 am

Eloy,

Para que el browse ocupe toda el área de cliente de su ventana contenedora haz esto:

LIS_CLI:oClient = INICIO_C
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Problemas con xbrowse

Postby Antonio Linares » Wed Dec 10, 2014 11:58 am

Eloy,

Para la flechita prueba esto:

INICIO_C:lRecordSelector = .T.

despues de haber creado el browse y antes del ACTIVATE WINDOW
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Problemas con xbrowse

Postby informaticaeloy » Wed Dec 10, 2014 12:22 pm

Hola Antonio,

para que ocupe toda la vantana, ok, con LIS_CLI:oClient = INICIO_C

pero lo de la flechita creo que tu sugerencia era para la flechita de la parte izquierda que sale al lado de las row. Yo me refería a la que sle al lado del nombre del header para indicar si está ordenado ascendente o descendentemente. Si el browse lo defino con COLUMNS no hace caso a esos columns y saca todos los campos de la base de datos (aunque si que sale la flechita). Pero si lo defino con FIELDS, los campos mostrados son los correctos pero no sale la flechica

Image
Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
User avatar
informaticaeloy
 
Posts: 118
Joined: Fri Dec 20, 2013 10:39 am
Location: Zaragoza, España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 91 guests