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

Can someone look over posting code for parent child posting

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

    Can someone look over posting code for parent child posting

    I have written a very simple parent/child (Older/Line) posting routine for totaling the quantity and price of a line to the order. In my real application I will have much more complicated code that will not work in the standard field rule posting function. I am new to Alpha 5 and this is my first project. I have a very simple test form that when you add, change or delete lines the order totals are updated. There is some xbasic code in the form init that creates pointers to the two tables and the other code can be found in the field rule's record events for the line file.

    For the real application I plan on pulling the main posting code out of the events and put it in a function. For now I am just trying to get the basics down and not miss anything. It is based off of Dr. Peter Wayne's "Program your own Posting Rules" but have made several changes.

    Any input is welcome.

    Thank you,

    Jeff
    Jeff Ryder

    #2
    Re: Can someone look over posting code for parent child posting

    Jeff, I'm not sure what you want folks to review ? Your order total is off because it's summing the costs instead of the product of each line's quantity x cost. Often it's useful to include a field in the line table record to hold the line total. In AlphaSports this field is called "Extended" in the order_items table, for example. To get the order total you sum the "extended" field values from each line record.

    Comment


      #3
      Re: Can someone look over posting code for parent child posting

      Tom, Thank you for looking at the code. I guess my example was bad. All it does it add, update or delete line quantity to order quantity and line price to order price. That is working correct as far as the test goes. I have been programming for many years but since this is my first project in Alpha and a big project that could replace existing software at over 100 locations I want to make sure I was not creating problems. I can not use the built in Field Rule posting option that automatically adds, updates and deletes a value to another table because of all the complicated calculations involved. I looked over the article by Dr. Payne but made changes because several fields in the items table can be changed and they all affect how you post to the order totals. Thus I used table.records_to _vars() to save off the entire line record before updates occur to the record. I think my code as written works fine but I was hoping that someone with more experience could take a look at it if they had time and make sure I am not doing something that could get me in trouble.
      Jeff Ryder

      Comment


        #4
        Re: Can someone look over posting code for parent child posting

        Jeff, if the number of line item records linked to any particular order is reasonable you probably would find it easier to sum all the items each time an item record is saved or changed. DBSUM() runs very fast. In the long run this may be much easier to maintain than your current approach which adjusts the previously saved total for the order by the amount (plus or minus) of the line item record just saved or deleted.

        Comment


          #5
          Re: Can someone look over posting code for parent child posting

          Thanks Tom but that would not work. First off some of our customers have 60,000 or more orders and Line items reaching a million. There could be a couple hundred line items on an order. Also there is over 100 lines of code in our current product just for posting a line item to the order and inventory tables. The sample database is just for getting the code right in the various record events for the line table.

          I will keep you suggestion in mind for other areas though.

          Thanks,

          Jeff
          Jeff Ryder

          Comment


            #6
            Re: Can someone look over posting code for parent child posting

            Jeff,

            My comments and suggestions are attached. Your approach seems to be working fine. The areas which concern me (and for which I'd welcome additional comment or criticism from others) are these:

            a) You DIM shared pointer variables in your form layout and then reference them in your record event scripts in field rules without DIMMING them shared again, there. This is working fine, but makes me nervous. I'm used to thinking of UNdimmed variables as being local.

            b) Since the pointers to your tables are initialized in the context of your form layout I fear you've tied your scripts to that form unnecessarily. You can establish a pointer to the LINE table in the record event scripts themselves. You can open a new instance of the ORDER table to write changes to it.

            c) Your custom post will occur whenever the user changes a line table record using your form, even if that change doesn't involve the fields you need to post.

            d) You use <tbl>.record_to_vars() in order to assign field values to separate variables. I've verified that this works well with C, D, and N data types, but have no experience with using it with other data types.

            -- tom

            Comment


              #7
              Re: Can someone look over posting code for parent child posting

              Tom,

              Thank you very much for taking the time to look it over and offer your options. I will do some more looking over the programs and do some more testing and revise my posting code with some of your suggestions.

              Jeff
              Jeff Ryder

              Comment

              Working...
              X