Consulta sobre GROUP

Consulta sobre GROUP

Postby juan_arroyo_t » Mon Sep 16, 2013 5:10 am

Por favor si alguien pudiera ayudarme

Estoy poniendo en un dialogo dos grupos el primera contiene 2 radios y el segundo tres
Selecciono un radio del primer grupo y cuando quiero seleccionar uno del segundo grupo, el radio del primer grupo se desactiva
Este es mi codigo :
Code: Select all  Expand view
# include "fivewin.ch"

STATIC nRad1, nRad2, cId_Art, cId_Pro, cId_Sol, cNomArt, cNomPro, cNomSol

FUNCTION RepDet()
    LOCAL oDlg := NIL,;
         aoObjetos := { nil, nil }, ;
         aoBtn := { nil, nil, nil },;
         aoSay := { nil, nil }
    LOCAL aoGrp := { nil, nil }        
   LOCAL aoRad := { nil, nil }
    LOCAL cTitulo := "Reporte detalle partidas de importaciones"
   
    cId_Art := space(18)
    cId_Pro := cId_Sol := space(5)
    cNomArt := cNomPro := cNomSol := ""
    nRad1 := 1
    nRad2 := 1
   
   dbCloseAll()

   IF ! Net_Use( "imp",,, oApp:xDatos ) .or.;           // Importaciones
    ! Net_Use( "pro",,, oApp:xDatos ) .or.;         // Ordenes de proveedores
    ! Net_Use( "ven",,, oApp:xDatos ) .or.;         // Catalogo de vendedores
    ! net_use( "art",,, oApp:xDatos ) .or.;         // Catalogo de articulos
    ! net_use( "dimp",,,oApp:xDatos )                   // Detalle de importaciones
      dbCloseAll(); RETURN(NIL)
   ENDIF
   
   DEFINE DIALOG oDlg RESOURCE "DLG_REP_DET" TITLE cTitulo
   
   REDEFINE RADIO aoRad[1] VAR nRad1                ID 201,202 OF oDlg UPDATE
   
   REDEFINE GROUP aoGrp[1] PROMPT "Seleccione"  ID 4003 OF oDlg UPDATE
   
   REDEFINE RADIO aoRad[2] VAR nRad2                ID 203,204,205 OF oDlg UPDATE
   
   REDEFINE GROUP aoGrp[2] PROMPT "Seleccione"  ID 4007 OF oDlg UPDATE
                     
   IF nRad1 == 1
    
    
    IF nRad2 == 1
        REDEFINE SAY aoSay[1] PROMPT "Articulo :"       ID 101 OF oDlg UPDATE
       
        REDEFINE GET aoObjetos[2] VAR cId_Art           ID 102 OF oDlg UPDATE ;
            PICTURE "@!" ;
            VALID EVAL ( { || cId_Art := ValCod( cId_Art, "art" ), ;
                                    iif(empty(cId_Art), .F., ;
                                       (cId_Art := art->id, cNomArt := art->nombre, oDlg:Update(), .t.)) } ) ;
                MESSAGE "Clave del articulo"
                aoObjetos[2]:cToolTip := "Introduzca o seleccione la clave del articulo"
               
            REDEFINE SAY aoSay[2] VAR cNomArt               ID 301 OF oDlg UPDATE
        ENDIF              
    
    IF nRad2 == 2
        REDEFINE SAY aoSay[1] PROMPT "Proveedor :"  ID 101 OF oDlg UPDATE
       
        REDEFINE GET aoObjetos[2] VAR cId_Pro           ID 102 OF oDlg UPDATE ;
            PICTURE "@!" ;
            VALID EVAL ( { || cId_Pro := ValCod( cId_Pro, "pro" ), ;
                                    iif(empty(cId_Pro), .F., ;
                                       (cId_Pro := pro->id, cNomPro := pro->nombre, oDlg:Update(), .t.)) } ) ;
                MESSAGE "Clave de proveedor"
                aoObjetos[2]:cToolTip := "Introduzca o seleccione la clave de proveedor"   
    
            REDEFINE SAY aoSay[2] VAR cNomPro               ID 301 OF oDlg UPDATE              
        ENDIF
                           
        IF nRad2 == 3
            REDEFINE SAY aoSay[1] PROMPT "Vendedor :"       ID 101 OF oDlg UPDATE ;
       
        REDEFINE GET aoObjetos[2] VAR cId_Sol           ID 102 OF oDlg UPDATE ;
            PICTURE "@!" ;
                VALID EVAL ( { || cId_Sol := ValCod( cId_Sol, "ven" ), ;
                                    iif(empty(cId_Sol), .F., ;
                                        (cId_Sol := ven->id, cNomSol := ven->nombre, oDlg:Update(), .t.)) } ) ;
            MESSAGE "Clave de vendedor"
                aoObjetos[2]:cToolTip := "Introduzca o seleccione la clave de vendedor"
               
            REDEFINE SAY aoSay[2] VAR cNomSol               ID 301 OF oDlg UPDATE              
           
        ENDIF
       
    ENDIF
   
    REDEFINE BUTTONBMP aoBtn[1] ID 400 OF oDlg ;
    PROMPT "A&ceptar " ;
    BITMAP "BTN_OK" TEXTRIGHT ;
    ACTION oDlg:End() ;     //( Filtra(), ImpRep(), oDlg:End() ) ;
      MESSAGE "Aceptar" UPDATE
      aoBtn[1]:cToolTip := "Presione para Continuar"

    REDEFINE BUTTONBMP aoBtn[2] ID 401 OF oDlg ;
        PROMPT "&Cancelar " BITMAP "BTN_CAN" TEXTRIGHT ;
    ACTION oDlg:End() ;     //( lContinuar := .F., oDlg:End() ) ;
      MESSAGE "Cancelar" UPDATE
      aoBtn[2]:cToolTip := "Presione para Cancelar"

   ACTIVATE DIALOG oDlg CENTERED ON INIT oninit( oDlg )
   
RETURN NIL

// --------------------------------------------------------------------------- //
 


y esta es una imagen del dialogo
Image

De antemano muchas gracias
Juan Arroyo
México
FWH 7.12 VERCE 5.3 xHarbour 1.1.0
juan_arroyo_t@hotmail.com
User avatar
juan_arroyo_t
 
Posts: 196
Joined: Fri May 15, 2009 1:25 am
Location: Cuautitlán, Mexico

Re: Consulta sobre GROUP

Postby juan_arroyo_t » Mon Sep 16, 2013 5:15 am

Disculpen, todavia no se muy bien como poner una imagen

Lo vuelvo a intentar
http://www.mediafire.com/download/707bar94c8nmkf3/Captura.JPG
Juan Arroyo
México
FWH 7.12 VERCE 5.3 xHarbour 1.1.0
juan_arroyo_t@hotmail.com
User avatar
juan_arroyo_t
 
Posts: 196
Joined: Fri May 15, 2009 1:25 am
Location: Cuautitlán, Mexico

Re: Consulta sobre GROUP

Postby RSalazarU » Mon Sep 16, 2013 2:26 pm

Hola Juan:

Proba con con habilitar el atributo Group al primer radio de cada grupo.

Esto lo deberias hacer en tu editor de recursos.



Atentamente,

Rolando
Cochabamba - Bolivia
FWH 1109 - xHarbour 1.1.0 (SimpLex) - BCC58
RSalazarU
 
Posts: 211
Joined: Wed Jul 16, 2008 12:59 pm
Location: Cochabamba-Bolivia

Re: Consulta sobre GROUP

Postby juan_arroyo_t » Mon Sep 16, 2013 4:42 pm

Rolando

Gracias por responder

Ya lo hice y sin embargo no me actualiza el valor de nRad2, se supone que si elijo en el primer grupo el primer radio (selectivo) y en el segundo grupo el segundo o el tercer radio, siempre me considera el primer radio (articulo)
Juan Arroyo
México
FWH 7.12 VERCE 5.3 xHarbour 1.1.0
juan_arroyo_t@hotmail.com
User avatar
juan_arroyo_t
 
Posts: 196
Joined: Fri May 15, 2009 1:25 am
Location: Cuautitlán, Mexico

Re: Consulta sobre GROUP

Postby Hector Pedro Lerda » Mon Sep 16, 2013 5:45 pm

Hola Juan

A mi me ha ocurrido lo mismo y es por el editor de recursos, si usas pelles debes colocar en el tipo que es un radiobutton y no auto radiobutton

Saludos Pedro
User avatar
Hector Pedro Lerda
 
Posts: 46
Joined: Tue May 07, 2013 7:27 pm
Location: Buenos Aires - Argentina

Re: Consulta sobre GROUP

Postby Armando » Mon Sep 16, 2013 10:37 pm

Juan:

Al contrario de Héctor, yo los tengo definidos como AUTO RADIOBUTTON desde PellesC y sin problemas,
sería bueno que publicaras tus recursos.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Consulta sobre GROUP

Postby juan_arroyo_t » Tue Sep 17, 2013 12:08 am

Hector, Armando

Ya probe con cambiar el atributo de los radios a auto radiobutton y no funciona

Mis radios del primer grupo son "selectivo" y "General"
los del segundo grupo son "Articulo", "Proveedor" y "Vendedor"
abajo tengo un get que se activa solamente si selecciono el primer radio del grupo uno "Selectivo" y me funcionen los if-endif ; pero al parecer el valor de nRad2 siempre me queda en 1
Estoy pensando que me hace falta algo como un CHANGE para actualizar el valor de nRAd2, pero no se como implementarlo

Saludos
Juan Arroyo
México
FWH 7.12 VERCE 5.3 xHarbour 1.1.0
juan_arroyo_t@hotmail.com
User avatar
juan_arroyo_t
 
Posts: 196
Joined: Fri May 15, 2009 1:25 am
Location: Cuautitlán, Mexico

Re: Consulta sobre GROUP

Postby Armando » Tue Sep 17, 2013 1:31 am

Juan:

Viendo tu imagen creo comprender tus necesidades, a ver si esto te funciona:

El segundo RADIO condiciónalo solo cuando el primer RADIO valga 1 (Selectivo)
y el GET lo condicionas solo cuando el segundo RADIO valga 3 (Vendedor)

Creo que ya no necesitas los IFs.

Code: Select all  Expand view

          REDEFINE RADIO aoRad[2] VAR nRad2 ID 203,204,205 OF oDlg UPDATE;
          WHEN nRad1 == 1     // AQUÍ
          ...
          ...
          ...
        REDEFINE GET aoObjetos[2] VAR cId_Sol           ID 102 OF oDlg UPDATE ;
            WHEN nRad2 == 3;          // Y AQUÍ
            PICTURE "@!" ;
                VALID EVAL ( { || cId_Sol := ValCod( cId_Sol, "ven" ), ;
                                    iif(empty(cId_Sol), .F., ;
                                        (cId_Sol := ven->id, cNomSol := ven->nombre, oDlg:Update(), .t.)) } ) ;
            MESSAGE "Clave de vendedor"
 


Ojalá que esto te ayude.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Consulta sobre GROUP

Postby juan_arroyo_t » Sun Sep 22, 2013 3:50 am

Armando

Disculpa por la tardanza

Juan:

Viendo tu imagen creo comprender tus necesidades, a ver si esto te funciona:

El segundo RADIO condiciónalo solo cuando el primer RADIO valga 1 (Selectivo)
y el GET lo condicionas solo cuando el segundo RADIO valga 3 (Vendedor)

Creo que ya no necesitas los IFs.


Sucede que el prompt del say va a cambiar en base al valor que tenga nRad2 y que nRad1 sea 1
Si nRAd1 = 1 y nRad2 = 1, el prompt del say sera "Articulo"
Si nRAd1 = 1 y nRad2 = 2, el prompt del say sera "Proveedor"
Si nRad1 = 1 y nRad2 = 3, el prompt del say sera "Vendedor"
y abrira las bases de datos que correspondan segun el valor de nRad2

Si nRad1 = 2, (General) el get no se activara

Cuando salgo del dialogo y pruebo los valores de nRad1 y nRad2 los muestra correctos

No se a que se deba

Gracias
Juan Arroyo
México
FWH 7.12 VERCE 5.3 xHarbour 1.1.0
juan_arroyo_t@hotmail.com
User avatar
juan_arroyo_t
 
Posts: 196
Joined: Fri May 15, 2009 1:25 am
Location: Cuautitlán, Mexico

Re: Consulta sobre GROUP

Postby Antonio Linares » Sun Sep 22, 2013 8:48 am

Juan,

El problema es que no puedes hacer unos IFs en función de algo que valdrá x a posteriori.

Usa la claúsula ON CHANGE para cambiar el texto del SAY, etc.

REDEFINE RADIO ... ON CHANGE If( nRad1 == 1, oSay:SetText( { "Artículo", "Proveedor", "Vendedor" }[ nRad2 ] ),)

Como ves, llamamos a If() despues de que se seleccione otro elemento del radio
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Consulta sobre GROUP

Postby Antonio Linares » Sun Sep 22, 2013 9:03 am

Y para el GET:

REDEGINE GET ... WHEN nRad1 != 2
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Consulta sobre GROUP

Postby juan_arroyo_t » Sun Sep 22, 2013 6:40 pm

Antonio

Gracias por responder

Este es el nuevo codigo
Code: Select all  Expand view
# include "fivewin.ch"

STATIC nRad1, nRad2, nOpcion, cId_Art, cId_Pro, cId_Sol, cNomArt, cNomPro, cNomSol

FUNCTION RepDet()
    LOCAL oDlg := NIL,;
         aoObjetos := { nil, nil }, ;
         aoBtn := { nil, nil, nil },;
         aoSay := { nil, nil }
    LOCAL aoGrp := { nil, nil }        
   LOCAL aoRad := { nil, nil }
    LOCAL cTitulo := "Reporte detalle partidas de importaciones"
   
    cId_Art := space(18)
    cId_Pro := cId_Sol := space(5)
    cNomArt := cNomPro := cNomSol := ""
    nRad1 := 1
    nRad2 := 1
   
   dbCloseAll()

   IF ! Net_Use( "imp",,, oApp:xDatos ) .or.;           // Importaciones
    ! Net_Use( "pro",,, oApp:xDatos ) .or.;         // Ordenes de proveedores
    ! Net_Use( "ven",,, oApp:xDatos ) .or.;         // Catalogo de vendedores
    ! net_use( "art",,, oApp:xDatos ) .or.;         // Catalogo de articulos
    ! net_use( "dimp",,,oApp:xDatos )                   // Detalle de importaciones
      dbCloseAll(); RETURN(NIL)
   ENDIF
   
   DEFINE DIALOG oDlg RESOURCE "DLG_REP_DET" TITLE cTitulo TRANSPARENT
   
   REDEFINE RADIO aoRad[1] VAR nRad1                ID 201,202 OF oDlg UPDATE ;
    ON CHANGE If( nRad1 == 1, aoSay[1]:SetText( { "Artículo", "Proveedor", "Vendedor" }[ nRad2 ] ), )

   REDEFINE GROUP aoGrp[1] PROMPT "Seleccione"  ID 4003 OF oDlg UPDATE
    
   REDEFINE RADIO aoRad[2] VAR nRad2                ID 203,204,205 OF oDlg UPDATE ;
    ON CHANGE If( nRad1 == 1, aoSay[1]:SetText( { "Artículo", "Proveedor", "Vendedor" }[ nRad2 ] ), )
    
   REDEFINE GROUP aoGrp[2] PROMPT "Seleccione"  ID 4007 OF oDlg UPDATE
   
   
   if nRad2 == 3
    ? nRad2
    REDEFINE SAY aoSay[1] PROMPT "Vendedor :"       ID 101 OF oDlg UPDATE
    
    REDEFINE GET aoObjetos[2] VAR cId_Sol           ID 102 OF oDlg UPDATE ;
            PICTURE "@!" ;
            VALID EVAL ( { || cId_Sol := ValCod( cId_Sol, "ven" ), ;
                                iif(empty(cId_Sol), .F., ;
                                    (cId_Sol := ven->id, cNomSol := ven->nombre, oDlg:Update(), .t.)) } ) ;
        MESSAGE "Clave de vendedor" ;
        WHEN nRad1 != 2
            aoObjetos[2]:cToolTip := "Introduzca o seleccione la clave de vendedor"
       
        REDEFINE SAY aoSay[2] VAR cNomSol               ID 301 OF oDlg UPDATE
       
   elseif nRad2 == 2
    ? nRad2
    REDEFINE SAY aoSay[1] PROMPT "Proveedor :"  ID 101 OF oDlg UPDATE
       
    REDEFINE GET aoObjetos[2] VAR cId_Pro           ID 102 OF oDlg UPDATE ;
        PICTURE "@!" ;
        VALID EVAL ( { || cId_Pro := ValCod( cId_Pro, "pro" ), ;
                                iif(empty(cId_Pro), .F., ;
                                   (cId_Pro := pro->id, cNomPro := pro->nombre, oDlg:Update(), .t.)) } ) ;
            MESSAGE "Clave de proveedor" ;
            WHEN nRad1 != 2
            aoObjetos[1]:cToolTip := "Introduzca o seleccione la clave de proveedor"
           
        REDEFINE SAY aoSay[2] VAR cNomPro               ID 301 OF oDlg UPDATE                                  
       
   elseif nRad2 == 1
    ? nRad2
    REDEFINE SAY aoSay[1] PROMPT "Articulo :"       ID 101 OF oDlg UPDATE
       
    REDEFINE GET aoObjetos[2] VAR cId_Art           ID 102 OF oDlg UPDATE ;
        PICTURE "@!" ;
        VALID EVAL ( { || cId_Art := ValCod( cId_Art, "art" ), ;
                                iif(empty(cId_Art), .F., ;
                                   (cId_Art := art->id, cNomArt := art->nombre, oDlg:Update(), .t.)) } ) ;
            MESSAGE "Clave del articulo" ;
            WHEN nRad1 != 2
            aoObjetos[2]:cToolTip := "Introduzca o seleccione la clave del articulo"
               
        REDEFINE SAY aoSay[2] VAR cNomArt               ID 301 OF oDlg UPDATE
   
   endif
   
    REDEFINE BUTTONBMP aoBtn[1] ID 400 OF oDlg ;
    PROMPT "A&ceptar " ;
    BITMAP "BTN_OK" TEXTRIGHT ;
    ACTION oDlg:End() ;     //( Filtra(), ImpRep(), oDlg:End() ) ;
      MESSAGE "Aceptar" UPDATE
      aoBtn[1]:cToolTip := "Presione para Continuar"

    REDEFINE BUTTONBMP aoBtn[2] ID 401 OF oDlg ;
        PROMPT "&Cancelar " BITMAP "BTN_CAN" TEXTRIGHT ;
    ACTION oDlg:End() ;     //( lContinuar := .F., oDlg:End() ) ;
      MESSAGE "Cancelar" UPDATE
      aoBtn[2]:cToolTip := "Presione para Cancelar"

   ACTIVATE DIALOG oDlg CENTERED ON INIT  oninit( oDlg )
   ? nRad1, nRad2
   
RETURN NIL
 


En el segundo grupo de radios checo el valor de nRad2 y me los da correctos pero en los ifs no puedo accesar a las bases de datos segun el valor de nRad2

Saludos
Juan Arroyo
México
FWH 7.12 VERCE 5.3 xHarbour 1.1.0
juan_arroyo_t@hotmail.com
User avatar
juan_arroyo_t
 
Posts: 196
Joined: Fri May 15, 2009 1:25 am
Location: Cuautitlán, Mexico


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 84 guests