Convert wBrowse to xBrowse

Convert wBrowse to xBrowse

Postby ORibeiro » Tue Sep 23, 2014 10:27 am

How can I change wBrowse in xBrowse in this example?

Code: Select all  Expand view

*------------------------------------------------------------------------------------*
Function AchaEmbalagem( oArquivo, oVar, oOrdem, oCampo )
*------------------------------------------------------------------------------------*
   local oLbx,oCbx,oAcha,oDlg
   Local cOrdem,mOrdem,cDbfAcha
   Local cAcha
   Local SelOld
   Local nOrdem
   Local lOk:=.F.
   Local RecN:= RecNo()
   Local cPrg := oArquivo
   Local oBt[8]

   oOrdem:=iif( oOrdem=nil, 2, oOrdem)
   oCampo:=iif( oCampo=nil,"NR_EM", oCampo)

   SelOld := Select()
   SysWait( 0.1 )
   if Compara_Valor(Len(cPrg),2,"=")
      if !Net_Use("MTEMBALA",cPrg)
         Select(SelOld)
         Return Nil
      endif
      oArquivo := ALIAS()
      cDbfAcha   := cPRG+"MTEMBALA"
   else
      cDbfAcha:=cPrg
   endif
   Select(oArquivo)
   nOrdem := ORDNUMBER()
   nRegAtu:= RecN()
   Set Order To oOrdem
   DBGOTOP()

   IF oOrdem == 1
      cOrdem := "1-Código"
   Elseif oOrdem == 2
      cOrdem := "2-Nome"
   Endif
   mOrdem := {"1-Código","2-Descrição"}

   Select(oArquivo)
   DEFINE DIALOG oDlg RESOURCE "PLANILHA" TITLE StrZero(RecCount(),6)+"  Encontra Embalagens" FONT oFontSay //TRANSPARENT

   Select(cDbfAcha)
   REDEFINE ICON ID ID_BITMAP OF oDlg RESOURCE "ACHA"
   REDEFINE SAY PROMPT "Embalagens" ID 1100 OF oDlg ;
            FONT oFontBig COLOR CLR_BLUE
   REDEFINE LISTBOX oLbx;
            FIELDS (cDbfAcha)->Nr_EM,;
                   (cDbfAcha)->Descr;
            HEADERS "Código","Descrição";
            ID 8000 OF oDlg UPDATE FONT oFontBrw;
            ON DBLCLICK (  lOk:=.T. , oDlg:end() )
            oLbx:bKeyDown := {|nKey|iif(nKey=13,( lOk:=.T., oDlg:end()),"")}

    REDEFINE GET oAcha VAR cAcha ID 111 OF oDlg UPDATE;
            ON CHANGE ( ::Assign(),;
                        If( nKey=13, (oLbx:Refresh(),oLbx:SetFocus()),;
                        If( (cDbfAcha)->(DbSeek(Upper(SubS(cAcha,1,::nPos-1))+IIF(oaVersao="16",Upper(Chr(nKey)),''))),;
                            (oLbx:UpStable(),oLbx:Refresh(),.t.),;  // accept the Key
                            (oLbx:UpStable(),oLbx:Refresh(),.f.)))) // refuse the key
   REDEFINE ButtonBmp ID 100 OF oDlg                   ;        && Pesquisa
            PROMPT "C&onfirma" BITMAP "B_OK1";
            ACTION ( lOk:=.T. , oDlg:end() )
   REDEFINE ButtonBmp ID 110 OF oDlg                   ;        && Lista
            PROMPT "&Pesquisa" BITMAP "B_PROCURA1";
            ACTION ( Pesquisa( cDbfAcha, oLbx, oDlg, 3, "Código ou Descrição", "Embalagem", .F. ), cOrdem:=mOrdem[(cDbfAcha)->(ORDNUMBER())], oCbx1:Refresh(), cAcha:=Space(50), oAcha:Refresh() )

   REDEFINE Button oBt[2] ID 120 OF oDlg
   REDEFINE Button oBt[3] ID 130 OF oDlg
   REDEFINE Button oBt[4] ID 140 OF oDlg
   REDEFINE Button oBt[6] ID 160 OF oDlg
   REDEFINE Button oBt[7] ID 170 OF oDlg

   REDEFINE ButtonBmp ID 180 OF oDlg                ;        && Fechar
            PROMPT "&Cancela" BITMAP "B_CANCEL1";
            ACTION oDlg:End() Cancel

   REDEFINE SAY PROMPT "Ordem:" ID 330 OF oDlg COLOR CLR_RED

   REDEFINE COMBOBOX oCbx1 VAR cOrdem ITEMS mOrdem ;
            ID 350 ON CHANGE Ordem( oLbx, cDbfAcha, cOrdem, oa_focus(oLbx), cAcha:=Space(50), oAcha:Refresh() ) OF oDlg

   ACTIVATE DIALOG oDlg CENTERED;
            ON INIT ( oBt[2]:Hide(),oBt[3]:Hide(),oBt[4]:Hide(),oBt[6]:Hide(),oBt[7]:Hide(),;
                      SetaBrw3d( oLbx ) )
   if Select(oArquivo)>0 // 12/08/2013: Evita erro na próxima linha
      Select(oArquivo)
      DBSetOrder( nOrdem )
   endif
   if (lOk) .AND. Select(cDbfAcha)>0
      Stor (cDbfAcha)->&oCampo To oVar
   endif
   SysWait( 0.1 )
   if Compara_Valor(Len(cPrg),2,"=")
      fecha_arquivo( oArquivo )
   endif
   Select( SelOld )
Return( oVar )
 


Resource: PLANILHA
Code: Select all  Expand view

PLANILHA DIALOG 6, 18, 418, 221
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Planilha"
FONT 8, "MS Sans Serif"
{
 EDITTEXT 111, 46, 203, 295, 11, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
 LTEXT "Titulo", 1100, 25, 1, 200, 25, NOT WS_GROUP
 CONTROL "", -1, "STATIC", SS_GRAYFRAME | WS_CHILD | WS_VISIBLE | WS_GROUP, 3, 26, 340, 172
 GROUPBOX "", 102, 346, 1, 71, 217, BS_GROUPBOX
 CONTROL "", 8000, "twbrowse", 0 | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP, 4, 27, 335, 169
 COMBOBOX 350, 252, 5, 91, 94, CBS_DROPDOWNLIST | WS_TABSTOP
 PUSHBUTTON "Novo", 100, 349, 9, 65, 20
 PUSHBUTTON "Modifica", 110, 349, 30, 65, 20
 PUSHBUTTON "Apaga", 120, 349, 51, 65, 20
 PUSHBUTTON "Consulta", 130, 349, 72, 65, 20
 PUSHBUTTON "Pesquisa", 140, 349, 93, 65, 20
 PUSHBUTTON "Lista", 160, 349, 114, 65, 20
 PUSHBUTTON "Filtra", 170, 349, 135, 65, 20
 PUSHBUTTON "Fecha", 180, 349, 195, 65, 20
 CONTROL "", -1, "STATIC", SS_GRAYFRAME | WS_CHILD | WS_VISIBLE | WS_GROUP, 3, 200, 340, 18
 RTEXT "Ordem:", 330, 226, 7, 24, 9, SS_RIGHT | NOT WS_GROUP
 RTEXT "Pesquisa:", -1, 8, 204, 34, 8
 ICON "", 1000, 3, 3, 18, 20
}
 
Oscar Ribeiro
OASyS Informática
Fwh18.02 + xHarbour 1.2.3 + Bcc72
User avatar
ORibeiro
 
Posts: 187
Joined: Mon Oct 20, 2008 6:33 pm
Location: Itu, Sao Paulo, Brazil

Re: Convert wBrowse to xBrowse

Postby FranciscoA » Tue Sep 23, 2014 2:27 pm

Hi Oscar.
Try this:

In your main.prg: "Include "XBrowse.ch"
Replace this REDEFINE LISTBOX oLbx, with REDEFINE XBROWSE oLbx
Remove all oLbx:UpStable()
Replace this CONTROL "", 8000, "twbrowse", with CONTROL "", 8000, "txbrowse" ( in your .rc)

Regards.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Convert wBrowse to xBrowse

Postby ORibeiro » Thu Sep 25, 2014 12:49 pm

What command replaces the olbx:UpStable() ?

With this command the wBrowse allowed incremental research pointing to the record in typing time.

Code: Select all  Expand view

   REDEFINE GET oAcha VAR cAcha ID 111 OF oDlg UPDATE;
            ON CHANGE ( ::Assign(), ;
                        If( nKey=13, (oLbx:Refresh(),oLbx:SetFocus()),;
                        If( (cDbfAcha)->(DbSeek(Upper(SubS(cAcha,1,::nPos-1)))),;
                            (oLbx:UpStable(),oLbx:Refresh(),.t.),;  // accept the Key
                            (oLbx:UpStable(),oLbx:Refresh(),.f.)))) // refuse the key

 
Oscar Ribeiro
OASyS Informática
Fwh18.02 + xHarbour 1.2.3 + Bcc72
User avatar
ORibeiro
 
Posts: 187
Joined: Mon Oct 20, 2008 6:33 pm
Location: Itu, Sao Paulo, Brazil

Re: Convert wBrowse to xBrowse

Postby tiaofw » Thu Sep 25, 2014 2:37 pm

Bom dia Oscar.

Segue abaixo um pequeno exemplo usando xbrowse e dbf, você pode analisar e adaptar a sua necessidade:


Code: Select all  Expand view

      REDEFINE XBROWSE oBrw_Formas ;
          HEADER "Forma de Pagamento", "Valor(R$)" ;
          COLSIZES 370, 184          ;
          ARRAY albx_formas ;
          when !tefcnc .and. (oBrw_Formas:SelectCol( 2 ), .t.) ;
          ID 306 FASTEDIT ;
          UPDATE                            ;
          AUTOCOLS                          ;
          ON CHANGE (Lista_Parcelas(albx_formas[oBrw_Formas:nArrayAt, 16])) ;
          OF odlg_pag
     
      oBrw_Formas:setfont(oFont_xforma)

      oBrw_Formas:nMarqueeStyle       := MARQSTYLE_HIGHLCELL
      oBrw_Formas:nColDividerStyle    := LINESTYLE_BLACK
      oBrw_Formas:nRowDividerStyle    := LINESTYLE_BLACK
      oBrw_Formas:lColDividerComplete := .t.
      oBrw_Formas:lAllowRowSizing := .f.
      oBrw_Formas:lFooter := .t.
      oBrw_Formas:lHeader := .t.
      oBrw_Formas:lUpdate   := .t.
      oBrw_Formas:nHeaderHeight := 40

      oBrw_Formas:aCols[1]:cFooter := "SUB-TOTAL:"

      oBrw_Formas:aCols[1]:nEditType := EDIT_NONE

      oBrw_Formas:aCols[2]:nEditType := EDIT_GET
      oBrw_Formas:aCols[2]:cEditPicture := "@E 999,999.99"

      oBrw_Formas:aCols[2]:bClrFooter := {|| { RGB(255, 0, 0), GetSysColor( COLOR_BTNFACE ), ;
                                         nRGB( 125, 165, 224 ), nRGB( 203, 225, 252 ) } }

      oBrw_Formas:aCols[2]:oFooterFont := oFont_Receb

      oBrw_Formas:nFreeze := 2

      oBrw_Formas:aCols[2]:bEditWhen := { || if(albx_formas[oBrw_Formas:nArrayAt, 5], .f., .t.) }

      oBrw_Formas:aCols[2]:bEditValid := { |oGet| Valida(@oGet:VarGet(), @oBrw_Formas:nArrayAt,   ;
      albx_formas[oBrw_Formas:nArrayAt, 3] ) }

 


Tambem existem bons exemplos na pasta samples do fwh usando a xbrowse, inclusive com pesquisa incremental.

Abraços.
Contagem/Brazil
FWH/xharbour 15.12/PELLES C, MED, DBF
tiaofw
 
Posts: 99
Joined: Fri Dec 12, 2008 4:39 pm
Location: Brasil

Re: Convert wBrowse to xBrowse

Postby nageswaragunupudi » Thu Oct 09, 2014 3:12 am

What command replaces the olbx:UpStable() ?

Upstable() is not requred for XBrowse, because XBrowse does this automatically when required.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Willi Quintana and 100 guests