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

Totaling parent table based on child table value

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

  • Totaling parent table based on child table value

    I am trying to construct a system to track and forecast the cash flowing in and out of my business.
    These are early steps and I am trying to see if Alpha can help me with this.

    Invoices are entered into the TRANSACTIONS table
    and a popup loads a character value into the Type field of the ACCOUNT table.
    So every invoice will the following characteistics: a date, account number, amount, and a type
    where TYPE is a category of supply or service lables as Groceries, Supplies, Utilities etc.)

    The idea is that I could create a form that displays at a summary that consists of 6 columns.
    column 1 = Date
    Column 2= total amount due to "Supplies"
    Column 3= total amount due to "Groceries"
    Column 4= total amount due to "Utilities"
    Column 5= total amount due to "Payroll"
    Column 6= total amount due to all TYPES of expenditures

    I have a set made up of 3 tables (Main_date_frame)

    Table 1= MAIN_DATE
    Date_key ( date field )


    Table 2= TRANSACTIONS
    Date ( 1 to many relationship to Date_key above) D
    Account (supplier or service provider) N
    Amount (Amount payable) N

    Table 3= ACCOUNT
    Account ( 1 to 1 with Account above) N
    Type (category of supply or service eg Groceries, Supplies, Utilities etc)


    The Date_key field in Table 1 MAIN_DATE is essentially a column of sequential dates.


    I created a embedded browse within a form and the browse has 6 columns consisting of:

    Date_key field and the following calculated fields

    Calculated fields:
    Supplies_col = total(iif(Account->Type="Supplies",Transactions->Amount,0),grp->transactions,grp->main_date)
    Groceries_col = total(iif(Account->Type="Groceries",Transactions->Amount,0),grp->transactions,grp->main_date)
    Utilities_col = total(iif(Account->Type="Utilities",Transactions->Amount,0),grp->transactions,grp->main_date)
    Payroll_col = total(iif(Account->Type="Payroll",Transactions->Amount,0),grp->transactions,grp->main_date)
    TRANSACTIONTOTAL= total(transactions->amount,grp->main_date)

    I entered a series of dummy data and all the TRANSACTIONTOTAL amounts calculated correctly but I can't get
    supplies_col, Groceries_col, utilities_col or Payroll_col to show anything but a zero value.

    For any given date I could have several supplies type transactions as well as a few groceries type there may even be a payroll transaction. so what I am hoping to see in the browse is a row consisting of a date, a total of all the supplies type of invoices for that date, a total of all the groceries type of invoices for that date and a payroll total for that date.

  • #2
    Re: Totaling parent table based on child table value

    This seems to be a duplicate thread in a different forum...
    http://msgboard.alphasoftware.com/al...027#post547027

    Greg, what version are you using???? Doublepostings usually will not only distract users, but also hinder their being able to figure out a solution for you. It will many times make potential helpers just not even attempt as it tends to just become way too confusing....
    Mike
    __________________________________________
    It is only when we forget all our learning that we begin to know.
    It's not what you look at that matters, it's what you see.
    Henry David Thoreau
    __________________________________________



    Comment


    • #3
      Re: Totaling parent table based on child table value

      Sorry about the duplicate posting. I was not able to see the first posting appear on the board so I though that I had done something wrong.
      I am using version 9.

      Comment


      • #4
        Re: Totaling parent table based on child table value

        desktop or web app?

        Greg, if you strored the "type" of each invoice in the transactions table, you could use the tablesum() function to compute the total for each category filtered by the date_key.
        Last edited by Tom Cone Jr; 08-16-2010, 07:10 AM.

        Comment


        • #5
          Re: Totaling parent table based on child table value

          This is a desktop application. Is this one of those situations where duplicating data is a good idea? Is there an elegant way to go about inserting the TYPE value from the child ACCOUNT table to a new field in the TRANSACTION table automatically?

          Comment


          • #6
            Re: Totaling parent table based on child table value

            Greg, I'm glad you wrote back. On reflection let me change my advice.

            You can compute the total using tablesum() for each category using the current account number, without adding the type field to the transactions table. Your structure is fine. It avoids redundant data and you won't have trouble later on if the user changes the type name for an account.

            Comment


            • #7
              Re: Totaling parent table based on child table value

              Well,
              at least now both threads have the same basic answer!!! :D
              Mike
              __________________________________________
              It is only when we forget all our learning that we begin to know.
              It's not what you look at that matters, it's what you see.
              Henry David Thoreau
              __________________________________________



              Comment


              • #8
                Re: Totaling parent table based on child table value

                I am unaware of how to reach down into the child table using tablesum to get a total for those records of a certain type.

                Comment


                • #9
                  Re: Totaling parent table based on child table value

                  Me either. You can't.

                  Use the Account number to get totals by account number. Or change your table structure and put the account type in the transaction table. Design decision based on the needs of your app.

                  Comment


                  • #10
                    Re: Totaling parent table based on child table value

                    I think I made a mistake linking the ACCOUNT table to the set. I will use it instead as a lookup to populate the TRANSACTION table. My only choice is to create an extra field.
                    Thanks so much for the insight.

                    Comment


                    • #11
                      Re: Totaling parent table based on child table value

                      Your structure has it so one supplier provides only one category of supplies. Is this true? There isn't a supplier that supplies groceries and supplies?

                      I do this with a summary table and run a script to populate the summary table for each month. This way, the summary table provides a rolling summary and allows comparing month to month easily. A version of the same script could be used to present the current month numbers.
                      Mike W
                      __________________________
                      "I rebel in at least small things to express to the world that I have not completely surrendered"

                      Comment


                      • #12
                        Re: Totaling parent table based on child table value

                        Tom, I am having trouble getting my calculated fields to select for the current date record.

                        This is my attempt with TOTAL
                        Supplies_col = total(iif(Account->Type="Supplies",Transactions->Amount,0),grp->transactions,grp->main_date)



                        This is my attempt with DBsum

                        Supplies_col = tablesum("Transactions.dbf","Transactions->Type='Supplies'","Transactions->Amount")


                        This actually totals correctly, it selects for the current date:
                        I am trying to set something up select for both the current date and a specific type like "supplies" or "groceries"
                        transactionstotal = total(transactions->amount,grp->main_date)

                        Comment


                        • #13
                          Re: Totaling parent table based on child table value

                          Fixed it! Just had my Duh moment a little while ago. I have been staring at this all day without seeing the problem.

                          RE: "This is my attempt with TOTAL "

                          Supplies_col = total(iif(Account->Type="Supplies",Transactions->Amount,0),grp->transactions,grp->main_date)

                          I was refering to the wrong table it should have been the TRANSACTIONS table but not the Account table.
                          The correct line reads below.

                          Supplies_col = total(IF(TRANSACTIONS-Type="Supplies",Transactions->Amount,0),grp->transactions,grp->main_date)

                          Now if I can only figure out how to do the same with dbsum or tablesum i will have a better set of tools at my access.

                          Comment

                          Working...
                          X