FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Favor Ayuda con MULTIPLE XBROWSE
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Favor Ayuda con MULTIPLE XBROWSE
Posted: Wed Oct 03, 2018 08:58 PM

Amigos, necesito ayuda.

Lo que necesito es lo siguiente, tengo 2 Xbrowse:
XBROWSE Principal Con Facturas Ingresadas

XBROWSE Segundario Detalle Factura.

Ambos XBROWSE son parte de un Recurso Dialog que esta en un archivo RES. 4001 y 4002

Lo que necesito es que al Seleccionar una Factura en el XBrowse Facturas Ingresadas, se muestre Inmediatamente su Detalle en el XBrowse Detalle Factura.

Desde ya muchas Gracias.

Antonio.

FWH 22.10 - HARBOUR - PELLES C
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: Favor Ayuda con MULTIPLE XBROWSE
Posted: Thu Oct 04, 2018 11:08 AM
con el codeblock :bChange puedes hacerlo.

ej. como referencia:

Code (fw): Select all Collapse
       REDEFINE  XBROWSE  oBrw[1] ID  4001 COLUMNS "INCL","NUME","CFEC","LOTE"... ALIAS "PASO1" OF oDlg FONT xFont NOBORDER AUTOSORT FOOTERS
       ...
       ...

       oBrw[1]:bChange := {|| FuncionDetalle( oBrw ) } 

       REDEFINE  XBROWSE  oBrw[2] ID  4002 COLUMNS "INCL","CODE","DETA","CANT"... ALIAS "PASO2" OF oDlg FONT xFont NOBORDER AUTOSORT FOOTERS
       ...
       ...

FUNCTION FuncionDetalle( oBrw )

     SELECT PASO2
     ZAP

     //--- haces la busqueda del detalle con la clave que tengas en el encabezado de la factura (Tabla PASO1)...
     //--- llenas la tabla PASO2 con los registros encontrados...
    
    SELECT PASO2
    GO TOP
    oBrw[2]:Gotop()
    oBrw[2]:Refresh()
    oBrw[1]:SetFocus()

RETURN .t.


Saludos
SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Favor Ayuda con MULTIPLE XBROWSE
Posted: Thu Oct 04, 2018 04:12 PM
Hola. Aqui otro estilo para guiarte, usando CDX: (codigo parcial)
//-------------------------------------
Code (fw): Select all Collapse
Function ClteCredito(cCodigo,cCredNum,cCliente,cMoneda)

DbSelectArea("CLIENTES")
cAlias1:=Alias()

DbSelectArea("CREDITOS")
cAlias2:=Alias()
CREDITOS->(ORDSETFOCUS("CODCTPTM"))  //Codigo de Clte +codigo de Ptmo


//PRIMER BROWSE
REDEFINE XBROWSE oBrw1 ID 118 OF oDlg ;
         COLUMNS "Codigo", "Nombre", "Apellido","CedulaIde" ; 
         ALIAS (cAlias1) FOOTERS LINES CELL //;

   WITH OBJECT oBrw1
      :bChange := {|| PonerScope(cAlias1,cAlias2,oBrw2) }
   END

//SEGUNDO BROWSE
REDEFINE XBROWSE oBrw2 ID 119 OF oDlg ;
         COLUMNS "Ptmo","Moneda","MontoPtmo" ;
         ALIAS (cAlias2) FOOTERS LINES CELL //;

   WITH OBJECT oBrw2
      :bLDblClick := {|| cMoneda:=(cAlias2)->Moneda,cCodigo:=(cAlias2)->CodClte, cCredNum:=(cAlias2)->Ptmo, cCliente:=(cAlias2)->Cliente, oDlg:End() }
      :bKeyDown := {|nTecla| if(nTecla==VK_RETURN, (cMoneda:=(cAlias2)->Moneda,cCodigo:=(cAlias2)->CodClte, cCredNum:=(cAlias2)->Ptmo, cCliente:=(cAlias2)->Cliente, oDlg:End()),) }

   END


   ACTIVATE DIALOG oDlg CENTERED ;
            ON INIT ( oBrw1:SetFocus(), PonerScope(cAlias1,cAlias2,oBrw2) )

return nil
//-------------------------------------
Function PonerScope(cAlias1,cAlias2,oBrw)
(cAlias2)->(OrdScope(TOPSCOPE,(cAlias1)->Codigo))
(cAlias2)->(OrdScope(BOTTOMSCOPE,(cAlias1)->Codigo))
(cAlias2)->(DbGotop())
 oBrw:Refresh()
Return nil
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Favor Ayuda con MULTIPLE XBROWSE
Posted: Thu Oct 04, 2018 05:17 PM
This is a sample using DBFs.
Code (fw): Select all Collapse
#include "fivewin.ch"

REQUEST DBFCDX

function MasterChildDBF()

   field STATE,CODE
   local oDlg, oStates, oCust

   USE CUSTOMER NEW SHARED
   INDEX ON STATE TAG TSTATE TO TMP MEMORY
   USE STATES NEW SHARED
   SET RELATION TO CODE INTO CUSTOMER SCOPED
   GO TOP

   DEFINE DIALOG oDlg SIZE 900,400 PIXEL TRUEPIXEL ;
      TITLE "Parent Child Browse"

   @ 20,20 XBROWSE oStates SIZE 200,-20 PIXEL OF oDlg ;
      DATASOURCE "STATES" ;
      COLUMNS "CODE","NAME" CELL LINES NOBORDER

   WITH OBJECT oStates
      :bChange    := { || oCust:GoTop(), oCust:Refresh() }
      :CreateFromCode()
   END

   @ 20,200 XBROWSE oCust SIZE -20,-20 PIXEL OF oDlg ;
      DATASOURCE "CUSTOMER" ;
      COLUMNS "STATE", "FIRST", "CITY", "AGE", "SALARY" ;
      CELL LINES NOBORDER

   oCust:CreateFromCode()

   ACTIVATE DIALOG oDlg CENTERED

return nil


Regards



G. N. Rao.

Hyderabad, India
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Favor Ayuda con MULTIPLE XBROWSE
Posted: Fri Oct 05, 2018 01:09 PM

Genial el ejemplo Mr. Nages! Y como seria con MySql con Tdolphin?

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Favor Ayuda con MULTIPLE XBROWSE
Posted: Fri Oct 05, 2018 02:35 PM
La importancia y potencia de SET RELATION TO... INTO...
Raras veces las he usado (por lo general lo hago con SCOPES)
Gracias por el ejemplo Mr, Nages.
cmsoft wrote:Genial el ejemplo Mr. Nages! Y como seria con MySql con Tdolphin?

+1
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Favor Ayuda con MULTIPLE XBROWSE
Posted: Fri Oct 05, 2018 04:37 PM

Amigos.

Mil gracias, realmente se pasaron.

Lo revisare todas las opciones y vere cual me queda mas comoda para implementar.

Comentare una vez que me funcione en mi aplicacion.

Muy agradecido.

Saludos

Antonio.

FWH 22.10 - HARBOUR - PELLES C
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Favor Ayuda con MULTIPLE XBROWSE
Posted: Fri Oct 05, 2018 05:35 PM
MySQL:

FWMariaDB library has built-in support for parent-child rowsets. Please see this thread.
viewtopic.php?f=3&t=32736

You can see parent-child browses, parent-child-grandchild browses and also one parent with multiple chidren browses. Because FWMariaDB implements client-side filters, the performace is highly optimized.

We can use fwmariadb functions in a tdolphin application also for some functions or for some modules without conflicting with tdolphin.

This is a sample using TDolphin:
Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

   local oServer, oQryStates, oQryCust, bWhere
   local oStates, oCust, oDlg

   oServer     := FW_DemoDB( "DLP" ) // You may use your server connection

   oQryStates  := oServer:Query( "select * from `states`" )
   bWhere      := { || "`state` = '" + oQryStates:code + "'" }
   oQryCust    := oServer:Query( "select * from customer where " + Eval( bWhere ) )

   DEFINE DIALOG oDlg SIZE 900,400 PIXEL TRUEPIXEL ;
      TITLE "Parent Child Browse"

   @ 20,20 XBROWSE oStates SIZE 200,-20 PIXEL OF oDlg ;
      DATASOURCE oQryStates ;
      COLUMNS "CODE","NAME" CELL LINES NOBORDER

   WITH OBJECT oStates
      :bChange    := { || oQryCust:SetWhere( Eval( bWhere ) ), oCust:GoTop(), oCust:Refresh() }
      :CreateFromCode()
   END

   @ 20,200 XBROWSE oCust SIZE -20,-20 PIXEL OF oDlg ;
      DATASOURCE oQryCust ;
      COLUMNS "STATE", "FIRST", "CITY", "AGE", "SALARY" ;
      CELL LINES NOBORDER

   oCust:CreateFromCode()

   ACTIVATE DIALOG oDlg CENTERED

   oQryStates:End()
   oQryCust:End()
   oServer:End()

return nil
Regards



G. N. Rao.

Hyderabad, India
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Favor Ayuda con MULTIPLE XBROWSE
Posted: Fri Oct 05, 2018 10:31 PM

Excelente Mr. Nages!! Como siempre codigo claro y conciso!!
Saludos

Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Favor Ayuda con MULTIPLE XBROWSE
Posted: Sat Oct 06, 2018 03:25 AM

Buen dia.
Reitero las gracias a todos los que respondieron a mi solicitud.

He implementado la opción que me entrego Regards, puedo decir que quedo de maravilla, funciona super.

Solo me faltaria incorporar la ultima necesidad, que seria por permitir que se ingrese una Fecha y con esta Filtrar las Facturas de ese periodo, en el Browse Padre.

Desde ya mil gracias.

Saludos

Antonio

FWH 22.10 - HARBOUR - PELLES C

Continue the discussion