alias dinamicos en dialogos nomodales

Miguel Salas
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

alias dinamicos en dialogos nomodales

Post by Miguel Salas »

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
User avatar
Carles
Posts: 1149
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Been thanked: 6 times
Contact:

Re: alias dinamicos en dialogos nomodales

Post by Carles »

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
Skype -> https://join.skype.com/cnzQg3Kr1dnk
Miguel Salas
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

Re: alias dinamicos en dialogos nomodales

Post by Miguel Salas »

gracias Carles.

tengo asi

cAliasCon := "concepto"+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
User avatar
Carles
Posts: 1149
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Been thanked: 6 times
Contact:

Re: alias dinamicos en dialogos nomodales

Post by Carles »

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
Skype -> https://join.skype.com/cnzQg3Kr1dnk
Miguel Salas
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

Re: alias dinamicos en dialogos nomodales

Post by Miguel Salas »

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
User avatar
José Luis Sánchez
Posts: 556
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Re: alias dinamicos en dialogos nomodales

Post by José Luis Sánchez »

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,
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: alias dinamicos en dialogos nomodales

Post by nageswaragunupudi »

The problem should be the way you create xbrowse.

Our recommendation:

Code: Select all | Expand

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
User avatar
Carles
Posts: 1149
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Been thanked: 6 times
Contact:

Re: alias dinamicos en dialogos nomodales

Post by Carles »

Miguel

Code: Select all | Expand

#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
Skype -> https://join.skype.com/cnzQg3Kr1dnk
Miguel Salas
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

Re: alias dinamicos en dialogos nomodales

Post by Miguel Salas »

Gracias por su interes

ya probé ambos y sigo igual.

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



saludos
User avatar
cnavarro
Posts: 6557
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: alias dinamicos en dialogos nomodales

Post by cnavarro »

Miguel, pon esta instrucción en la definición del diálogo, a ver si te da alguna pista

Code: Select all | Expand



 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
Miguel Salas
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

Re: alias dinamicos en dialogos nomodales

Post by Miguel Salas »

si lo he hecho, me mustra concepto1,concepto2,concepto3, etc...
gracias
User avatar
cnavarro
Posts: 6557
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: alias dinamicos en dialogos nomodales

Post by cnavarro »

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
Miguel Salas
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

Re: alias dinamicos en dialogos nomodales

Post by Miguel Salas »

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
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: alias dinamicos en dialogos nomodales

Post by nageswaragunupudi »

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
Miguel Salas
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

Re: alias dinamicos en dialogos nomodales

Post by Miguel Salas »

corregido!

mil gracias
Post Reply