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

Function and Query

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

  • Function and Query

    Thanks in advance for the help.

    We all know that a query is my worst subject. I get query cannot be used in this manner. I also get an error on var->myfname
    Code:
    function scheckrtf as c(mytable as c, myrecnme as c, myfname as c)
    dim shared mytext as c
    dim thetext as c
    dim t as P
    dim ti as P
    t = table.open(var->mytable,FILE_RW_SHARED)
    query.filter = "file_num = var->myrecnme"
    t.query_create()
    thetext = RTF_FIELD_TO_TEXT(var->myfname)
    ti = a5_spellcheckstring(var->thetext,"text","rtf",.t.)
    t.change_begin()
     t.field_blank(var->myfname)
    t.change_end()
    var->mytext = alltrim(ti.text)
    if ti.CorrectionsMade = .f. then
    end
    end if
    INSERT_TEXT_IN_RTF_MEMO(t, var->myfname,var->mytext,1,"arial,9","black")
    t.close()
    end function
    errornew.png
    Dave Mason
    [email protected]
    Skype is dave.mason46

  • #2
    Re: Function and Query

    First glance

    mytable as c, myrecnme as c, myfname as c

    these are parameters, not variables
    t = table.open(mytable,FILE_RW_SHARED)
    query.filter = "file_num = "+quote(myrecnme)

    etc.
    There can be only one.

    Comment


    • #3
      Re: Function and Query

      Dave,

      I think you can strip out "var->" throughout the script. Can't see why they're necessary.

      Also, since the "query" object is global a better practice is to set or clear "query.options" each time query_create() method is called.

      Comment


      • #4
        Re: Function and Query

        Thanks Stan and Tom.

        I have been doing this for a month or so, but decided to turn it into a function because I still have a number of places for it to go. More efficiency??
        I did 3 the old way, but there are 35 needs.
        My biggest error was myfname, I was sending the contents rather than the name of the field.

        I had stayed up late last night and got it working, now to clean it up and do as Tom suggested.

        Stan, I had figured that out about 3:00 am. Thanks!!

        Once I get it complete, I will post the notated results back to here so others may benefit.
        Dave Mason
        [email protected]
        Skype is dave.mason46

        Comment


        • #5
          Re: Function and Query

          Dave

          Is file_num numeric or character? The num implies numeric to me..

          Here are some techniques to put variables into a string - which your filter is..
          (I've placed these links to functions in the order of the version of Alpha that they appeared in...)

          REPLACE_PARAMETERS v5

          REPLACE_VARIABLES_IN_STRING v6

          EVALUATE_STRING v8

          CompileStringTemplate v9
          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


          • #6
            Re: Function and Query

            Al, it is character and is the same type and name across all the tables file_num, c, 15. Values are different of course all the tables have that as an index as well.
            the table name and rtfmemo field names do change.

            The help file gave me a query filter that did not work. I looked up another one I did a year ago and modified to match, then Stan gave me the same one.
            Dave Mason
            [email protected]
            Skype is dave.mason46

            Comment


            • #7
              Re: Function and Query

              query.filter = "file_num = var->myrecnme"
              Think of the filter you would use in a report.

              file_num = "Dave"
              quote it
              "file_num = "var->myrecnme""
              replace the static Dave with the variable
              modify so you don't have quotes within quotes
              "file_num = \""+var->myrecnme+"\""
              or
              "file_num = "+quote(var->myrecnme)
              There can be only one.

              Comment


              • #8
                Re: Function and Query

                Thanks, Stan.
                Dave Mason
                [email protected]
                Skype is dave.mason46

                Comment


                • #9
                  Re: Function and Query

                  This is working well for me

                  Code:
                   
                  
                  ' used for records with a index select character
                  
                  function scheckrtf as C (mytable as c, myrecnme as c, myfname as c)
                  dim qry as P
                  dim shared mytext as c
                  dim thetext as c
                  dim t as P
                  dim ti as P
                  
                  t = table.open(var->mytable,FILE_RW_SHARED)
                  query.filter = "file_num=" +quote(trim(var->myrecnme))
                  query.order="" ' Get into variables the permissions for the users.  Most stuff in here will be based on this.  They will only be able to go and do if the permissions they have allow ir
                  query.options="T" ' like to see the control pane, they will need ecp set to .t., otherwise they can push the button all day and nothing happens.
                  qry = t.query_create()
                  thetext = RTF_FIELD_TO_TEXT(var->myfname)
                  ti = a5_spellcheckstring(var->thetext,"text","rtf",.t.)
                  
                  if ti.CorrectionsMade = .t. then
                  t.change_begin()
                  	t.field_blank(var->myfname)
                  t.change_end()
                  var->mytext = alltrim(ti.text)
                  INSERT_TEXT_IN_RTF_MEMO(t, var->myfname,var->mytext,1,"arial,9","black")
                  end if
                  t.query_detach_all()
                  t.close()
                  end function
                  Dave Mason
                  [email protected]
                  Skype is dave.mason46

                  Comment


                  • #10
                    Re: Function and Query

                    Must be a lot of flexibility built into the Alpha handling of udf's.

                    No reason to reference function parameters with the var-> prefix, though it doesn't seem to throw an error.

                    Code:
                    mystring = "one two three"
                    
                    
                    tst =  up_first_word(mystring)
                    function up_first_word as C (mystring as C)
                    up_first_word = f_upper(mystring)
                    end function
                    
                    ? tst
                    = "One two three"
                    Then there's the possibility

                    Code:
                    dim global mystring as C
                    mystring = "one two three"
                    
                    tst =  up_first_word("down by the river")
                    function up_first_word as C (mystring as C)
                    up_first_word = f_upper(mystring)
                    end function
                    
                    ? tst
                    = "Down by the river"
                    Code:
                    dim global mystring as C
                    mystring = "one two three"
                    
                    tst =  up_first_word("down by the river")
                    function up_first_word as C (mystring as C)
                    up_first_word = f_upper(var->mystring)
                    end function
                    
                    ? tst
                    = "Down by the river"
                    Code:
                    dim global mystring as C [COLOR="#0000FF"]'try to force variable use in function[/COLOR]
                    mystring = "one two three"
                    
                    tst =  up_first_word("down by the river")
                    function up_first_word as C (mystring as C)
                    dim global mystring as C [COLOR="#0000FF"]'try to force variable use in function[/COLOR]
                    up_first_word = f_upper(var->mystring)
                    end function
                    
                    ? tst
                    = "Down by the river"
                    Last edited by Stan Mathews; 03-02-2015, 03:32 PM.
                    There can be only one.

                    Comment


                    • #11
                      Re: Function and Query

                      Stan, I have been in the habit of the var-> for so long, it is not funny. It was always due to errors that seemed to get corrected by having it.

                      You are right about not needing them.
                      Dave Mason
                      [email protected]
                      Skype is dave.mason46

                      Comment

                      Working...
                      X