Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Refreshing Linked Grids

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Refreshing Linked Grids

    I'm having a problem refreshing a linked grid and would appreciate it if anybody maybe has an idea on how I can get around the following.

    I have a Parent grid which has a linked grid. On the Linked Grid I have a button which opens a dialog and the user enters information which is posted to various other tables and also to the linked grid.

    I want the linked grid to REFRESH when I close / submit the dialog.

    Is there a way of doing this - None of the Dialog Action Script options work for this so I have to find another way.

    I'm using version 11 and have the following Server-side AfterDialogValidate event which saves the values to the database / tables and closes the Dialog.
    _________________________________________________________________________________________-
    ExecuteServerSideAction("Save Data::Save Data")

    if rtc.flagRecordWasSaved then

    dim jsclose as c
    jsclose = "var ele = $('mywindow'); if(ele) {{dialog.object}.closeContainerWindow(ele);}"
    e.javascript = e.javascript + ";" + jsclose

    end if
    __________________________________________________________________________________________

    I would assume I need a refresh parent / linked grid option in here somewhere, but can't seem to find the right method.

    Any help on this will be great.

    #2
    Re: Refreshing Linked Grids

    This is exactly what I am working on as well.
    Did you every find a way to get this done?
    The only way I could get the linked grid to refresh is to choose "All Rows" as what gets updated after the dialog submits.

    Comment


      #3
      Re: Refreshing Linked Grids

      Hi Clive,

      I think I have found a way to accomplish this so that the linked grid refreshes and remains on the same record.

      Here's what I did:

      Assume a "master" grid with linked grid "A"

      First, in the grid "A" component itself (not the "master" grid, but the linked grid component in this case "A"- hope that makes sense), I created a simple javascript function as follows:

      Code:
      function refresh() {
      {grid.Object}.refresh();
      }
      I placed this function in the "Code" section of grid "A" under "Javascript functions"

      Then, in the "afterDialogValidate" section, after my "insert" command is executed, I check for the success of the insert and if successful, I add the following javascript commands to be returned to the browser:

      Code:
      if flag = .f. then  
        e.javascript="alert('Error, Record was not inserted. Error was: " 
        e.javascript=e.javascript + cn.CallResult.text + "');"
      else  
        'This is a successful Add
        e.javascript="alert('Record Added');"
        e.javascript = e.javascript + "$('{dialog.ComponentName}.V.R1.BUTTON_PRINT').disabled = false;"  
        e.javascript = e.javascript + "refresh();"
        
      end if
      So here is what the javascript that I am sending back to the browser will do:

      First, it displays an alert window notifying that the add was successful.
      Next it concatenates another javascript command which enables a print button on my dialog.
      Then it concatenates one more javascript command which calls the "refresh()" function on the calling grid, and this performs the update of the linked grid.

      The javascript executes all three of these commands sequentially.

      This works for me. It may not be a good idea to write a function called refresh(), as this is one of the built in functions, but the system seems to be able to keep them separate.

      By the way, in case anyone is wondering, here is how I disabled the print button on the dialog initially:

      In the dialog's onDialogInitialize event, I have : e.javascript = "$('{dialog.ComponentName}.V.R1.BUTTON_PRINT').disabled = true;"

      Hope this helps.

      Comment


        #4
        Re: Refreshing Linked Grids

        Thanks for this post. I've tried it out and it just isn't working for me. The Record Added box pops up, but the dialog does not close nor does the grid refresh. I tried this both with and without the print disabled. Here is my code in the AfterDialogValidate event.

        function afterDialogValidate as v (e as p)


        dim rtc.flagRecordWasSaved as l
        'To edit this action, place insertion point anywhere in the command, then click the 'Action Scripting' button'.
        ExecuteServerSideAction("Save Data::SaveUser")
        if rtc.flagRecordWasSaved
        'To edit this action, place insertion point anywhere in the command, then click the 'Action Scripting' button'.
        ExecuteServerSideAction("Save Web Security Values::SaveSecurity")
        end if
        if rtc.flagRecordWasSaved = .f. then
        e.javascript="alert('Error, Record was not inserted. Error was: "
        e.javascript=e.javascript + cn.CallResult.text + "');"
        else
        'This is a successful Add
        e.javascript="alert('Record Added');"
        'e.javascript = e.javascript + "$('{dialog.apassword1}.V.R1.BUTTON_PRINT').disabled = false;"
        e.javascript = e.javascript + "refresh();"

        end if
        end function

        Anything I am doing wrong?

        Charlie

        Comment


          #5
          Re: Refreshing Linked Grids

          Charlie,

          I can offer only a couple of guesses.

          Since you have it commented out, I don't think this would be the main cause, but in your next to the last line where you have:

          'e.javascript = e.javascript + "$('{dialog.apassword1}.V.R1.BUTTON_PRINT').disabled = false;"

          you should not put your dialog name into the code. I believe you wat to use the placeholder {dialog.ComponentName}

          Also, you did not mention it, but be sure you have the javascript function "refresh ()" defined in the javascript code of your linked grid.
          I would put an "alert('Calling refresh function');" or something similar into the refresh() function to be sure your code is getting there.

          My code does not attempt to close the dialog so you should not expect that to happen just with my code.

          Also, the button that opens the dialog on my application uses the Javascript "Open a dialog component" action script. The builder for this has a property called "Refresh Grid on Window Close" and mine is set to "Current Row".

          Beyond these suggestions, I'm not sure what else could be the problem.

          Comment


            #6
            Re: Refreshing Linked Grids

            What version are you using? I'm using V11 and I don't see the option of Refresh Grid on Window Close in my dialog builder.

            Comment


              #7
              Re: Refreshing Linked Grids

              I am also using V11, and that option is not a property of the dialog builder, rather it is a property of the Action Javascript when you "Open A Dialog Component".
              In other words, when you define the javascript action for a button, you have the ability to use Action Javascript to create that action, and when you do that, and select "Open A Dialog Component", that builder will have the "Refresh Grid on Window Close" property.

              Having said that, however, I still had to use my "refresh()" javascript function for the linked grid to be refreshed.

              Comment

              Working...
              X