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

Help for HIre?

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

    Help for HIre?

    Anyone in or near southern NJ available for help for hire? Going round and round with problems, need help. Would have walked away from Alpha 5 if I wasn't in so deep.

    #2
    RE: Help for HIre?

    Hi Geoff,

    What type of help do you need? Many of your concerns can be assisted with here. Also, somebody does not need to be local to your area if you allow remote access to your pc we can assist from a distance :)

    Cheryl
    Cheryl
    #1 Designs By Pagecrazy
    http://pagecrazy.com/

    Comment


      #3
      RE: Help for HIre?

      Hello Cheryl,
      While design of my application was fast and straightforward, I am having difficulties with the intricacies. Just displaying records on forms has me confused as to why there are record pointers from forms vs. record pointers at the table level, and why are they not in synch? Shouldn't a form with the fields on it simply be a window to the buffer containing the record?
      The syntax of xbasic is also confusing and very primitive. The DOS based language I used many years ago was literally as simple as 'find the record '12345' using key 'Ordernum'.
      I have received alot of help from this forum, but I do not wish to burden it with too many requests.
      My latest challenge is to create a duplicate record. Seems very simple but it is a challenge. I have order number '12345'. It is in file 'order_header'. It has several child files, including 'order_items' and 'shop_notes'. Let's say 'order_items' has 5 records, and 'shop_notes' has 5 records. I would like to create a duplicate of the 'order_header' record with the only change being the order number: new order number = 12345A. Along with that change I would like to duplicate each of the 5 records in 'order_items' and 'shop_notes' again changing the order_number 12345 to 12345A. (Order_number is the linking field in the parent and child files). The result being order_numbers 12345 and 12345A, with children, the only difference is the order_number itself.

      Is there a way to accomplish this using action scripts?

      I have tried using append in action script using the 'order_header' table as both master and transaction, changing only the 'order_number' (= m_ordernumber, an entered global variable). Appears to work sometimes, while at other times duplicating many times.
      If the child has no records I get the error message:
      Script template line 71
      a_tbl.append()
      invalid operation specified
      (I guess this is not a valid option to use because the record pointer moves on append?)

      Again I get confused with form record pointers and table record pointers. When using find and fetch commands which pointer is utilized? I just can't seem to get the handle on manipulating through the tables and displaying records.

      Comment


        #4
        RE: Help for HIre?

        I would be willing to give access to my pc, but surely would not expect help via this route for free . One problem I know I have is needing to understand the logic, and not just taking what is given me.

        Comment


          #5
          RE: Help for HIre?

          Hi Geoff

          Is there any special reason why you need these records to be copied within the same table? You can simply use the duplicate table feature copying everything and then use a search and replace or some other update operation within the new table to add the letter A at the end of the ID number.

          If you need to keep them within the same table you could still follow the above steps and when you have completed the update you could always append the records from your new table back to the old table.

          Others here may have an easier way to help you accomplish your task :)

          Good luck
          Cheryl

          I guess another good question would be ... what exactly is your end goal here? Why do you need to copy these records and add the A to the end of the item number? Would you be doing this to all records or only specific records?
          Cheryl
          #1 Designs By Pagecrazy
          http://pagecrazy.com/

          Comment


            #6
            RE: Help for HIre?

            Client currently creates duplicate records, then modifies very slightly (sometimes to recreate as backorder, sometimes new order-same merchandise, sometimes as portion of a major order). The current systems allows this and customer ir adament abount this feature. I did consider appending to an external table, then back, but thought there might be a better option. Actually this should work quite easily.
            Sometimes I just need to walk away, clear my head, and try again. It gets very frustrating running into a problem, downsizing it to make it presentable (more time and effort), then applying any recommendations.
            My major problem is working with tables, and not getting the results expected in a form displaying the fields from the tables. I have tried using the interactive window, with a form loaded, to learn xbasic code for table manipulation but it does not work as expected (even when I copy code from a push button which works, and execute it line by line in the interactive window).
            In the xbasic reference manual (page 166) it states a form has it's own record pointer. When and how is this pointer utilized and why? Is this pointer just ignored and resynch() always used?

            Comment


              #7
              RE: Help for HIre?

              If you want to duplicate a record go to the default menu bar and select "records/Duplicate Record". That is also available in Action Scripting. You could duplicate the child recs the same way, but you will have to code it if you want to automate the process.
              Peter
              AlphaBase Solutions, LLC

              [email protected]
              https://www.alphabasesolutions.com


              Comment


                #8
                RE: Help for HIre?

                What program is the client currently using? If by any chance it is Alpha Four you could look at the code behind the feature he is using there.

                I did a search in the online help files for: copy previous record ... maybe this will solve your problem

                Copy Previous Record

                Overview

                The Copy Previous Record action copies information from the last record viewed into a new record. The user must be in entry mode for the action to complete.

                Note: You must be in Enter mode before copy data. For this, you may use the Enter New Record action.

                Procedure

                Make a selection in the Copy the previous record in which Form/Browse window? field. This field will be grayed out unless this action is based on a Form or Browse. The choices are:

                "Current Form or Browse Window".

                "Another Form or Browse Window".

                If you selected "Another Form or Browse Window", in the Window Name field select either:

                "Forms"

                "Browses"

                Select one of the listed forms or browses.

                If you selected a form in step 3, optionally select whether you are working with the form (Parent Level) or with an Embedded Layout.

                If you selected "Embedded Layout" in step 4, click the button to select an embedded form or browse.

                Make a selection from the Copy which "previous" record? list. The options are:

                "Copy the previously viewed record"

                "Copy the last physical record"

                "Copy the last record in current index/query order"

                Click Next ".

                Optionally modify the comment that describes the action.

                Click Finish.

                *****************

                "OBJECT".COPY_PREV_RECORD()

                Syntax

                "OBJECT".COPY_PREV_RECORD( Flag as N )

                Argument
                Description

                Flag
                Optional. Default = 1. Flag determines which record is the "previous" record.



                1 = Previous record is the record that was current immediately prior to going into Enter mode.
                2 = Last physical record in the table.
                3 = Logical record in the table based on the current index/query.


                Description

                The "OBJECT".COPY_PREV_RECORD() method applies to:

                Browses (for "OBJECT" use either the "BROWSE" pointer or the name of the browse)

                Forms (for "OBJECT" use either the "FORM" pointer or the name of the form)

                The "OBJECT".COPY_PREV_RECORD() method copies values from the previous record into the current record. The layout must be in Enter mode.

                Example

                This button on a form copies values from the previous record into the current record that is being entered:

                topparent.copy_prev_record()

                **************

                Pointer Addresses

                A pointer is a variable that references an object. A pointer variable has a type of "Pointer". To define a variable that will be an object pointer, you would use the following Xbasic command:

                dim variable_name as P


                There are two ways to get a pointer to an object. You can use the object�s THIS property, or you can use the OBJ() function. For example, assume that you have a form called F1 which has a button called B1. The address of the B1 button is:

                :F1:B1


                To create a pointer to this object, you could use either of the following commands:

                pointer = :F1:B1.this

                pointer = obj(":F1:B1")


                NOTE: Do not confuse the "This" property and the "This" alias. For example, the following is legal: p = this.this. If this code were attached to the OnPush event of a button, it would create an object pointer that referenced the button when the button was pushed.

                Example

                The following function takes a pointer to an object as a parameter. Define a function that sets several properties.

                Function SetupObj as C (Object as P)

                object.font.bold = .T.

                object.font.italic = .T.

                End function



                'Call the function with a bunch of objects

                SetupObj(:Customer:First_name.this)

                SetupObj(:Customer:Last_name.this)

                SetupObj(:Customer:Address.this)

                ****************

                Do a search under index for: copying selected records and you will get the below, with screen shots :)

                Copying Selected Records from another Table

                You may copy selected records from another table to the current table using the Copy Operations or when viewing a table through a form or browse.

                To copy records:

                Select Records " Copy Records... . [Picture]

                Select whether you are copying records to a New table or Existing table. [Picture]

                If you selected Existing table in step 2:

                Select a table from the Table Name list.

                Click OK to proceed with the append or Cancel to quit without appending.



                If you selected New table in step 2:

                Click Browse... to navigate to and select the table whose records you wish to copy.

                Select the fields to copy. If you were viewing a browse, the options are:

                Selected columns

                All field on Browse

                All fields in Table/Set

                Selected fields

                If you were viewing a form, the options are:

                All fields on form

                All fields in Table/Set

                Selected fields

                If you clicked Selected fields, click the Select fields... button to display the Select Fields dialog box.

                Optionally, pick a field from the Available fields list and click to add it to the Selected fields list.

                Optionally, pick multiple fields from the Available fields list and click to add them to the Selected fields list.

                Optionally, pick a field from the Selected fields list and click to remove it from the Selected fields list.

                Optionally, pick multiple fields from the Selected fields list and click to remove them to the Selected fields list.

                Optionally, click to view the Xbasic code generated by this procedure.

                Click OK to continue or Cancel to discard your inputs.

                Optionally, uncheck Copy Dictionary?

                Optionally, check Delete Target Table's Dictionary.

                Click OK to proceed with the append or Cancel to quit without appending.

                Cheryl
                #1 Designs By Pagecrazy
                http://pagecrazy.com/

                Comment


                  #9
                  RE: Help for HIre?

                  Hi Geoff,
                  I haven't managed the time to learn XBasic, but have gotten along speldidly with Action Scripting - especially within forms.

                  Some of your frustration about forms when there is a Parent and Child, is that the indexing may not be set for the relationship.

                  Two more points: One, ONE IS NEVER A PEST ON THIS BOARD! Please don't feel like you are burdoning anyone on this board. It is your responsibility to find a fix, and it is the other users of this board to help you find it if they chose to do so. Look how many i've posted over the years...if they did a report on it I'm sure I'd be at the top of the "most frequent questioner"! There are los of people on this board who very much enjoy helping others with Alpha. I'm one of them (but XBasic knowledge and lack of time prevent me from being one of the major helpes).

                  The other point is - you don't necessarily need to give someone access to your pc for them to help you. I am setting myself up in business and would rather take your application, find out what you need fixed, fix it, zip it up and send it back. In fact, I'm open for business on a part time basis. Feel free to email my business email through "contact us" on my website www.towandadesigns.net - or to [email protected]. BTW - I'm in California.

                  Good luck!
                  Wanda

                  Comment


                    #10
                    RE: Help for HIre?

                    Hello Geoff,

                    ""Just displaying records on forms has me confused as to why there are record pointers from forms vs. record pointers at the table level, and why are they not in synch? Shouldn't a form with the fields on it simply be a window to the buffer containing the record? ""

                    The record pointer (singular) is in synch, and your statement is basically correct. However, xbasic gives us the ability to move the record pointer of the underlying table if we so desire. If you move the record pointer via xbasic, the form (UI) does not know we have done this, and is still displaying data from the buffer. So at the end of manipulating things via xbasic you either resynch the form, via a parentform.resynch() command, so put the record pointer back where you found it via xbasic.

                    ""The syntax of xbasic is also confusing and very primitive.""

                    I do not think so. Certainly it is a syntax that has to be learned and I will admit that when I first began to use it, it appeared rather verbose. But I honestly think it is probably one of the easiest languages to learn, sharing, I am told, the look and feel of VB. Xbasic is a mature, stable, and very powerful language that has become even more powerful and flexible with version 6 of Alpha Five.

                    As for your origional need, a routine to create a new parent/child record set from an existing, is a fairly straight forward process, but I need to know whether you have any autoincrement fields in any of the tables involved, or other unique fields where copying existing data would violate your rules.

                    Good luck,
                    Jim

                    Comment

                    Working...
                    X