FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour alias dinamicos en dialogos nomodales
Posts: 132
Joined: Sun Oct 23, 2005 04:09 PM
alias dinamicos en dialogos nomodales
Posted: Wed Mar 08, 2017 03:06 AM

creo un alias (concepto0) la primera vez si lo abro 2 veces se crea otro alias (concepto1) pero no logro que trabajen independiente, si muevo el puntero en el ultimo al regresar a los anteriores se me "rellena" el browse con un único registro que es el seleccionado en este último alias.

saludos y gracias

Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Re: alias dinamicos en dialogos nomodales
Posted: Wed Mar 08, 2017 07:05 AM

Hola,

El browse debes indicarle que alias usaras isno cogerá el alias activo. No se q browse y version usas, pero prueba oBrw:cAlias := <el_alias_q_le_toque>

Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix
Posts: 132
Joined: Sun Oct 23, 2005 04:09 PM
Re: alias dinamicos en dialogos nomodales
Posted: Wed Mar 08, 2017 03:33 PM

gracias Carles.

tengo asi

    cAliasCon := &quot;concepto&quot;+cArea

Use (cFile) shared NEW ALIAS (cAliasCon) VIA "DBFCDX"

(cAliasCon)->(ORDSETFOCUS("EMPCON"))

oBrw := TxBrowse():New( oDlg )
oBrw:nHeaderLines := 1
oBrw:lAllowColSwapping :=.F.
oBrw:nColSel := 1
oBrw:nRowHeight := 18
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLCELL
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:lColDividerComplete := .t.
oBrw:lHScroll := .f.
oBrw:lFooter := .t.
oBrw:nFreeze := 2
oBrw:lFastEdit = .T.
oBrw:cAlias := cAliascon // donde aliascon cambia cada ve que se abre (concepto0,concepto1,concepto2)

saludos

Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Re: alias dinamicos en dialogos nomodales
Posted: Wed Mar 08, 2017 07:06 PM

Hola

Cuantos browses tienes ? Como ? No acabo entender bien lo que haces pero el browse siempre manejara el alias q tenga asignado.

Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix
Posts: 132
Joined: Sun Oct 23, 2005 04:09 PM
Re: alias dinamicos en dialogos nomodales
Posted: Thu Mar 09, 2017 01:27 AM

me pidieron abrir varias veces el mismo modulo de mantenimiento de articulos

para eso cambie el dialogo a nowait

lo hice con Use (cFile) shared NEW ALIAS (aAliasCon[val(cArea)]) VIA "DBFCDX" // donde cArea se incrementa cada vez (1,2,3,4...)

pero si me muevo del 4to al 3ro o al 2do o al 1ro , el puntero se queda con el que tenga seleccionado en el 4to.

y necesitan que esten independientes uno de otro es decir que si en el 1ro tengo seleccionado el registro 40 y voy al 2do selecciono el 300, si regreso al 1ro no se mueva del registro 40.

espero haberme explicado mejor
saludos

Posts: 564
Joined: Thu Oct 13, 2005 09:23 AM
Re: alias dinamicos en dialogos nomodales
Posted: Thu Mar 09, 2017 08:11 AM

Hola,
Yo no uso diálogos no modales, uso una clase llamada FSDI que creo que es mejor desde el punto de vista de la usabilidad de la aplicación. Tienes toda la información y ejemplos en mi blog - https://cincomundos.wordpress.com/?s=fsdi

Saludos,

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: alias dinamicos en dialogos nomodales
Posted: Thu Mar 09, 2017 08:17 AM
The problem should be the way you create xbrowse.

Our recommendation:
Code (fw): Select all Collapse
function BrowseDlg( cDBF )

   local oDlg, oBrw, cAlias

   USE ( cDbf ) NEW SHARED ALIAS ( cAlias := cGetNewAlias( "DB" ) ) VIA "DBFCDX"
   if !USED()
      ? "Can not open " + cDBF
      return nil
   endif

   DEFINE DIALOG oDlg SIZE 600,400 PIXEL
   @ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
      ALIAS cAlias AUTOCOLS CELL LINES NOBORDER FASTEDIT

   WITH OBJECT oBrw
      // other settings
      //
      :CreateFromCode()
   END

   ACTIVATE DIALOG oDlg NOMODAL ;
      VALID ( ( cAlias )->( DBCLOSEAREA() ), .t. )

return nil

This dialog can be called any number of times with the same DBF
Regards



G. N. Rao.

Hyderabad, India
Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Re: alias dinamicos en dialogos nomodales
Posted: Thu Mar 09, 2017 08:36 AM
Miguel

Code (fw): Select all Collapse
#include "FiveWin.Ch"
#include "xbrowse.ch"

STATIC oWnd 
STATIC nCount := 0

FUNCTION Main()
    LOCAL oBar

    CreateTable()
    
    DEFINE WINDOW oWnd MDI
        DEFINE BUTTONBAR oBar
        DEFINE BUTTON OF oBar ACTION Dlg()
    ACTIVATE WINDOW oWnd ON INIT Test()

RETU NIL

FUNCTION Dlg()

    LOCAL oDlg, oBrw, cAlias
    
    cAlias := 'MIALIAS' + ltrim(str(++nCount))
    
    USE "xbr.dbf" SHARED NEW ALIAS (cAlias )

    DEFINE DIALOG oDlg TITLE ( 'Browse => ' + cAlias )
        oDlg:nStyle    := nOr( WS_THICKFRAME, WS_SYSMENU, WS_MINIMIZEBOX, WS_MAXIMIZEBOX )
        
       @ 0,0 XBROWSE oBrw OF oDlg ALIAS (cAlias) AUTOCOLS   
            oBrw:CreateFromCode()
            
        oDlg:oClient := oBrw
        
    ACTIVATE DIALOG oDlg NOMODAL ;
            ON INIT ( oDlg:Move( HB_RandomInt(5) * 100 , HB_RandomInt(10) * 100 ) ) ;
            VALID ( (cAlias)->(DbCloseArea()), .t. )

RETU NIL

FUNCTION Test()
    LOCAL n
    
    FOR n := 1 TO 10
        Dlg()
    NEXT
    
RETU NIL

STATIC FUNCTION CreateTable()

   LOCAL n
   LOCAL aFlds := { ;
                  { "FLDID",      "N",  3, 0  }, ;
                  { "FLDNAME",    "C", 10, 0  } ;
                }

   dbCreate( "XBR", aFlds )

   Use XBR

   for n := 1 to 50
      dbAppend()     
      FIELD->FldID      := n
      FIELD->FldName    := {'ONE','TWO','THREE','FOUR','FIVE'}[ HB_RandomInt( 5 ) ] + ' - ' + ltrim(str(n)) 
   next
   
   CLOSE DATA

return nil
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix
Posts: 132
Joined: Sun Oct 23, 2005 04:09 PM
Re: alias dinamicos en dialogos nomodales
Posted: Thu Mar 09, 2017 07:12 PM

Gracias por su interes

ya probé ambos y sigo igual.

¿afeca que haga el browse desde recursos? craetefromresource()

saludos

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: alias dinamicos en dialogos nomodales
Posted: Thu Mar 09, 2017 07:36 PM
Miguel, pon esta instrucción en la definición del diálogo, a ver si te da alguna pista

Code (fw): Select all Collapse
 oDlg:bGotFocus   := { || MsgInfo( Alias() ) }
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 132
Joined: Sun Oct 23, 2005 04:09 PM
Re: alias dinamicos en dialogos nomodales
Posted: Thu Mar 09, 2017 10:05 PM

si lo he hecho, me mustra concepto1,concepto2,concepto3, etc...
gracias

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: alias dinamicos en dialogos nomodales
Posted: Thu Mar 09, 2017 10:08 PM

Y se corresponden con los Alias que debe tener ese dialog ?

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 132
Joined: Sun Oct 23, 2005 04:09 PM
Re: alias dinamicos en dialogos nomodales
Posted: Fri Mar 10, 2017 12:14 AM

Pues ya funciona ¡loteria!

me hice un ejemplo pequeño con la ayuda de todos

function nomodales()

local oDlg, oBrw, cAlias

cFile := cPath+"\DATOS\concepto.DBF"

USE ( cFile ) NEW SHARED ALIAS ( cAlias := DinamicAlias( "CON" ) ) VIA "DBFCDX"
if !USED()
? "Can not open " + cFile
return nil
endif
DEFINE DIALOG oDlg RESOURCE "concepto2" TITLE "Catalogo de Conceptos"+cAlias Of oWnd ;

oBrw := TxBrowse():New( oDlg )
oBrw:nHeaderLines := 1
oBrw:lAllowColSwapping :=.F.
oBrw:nColSel := 1
oBrw:nRowHeight := 18
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLCELL
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:lColDividerComplete := .t.
oBrw:lHScroll := .f.
oBrw:lFooter := .t.
oBrw:nFreeze := 2
oBrw:lFastEdit := .T.
oBrw:cAlias := cAlias

oCol := oBrw:AddCol()
oCol:cHeader := "Clave"
oCol:bStrData := { || ( oBrw:cAlias )->clave }
oCol:nWidth := 45
oCol:nDataStrAlign:= AL_RIGHT
oCol:nHeadStrAlign:= AL_RIGHT
oCol:lAllowSizing :=.F.

oCol := oBrw:AddCol()
oCol:cHeader := "Nombre"
oCol:bStrData := { || ( oBrw:cAlias )->NOMBREEXT }
oCol:nWidth := 300
oCol:nDataStrAlign:= AL_LEFT
oCol:nHeadStrAlign:= AL_LEFT
oCol:lAllowSizing :=.F.

oBrw:CreateFromResource (101 )
oBrw:setrdd()

ACTIVATE DIALOG oDlg NOMODAL ;
VALID ( ( cAlias )->( DBCLOSEAREA() ), .t. )

return nil

muchisimas gracias

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: alias dinamicos en dialogos nomodales
Posted: Fri Mar 10, 2017 01:24 AM
This is the correction
================
DEFINE DIALOG oDlg RESOURCE "concepto2" TITLE "Catalogo de Conceptos"+cAlias Of oWnd

oBrw := TxBrowse():New( oDlg )
( cAlias )->( oBrw:SetRDD( .f. ) ) // <--- Add this here
oBrw:nHeaderLines := 1
oBrw:lAllowColSwapping :=.F.
oBrw:nColSel := 1
oBrw:nRowHeight := 18
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLCELL
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:lColDividerComplete := .t.
oBrw:lHScroll := .f.
oBrw:lFooter := .t.
oBrw:nFreeze := 2
oBrw:lFastEdit := .T.
//oBrw:cAlias := cAlias // REMOVE THIS LINE


oCol := oBrw:AddCol()
oCol:cHeader := "Clave"
oCol:bStrData := { || ( oBrw:cAlias )->clave }
oCol:nWidth := 45
oCol:nDataStrAlign:= AL_RIGHT
oCol:nHeadStrAlign:= AL_RIGHT
oCol:lAllowSizing :=.F.

oCol := oBrw:AddCol()
oCol:cHeader := "Nombre"
oCol:bStrData := { || ( oBrw:cAlias )->NOMBREEXT }
oCol:nWidth := 300
oCol:nDataStrAlign:= AL_LEFT
oCol:nHeadStrAlign:= AL_LEFT
oCol:lAllowSizing :=.F.

oBrw:CreateFromResource (101 )
//oBrw:setrdd() // REMOVE THIS LINE

ACTIVATE DIALOG oDlg NOMODAL ;
VALID ( ( cAlias )->( DBCLOSEAREA() ), .t. )

return nil
Regards



G. N. Rao.

Hyderabad, India
Posts: 132
Joined: Sun Oct 23, 2005 04:09 PM
Re: alias dinamicos en dialogos nomodales
Posted: Fri Mar 10, 2017 02:17 AM

corregido!

mil gracias