Page 1 of 1

hbpgsql/harbour + xbrowse

Posted: Thu May 05, 2011 1:51 pm
by luiz53
gostaria de saber como usar xbrowse com hbpgsql

"I would like to know how to use xbrowse hbpgsql"

HARBOUR CVS....

Re: hbpgsql/harbour + xbrowse

Posted: Thu May 05, 2011 5:56 pm
by nageswaragunupudi
Hope you will be able to open a table object with a query.

If the class of the object has some minimum methods like goto, gotop, recno, etc.xbrowse may be able to browse the object.

Please help me to try testing this:

First open the table / query in your own way. Let us call the object oQry. Then test whether xbrowse can automatically browse the object by:

Code: Select all

? XBrowsableObj( oQry ).
 
If the result is .T., then xbrowse can browse the object without much effort from your side. In such a case, next step is:

Code: Select all

DEFINE WINDOW oWnd
@ 0,0 XBROWSE oBrw OF oWnd DATASOURCE oQry FIELDS oQry:FieldGet(1) // or whatever way you access the fields.
oBrw:CreateFromCode()
oWnd:oClient := oBrw
ACTIVATE WINDOW oWnd
 
Depending on the results, I can guide you next.

Re: hbpgsql/harbour + xbrowse

Posted: Fri May 06, 2011 9:08 am
by luiz53
nageswaragunupudi wrote:Hope you will be able to open a table object with a query.

If the class of the object has some minimum methods like goto, gotop, recno, etc.xbrowse may be able to browse the object.

Please help me to try testing this:

First open the table / query in your own way. Let us call the object oQry. Then test whether xbrowse can automatically browse the object by:

Code: Select all

? XBrowsableObj( oQry ).
 
If the result is .T., then xbrowse can browse the object without much effort from your side. In such a case, next step is:

Code: Select all

DEFINE WINDOW oWnd
@ 0,0 XBROWSE oBrw OF oWnd DATASOURCE oQry FIELDS oQry:FieldGet(1) // or whatever way you access the fields.
oBrw:CreateFromCode()
oWnd:oClient := oBrw
ACTIVATE WINDOW oWnd
 
Depending on the results, I can guide you next.
return .F.

Re: hbpgsql/harbour + xbrowse

Posted: Sat May 07, 2011 10:27 pm
by luiz53
hello ;

G. N. Rao. Hyderabad, India

know what can I do?



saberia oque posso fazer ?

Re: hbpgsql/harbour + xbrowse

Posted: Sun May 08, 2011 9:27 am
by nageswaragunupudi
Please try adopting the following code to your query.

Code: Select all

function PgQryBrowse( oQry )

   DEFINE WINDOW oWnd
   
   @ 0,0 XBROWSE oBrw OF oWnd ;
         FIELDS oQry:FieldGet( 1 ), oQry:FieldGet( 2 ) ;
         HEADERS oQry:FieldName( 1 ), oQry:FieldName( 2 ) ;
         CELL LINES
   
   WITH OBJECT oBrw
      :nDataType        := DATATYPE_USER
      
      :bGoTop           := { || oQry:GoTo( 1 ) }
      :bGoBottom        := { || oQry:GoTo( oQry:LastRec() ) }
      :bKeyCount        := { || oQry:LastRec() }
      :bKeyNo           := ;
      :bBookMark        := { |n| If( n == nil, oQry:RecNo(), ( oQry:GoTo( Max( n, oQry:LastRec() ) ), oQry:RecNo() ) ) }
      :bBof             := { || oQry:Bof() }
      :bEof             := { || oQry:Eof() }
      :bSkip            := { |n| PgSkipper( oQry, n ) }
      
   END
   
   oBrw:CreateFromCode()
   oWnd:oClient         := oBrw
   
   ACTIVATE WINDOW oWnd
   
return nil

function PgSkipper( oQry, nToSkip )

   local nSkipped    := 0
   local nRecNo      := oQry:RecNo()
   
   DEFAULT nToSkip   := 1
   
   if oQry:LastRec() > 0
      oQry:GoTo( Max( 1, Min( nRecNo + nToSkip, oQry:LastRec() ) ) )
      nSkipped          := oQry:RecNo() - nRecNo
   endif

return nSkipped
 
Please test and post the results.

Re: hbpgsql/harbour + xbrowse

Posted: Sun May 08, 2011 10:06 pm
by luiz53
I did the test shows only one record ...
and the bank has 10 000 records

Re: hbpgsql/harbour + xbrowse

Posted: Mon May 09, 2011 12:55 am
by nageswaragunupudi
luiz53 wrote:I did the test shows only one record ...
and the bank has 10 000 records
I am sorry, there was a small mistake in the code I posted originally. I corrected the above code in PgSkipper() function.
Please use the revised code above