Ayuda, Seleccion con ENTER en Xbrowse

Post Reply
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Ayuda, Seleccion con ENTER en Xbrowse

Post by remtec »

Hola Amigos,

Tengo un problema en Xbrowse, uso 2 Xbrowse unidos, en uno tengo una lista de Examenes, que debo seleccion y pasarlos al segundo Xbrowse.

El problema se produce que solo me funciona al hacer dobleClick, esto lleva el Codigo al segundo Xbrowse, pero al dar ENTER, sobre el examen seleccionado, este no va a la Funcion que realiza la grabacion en el segundo Xbrowse.

Muchos Saludos
Antonio.

Dejo El Codigo:

Code: Select all

Function  Buscar_Cod_Nue(Tip_Ate1,Tip_Pag1,aCodigos,Can_Cod1,Val_Tot1)

   local oDlg33, oBrw, oFont, oCol,otitu,oFont1,otitu1 ,oFont7,oBrw2,otitu2,oDlg4,oFont2,oBot1,oBot2
     Local oSay5,oSay6,otitu6
     Local cNom,cCod
     Sele Aran
     DbSetorder(2)

     Seek Tip_Ate1+Tip_Pag1
     If Eof()
         MsgStop( "No Se Encontro Arancel Para Tipo Examen "+Tip_Ate1+" y Tipo Pago  "+Tip_Pag1)
         Return .f.
     Endif

     If Tip_Pag1 # Tip_Pag2  .or. Tip_Ate1 # Tip_Ate2
            Tip_Pag2:=Tip_Pag1
            Tip_Ate2:=Tip_Ate1
            aArancel := {}

            Do While (Tip_Ate=Tip_Ate1.and.Tip_Pag=Tip_Pag1).and.!Eof()
                Aadd(aArancel, { Aran->Cod_Ara,Aran->Nom_Ara,Aran->Val_Bon})
              DbSkip()
            EndDo
     Endif

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
     DEFINE FONT oFont1 NAME 'TAHOMA' SIZE 0,24   BOLD
     DEFINE FONT oFont2 NAME "TAHOMA" SIZE 0,-12  BOLD
     DEFINE FONT oFont7 NAME "TAHOMA" SIZE 0,-14  BOLD

   DEFINE DIALOG oDlg33 RESOURCE "#1005"     FONT oFont

     REDEFINE SAY otitu PROMPT " MAESTRO DE ARANCEL "  ID 4004 OF oDlg33 COLORS RGB(12, 135, 27)   FONT oFont1


   REDEFINE XBROWSE oBrw  OF oDlg33 DATASOURCE aArancel  ID 4001;
            HEADERS 'Código', 'Nombre de Examen';
            COLUMNS 1, 2;
            PICTURES "@!","@!" ;
            COLSIZES 90, 335;
      CELL LINES AUTOSORT NOBORDER;
                             oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW
                             oBrw:nColDividerStyle := LINESTYLE_RAISED
                             oBrw:nRowDividerStyle := LINESTYLE_RAISED
                                 oBrw:bClrHeader := {|| { nRGB(140, 0, 0), nRGB( 231, 242, 255 ), } }
                                 oBrw:nOpacity    := 230
                                 oBrw:nHeaderHeight      := 35
                                 oBrw:nFreeze       := 2
                                 oBrw:aCols[1]:oHeaderFont:= oFont7
                                 oBrw:aCols[2]:oHeaderFont:= oFont7
                                 oCol := oBrw:aCols[ 2 ]
                                 ocol:cToolTip:="Clique para ordenar por NOMBRE"

                                 oDlg33:bStart:={ || oBrw:Gotop() }

                                 oBrw:lSeekBar:= .t.       // Permite Añadir Fila de Busqueda en Xbrowse


                                 oCol := oBrw:aCols[ 1 ]
                                 ocol:cToolTip:="Clique para ordenar por CODIGO"


                                oBrw:bClrStd  := { || If( Eval( oBrw:bKeyNo,,oBrw1) % 2 == 0, { CLR_BLACK, RGB( 198, 255, 198 ) },;
                                 { CLR_BLACK, RGB( 232, 255, 232 ) } ) }    // Efecto Cebra
                                 oBrw:aCols[ 1 ]:oDataFont := oFont7
                                 oBrw:aCols[ 2 ]:oDataFont := oFont7


                                 oBrw:aCols[ 2 ]:SetOrder()

                                 oBrw:bClrStd             := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }
                                 oBrw:bClrSelFocus        := {|| { nRGB(  255,  255,  255), nRGB(102, 178, 255) } }
                                 oBrw:bClrSel       := {|| { nRGB(  0,  0,255), nRGB(241,222,088) } }  // para barra de linea selecc cuando el control no tiene el foco
                                oBrw:lAutoSort := .t.
                                oBrw:lFooter := .f.
                                oBrw:lHScroll := .f.
                            oBrw:lIncrFilter      := .F.
                            oBrw:lSeekWild        := .F.                   &&  .T. Busca Contenido, .F. Que comience con lo que digita
                                oBrw:SetStyle( 2018)
                                oBrw:nColorPen := CLR_RED
                                oBrw:bChange := {|| oBrw:Refresh() }
                                //OBrw:bClrEdits := { || { CLR_HRED, FLC_YELLOW} }

   WITH OBJECT oBrw
                 :aCols[1]:bLClickHeader := {|| oBrw:Seek( "" ), oBrw:cFilterFld := "Código", oBrw:nColSel := 1, oBrw:GoTop() }
             :aCols[2]:bLClickHeader := {|| oBrw:Seek( "" ), oBrw:cFilterFld := "Nombre de Examen", oBrw:nColSel := 2, oBrw:GoTop() }

                    :bKeyDown:={|nKey| iif(nKey=32.or.nKey=VK_RETURN, Agre_Codi(Tip_Ate1,Tip_Pag1,aArancel,aCodigos, oBrw:nArrayAt,@Can_Cod1,@Val_Tot1),(oSay3:Refresh(),oSay4:Refresh(), oSay5:Refresh(),oSay6:Refresh(),oBrw2:Refresh()))}    // <----- Esta linea No Funciona.


                    :bLDblClick:={||(Agre_Codi(Tip_Ate1,Tip_Pag1,aArancel,aCodigos, oBrw:nArrayAt,@Can_Cod1,@Val_Tot1)), oSay3:Refresh(),oSay4:Refresh(), oSay5:Refresh(),oSay6:Refresh(),oBrw2:Refresh()}  // <---- Esta linea SI Funciona.

                   :bChange    := { || oBrw2:GoTop(),  oSay3:Refresh(),oSay4:Refresh(), oBrw2:Refresh()}


   END


     REDEFINE BTNBMP ID 4002 PROMPT "SALIR" OF oDlg33  ADJUST 2007  FONT oFont7  NOBORDER ;
                            ToolTip  "VOLVER A LA PANTALLA ANTERIOR";
                                ACTION prueba8()
                                //ACTION (oDlg33:END())

     REDEFINE SAY otitu2 PROMPT " EXAMENES SELECCIONADOS"  ID 4006 OF oDlg33 COLORS RGB(43, 59, 109)   FONT oFont1

   REDEFINE XBROWSE oBrw2  ID 4005 OF oDlg33 DATASOURCE aCodigos FONT oFont2;
                        HEADERS 'Codigo','Nombre del Examen','Canti','Precio','Total';
                      COLUMNS 1, 2,3,4,5;
                        COLSIZES 70, 280, 50, 65, 80;
                        PICTURES '@!','@!','9999','9,999,999','9,999,999';
                CELL LINES AUTOSORT NOBORDER;

                         WITH OBJECT oBrw2
                             oBrw2:nMarqueeStyle := MARQSTYLE_HIGHLROW
                             oBrw2:nColDividerStyle := LINESTYLE_RAISED
                             oBrw2:nRowDividerStyle := LINESTYLE_RAISED
                                 oBrw2:nFooterLines:=1

                                 oBrw2:bClrHeader := {|| { nRGB(000,000,000), nRGB(128,255,128) } }
                                 oBrw2:bClrStd  := { || If( Eval( oBrw2:bKeyNo,,oBrw2) % 2 == 0, { CLR_BLACK, RGB( 198, 255, 198 ) },;
                                 { CLR_BLACK, RGB( 232, 255, 232 ) } ) }    // Efecto Cebra

                                 oBrw2:nOpacity    := 230
                                 oBrw2:nHeaderHeight      := 35
                                 oBrw2:nFreeze       := 5

                                 oBrw2:aCols[ 1 ]:oDataFont := oFont7
                                oBrw2:lAutoSort := .t.
                                oBrw2:lFooter := .T.
                                oBrw2:lHScroll := .f.
                                oBrw2:SetStyle( 2007)
                                oBrw2:nColorPen := CLR_RED
                              oBrw2:bChange := {|| oBrw2:Refresh() }
                                oCol := oBrw2:aCols[ 3 ]
                                ocol:cToolTip:="Clique para Modificar Cantidad"


                                 oBrw2:aCols[01]:bFooter   := { || Ltrim( Str( oBrw2:KeyNo() ) ) + " / " + LTrim( Str( oBrw2:KeyCount() ) ) }

                                 oBrw2:aCols[3]:bClrHeader := { || { CLR_HRED,CLR_WHITE } }
                                 oBrw2:aCols[5]:bClrHeader := { || { CLR_HRED,CLR_WHITE } }

                              oBrw2:aCols[ 5 ]:cEditPicture  :=  "@E 999,999,999"
                            END WITH

                        WITH OBJECT oBrw2:aCols[3]
                            :cEditPicture  := "999"
                            :nEditType     := EDIT_GET
                            :bEditValid    := { |oGet| oGet:VarGet() > 0 }
                            :bOnPostEdit   := { | oCol, xVal, nKey | If( nKey == VK_RETURN ,;
                                               ( oCol:value := xVal ,;
                                                 totalinea( oBrw2,@Can_Cod1,@Val_Tot1),  oSay5:Refresh(),oSay6:Refresh(),oBrw2:Refresh()), ) }

                        END WITH


        REDEFINE SAY otitu3 PROMPT "TOTAL  -->"  ID 4008 OF oDlg33 COLORS RGB(12, 135, 27) RIGHT FONT oFont7

        REDEFINE SAY oSay5 Var Can_Cod1 ID 4007   OF oDlg33   PICTURE "99,999"    COLOR RGB(0,0,128)  RIGHT  FONT oFont7  BORDER

        REDEFINE SAY oSay6 Var Val_Tot1  ID 303  OF oDlg33   PICTURE "999,999,999"    COLOR RGB(0,0,128)  RIGHT  FONT oFont7  BORDER


   REDEFINE BTNBMP ID 4003 PROMPT "ELIMINAR" OF oDlg33  2007  FONT oFont7 C;
                    ToolTip  "ELIMINA REGISTRO";
                    ACTION (delrow( oBrw2,@Can_Cod1,@Val_Tot1 ), oSay5:Refresh(),oSay6:Refresh(),oBrw2:Refresh())



   ACTIVATE DIALOG oDlg33 CENTERED


     RELEASE FONT oFont,oFont1,oFont7


     Return nil

 
artu01
Posts: 306
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: Ayuda, Seleccion con ENTER en Xbrowse

Post by artu01 »

Hola remtec:
pon una bandera con msgalert(nkey) dentro del keydown para que verifiques si llega alli, ademas esta todo junto la sentencia:

Code: Select all

nKey=32.or.nKey=VK_RETURN
 
prueba asi:

Code: Select all

nKey=32 .or. nKey=VK_RETURN
 
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: Ayuda, Seleccion con ENTER en Xbrowse

Post by Armando »

Remtec:

Tal vez te falta recibir un parámetro (nFlags), mira el ejemplo siguiente
que a mi me funciona de 100.

Code: Select all

                oBrw:bKeyDown               := { | nKey, nFlags | IIF(nKey == VK_DELETE,DltWrk(oDlg,oBrw,aGets),)}
 
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
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda, Seleccion con ENTER en Xbrowse

Post by remtec »

Armando wrote:Remtec:

Tal vez te falta recibir un parámetro (nFlags), mira el ejemplo siguiente
que a mi me funciona de 100.

Code: Select all

                oBrw:bKeyDown               := { | nKey, nFlags | IIF(nKey == VK_DELETE,DltWrk(oDlg,oBrw,aGets),)}
 
Saludos
Hola Armando,

Muchas gracias por responder.

Lo extra;os que los mismo parametros que funcionan el Doble Click, con Enter no Funcionan.

Muchos Saludos
Antonio

Code: Select all

:bKeyDown:={|nKey| iif(nKey=32 .or. nKey=VK_RETURN, Agre_Codi(Tip_Ate1,Tip_Pag1,aArancel,aCodigos, oBrw:nArrayAt,@Can_Cod1,@Val_Tot1),(oSay3:Refresh(),oSay4:Refresh(), oSay5:Refresh(),oSay6:Refresh(),oBrw2:Refresh()))}    // <----- Esta linea No Funciona.


:bLDblClick:={||(Agre_Codi(Tip_Ate1,Tip_Pag1,aArancel,aCodigos, oBrw:nArrayAt,@Can_Cod1,@Val_Tot1)), oSay3:Refresh(),oSay4:Refresh(), oSay5:Refresh(),oSay6:Refresh(),oBrw2:Refresh()}  // <---- Esta linea SI Funciona.
 
artu01
Posts: 306
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: Ayuda, Seleccion con ENTER en Xbrowse

Post by artu01 »

Hola,
haz verificado cuanto devuelve nkey?
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ayuda, Seleccion con ENTER en Xbrowse

Post by FranciscoA »

Antonio, intenta asi:

Code: Select all

  :bLDblClick:={|| Agre_Codi(Tip_Ate1,Tip_Pag1,aArancel,aCodigos, oBrw:nArrayAt,@Can_Cod1,@Val_Tot1), oSay3:Refresh(),oSay4:Refresh(), oSay5:Refresh(),oSay6:Refresh(),oBrw2:Refresh()}  

  :bKeyDown:={|nKey| iif(nKey == VK_RETURN, Eval(oBrw:bLDblClick),)}
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda, Seleccion con ENTER en Xbrowse

Post by remtec »

Hola Francisco,

Como estas?

Como siempre, eres un genio, Funciono PERFECTO.

Muchas gracias y Muchos Saludos.

Antonio
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda, Seleccion con ENTER en Xbrowse

Post by remtec »

Muchas gracias a Artu01 y Armando.

Muchos saludos

Antonio
Post Reply