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

Limiting a table to one record.

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

    Limiting a table to one record.

    I have a table and a associated form for storing the users company information. The application needs to only allow one company to be setup and not allow anymore records to be created.

    I have tried this and it does not work that good.

    Code:
    t=table.current()
    if t.records_get() > 1 then
    ui_msg_box("Limit","You can only setup one company.")
    cancel()
    end if
    No mater which event I tie it to or even if I tie it to every possible event it still opens a blank form if you tab past all of the fields on the form, which also happens to be all of the fields in the table. Maybe there is a way to make it so when you reach the end of the tab order it just starts back at tab stop one again but I have not found it in any searching I have done.

    Also, while I am on the subject. How do you get the record count back to the starting point? I do not know if this would show up when I distribute the app with the runtime but it will be annoying as heck if the end user has to see record numbers way up because they where there from all my testing.
    recordnumber.png
    Attached Files

    #2
    Re: Limiting a table to one record.

    Hi,

    there should be more than one solution, that's how I probaly try to get. Have a look to field rules, events, record event, CanEnterRecord

    Code:
    cancel()
    
    msgbox("No more records, used field rules, record events CanEnterRecord")
    My company changed the location several times, so my setup database include more than one record. In this way I could recall old invoices with old sender information in one formular / report.

    Cornelius

    Comment


      #3
      Re: Limiting a table to one record.

      Hi Preston,

      I have a Toolbar on my form with this code
      Code:
      topparent.restrict_navigation=.f.topparent.restrict_navigation=.f..AND..NOT.('E'$topparent.command('?Record_cancel'))
      This even stops a new record from being started with the Page Down key.

      The other way to do this is to make sure you dont have a Menu or Toolbar and the form is opened Modal. Make sure you have a close button on it!!!
      Regards
      Keith Hubert
      Alpha Guild Member
      London.
      KHDB Management Systems
      Skype = keith.hubert


      For your day-to-day Needs, you Need an Alpha Database!

      Comment


        #4
        Re: Limiting a table to one record.

        Originally posted by Keith Hubert View Post
        Hi Preston,

        I have a Toolbar on my form with this code
        Code:
        topparent.restrict_navigation=.f.topparent.restrict_navigation=.f..AND..NOT.('E'$topparent.command('?Record_cancel'))
        This even stops a new record from being started with the Page Down key.

        The other way to do this is to make sure you dont have a Menu or Toolbar and the form is opened Modal. Make sure you have a close button on it!!!
        Did not work.

        Created a custom toolbar and added that code into it. I guess that is not how I was supposed to do it.

        Comment


          #5
          Re: Limiting a table to one record.

          Sorry, I forgot to mention, this is to go on the navigation buttons on the Toolbar.
          Attached Files
          Regards
          Keith Hubert
          Alpha Guild Member
          London.
          KHDB Management Systems
          Skype = keith.hubert


          For your day-to-day Needs, you Need an Alpha Database!

          Comment


            #6
            Re: Limiting a table to one record.

            First: Your script says
            if t.records_get() > 1 then

            Should be:
            if t.records_get() = 1

            Then it says:
            cancel()

            What are you cancelling?
            Should say:
            end

            Not to mention, you are using table.current() meaning you already opened the table. Do you want to open the table in the first place? if it has one record?

            I am not understanding the logic though. Are you planning to have one table for each company?

            Comment


              #7
              Re: Limiting a table to one record.

              Originally posted by preston View Post

              Also, while I am on the subject. How do you get the record count back to the starting point?
              Pack the table.

              Also, I use Cornelius's solution when I need to restrict entry.
              Al Buchholz
              Bookwood Systems, LTD
              Weekly QReportBuilder Webinars Thursday 1 pm CST

              Occam's Razor - KISS
              Normalize till it hurts - De-normalize till it works.
              Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
              When we triage a problem it is much easier to read sample systems than to read a mind.
              "Make it as simple as possible, but not simpler."
              Albert Einstein

              http://www.iadn.com/images/media/iadn_member.png

              Comment


                #8
                Re: Limiting a table to one record.

                Originally posted by G Gabriel View Post
                First: Your script says
                if t.records_get() > 1 then

                Should be:
                if t.records_get() = 1

                Then it says:
                cancel()

                What are you cancelling?
                Should say:
                end

                Not to mention, you are using table.current() meaning you already opened the table. Do you want to open the table in the first place? if it has one record?

                I am not understanding the logic though. Are you planning to have one table for each company?
                Well I got that code example from another thread that I cannot find again right now but it had a similar code posted by an Alpha employee, which did not work, and the one similar to the one I posted above and I understand that came from the runtime docs. Neither of those worked.

                Keith's code example still does not work even placing it in the navigation buttons of a custom toolbar.

                The table is to contain the company information of the company using the app. So yes they need to be able to access the table to put their company info in when they first setup the app for their company and they may need to access it for editing if they ever move locations, change phone numbers or anything like that. This company information will be used on report headers such as quotes and invoices. I do not want to hard code company info into the app for every shop that purchases the app so I need to find a fool proof way to limiting them to the one company record. All I know at this point is while trying all the suggested solutions it will still open a new record if you tab past the last tab stop on the form.

                Comment


                  #9
                  Re: Limiting a table to one record.

                  Maybe my solution is not so good, but I use the restrict on the form so nothing can be added, eliminate all toolbars and menus - create my own as needed, make sure there is one empty record that the assigned user can modify. That should then be the only record ever entered.
                  As an aside, I delete anything in the table other than rec-no one each time the form is closed.
                  Dave Mason
                  [email protected]
                  Skype is dave.mason46

                  Comment


                    #10
                    Re: Limiting a table to one record.

                    Originally posted by Corelius View Post
                    Hi,

                    there should be more than one solution, that's how I probaly try to get. Have a look to field rules, events, record event, CanEnterRecord

                    Code:
                    cancel()
                    
                    msgbox("No more records, used field rules, record events CanEnterRecord")
                    My company changed the location several times, so my setup database include more than one record. In this way I could recall old invoices with old sender information in one formular / report.

                    Cornelius
                    Ok, I take back that nothing has worked. This method from Cornelius work perfectly. I have the first record created with dummy info that the end user will be able to edit and replace with their own company info. I then placed the code Cornelius posted and it allows you to edit the first record but will not let you even get a new record screen. Love it... Thanks.

                    Also the "Pack" table worked for my other part of the question. Again, thanks.

                    Learn something new everyday.

                    Comment


                      #11
                      Re: Limiting a table to one record.

                      OK..
                      In the field rules, go to the event tab, choose records event, choose "CanEnterRecord", put this script:
                      Code:
                      t=table.current()
                      x=t.records_get()
                      if x>=1
                      cancel()
                      end i
                      Save.

                      Comment


                        #12
                        Re: Limiting a table to one record.

                        Dave Mason's reply is the simpliest one. Restrict everything except the "change" as the one record may need to be changed or edited. remove all toolbars/menus. I have a note at the bottom of my "Location" form stating this form cannot be added to or deleted, only edited.

                        Jerry

                        Comment

                        Working...
                        X