FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Report Drill Down
Posts: 990
Joined: Thu Nov 17, 2005 05:49 PM
Re: Report Drill Down
Posted: Fri Jan 29, 2016 07:13 PM
Hey James;

And these licenses are very expensive running from US$4000 to US$9000.


I thought it was odd those prices you quoted. Here is link to prices from the webpage https://www.fast-report.com/en/buy/#!/VCL%20(Embarcadero%20RAD%20Studio|Delphi|C++%20Builder)/FastReport%205%20VCL/

Its $199. But, again, don't bother buying from them directly unless you are using Delphi or some .net.


Reinaldo.
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Re: Report Drill Down
Posted: Fri Jan 29, 2016 07:38 PM
Hola,


you can see some samples in this link http://www.fast-report.com:8097/ fastreport is able to export the report to many formats, one of them is html, then can be easy to use FR for web systems.

regards

Marcelo Vía
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
Re: Report Drill Down
Posted: Sat Jan 30, 2016 04:47 AM

Reinaldo,

Thanks for the clarification.

James

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
Re: Report Drill Down
Posted: Sat Jan 30, 2016 04:48 AM

I remember seeing something about a drill-down some time ago, so I searched the forum and found this thread:

viewtopic.php?f=3t=29853p=169687hilit=tree+browsesid=3087ff7956eeff8bfcbab81e27c81485#p169687

It contains a discussion of using a tree and browse to create a drill-down report.

James

&&&&

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
Re: Report Drill Down
Posted: Sat Jan 30, 2016 07:03 AM

Rienaldo,

The prices I was looking at were site licenses. I assume you need one for each client.

James

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: Report Drill Down
Posted: Sat Jan 30, 2016 09:50 AM

antonio,
I not understood why it cannot make with Treport

I found

http://www.infosol.com/crystal-reports- ... rill-down/

http://www.sdn.sap.com/irj/scn/index?ri ... ayout=true

We can add at
METHOD SayData(nRow, nCol, nLine) CLASS TRColumn

If ::lDrill

  baction  to a  user function  where the user  can show what he want show ...

Endif

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Report Drill Down
Posted: Sat Jan 30, 2016 10:02 AM

Silvio,

You mean from the preview, right ?

We have a metafile there, we should detect where the user double clicks and then create a new metafile at runtime and open it, I guess

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: Report Drill Down
Posted: Sat Jan 30, 2016 10:56 AM

yes,
I think can be supported only for numbers fields but i not understood good if it can be extended also to all format fields

I remember on Metafile if the user make double click he call the zoom !!!

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: Report Drill Down
Posted: Sat Jan 30, 2016 10:59 AM

the field drill must have a box arround ( see the film I send you on post forum)

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: Report Drill Down
Posted: Sat Jan 30, 2016 12:48 PM
Antonio,
use this this small test to make the drill
Code (fw): Select all Collapse
#include "fivewin.ch"
#include "Splitter.ch"
#include "ord.ch"
#include "xbrowse.ch"

Static oWnd
static cFwhPath   := "c:\work\fwh\"

REQUEST DBFCDX

Function Main()
DEFINE WINDOW oWnd MDI 

    DEFINE BUTTONBAR oBar OF oWnd SIZE 60, 60 2007

    DEFINE STATUSBAR oStatusBar PROMPT "Some tests" OF oWnd

ACTIVATE WINDOW oWnd ;
           ON INIT customer()

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

   init procedure PrgInit
   SET DATE ITALIAN
   SET CENTURY ON
   SET TIME FORMAT TO "HH:MM:SS"
   SET EPOCH TO YEAR(DATE())-50

   SET DELETED ON
   SET EXCLUSIVE OFF

   RDDSETDEFAULT( "DBFCDX" )

   XbrNumFormat( 'E', .t. )
   SetKinetic( .f. )
   SetGetColorFocus()
   SetBalloon( .t. )
return

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

    Function Customer()

       LOCAL oWnd, oDlg, oExpBar, aPanel[3], oBrw, oCol, oSplitV, aCampos ,;
          cQry, oQry, oError,oWndCli
      local oFont,oTree

   local nGrpClr     := RGB(255,250,220)
   local nTotClr     := RGB(200,255,200)

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14


      IF oWndCli == NIL

            *  DbUseArea( .T., "DBFCDX", "CUSTOMER.DBF", "CUSTOMER", .T., .F.)

            *   dbselectarea( "CUSTOMER" )

           oTree:=MakeTree()

          DEFINE WINDOW oWndCli ;
             TITLE  " Test Drill" ;
             BORDER SINGLE MDICHILD OF oWnd



          oExpBar = TExplorerBar():New( 00, 00, 200, oWndCli:nHeight, oWndCli )

          aPanel[1] = oExpBar:AddPanel( "CLIENTES", "Clientes32" )
          aPanel[1]:lSpecial = .t.
          aPanel[1]:AddLink( "Nuevo    ", , "nuevo16" )
          aPanel[1]:AddLink( "Modificar", , "modifi16" )
          aPanel[1]:AddLink( "Eliminar ", , , "elimi16" )


          aPanel[2] = oExpBar:AddPanel( "REPORTES", "print32" )
          aPanel[2]:AddLink( "Report Drill", {|| oBrw:report() }, "repo1" )

          aPanel[3] = oExpBar:AddPanel( "SALIDA", "salir32" )
          aPanel[3]:AddLink( "Salir", {|| oWndCli:End() }, "salir16" )





          oBrw := TXBrowse():New( oWndCli )



                aBrowse   := { { { || "" }, i18n("HireDate"), 50, }  ,;
                                { { || AGE }, i18n("Age"), 120, } ,;
                               { { || SALARY }, i18n("Salary"), 80,NumPict ( 12, 2 ) } }


         FOR i := 1 TO Len(aBrowse)
                   oCol := oBrw:AddCol()
                   oCol:bEditValue := aBrowse[ i, 1 ]
               *   oCol:bStrData := aBrowse[ i, 1 ]
                   oCol:cHeader  := aBrowse[ i, 2 ]
                   oCol:nWidth   := aBrowse[ i, 3 ]
                        if !Empty(aBrowse[ i, 4 ])
                            oCol:cEditPicture:=aBrowse[ i, 4 ]
                           Endif
          NEXT




    WITH OBJECT oBrw
       :nDataType:= 1
       :SetTree( oTree)
      :nStretchCol         := 1
      :lDisplayZeros       := .f.
      :bChange             := { || CUST->( DBGOTO( oBrw:oTreeItem:Cargo[ 4 ] ) ) }
      :bLock               := { || CUST->( RLOCK() ) }
      :bUnLock             := { || CUST->( DBUNLOCK() ) }
      :bClrStd             := { || { CLR_BLACK, If( oBrw:oTreeItem:nLevel == 1, nGrpClr, ;
                                                If( oBrw:oTreeItem:cPrompt == "Sub-Total", nTotClr, ;
                                                CLR_WHITE ) ) } }

             :nMarqueeStyle    := MARQSTYLE_HIGHLROW
             :nColDividerStyle := LINESTYLE_BLACK
             :nStretchCol      := STRETCHCOL_LAST
             :lColDividerComplete := .t.
             :nHeaderHeight := 30
             :nLeft := 203
             :l2007 := .t.
             :lFooter := .f.
             :lRecordSelector := .t.
             :bClrStd := {|| IF( RecNo() % 2 == 0, {CLR_BLACK, CLR_WHITE}, {0, RGB(203,226,254)} ) }

      // Bitmaps
             WITH OBJECT :aCols[ 1 ]
             :cHeader  := "State/City"
             :AddBitmap( {  FWRArrow(), FWDArrow(), cFwhPath + "bitmaps\16x16\reset.bmp" } )
            :cFooter          := "GRAND TOTAL"
      END

      // When Group is closed show totals. When open show totals at bottom
      // Allow edit of columns and save data to DBF, update group and grand totals
      WITH OBJECT :aCols[ 3 ]
         :bEditValue       := { |x| If( oBrw:oTreeItem:lOpened, 0, ;
                                    If( x == nil, oBrw:oTreeItem:Cargo[ 2 ], ;
                                    CUST->AGE := oBrw:oTreeItem:Cargo[ 2 ] := x ) ) }
         :nTotal           := oTree:Cargo[ 2 ]
         //
         :nEditType        := EDIT_GET
         :bEditWhen        := { || oBrw:oTreeItem:nLevel > 1 .and. oBrw:oTreeItem:cPrompt != "Sub-Total" }
         :bOnChange        := { |o,nOld| oBrw:oTreeItem:Parent():Cargo[ 2 ] += ( o:Value - nOld ), oBrw:Refresh() }
      END




      WITH OBJECT :aCols[ 4 ]
         :bEditValue       := { |x| If( oBrw:oTreeItem:lOpened, 0, ;
                                    If( x == nil, oBrw:oTreeItem:Cargo[ 3 ], ;
                                    CUST->SALARY := oBrw:oTreeItem:Cargo[ 3 ] := x ) ) }
         :nTotal           := oTree:Cargo[ 3 ]
         //
         :nEditType        := EDIT_GET
         :bEditWhen        := { || oBrw:oTreeItem:nLevel > 1 .and. oBrw:oTreeItem:cPrompt != "Sub-Total" }
         :bOnChange        := { |o,nOld| oBrw:oTreeItem:Parent():Cargo[ 3 ] += ( o:Value - nOld ), oBrw:Refresh() }
      END

      //
      :CreateFromCode()
   END



          oBrw:CreateFromCode()

          @ 00,201 SPLITTER oSplitV VERTICAL ;
             PREVIOUS CONTROLS oExpBar ;
             HINDS CONTROLS oBrw ;
             SIZE 1, oWndCli:nHeight PIXEL ;
             OF oWndCli ;
             3DLOOK UPDATE

         * oSplitV:=.t.

          SET MESSAGE OF oWndCli TO " Customer "

          oBrw:SetFocus()

          ACTIVATE WINDOW oWndCli MAXIMIZED ;
             ON RESIZE( oExpBar:AdjLeft(), oSplitV:AdjClient(), oSplitV:AdjRight() ) ;
             VALID( oWndCli := NIL, .t. )
       ELSE
          oWndCli:Restore()
          oWndCli:SetFocus()
       ENDIF

       RETURN



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


static function MakeTree()

   field STATE,CODE,CITY

   local cPath    := cFwhPath + "samples\"
   local oTree, oState, oCity

   USE ( cPath + "STATES" ) NEW SHARED
   INDEX ON CODE TAG CODE TO STMP MEMORY
   USE ( cPath + "CUSTOMER" ) NEW ALIAS CUST SHARED
   INDEX ON STATE+CITY TAG STATE TO CTMP MEMORY
   SET RELATION TO STATE INTO STATES
   GO TOP

   TREE oTree
   oTree:Cargo    := { "", 0, 0.00, 0 }
   do while ! CUST->( eof() )
      TREEITEM oState PROMPT STATES->NAME CARGO { CTOD( "" ), 0, 0.00, 0 }
      TREE
         do while STATES->NAME == oState:cPrompt .and. ! CUST->( eof() )
            TREEITEM oCity PROMPT CUST->CITY ;
               CARGO { CUST->HIREDATE, CUST->AGE, CUST->SALARY, CUST->( RECNO() ) }
            oState:Cargo[ 2 ]    += oCity:Cargo[ 2 ]
            oState:Cargo[ 3 ]    += oCity:Cargo[ 3 ]
            CUST->( DbSkip( 1 ) )
         enddo
         TREEITEM "Sub-Total" CARGO oState:Cargo
         oTree:Cargo[ 2 ]  += oState:Cargo[ 2 ]
         oTree:Cargo[ 3 ]  += oState:Cargo[ 3 ]
      ENDTREE

   enddo
   ENDTREE

return oTree

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


1. how create a link on metafile ? perhaps we must modify the metafile class ?
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Report Drill Down
Posted: Sat Jan 30, 2016 01:35 PM
Yes, this example is good

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
Re: Report Drill Down
Posted: Sat Jan 30, 2016 06:18 PM

Issues about reports:

The real challenge is to get the customer to think about what information they really need.

In the early days, I had customers telling me they wanted a printout of all their sales. This was often over a hundred pages.

Then I asked them, what are you going to do with that? They thought about it for a few days, and then came up with something like, "Find the 10 best selling items, and the 10 worst." I told them I could do that on a one page report! And better still they didn't need to print it, but they could view it on their computer screen whenever they wanted and have up to the minute information. This made them happy.

So, while a drill-down report is useful, it probably isn't as useful as a more concise report that gives them just the information they need.

The next step is to figure out what the information means, and what should be done with that information. If possible, the software should handle it.

For instance, were the worst selling items, worse just because they ran out of stock? If so, the software could flag this and recommend reordering immediately. The software could watch the rate of sales and predict when an item is going to run out of stock and when that time period gets close to the expected delivery time for reorder, then the software should notify that it is time for reorder.

Reports are only a tool for users to help them make decisions. When we figure out what they are trying to accomplish we can attempt to move that decision making process into the software.

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Report Drill Down
Posted: Sat Jan 30, 2016 07:08 PM

Mr James

I fully agree.

Regards



G. N. Rao.

Hyderabad, India
Posts: 1598
Joined: Fri Oct 07, 2005 05:56 PM
Re: Report Drill Down
Posted: Sun Jan 31, 2016 02:38 AM

I agree with James. The result means conclude Details and Summary to one and they will look when they have problem and need to see in deep. But it will take more time for produce every time you do. I think 2 reports are enough, Summary for normal and Details when you need more in deep details (sometime).

Regards,

Dutch



FWH 2304 / xHarbour Simplex 1.2.3 / BCC73 / Pelles C / UEStudio

FWPPC 10.02 / Harbour for PPC (FTDN)

ADS V.9 / MySql / MariaDB

R&R 12 Infinity / Crystal Report XI R2

(Thailand)
Posts: 512
Joined: Mon Oct 17, 2005 10:38 AM
Re: Report Drill Down
Posted: Sun Jan 31, 2016 08:10 AM

James, you're completely right.
It's better to ask in a selection dialog before the printing if you need a detailed or synthetic report.