Strange pkeepin'

GCC Consulting gccconsulting at comcast.net
Wed May 7 15:09:51 PDT 2008



> -----Original Message-----
> From: filepro-list-
> bounces+gccconsulting=comcast.net at lists.celestial.com [mailto:filepro-
> list-bounces+gccconsulting=comcast.net at lists.celestial.com] On Behalf
> Of Bruce Easton
> Sent: Wednesday, May 07, 2008 6:05 PM
> To: filepro list
> Subject: Strange pkeepin'
> 
> I'm seeing some strange browse pkeep behavior today on
> Windows filepro 5.0.14.  I don't think the couple of items
> I see in the release notes about pkeep from 5.0.14 on describe
> what I am seeing.  Also, I'm pretty sure that I've coded
> the exact same under Unix and did not see the behavior there.
> 
> I'll first post code where everything works as expected
> (subroutine 'clearm' [not shown] just deletes records for
> session out of file 'mymarkfile'):
> 
> 595  -------   -   -   -   -   -   -   -   -   -   -   -   -
> @wbl4  ? If:     'sets kn(8,.0) to one-up # for marking file
>        Then: gosub getctrl       '(used as marking session key)
> 596  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:     'browse spec
>        Then: bt="(brw=12 xkey=xm prc=filmk show=pkeep fill=asc)"
> 597  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:
>        Then: bu="[Mark   Type of Document]"
> 598  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:
>        Then: bv=" *mk     *2"
> 599  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:
>        Then: ky(60,*)=""
> 600  -------   -   -   -   -   -   -   -   -   -   -   -   -
> rptbrw ? If:
>        Then: cls("22"); showctr("23") "\r M \r-Mark \r X \r-Exit"
> 601  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:       'MAIN BROWSE for marking
>        Then: lookup brfil = myfile@ k=ky i=A -ng b=(bt&bu&bv)
> 602  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If: not brfil    'data missing fr supporting file
>        Then: beep; errorbox "Docs missing"; clearb; screen ,4
> 603  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If: @sk eq "BRKY" or @bk eq "X"  'operator exiting
>        Then: gosub clearm; clearb; screen ,4
> 604  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If: @bk eq "M"   'operator marking record in browse
>        Then: gosub markit; goto rptbrw
> 605  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:              'future xkey vals tested down here
>        Then: goto rptbrw  'should now never reach here.
> 606  -------   -   -   -   -   -   -   -   -   -   -   -   -
> markit ? If: '**** subroutine for marking one record
>        Then: 'triggered from @bk="M" on browse
> 607  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:
>        Then: hk(14,*)=kn&brfil(1)
> 608  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:
>        Then: lookup mrkfil = mymarkfile@  k=hk  i=B -nx
> 609  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If: mrkfil
>        Then: return   'already marked
> 610  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:          'make a marking record
>        Then: lookup mrkfil = mymarkfile@  r=free  -ep
> 611  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:
>        Then: mrkfil(1)=kn; mrkfil(2)=brfil(1)
> 612  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:
>        Then: return
> 613  -------   -   -   -   -   -   -   -   -   -   -   -   -
> filmk  ? If: 'fill (drop) processing for browse above ******
>        Then: '(tests existence of marking record)
> 614  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:
>        Then: mk(1,*)=""; hk=kn&brfil(1)
> 615  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:
>        Then: lookup thisbr = mymarkfile@  k=hk  i=B  -nx
> 616  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If: thisbr
>        Then: mk="M"
> 617  -------   -   -   -   -   -   -   -   -   -   -   -   -
>        ? If:
>        Then: end
> 618  -------   -   -   -   -   -   -   -   -   -   -   -   -
> 
> This all works fine.  The way I used to write these procedures
> included a 'close mrkfil'  - for here that would be before
> the return on line 612.  In this case when I try to close
> the marking file, pkeep is no longer able to keep its place,
> and every time the browse is re-executed at 'rptbrw', the
> browse pointer is at position of the original key.
> 
> I started to think that since I was closing the file
> that is also used in the drop processing (to show the
> status of what was just marked), that I might be
> confusing clerk there.
> 
> But even when I kept the 'close mrkfil' at 612 before
> the return and removed the 'prc=filmk' from the browse
> specification, it still would return the browse pointer
> to the beginning of the original key after each 'M'
> keypress on the browse.  So even though I'm not closing
> the file that I'm browsing, closing some other file,
> even if not called in drop processing is affecting pkeep.
> 
> I guess I can live without the close (although there is
> also a routine to delete marks and I really would like
> to be able to at least close there).
> 
> I'm sure that I was doing it that way before in Unix
> (although it probably was an earlier 5.0 filepro).
> 
> 
> Bruce
> 
> 
> Bruce Easton
> STN, Inc.
> 

Bruce,

Try a write instead of the close.

Richard




More information about the Filepro-list mailing list