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

Conditional Append Help?

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

    Conditional Append Help?

    Conditional Append
    I have set up an append operation (with conditions) that appends records from one table to another and this works fine. I can "run" it and I get the desired results. However, it does an append action on "all" records from the Transaction table; even those that have already been appended. That works because I have set up a "unique" record in the Master based on "invoice number" in the transaction but I really don't need to look at ALL the transaction records every time!

    What I want to do is append only one record (the current record being worked on in the transaction table) to the Master Table. I am trying to key this action on an event (onchange). If a field called "Status" changes from whatever it is to "Gone" I want to append this record (in the transaction table) to the Master Table. Can I tie an event to the "Status" field that will execute an "append" (for only this record) only if that field changes and now contains "Gone" as a status?

    My desire is something like this; if STATUS changes and now contains "Gone", append this record to the Master Table using the predefined conditions set up in the append operation description.
    Jim Belanger

    #2
    RE: Conditional Append Help?

    Jim

    If you are adding only one record, append is not the best way. Take a look at the xbasic manual for tbl.record_data_set() and tbl.record_data_get(). It is on about page 247 and the docummantatioon gives some examples. You can get all of the data from the current record and save it to the other table. If some field values change, you can open the record before you pull the data from the current table.

    Jerry

    Comment


      #3
      RE: Conditional Append Help?

      Thanks for the help. I'll see what I can do with it.

      Jim
      Jim Belanger

      Comment


        #4
        RE: Conditional Append Help?

        I looked up those expressions and they don't really fit my situation. They depend on the fields in both tables being the same (at least those that are in the transaction table). All I am trying to do here is a sophisticated "post" and can't be done any better than a conditional append.

        I will keep trying to work around this and I am sure I will come up with an awkward but workable solution. I am trying to make this happen automatically and without operator action. This will post a sale to the salesman's commission table whenever the item has left, therefore the "Gone" status.

        Thanks for trying to help.
        Jim Belanger

        Comment


          #5
          RE: Conditional Append Help?

          Jim

          If you need to add a single record to another table, that is quite easy with xbasic. In a sense, you need a one record append. Assuming you have a form open showing the record that is the source information,

          rec_num = recno() 'get record number of current record

          tbl1 = table.open("sourcetable") 'open a new instance of the same table
          tbl1.fetch_goto(rec_num) ' find the current record in the new instance of the table

          tbl2 = table.open("destinationtable")
          tbl2.enter_begin()
          tbl2.destination_field1 = tbl1.source_field1
          tbl2.destination_field2 = tbl1.source_field2
          tbl2.destination_field3 = tbl1.source_field3
          ' and so on until you have filled all of the fields in the destination with values from the current record

          tbl2.enter_end(.T.)
          tbl1.close()
          tbl2.close()

          Jerry

          Comment


            #6
            RE: Conditional Append Help?

            Jim:

            If you test the transaction table for a particular field value you should be able to restrict the append.

            Establish a logical field at the end of the transaction dbf (Is_append). Set it to .t. after the record is appended. When you add a new record to the table the field will not be .t. and only the new record should append.

            I hope this helps.

            bob adler

            Comment


              #7
              RE: Conditional Append Help?


              Establish a logical field at the end of the transaction dbf (Is_append). Set it to .t. after the record is appended. When you add a new record to the table the field will not be .t. and only the new record should append.

              OK, I understand that. But, that process will still check ALL records in the transaction table and append only the one. I had done that already, kind of, by instructing the append operation to ignore duplicates (defined by invoice number) and that works fine. I just thought I could simply append the one record I was making a change in without scanning the entire table.

              I thank you guys for your help and will explore all suggestions.

              Jim
              Jim Belanger

              Comment


                #8
                RE: Conditional Append Help?

                So, my situation is this: I have a table called "repairs" and I want to append a record to a table called "nucommsales". I want to add a new record in "nucommsales" from "repairs" if and only if the field "status" in repairs = "gone", and only if a field "dancomm" = .t., as follows. I would need an "if then" statement but the code isn't working anyway.

                tbl1=repairs tbl2=nucommsales
                if status="gone"
                if dancomm=.t.
                then
                invoice invoice
                datein date
                Customer_name Customer
                Cust_ID Cust_ID
                commsale totsale
                active=.t. I want to set the field called "active" to true

                rec_num = recno() 'get record number of current record
                tbl1 = table.open("repairs") 'open a new instance of the same table
                tbl1.fetch_goto(rec_num) ' find the current record in the new instance of the table
                tbl2 = table.open("nucommsales")
                tbl2.enter_begin()
                tbl2.invoice = tbl1.invoice
                tbl2.date = tbl1.datein
                tbl2.customer = tbl1.customer
                tbl2.cust_id = tbl1.cust_id
                tbl2.totsale = tbl1.commsale
                tbl2.active=.t.
                tbl2.enter_end(.T.)
                tbl1.close()
                tbl2.close()

                1. When I run that code, one line at a time in the interactive window; I get this error message when the invoice line comes up and again when the customer line comes up: If I highlite the code and run it, it stops at the first error.

                rec_num = recno() 'get record number of current record

                tbl1 = table.open("repairs") 'open a new instance of the same table

                tbl1.fetch_goto(rec_num) ' find the current record in the new instance of the table

                tbl2 = table.open("nucommsales")

                tbl2.enter_begin()

                tbl2.invoice = tbl1.invoice
                ERROR: tbl2.invoice subproperty cannot be assigned to

                tbl2.date = tbl1.datein

                tbl2.customer = tbl1.customer
                ERROR: tbl1.customer subelement not found.

                tbl2.cust_id = tbl1.cust_id

                tbl2.totsale = tbl1.commsale

                tbl2.active=.t.

                tbl2.enter_end(.T.)

                tbl1.close()

                tbl2.close()
                Jim Belanger

                Comment

                Working...
                X