PB 6.5 rowfocuschanging

I have something strange happening and I'm not quite sure why.  I have 2 datawindows dw_master, dw_child. When a user clicks on a new row in the master I have code in the rowfucuschanging of dw_master that will prompt user to save changes if there are any. The messagebox options are yes, no, cancel.

When I press cancel, I'm prompted again to save my changes, I press cancel again and this time I'm returned to the window. Why would the rowfocuschanging be fired twice??

NOTE: This is a pfc datawindow, so I'm not sure if that has anything to do with it. The master detail is not setup. Do I have to set up the master/detail relationship to get rowfocuschanging to work.

Here is the code that was added to the rowfocuschanging

IF dw_acct_code.ModifiedCount() > 0 OR dw_acct_code.DeletedCount() > 0 THEN
      //Case: Changes are pending in the Account Code dw
  li_rtnval = gnv_app.Message("APPL_ABS_LD_SAVE_ACCOUNT_CODES")
   CHOOSE CASE li_rtnval
      CASE 1 //user chose ok
       //save the changes, if save fails prevent the rowfocus from changing
            IF wf_save() <> 1 THEN RETURN 1
     CASE 3 //user chose cancel
      //prevent the row from changing
      This.SelectRow(0, FALSE)
      This.SelectRow(currentrow, TRUE)
      RETURN 1
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.


try commenting the lines...
This.SelectRow(0, FALSE)
This.SelectRow(currentrow, TRUE)

and see if the problem persists...


If you are using pfc datawindow then why are you not using it's rowmanager and linkage services ????

It will handle everything without any extra coding.

tacinpghAuthor Commented:

The first thing I did was to comment the "select row" lines. The problem was still occurring.  I think I have found a workable solution. I believe the problem is having messagebox in the rowfocuschanging. If I take the messagbebox out and place it in a post_event  of rowfocuschanging, Thw window is acting correctly.

Sandeep -- I inherited this app along with the all of the bugs.  Can you point me to documentation about setting up the linkage?? I would like to use the linkage service if it is possible
tacinpghAuthor Commented:
Sandeep -- I have set up the linkage but when I modify detail records and then select a new master record I am not prompted to save my detail record changes, The records are just lost.

I put the linkage in the pre-open event of the window


dw_detail.inv_linkage.of_Register("acct_code_idx_id", "acct_code_idx_id")

The documentation comes with installation setup itself if you have installed pfc. It must be there in help directory (c:\program files\sybase\powerbuilder8.0\help). File name is pbpfcXX.hlp (where XX is version).

and here you need to set two more services for linkage service.

inv_linkage.of_setconfirmondelete(TRUE) ( this is if required )


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Editors IDEs

From novice to tech pro — start learning today.