Consulta sobre COLUMN BROWSE

Post Reply
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Consulta sobre COLUMN BROWSE

Post by jgayoso »

Estoy utilizando este browse y necesito:

1) Sacar la barra de desplazamiento horizontal y vertical
2) Como hacer que quede en modo ingreso sin tener que presionar doble click sobre una columna especifica o simular un docle click via comando.
3) Como le coloco un valor a una columna en tiempo de ejecución, por ejemplo, en columna 1 ingreso codigo y busco el valor en una tabla y coloco en la columna 2 el nombre del codigo.

Se agradece desde ya... :(
User avatar
Pedro
Posts: 457
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Consulta sobre COLUMN BROWSE

Post by Pedro »

No sé que Browse usas, si el xBrowse u otro. Yo lo hago así con xBrowse

Code: Select all

   oCol = oBrw:AddCol()
   oCol:bEditValue := { |x| If( x == nil, (cAlias1)->codigo, (cAlias1)->codigo := x ) } 
   oCol:nEditType     := EDIT_GET_BUTTON
   oCol:cHEADER       := "CODIGO  " 
   oCol:addResource( "BUSCAR1" )
   oCol:lBtnTransparent := .t.
   oCol:nBtnBmp := 1
   oCol:bEditValid    := {|o| if ( Empty(o:value()) , .f., .t.) }
   oCol:bEditBlock   := {|nRow, nCol, oCol| oCol:Value := BuscaUnServicio()  }
   oCol:bOnPostEdit   := { | oCol, xVal, nKey | If( RecCount() == 0,( DbAppend(), oBrw:Refresh() ),) ,; 
   If( nKey == VK_RETURN, If(BServicio(oBrw,xVal),oBrw:Refresh(),oBrw:GoleftMost()),),;
   If( nKey == VK_ESCAPE .and. Val((cAlias1)->codigo)=0,( (cAlias1)->(dbDelete()),;
               (cAlias1)->(__dbPack()),(cAlias1)->(dbGoBottom()),oBrw:Refresh() ), ) }
la función BuscaUnservicio() es para el bmp que pongo en la celda, y la Bservicio() es para validar el código

Code: Select all

*------------------------------------------------------------------------------
Function BServicio(oBrw,xVal)
*------------------------------------------------------------------------------
Local cServicio := Val(xVal)   
  
      cServicio := PADL(cServicio,4,"0") 
      SERV->(dbSeek(cServicio)) 
      If SERV->(Found())
         (oBrw:cAlias)->codigo := cServicio
         (oBrw:cAlias)->concepto := SERV->servicio
      Else
         cServicio := BuscaUnServicio()
         (oBrw:cAlias)->codigo := cServicio
         (oBrw:cAlias)->concepto := SERV->servicio     
      EndIf
      (oBrw:cAlias)->fecha    := aCabAlb[ 2]
      (oBrw:cAlias)->cliente  := aCabAlb[ 3]
      (oBrw:cAlias)->agente   := aCabAlb[18]
      (oBrw:cAlias)->comision := CLIE->comision
      (oBrw:cAlias)->tipcli   := aCabAlb[23]
      oBrw:Refresh()    
Return .t.

Code: Select all

* ------------------------------------------------------------------
FUNCTION BUSCAUNSERVICIO()
* ------------------------------------------------------------------
Local oDlgBus   
Local oLbxServi   
Local cAlServ
Local nSele := SELECT()
Local oDServi, xCodigo := Space(4)

    dbSelectArea("SERV")
    SERV->(dbGotop())
    cAlServ := ALIAS()
    DATABASE oDServi
      
    DEFINE DIALOG oDlgBus RESOURCE "DLGBUSCAR" COLOR RGB(0,0,0),RGB(153,204,153)

    REDEFINE LISTBOX oLbxServi  ;
            FIELDS oDServi:numero, oDServi:servicio;
            HEADERS "NUMERO","SERVICIO";
            ALIAS cAlServ;
            COLOR CLR_BLACK, RGB(220,220,220) ;
            ID 2001;
            UPDATE ; 
            OF oDlgBus 
     
    
      oDlgbus:SetControl( oLbxServi )
      oDlgBus:bGotFocus := { || oLbxServi:Refresh() }
        oLbxServi:bSkip = { | nRecs | oDServi:Skipper( nRecs ) }
        oLbxServi:lCellStyle = .F.
    
     REDEFINE BUTTONBMP ID 120 OF oDlgBus BITMAP "ACEPTAR" TEXTRIGHT ;
                 ACTION  xCodigo:= oDServi:numero,;
               oDlgBus:End(),dbSelectArea(nSele) 

     REDEFINE BUTTONBMP ID 121 OF oDlgBus BITMAP "CANCELAR" TEXTRIGHT ;
                 ACTION xCodigo := Space(4),;
               oDlgBus:End(),dbSelectArea(nSele)
    ACTIVATE DIALOG oDlgBus CENTERED
    SysRefresh()
      
return( xCodigo )
Espero que te sirva
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
jgayoso
Posts: 170
Joined: Sat Aug 07, 2010 11:36 pm
Location: Chile

Re: Consulta sobre COLUMN BROWSE

Post by jgayoso »

Se agardece por vuestra ayuda ya lo arregle y estoy utilizando TCBRowse que lo modifique a mi pinta en TJbrowse

Se agradece...

Pedro wrote:No sé que Browse usas, si el xBrowse u otro. Yo lo hago así con xBrowse

Code: Select all

   oCol = oBrw:AddCol()
   oCol:bEditValue := { |x| If( x == nil, (cAlias1)->codigo, (cAlias1)->codigo := x ) } 
   oCol:nEditType     := EDIT_GET_BUTTON
   oCol:cHEADER       := "CODIGO  " 
   oCol:addResource( "BUSCAR1" )
   oCol:lBtnTransparent := .t.
   oCol:nBtnBmp := 1
   oCol:bEditValid    := {|o| if ( Empty(o:value()) , .f., .t.) }
   oCol:bEditBlock   := {|nRow, nCol, oCol| oCol:Value := BuscaUnServicio()  }
   oCol:bOnPostEdit   := { | oCol, xVal, nKey | If( RecCount() == 0,( DbAppend(), oBrw:Refresh() ),) ,; 
   If( nKey == VK_RETURN, If(BServicio(oBrw,xVal),oBrw:Refresh(),oBrw:GoleftMost()),),;
   If( nKey == VK_ESCAPE .and. Val((cAlias1)->codigo)=0,( (cAlias1)->(dbDelete()),;
               (cAlias1)->(__dbPack()),(cAlias1)->(dbGoBottom()),oBrw:Refresh() ), ) }
la función BuscaUnservicio() es para el bmp que pongo en la celda, y la Bservicio() es para validar el código

Code: Select all

*------------------------------------------------------------------------------
Function BServicio(oBrw,xVal)
*------------------------------------------------------------------------------
Local cServicio := Val(xVal)   
  
      cServicio := PADL(cServicio,4,"0") 
      SERV->(dbSeek(cServicio)) 
      If SERV->(Found())
         (oBrw:cAlias)->codigo := cServicio
         (oBrw:cAlias)->concepto := SERV->servicio
      Else
         cServicio := BuscaUnServicio()
         (oBrw:cAlias)->codigo := cServicio
         (oBrw:cAlias)->concepto := SERV->servicio     
      EndIf
      (oBrw:cAlias)->fecha    := aCabAlb[ 2]
      (oBrw:cAlias)->cliente  := aCabAlb[ 3]
      (oBrw:cAlias)->agente   := aCabAlb[18]
      (oBrw:cAlias)->comision := CLIE->comision
      (oBrw:cAlias)->tipcli   := aCabAlb[23]
      oBrw:Refresh()    
Return .t.

Code: Select all

* ------------------------------------------------------------------
FUNCTION BUSCAUNSERVICIO()
* ------------------------------------------------------------------
Local oDlgBus   
Local oLbxServi   
Local cAlServ
Local nSele := SELECT()
Local oDServi, xCodigo := Space(4)

    dbSelectArea("SERV")
    SERV->(dbGotop())
    cAlServ := ALIAS()
    DATABASE oDServi
      
    DEFINE DIALOG oDlgBus RESOURCE "DLGBUSCAR" COLOR RGB(0,0,0),RGB(153,204,153)

    REDEFINE LISTBOX oLbxServi  ;
            FIELDS oDServi:numero, oDServi:servicio;
            HEADERS "NUMERO","SERVICIO";
            ALIAS cAlServ;
            COLOR CLR_BLACK, RGB(220,220,220) ;
            ID 2001;
            UPDATE ; 
            OF oDlgBus 
     
    
      oDlgbus:SetControl( oLbxServi )
      oDlgBus:bGotFocus := { || oLbxServi:Refresh() }
        oLbxServi:bSkip = { | nRecs | oDServi:Skipper( nRecs ) }
        oLbxServi:lCellStyle = .F.
    
     REDEFINE BUTTONBMP ID 120 OF oDlgBus BITMAP "ACEPTAR" TEXTRIGHT ;
                 ACTION  xCodigo:= oDServi:numero,;
               oDlgBus:End(),dbSelectArea(nSele) 

     REDEFINE BUTTONBMP ID 121 OF oDlgBus BITMAP "CANCELAR" TEXTRIGHT ;
                 ACTION xCodigo := Space(4),;
               oDlgBus:End(),dbSelectArea(nSele)
    ACTIVATE DIALOG oDlgBus CENTERED
    SysRefresh()
      
return( xCodigo )
Espero que te sirva
Post Reply