alias dinamicos en dialogos nomodales

alias dinamicos en dialogos nomodales

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

Re: alias dinamicos en dialogos nomodales

Postby Carles » Wed Mar 08, 2017 7: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
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1101
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: alias dinamicos en dialogos nomodales

Postby Miguel Salas » Wed Mar 08, 2017 3:33 pm

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

Re: alias dinamicos en dialogos nomodales

Postby Carles » Wed Mar 08, 2017 7: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
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1101
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: alias dinamicos en dialogos nomodales

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

Re: alias dinamicos en dialogos nomodales

Postby José Luis Sánchez » Thu Mar 09, 2017 8: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,
User avatar
José Luis Sánchez
 
Posts: 540
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España

Re: alias dinamicos en dialogos nomodales

Postby nageswaragunupudi » Thu Mar 09, 2017 8:17 am

The problem should be the way you create xbrowse.

Our recommendation:
Code: Select all  Expand view
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
nageswaragunupudi
 
Posts: 10295
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: alias dinamicos en dialogos nomodales

Postby Carles » Thu Mar 09, 2017 8:36 am

Miguel

Code: Select all  Expand view
#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
User avatar
Carles
 
Posts: 1101
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: alias dinamicos en dialogos nomodales

Postby Miguel Salas » Thu Mar 09, 2017 7:12 pm

Gracias por su interes

ya probé ambos y sigo igual.

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



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

Re: alias dinamicos en dialogos nomodales

Postby cnavarro » Thu Mar 09, 2017 7:36 pm

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

Code: Select all  Expand view


 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
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: alias dinamicos en dialogos nomodales

Postby Miguel Salas » Thu Mar 09, 2017 10:05 pm

si lo he hecho, me mustra concepto1,concepto2,concepto3, etc...
gracias
Miguel Salas
 
Posts: 132
Joined: Sun Oct 23, 2005 4:09 pm
Location: Pánuco,Ver. México

Re: alias dinamicos en dialogos nomodales

Postby cnavarro » 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
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: alias dinamicos en dialogos nomodales

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

Re: alias dinamicos en dialogos nomodales

Postby nageswaragunupudi » Fri Mar 10, 2017 1: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
User avatar
nageswaragunupudi
 
Posts: 10295
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: alias dinamicos en dialogos nomodales

Postby Miguel Salas » Fri Mar 10, 2017 2:17 am

corregido!

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

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], Maurizio and 36 guests