FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour xBrowse and report problem
Posts: 130
Joined: Sun Mar 08, 2009 04:33 PM
xBrowse and report problem
Posted: Mon Aug 31, 2015 07:38 PM

So far I have used fwh 12.08 and xHarbour build 1.2.1 now I just moved to a new version fwhh15.07. I use an application xBrowse and oBrw: report ("name" ...). With the transition to the new version Fivewin report no longer works. Program after the formation page just gets blocked. Please help.

Regards,
Milos

Best regards

Milos



[ FWH 21.11 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20150603) ]
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xBrowse and report problem
Posted: Wed Sep 02, 2015 06:19 AM

method report() is working for us.
We can not comment unless we have a sample program which we can compile at our end and test where it fails.

Regards



G. N. Rao.

Hyderabad, India
Posts: 130
Joined: Sun Mar 08, 2009 04:33 PM
Re: xBrowse and report problem
Posted: Wed Sep 02, 2015 08:00 AM
This is code:
Code (fw): Select all Collapse
function BrowRJ()

         Local oDlgBrow
     Private oBrw,mPolje:="Bez filtera",mFilter,mRadFil:=1,oRadFil

DBSelectArea(cCompany+"_RadJed")
   OrdSetFocus("RadJed_naz")

 aStruct := {{"RadJed_Id","C",3,0},;
            {"Naziv","C",30,0}}

   dbCreate( "TEMPODE", aStruct )


      USE TEMPODE NEW


  nErr := oSql:exec("SELECT * FROM " + cRadJed,,.t.,,"TempOde.dbf")

  if nErr != 0
    MsgInfo("Greška pri upitu","Greška")
  endif
      
         DEFINE DIALOG oDlgBrow  NAME "xPregled";
                TITLE "SPISAK RADNIH JEDINICA"
       

   REDEFINE XBROWSE oBrw ID 101 ALIAS "TempOde" ;
                FONT oFontBrw;
                OF oDlgBrow 

   oCol := oBrw:AddCol()
   oCol:AddResource("OFF")
   oCol:AddResource("ON")
   oCol:cHeader   := " "
   oCol:bBmpData  := { || iif( empty(TempOde->Naziv) ,1,2) }
   oCol:oDataFont := oFontBrw

   oCol := oBrw:AddCol()
   oCol:bStrData  := { || RadJed_Id}
   oCol:cHeader   := "Šifra"
   oCol:nWidth    := 40
   oCol:bLClickHeader = { | nMRow, nMCol, nFlags, Self | If( ::nHeadBmpNo == 2, ::nHeadBmpNo := 1, ::nHeadBmpNo := 2 ),DBSelectArea("TempOde"),DBCREATEINDEX("TempOde","RadJed_Id",{|| RadJed_Id}), ::oBrw:Refresh() }
   oCol:oDataFont := oFontBrw

   oCol := oBrw:AddCol()
   oCol:bStrData  := { || Naziv}
   oCol:cHeader   := "Odeljenje"
   oCol:bLClickHeader = { | nMRow, nMCol, nFlags, Self | If( ::nHeadBmpNo == 2, ::nHeadBmpNo := 1, ::nHeadBmpNo := 2 ),DBSelectArea("TempOde"),DBCREATEINDEX("TempOde","Naziv",{|| Naziv}), ::oBrw:Refresh() }
   oCol:oDataFont := oFontBrw

   oBrw:nMarqueeStyle       := MARQSTYLE_HIGHLWIN7
   oBrw:nColDividerStyle    := LINESTYLE_BLACK
   oBrw:lColDividerComplete := .t.
   oBrw:nHeaderLines        := 1
   oBrw:nFooterLines        := 1
   oBrw:nDataLines          := 1
   oBrw:lFooter             := .t.
   oBrw:SetRDD()

       oBrw:bRClicked := { | nRow, nCol | ShowPopup( nRow, nCol, oDlgBrow, oBrw ) }

     oBrw:bLDblClick = { | nRow, nCol | TraRJ(TempOde->RadJed_Id),oDlgBrow:End() }
     oBrw:bKeyChar   = { | nKey, nFlags | if( nKey==VK_RETURN,(TraRJ(TempOde->RadJed_Id),oDlgBrow:End()),NIL) }

        REDEFINE RADIO oRadFil VAR mRadFil ID 31,32 OF oDlgBrow;
                 ON CHANGE oFilter:SetFocus()

        REDEFINE COMBOBOX oPolje VAR mPolje ITEMS {"Bez filtera","RadJed_Id","Naziv"} ID 21 OF oDlgBrow

        REDEFINE GET oFilter VAR mFilter ID 22 OF oDlgBrow;
             PICTURE "@!";
                 FONT oFont 

           REDEFINE BTNBMP ID 23 OF oDlgBrow RESOURCE "xKljuc" NOBORDER TOOLTIP "Postavi filter" ;
            ACTION (PuniDbf(mFilter,mPolje),iif(mRadFil=1,(oBrw:GoTop(),oBrw:Refresh(),oBrw:SetFocus()),(oBrw:Refresh(),oBrw:SetFocus())))

       REDEFINE BTNBMP ID 11 OF oDlgBrow;
            RESOURCE "Izlaz" LEFT 2007 PROMPT "   &Izlaz  ";
            ACTION oDlgBrow:End()

           REDEFINE BTNBMP ID 17 OF oDlgBrow RESOURCE "Stampac" NOBORDER TOOLTIP "Izbor štampača" ;
            ACTION PrinterSetup()
        
       REDEFINE BTNBMP oBtnSta ID 18 OF oDlgBrow ;
            RESOURCE "Printer16" LEFT 2007 PROMPT "  &Štampaj  ";
            ACTION (oBrw:Report("SPISAK RNIH JEDINICA"),oBrw:Refresh(),oBrw:GotFocus())
    
     ACTIVATE DIALOG oDlgBrow CENTERED ON INIT oBrw:SetFocus()

 DBSelectArea("TempOde")
DbCloseArea("TempOde")

DBSelectArea(cCompany+"_RadJed")

return .t.


Regards,
Miloš
Best regards

Milos



[ FWH 21.11 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20150603) ]
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xBrowse and report problem
Posted: Sat Sep 05, 2015 04:10 AM
We can build and run the above code exactly at our end, for want to rc file, dbfs and other functions used in the program.

We therefore created a new prg file using your code to build the xbrowse and using dummy data similar to the dbf you have used. This is the code:
Code (fw): Select all Collapse
#include "Fivewin.ch"

function Main()

   field RadJed_ID, Naziv

   local aStruct, oBrw, oCol, oDlgBrow, oFontBrw

   aStruct := {{"RadJed_Id","C",3,0},;
            {"Naziv","C",30,0}}

   dbCreate( "TEMPODE", aStruct )

   USE TEMPODE NEW

/*
  nErr := oSql:exec("SELECT * FROM " + cRadJed,,.t.,,"TempOde.dbf")

  if nErr != 0
    MsgInfo("Greška pri upitu","Greška")
  endif
*/

   FW_ArrayToDbf( { { "123", "ABC" }, { "234", "" }, { "345", "GHI" }, { "456", "" } } )
   GO TOP

   DEFINE FONT oFontBrw NAME "ARIAL" SIZE 0,-14

   DEFINE DIALOG oDlgBrow TITLE "SPISAK RADNIH JEDINICA" SIZE 460,300 PIXEL

   @ 40,10 XBROWSE oBrw SIZE -10,-10 PIXEL ALIAS "TempOde" OF oDlgBrow NOBORDER

   oCol := oBrw:AddCol()
   oCol:AddBmpFile( "c:\fwh\bitmaps\off.bmp" )
   oCol:AddBmpFile( "c:\fwh\bitmaps\on.bmp" )
   oCol:cHeader   := " "
   oCol:bBmpData  := { || iif( empty(TempOde->Naziv) ,1,2) }
   oCol:oDataFont := oFontBrw

   oCol := oBrw:AddCol()
   oCol:bStrData  := { || RadJed_Id}
   oCol:cHeader   := "Šifra"
   oCol:nWidth    := 40
   oCol:bLClickHeader = { | nMRow, nMCol, nFlags, Self | If( ::nHeadBmpNo == 2, ::nHeadBmpNo := 1, ::nHeadBmpNo := 2 ),DBSelectArea("TempOde"),DBCREATEINDEX("TempOde","RadJed_Id",{|| RadJed_Id}), ::oBrw:Refresh() }
   oCol:oDataFont := oFontBrw

   oCol := oBrw:AddCol()
   oCol:bStrData  := { || Naziv}
   oCol:cHeader   := "Odeljenje"
   oCol:bLClickHeader = { | nMRow, nMCol, nFlags, Self | If( ::nHeadBmpNo == 2, ::nHeadBmpNo := 1, ::nHeadBmpNo := 2 ),DBSelectArea("TempOde"),DBCREATEINDEX("TempOde","Naziv",{|| Naziv}), ::oBrw:Refresh() }
   oCol:oDataFont := oFontBrw

   oBrw:nMarqueeStyle       := MARQSTYLE_HIGHLWIN7
   oBrw:nColDividerStyle    := LINESTYLE_BLACK
   oBrw:lColDividerComplete := .t.
   oBrw:nHeaderLines        := 1
   oBrw:nFooterLines        := 1
   oBrw:nDataLines          := 1
   oBrw:lFooter             := .t.
   oBrw:SetRDD()                   // Remove this line. Superfluous and not desirable

       oBrw:bRClicked := { | nRow, nCol | ShowPopup( nRow, nCol, oDlgBrow, oBrw ) }

     oBrw:bLDblClick = { | nRow, nCol | TraRJ(TempOde->RadJed_Id),oDlgBrow:End() }
     oBrw:bKeyChar   = { | nKey, nFlags | if( nKey==VK_RETURN,(TraRJ(TempOde->RadJed_Id),oDlgBrow:End()),NIL) }

   oBrw:CreateFromCode()

   @ 10,10 BUTTON "Štampaj" SIZE 40,15 PIXEL OF oDlgBrow ACTION ( oBrw:Report( "SPISAK RNIH JEDINICA" ), oBrw:SetFocus() )

     ACTIVATE DIALOG oDlgBrow CENTERED ON INIT oBrw:SetFocus()

   RELEASE FONT oFontBrw

return nil

static function TraRJ();return nil
static function ShowPopup();return nil

This is the screenshot of the browse:


Clicking on the button executes oBrw:Report( <name> )
Screen shot of Preview of Report


You may please see that the oBrw:Report is working with your code.
The above program can be compiled and tested independently on any computer.
Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xBrowse and report problem
Posted: Sat Sep 05, 2015 04:15 AM
We would also like to suggest the recommended way of writing the above code.
Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

   field RadJed_ID, Naziv

   local aStruct, oBrw, oCol, oDlgBrow, oFontBrw

   aStruct := {{"RadJed_Id","C",3,0},;
            {"Naziv","C",30,0}}

   dbCreate( "TEMPODE", aStruct )

   USE TEMPODE NEW

   FW_ArrayToDbf( { { "123", "ABC" }, { "234", "" }, { "345", "GHI" }, { "456", "" } } )
   GO TOP
   INDEX ON RADJED_ID TAG ID    TO TMP MEMORY
   INDEX ON NAZIV     TAG NAZIV TO TMP MEMORY ADDITIVE
   SET ORDER TO TAG ID
   GO TOP

   DEFINE FONT oFontBrw NAME "ARIAL" SIZE 0,-14

   DEFINE DIALOG oDlgBrow TITLE "SPISAK RADNIH JEDINICA" SIZE 460,300 PIXEL FONT oFontBrw

   @ 40,10 XBROWSE oBrw SIZE -10,-10 PIXEL ALIAS "TempOde" OF oDlgBrow ;
      COLUMNS "EMPTY(NAZIV)", "RADJED_ID", "NAZIV" ;
      HEADERS " ", "Sifra", "Odeljenje" ;
      AUTOSORT FOOTERS LINES NOBORDER

   WITH OBJECT oBrw
      :nMarqueeStyle       := MARQSTYLE_HIGHLWIN7
      :aCols[ 1 ]:SetCheck( { "c:\fwh\bitmaps\off.bmp", "c:\fwh\bitmaps\on.bmp" } )
      :bLDblClick          = { | nRow, nCol | TraRJ(TempOde->RadJed_Id),oDlgBrow:End() }
      :bKeyChar            = { | nKey, nFlags | if( nKey==VK_RETURN,(TraRJ(TempOde->RadJed_Id),oDlgBrow:End()),NIL) }
      :bPopUp              := { || PopMenu() }
      :CreateFromCode()
   END

   @ 10,10 BUTTON "Štampaj" SIZE 40,15 PIXEL OF oDlgBrow ACTION ( oBrw:Report( "SPISAK RNIH JEDINICA" ), oBrw:SetFocus() )

   ACTIVATE DIALOG oDlgBrow CENTERED
   RELEASE FONT oFontBrw

return nil

static function PopMenu()

   local oPop

   MENU oPop POPUP 2007
      MENUITEM "One"
      MENUITEM "Two"
      MENUITEM "Three"
   ENDMENU

return oPop

static function TraRJ();return nil
Regards



G. N. Rao.

Hyderabad, India

Continue the discussion