We help IT Professionals succeed at work.

PB 6.5 rowfocuschanging

tacinpgh
tacinpgh asked
on
Medium Priority
619 Views
Last Modified: 2013-12-26
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
Comment
Watch Question

Hi,

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


and see if the problem persists...

Cheers,
Rosh
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

Author

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

Author

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)
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

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.