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
   END CHOOSE
      
END IF
tacinpghAsked:
Who is Participating?
 
sandeep_patelCommented:
Hi,

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_setconfirmonrowchange(TRUE)
inv_linkage.of_setconfirmondelete(TRUE) ( this is if required )

Regards,
Sandeep
0
 
diasroshanCommented:
Hi,

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


and see if the problem persists...

Cheers,
Rosh
0
 
sandeep_patelCommented:
Hi,

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.

Regards,
Sandeep
0
 
tacinpghAuthor Commented:
Rosh,

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
0
 
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_master.of_SetLinkage(true)
dw_detail.of_SetLinkage(true)

dw_detail.inv_linkage.of_SetMaster(dw_acct_code_idx)
dw_detail.inv_linkage.of_Register("acct_code_idx_id", "acct_code_idx_id")
dw_detail.inv_linkage.of_SetStyle(n_cst_dwsrv_linkage.FILTER)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.