Subject | Re: [IBO] Report Builder / IBO |
---|---|
Author | Jason Wharton |
Post date | 2001-08-16T06:03:32Z |
Thanks for the prompt response!
Please try this one as well. I tinkered a little more with it.
function TIBODataset.BookmarkValid( ABookmark: TBookmark ): Boolean;
var
BS: string;
NR: TIB_NodeRef;
begin
Result := Assigned( ABookmark );
if Result then
with InternalDataset.NodeList do
if ( FilterDel and ( BofRef.DelCnt + EofRef.DelCnt > 0 )) or
( Filtered and ( BofRef.FilCnt + EofRef.FilCnt > 0 )) then
begin
SetLength( BS, BookmarkSize );
Move( ABookmark^, BS[1], BookmarkSize );
InternalDataset.KeyFields.RowData := BS;
if LookupNode( KeyFields.RowBuffer, true, NR ) then
Result := not (( rfDeleted in NR.Node.RowFlags ) and FilterDel )
and
not (( rfFiltered in NR.Node.RowFlags ) and Filtered );
end;
end;
I made it this way so that it would be more efficient.
Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com
Please try this one as well. I tinkered a little more with it.
function TIBODataset.BookmarkValid( ABookmark: TBookmark ): Boolean;
var
BS: string;
NR: TIB_NodeRef;
begin
Result := Assigned( ABookmark );
if Result then
with InternalDataset.NodeList do
if ( FilterDel and ( BofRef.DelCnt + EofRef.DelCnt > 0 )) or
( Filtered and ( BofRef.FilCnt + EofRef.FilCnt > 0 )) then
begin
SetLength( BS, BookmarkSize );
Move( ABookmark^, BS[1], BookmarkSize );
InternalDataset.KeyFields.RowData := BS;
if LookupNode( KeyFields.RowBuffer, true, NR ) then
Result := not (( rfDeleted in NR.Node.RowFlags ) and FilterDel )
and
not (( rfFiltered in NR.Node.RowFlags ) and Filtered );
end;
end;
I made it this way so that it would be more efficient.
Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com