Ayuda en FOLDEREX

Ayuda en FOLDEREX

Postby Ramón J. » Mon Oct 25, 2021 10:01 am

Buenos días a todos

Estoy retomando un ejemplo que hice con FOLDEREX en el que uso dos bases de relacionados: PROVEEDORES Y PRODUCTOS.. Si bien está funcionando perfectamente el ejemplo, la cuestión es que me gustaría que la función de productos estuviera en otro prg y no en el mismo y sin que rompa la relación, ya que me gustaría que el desarrollo de cada pestaña estaviera en prg diferentes y sin que se rompa la relación de las bases.

En el ejemplo siguiente pretendo que al pulsar la pestaña "Proveedores" se activara esa función pero desarrollado en otro prg.

Code: Select all  Expand view
#include 'fivewin.ch'
#include 'ord.ch'
#include 'xbrowse.ch'
#include 'hbcompat.ch'

REQUEST DBFCDX

 
FUNCTION TELEM()

   LOCAL oDlg, obrw, nWild:=2, cList, aHdrs, aFlds
   
   SET DATE ITALIAN
   SET CENTURY ON
   RDDSETDEFAULT( "DBFCDX" )
   
   USE PROVEEDOR NEW SHARED ALIAS "PROVE"
   INDEX ON PROVE->CODIGO_PRO TO CODPROVE
   SET INDEX TO CODPROVE
   
   USE PRODUCTOS NEW SHARED ALIAS "PRODU"
   INDEX ON PRODU->CODIGO_PRO TO CODPRODU
   SET INDEX TO CODPRODU
   
   SELE PROVE
   SET RELATION TO PROVE->CODIGO_PRO INTO PRODU
   
   cList := "NOMBRE, PROVINCIA"
   aFlds := HB_ATokens( cList, ',' )
   
   DEFINE DIALOG oDlg FROM 3, 3 TO 33, 100 TITLE "Búsqueda incremental"
   
   @ 30,10 XBROWSE oBrw SIZE 360,150 PIXEL OF oDlg ;
      COLUMNS aFlds HEADERS "Nombre", "Provincia" ;
      ALIAS "PROVE"  COLSIZES 200, 200 AUTOSORT CELL LINES NOBORDER
     
   oBrw:lHScroll:= .F.  
   
     WITH OBJECT oBrw
      :lIncrFilter   := .t.
      :lSeekWild     := ( nWild == 2 )
      :cFilterFld    := "Nombre"
      :nStretchCol   := STRETCHCOL_WIDEST
      END

 
  @ 10, 10 COMBOBOX oBrw:cFilterFld ;
      ITEMS  { "Nombre", "Provincia" };
      ON CHANGE ( oBrw:Seek( "" ), oBrw:SetFocus() ) ;
      SIZE 50,400 PIXEL OF oDlg
 
 @ 10, 70 COMBOBOX nWild ITEMS { "Empieza con", "Contiene" };
    ON CHANGE ( oBrw:lSeekWild := ( nWild == 2 ), ;
                  oBrw:Seek( If( oBrw:lSeekWild, oBrw:cSeek, "" ) ), ;
                  oBrw:SetFocus() );
  SIZE 70,400 PIXEL OF oDlg

     
@ 11,150 SAY oBrw:oSeek PROMPT oBrw:cSeek SIZE 200,10 PIXEL OF oDlg COLOR CLR_BLACK,CLR_YELLOW PICTURE '@!'

   oBrw:CreateFromCode()
     
   @ 11, 10 BUTTON "Nuevo   " OF oDlg  ACTION oBrw:EditSource( .T. )
   @ 11, 20 BUTTON "Editar  " OF oDlg  ACTION EditPro( oBrw )
   @ 11, 30 BUTTON "Eliminar" OF oDlg  ACTION oBrw:Delete()
   @ 11, 40 BUTTON "&Imprimir"  OF oDlg ;
      ACTION oBrw:Report( "Listado de SAT", .T. ) ;  // .t. --> wants preview
      SIZE 40, 12
   @ 11, 50 BUTTON "&Terminar" OF oDlg ACTION oDlg:End() SIZE 40, 12

   ACTIVATE DIALOG oDlg CENTERED ON INIT ( oBrw:SetFocus(), .f. )


RETURN nil


//***************** EDICION CON FOLDER---------------

FUNCTION editPro( oBrw, oDlg )

   LOCAL oDlg1, oFld, oLbx, Lsalir:=.f.
   LOCAL nProve, oProve, cNombre, oNombre, cProvincia, oProvincia

   NProve    := PROVE->CODIGO_PRO
   cNombre   := PROVE->NOMBRE
   cProvincia := PROVE->PROVINCIA

   DEFINE DIALOG oDlg1 FROM 3, 3 TO 20, 70 TITLE "Mantenimiento"


   @ 10, 5 FOLDEREX oFld PIXEL PROMPT "&Proveedor", "&Datos mercancías"[/color] SIZE 250, 100
   @ 20, 5 SAY "Código:" OF oFld:aDialogs[ 1 ]  SIZE 60, 10 PIXEL
   @ 20, 100 SAY oProve var nProve OF oFld:aDialogs[ 1 ]  SIZE 60, 10 PIXEL
   @ 30, 5 SAY "Razón social" OF oFld:aDialogs[ 1 ] SIZE 60, 10 PIXEL
   @ 30, 100 GET oNombre VAR cNombre OF oFld:aDialogs[ 1 ]  SIZE 100, 10 PIXEL
   @ 40, 5 SAY "Provincia" OF oFld:aDialogs[ 1 ] SIZE 60, 10 PIXEL
   @ 40, 100 GET oProvincia VAR cProvincia OF oFld:aDialogs[ 1 ]  SIZE 100, 10 PIXEL
   @ 60, 50 BUTTON "Grabar" OF oFld:aDialogs[1] SIZE 40, 10 PIXEL action oDlg1:end()
   @ 60, 150 BUTTON "Salir" OF oFld:aDialogs[1] SIZE 40, 10 PIXEL ACTION (lSalir:=.t., oDlg1:End())

[color=#FF0000]
[color=#FF8000]//-------------   DATOS DE MERCANCÍAS. ESTO QUIERO PONERLO EN OTRO PRG SIN QUE SE ROMPA LA RELACIÓN ----------

   SELE produ

   produ->( ordscope( 0, nProve ) )
   produ->( ordscope( 1, nProve ) )
   produ->( DBSKIP( 0 ) )

   IF produ->( ordKeyCount() ) == 0
   MsgInfo( "No se encontraron productos" )
   ENDIF
 
   @ 1, 1 XBROWSE oLbx SIZE 250, 65 PIXEL;
      COLUMNS "CODIGO_PRO", "PRODUCTO", "PRECIO" OF oFld:aDialogs[ 2 ] ALIAS "PRODU";
      HEADERS "Código proveedor", "Produto", "Precio";
      COLSIZES 70, 300, 140;
      JUSTIFY AL_RIGHT, AL_LEFT, AL_RIGHT;
      PICTURES , , "@E 9,999,999.99" LINES NOBORDER FASTEDIT

   oLbx:CreateFromCode()
 
   ACTIVATE DIALOG oDlg1 CENTERED valid lSalir
   

if lsalir
SELE PROVE
oBrw:Seek( "" )
oBrw:refresh()
PROVE->(DBGOTOP())
oBrw:SetFocus()
endif[/color]

RETURN nil


¿En este caso concreto cómo se llamaría a la función, por ejemplo proveedores()?

Gracias
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Ayuda en FOLDEREX

Postby cmsoft » Mon Oct 25, 2021 1:16 pm

Prueba con:
Code: Select all  Expand view

oFld:bAction := { || IF(oFld:nOption=1,Proveedores(parametros_necesarios), nil) }
 
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Ayuda en FOLDEREX

Postby JoseAlvarez » Mon Oct 25, 2021 7:51 pm

Saludos,

Yo lo hago declarando las variables necesarias como PRIVATE, asi puedo continuar en otro prg como si se trarara ddel mismo llamandolo como a una funcion normal.

Es una idea que a mi me funciona sin problemas.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 726
Joined: Sun Nov 09, 2014 5:01 pm

Re: Ayuda en FOLDEREX

Postby Ramón J. » Tue Oct 26, 2021 8:08 pm

Gracías, César y José.

He optado por la opción de César, He creado tres prg: uno de xbrowse de proveedores, otro de la ficha del proveedor con un FOLDEREX que contiene dos pestañas -datps de proveedor y otra de productos-, y otro prg para el xbrowse de productos.

Pues bien, la pestaña de "Productos" no muestra nada. Los tres prg son los siguientes:

PRINCIPAL.PRG
Code: Select all  Expand view
#include 'fivewin.ch'
#include 'ord.ch'
#include 'xbrowse.ch'
#include 'hbcompat.ch'

REQUEST DBFCDX

 
FUNCTION Main()

   LOCAL oDlg, obrw, nWild:=2, cList, aHdrs, aFlds
   
   SET DATE ITALIAN
   SET CENTURY ON
   RDDSETDEFAULT( "DBFCDX" )
   
   USE PROVEEDOR NEW SHARED ALIAS "PROVE"
   INDEX ON PROVE->CODIGO_PRO TO CODPROVE
   SET INDEX TO CODPROVE
   
   USE PRODUCTOS NEW SHARED ALIAS "PRODU"
   INDEX ON PRODU->CODIGO_PRO TO CODPRODU
   SET INDEX TO CODPRODU
   
   SELE PROVE
   SET RELATION TO PROVE->CODIGO_PRO INTO PRODU
   
   cList := "NOMBRE, PROVINCIA"
   aFlds := HB_ATokens( cList, ',' )
   
   DEFINE DIALOG oDlg FROM 3, 3 TO 33, 100 TITLE "Búsqueda incremental"
   
   @ 30,10 XBROWSE oBrw SIZE 360,150 PIXEL OF oDlg ;
      COLUMNS aFlds HEADERS "Nombre", "Provincia" ;
      ALIAS "PROVE"  COLSIZES 200, 200 AUTOSORT CELL LINES NOBORDER
     
   oBrw:lHScroll:= .F.  
   
     WITH OBJECT oBrw
      :lIncrFilter   := .t.
      :lSeekWild     := ( nWild == 2 )
      :cFilterFld    := "Nombre"
      :nStretchCol   := STRETCHCOL_WIDEST
      END

 
  @ 10, 10 COMBOBOX oBrw:cFilterFld ;
      ITEMS  { "Nombre", "Provincia" };
      ON CHANGE ( oBrw:Seek( "" ), oBrw:SetFocus() ) ;
      SIZE 50,400 PIXEL OF oDlg
 
 @ 10, 70 COMBOBOX nWild ITEMS { "Empieza con", "Contiene" };
    ON CHANGE ( oBrw:lSeekWild := ( nWild == 2 ), ;
                  oBrw:Seek( If( oBrw:lSeekWild, oBrw:cSeek, "" ) ), ;
                  oBrw:SetFocus() );
  SIZE 70,400 PIXEL OF oDlg

     
@ 11,150 SAY oBrw:oSeek PROMPT oBrw:cSeek SIZE 200,10 PIXEL OF oDlg COLOR CLR_BLACK,CLR_YELLOW PICTURE '@!'

   oBrw:CreateFromCode()
     
   @ 11, 10 BUTTON "Nuevo   " OF oDlg  ACTION oBrw:EditSource( .T. )
   @ 11, 20 BUTTON "Editar  " OF oDlg  ACTION EditPro( oBrw )
   @ 11, 30 BUTTON "Eliminar" OF oDlg  ACTION oBrw:Delete()
   @ 11, 40 BUTTON "&Imprimir"  OF oDlg ;
      ACTION oBrw:Report( "Listado", .T. ) ;  // .t. --> wants preview
      SIZE 40, 12
   @ 11, 50 BUTTON "&Terminar" OF oDlg ACTION oDlg:End() SIZE 40, 12

   ACTIVATE DIALOG oDlg CENTERED ON INIT ( oBrw:SetFocus(), .f. )

RETURN nil

 


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

FUNCTION editpro(obrw )

   LOCAL oDlg, oFld, oLbx, Lsalir:=.f.
   LOCAL nProve, oProve, cNombre, oNombre, cProvincia, oProvincia

   NProve    := PROVE->CODIGO_PRO
   cNombre   := PROVE->NOMBRE
   cProvincia := PROVE->PROVINCIA
   
   DEFINE DIALOG oDlg FROM 3, 3 TO 40, 70 TITLE "Mantenimiento"

   @ 10, 5 FOLDEREX oFld PIXEL PROMPT "&Proveedor", "&Productos" SIZE 250, 100
   @ 20, 5 SAY "Código:" OF oFld:aDialogs[ 1 ]  SIZE 60, 10 PIXEL
   @ 20, 100 SAY oProve var nProve OF oFld:aDialogs[ 1 ]  SIZE 60, 10 PIXEL
   @ 30, 5 SAY "Razón social" OF oFld:aDialogs[ 1 ] SIZE 60, 10 PIXEL
   @ 30, 100 GET oNombre VAR cNombre OF oFld:aDialogs[ 1 ]  SIZE 100, 10 PIXEL
   @ 40, 5 SAY "Provincia" OF oFld:aDialogs[ 1 ] SIZE 60, 10 PIXEL
   @ 40, 100 GET oProvincia VAR cProvincia OF oFld:aDialogs[ 1 ]  SIZE 100, 10 PIXEL
   @ 60, 50 BUTTON "Grabar" OF oFld:aDialogs[1] SIZE 40, 10 PIXEL action oDlg:end()
   @ 60, 150 BUTTON "Salir" OF oFld:aDialogs[1] SIZE 40, 10 PIXEL ACTION (lSalir:=.t., oDlg:End())

     ACTIVATE DIALOG oDlg CENTERED
     
oFld:bAction := { || IF(oFld:nOption=2,Productos(nprove, cnombre, cprovincia, ofld), nil) }
                             
if lsalir
SELE PROVE
oBrw:Seek( "" )
oBrw:refresh()
PROVE->(DBGOTOP())
oBrw:SetFocus()
endif

retur nil


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

FUNCTION Productos(nprove, cnombre, cprovincia, oFld)

   LOCAL oDlg, oLbx, Lsalir:=.f.                                                      

   SELE produ
 
   produ->( ordscope( 0, nProve ) )
   produ->( ordscope( 1, nProve ) )
   produ->( DBSKIP( 0 ) )
 
   IF produ->( ordKeyCount() ) == 0
   MsgInfo( "No se encontraron productos" )
   ENDIF
   
   DEFINE DIALOG oDlg FROM 3, 3 TO 40, 70 TITLE "Productos"
 
 @ 1, 1 XBROWSE oLbx SIZE 250, 65 PIXEL;
      COLUMNS "CODIGO_PRO", "PRODUCTO", "PRECIO" OF oFld:aDialogs[ 2 ] ALIAS "PRODU";
      HEADERS "Código proveedor", "Produto", "Precio";
      COLSIZES 70, 300, 140;
      JUSTIFY AL_RIGHT, AL_LEFT, AL_RIGHT;
      PICTURES , , "@E 9,999,999.99" LINES NOBORDER FASTEDIT

   oLbx:CreateFromCode()

   ACTIVATE DIALOG oDlg CENTERED valid lSalir
   
if lsalir
SELE PROVE
endif

retur nil


¿Qué es lo que falta para que me muestre los productos?

Saludos
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Ayuda en FOLDEREX

Postby karinha » Tue Oct 26, 2021 10:19 pm

Buenas noches Ramon, no és mejor, que tú haga un *.ZIP con *.DBFS y *.PRGS e ponga en el MegaUpload?

https://mega.nz/

Refards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Ayuda en FOLDEREX

Postby Ramón J. » Wed Oct 27, 2021 4:56 am

Gracias, João, por tu interés en mi consulta.

Aquí tienes el ejemplo sencillo sobre el que estoy trabajando para luego trasladarlo a la aplicación.

https://mega.nz/file/F0ogAYpb#E-xdvF8sebinL7G3aPDKCM0lVrPIi7ofWxyCcsSdhfw

Muchas gracias
Saludos
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Ayuda en FOLDEREX

Postby cmsoft » Wed Oct 27, 2021 10:41 am

El dialogo esta creado en el folder, por lo tanto tendrías que hacer referencia a el en lugar de crear otro dialogo.
Pero el dialogo tiene que estar creado antes.
El problema es que cada vez que hagas click en la pestaña de productos te va a intentar cargar todo del dialogo 2 del folder.
Code: Select all  Expand view

#include "FiveWin.ch"

FUNCTION Productos(nprove, cnombre, cprovincia, oFld)

   LOCAL oDlg, oLbx, Lsalir:=.f.                                                      

   SELE produ
 
   produ->( ordscope( 0, nProve ) )
   produ->( ordscope( 1, nProve ) )
   produ->( DBSKIP( 0 ) )
 
   IF produ->( ordKeyCount() ) == 0
   MsgInfo( "No se encontraron productos" )
   ENDIF
   
   //DEFINE DIALOG oDlg FROM 3, 3 TO 40, 70 TITLE "Productos"  Esto no tendria que estar, porque estaría dentro de la segunda pestaña
 
 @ 1, 1 XBROWSE oLbx SIZE 250, 65 PIXEL;
      COLUMNS "CODIGO_PRO", "PRODUCTO", "PRECIO" OF oFld:aDialogs[ 2 ] ALIAS "PRODU";
      HEADERS "Código proveedor", "Produto", "Precio";
      COLSIZES 70, 300, 140;
      JUSTIFY AL_RIGHT, AL_LEFT, AL_RIGHT;
      PICTURES , , "@E 9,999,999.99" LINES NOBORDER FASTEDIT

   oLbx:CreateFromCode()

   // Esto tampoco devería ir ACTIVATE DIALOG oDlg CENTERED valid lSalir
 
User avatar
cmsoft
 
Posts: 1189
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Ayuda en FOLDEREX

Postby karinha » Wed Oct 27, 2021 11:05 am

Que debria hacer y no hace?

https://imgur.com/4tcaVvn

Image

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Ayuda en FOLDEREX

Postby karinha » Wed Oct 27, 2021 4:55 pm

Ramon, algo asi?

Code: Select all  Expand view

#include "FiveWin.ch"

FUNCTION Editpro( obrw )

   LOCAL oDlg, oFld, oLbx, Lsalir:=.f.
   LOCAL nProve, oProve, cNombre, oNombre, cProvincia, oProvincia
   // Folder 2
   LOCAL oCodProd, nCodProd, oProdu, cProdNom

   NProve     := PROVE->CODIGO_PRO
   cNombre    := PROVE->NOMBRE
   cProvincia := PROVE->PROVINCIA

   // Folder 2
   nCodProd   := PRODU->CODIGO_PRO
   cProdNom   := PRODU->PRODUCTO
   
   DEFINE DIALOG oDlg FROM 3, 3 TO 40, 70 TITLE "Mantenimiento"

   @ 10, 5 FOLDEREX oFld PIXEL PROMPT "&Proveedor", "&Productos" SIZE 250, 100

   @ 20, 5 SAY "Código:" OF oFld:aDialogs[ 1 ]  SIZE 60, 10 PIXEL

   @ 20, 100 SAY oProve var nProve OF oFld:aDialogs[ 1 ]  SIZE 60, 10 PIXEL

   @ 30, 5 SAY "Razón social" OF oFld:aDialogs[ 1 ] SIZE 60, 10 PIXEL

   @ 30, 100 GET oNombre VAR cNombre OF oFld:aDialogs[ 1 ]  SIZE 100, 10 PIXEL

   @ 40, 5 SAY "Provincia" OF oFld:aDialogs[ 1 ] SIZE 60, 10 PIXEL

   @ 40, 100 GET oProvincia VAR cProvincia OF oFld:aDialogs[ 1 ]  SIZE 100, 10 PIXEL

   // folder 2

   @ 20, 005 SAY "Código:" OF oFld:aDialogs[ 2 ]  SIZE 60, 10 PIXEL

   @ 20, 030 SAY oCodProd var nCodProd  OF oFld:aDialogs[ 2 ]  SIZE 60, 10 PIXEL

   @ 20, 060 SAY oProdu var cProdNom OF oFld:aDialogs[ 2 ]  SIZE 200, 10 PIXEL

   @ 60, 50 BUTTON "Grabar" OF oFld:aDialogs[1] SIZE 40, 10 PIXEL action oDlg:end()

   @ 60, 150 BUTTON "Salir" OF oFld:aDialogs[1] SIZE 40, 10 PIXEL ACTION (lSalir:=.t., oDlg:End())


   ACTIVATE DIALOG oDlg CENTERED
     
   // oFld:bAction := { || IF(oFld:nOption=2,Productos(nprove, cnombre, cprovincia, ofld), nil) }
                             
   if lsalir

      SELE PROVE

      oBrw:Seek( "" )
      oBrw:refresh()

      PROVE->(DBGOTOP())

      oBrw:SetFocus()

   endif

return nil
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Ayuda en FOLDEREX

Postby Ramón J. » Thu Oct 28, 2021 7:03 am

Gracias, César y João por vuestro interés. César, he probado eliminado el diálogo, como dices, pero sigue sin mostrar nada.
João, lo que pones en tu ejemplo es lo que quiero, pero lo del folder 2 lo quiero en otro prg. En mi aplicación lo tengo todo en un prg, como tú lo has hecho, pero en mi aplicación el prg se ha hecho muy grande y por eso quiero hacer un prg por cada pestaña del folder

Mira las imágenes de los tres prg:
principal.prg
Image

proveedores.prg
Image

productos.prg
Image
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Ayuda en FOLDEREX

Postby karinha » Thu Oct 28, 2021 11:34 am

El problema es que a veces no entiendo el idioma. jajajaja

Mira que simples:

Code: Select all  Expand view

#include "FiveWin.ch"

FUNCTION Editpro( obrw )

   LOCAL oDlg, oFld, oLbx, Lsalir:=.f.

   /*
   LOCAL nProve, oProve, cNombre, oNombre, cProvincia, oProvincia
   // Folder 2
   LOCAL oCodProd, nCodProd, oProdu, cProdNom
   */


   MEMVAR nProve, oProve, cNombre, oNombre, cProvincia, oProvincia
   MEMVAR oCodProd, nCodProd, oProdu, cProdNom

   NProve     := PROVE->CODIGO_PRO
   cNombre    := PROVE->NOMBRE
   cProvincia := PROVE->PROVINCIA

   // Folder 2
   nCodProd   := PRODU->CODIGO_PRO
   cProdNom   := PRODU->PRODUCTO
   
   DEFINE DIALOG oDlg FROM 3, 3 TO 40, 70 TITLE "Mantenimiento"

   @ 10, 5 FOLDEREX oFld PIXEL PROMPT "&Proveedor", "&Productos" SIZE 250, 100

   // DATOS DE LA EMPRESA, ETC.
   RAZON( oFld )

   // PRODUCTOS
   INVENTARIO( oFld )

   // Continue.. Facil... Pero no mucho... jajajaja.

   // FOLDER 3: ... 3.PRG

   // FOLDER 4: ... 4.PRG


   // BUTTONS...

   ACTIVATE DIALOG oDlg CENTERED
     
                             
   if lsalir

      SELE PROVE

      oBrw:Seek( "" )
      oBrw:refresh()

      PROVE->(DBGOTOP())

      oBrw:SetFocus()

   endif

return nil

// FOLDER 1: RAZON.prg
FUNCTION RAZON( oFld )

   MEMVAR nProve, oProve, cNombre, oNombre, cProvincia, oProvincia

   @ 20, 5 SAY "Código:" OF oFld:aDialogs[ 1 ]  SIZE 60, 10 PIXEL

   @ 20, 100 SAY oProve var nProve OF oFld:aDialogs[ 1 ]  SIZE 60, 10 PIXEL

   @ 30, 5 SAY "Razón social" OF oFld:aDialogs[ 1 ] SIZE 60, 10 PIXEL

   @ 30, 100 GET oNombre VAR cNombre OF oFld:aDialogs[ 1 ]  SIZE 100, 10 PIXEL

   @ 40, 5 SAY "Provincia" OF oFld:aDialogs[ 1 ] SIZE 60, 10 PIXEL

   @ 40, 100 GET oProvincia VAR cProvincia OF oFld:aDialogs[ 1 ]  SIZE 100, 10 PIXEL

RETURN NIL

// FOLDER 2:  INVENTAR.PRG
FUNCTION INVENTARIO( oFld )

   MEMVAR oCodProd, nCodProd, oProdu, cProdNom

   @ 20, 005 SAY "Código:" OF oFld:aDialogs[ 2 ]  SIZE 60, 10 PIXEL

   @ 20, 030 SAY oCodProd var nCodProd  OF oFld:aDialogs[ 2 ]  SIZE 60, 10 PIXEL

   @ 20, 060 SAY oProdu var cProdNom OF oFld:aDialogs[ 2 ]  SIZE 200, 10 PIXEL

   @ 60, 50 BUTTON "Grabar" OF oFld:aDialogs[1] SIZE 40, 10 PIXEL action oDlg:end()

   @ 60, 150 BUTTON "Salir" OF oFld:aDialogs[1] SIZE 40, 10 PIXEL ACTION (lSalir:=.t., oDlg:End())

RETURN NIL
 


Regards, saludos
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Ayuda en FOLDEREX

Postby Ramón J. » Thu Oct 28, 2021 12:43 pm

Muchas gracias, João. Siempre tan amable y dispuesto a ayudar.

Saludos
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Ayuda en FOLDEREX

Postby Ramón J. » Wed Feb 09, 2022 4:38 pm

Hola a todos

Después de un tiempo -por cuestiones de enfernedad- he vuelto a retomar el tema del folderex con un prg por cada pestaña y con bbdd relacionales. He construido el ejemplo poniendo un prg separado por cada pestaña. El ejemplo es muy sencillo:proveedores->proveedor y productos y quesos de este proveedor.

A la hora de crear los índices, que es donde tengo el problema, hago lo siguiente:

Code: Select all  Expand view

 
   USE PROVEEDOR NEW SHARED ALIAS "PROVE"
   INDEX ON PROVE->CODIGO_PRO TO CODPROVE
   SET INDEX TO CODPROVE
   
   USE PRODUCTOS NEW SHARED ALIAS "PRODU"
   INDEX ON PRODU->CODIGO_PRO TO CODPRODU
   SET INDEX TO CODPRODU
   
   INDEX ON PRODU->CODIGO_PRO TO TIPO_PRO FOR PRODU->PRODUCTO="QUESO"
   SET INDEX TO TIPO_PRO


Pues bien, cuando selecciono el proveedor, sale un FOLDEREX con tres pestañas: "Proveedor", "Productos" y "Quesos", y en las pestañas "Productos" y "Quesos", siempre me trabaja con el último índice, es decir, el de "Quesos" aun cuando selecciono la pestaña "Productos" y con ordsetfocus("productos") siguen saliendo los datos del índice "Quesos", que es justamente el último creado.

He probado con set order to pero tampoco me lo cambia. ¿Alguna idea? Os adjunto el zip con todos los archivos del ejemplo.

https://mega.nz/file/004WSRRY#McLEhvdkqNP1LR8BiVxzSQZ9-kKxz6xmaEFtLQEVW3A

Un saludo
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Re: Ayuda en FOLDEREX

Postby karinha » Wed Feb 09, 2022 10:44 pm

Ramón, en este caso, no use FOLDEREX, use un DIALOGO de Botones para llamar xBrowses() diferentes.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Ayuda en FOLDEREX

Postby Ramón J. » Thu Feb 10, 2022 11:11 am

Gracias, João, lo voy a probar.

Un saludo
FWH 20.12 BCC7
Ramón J.
 
Posts: 152
Joined: Mon Feb 13, 2006 8:23 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 67 guests