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 with callback please, trying to ensure all buyers have email address before processing...

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

    Help with callback please, trying to ensure all buyers have email address before processing...

    My back-end is a MS SQL 2008 database. I am trying to make sure that we have an email address for every record before doing some work. We have multiple people that we need to check for. The function below is not behaving as expected so there must be some faulty logic in it. It's returning the alert that the user needs to enter an email address whether that is the case or not. SQL is returning a row every time because it will give me the count as 0 if there are no records that meet the criteria. Is there any way to access the count in the function so that I can simply refer to that value and base my conditions on it versus using the NextRow function?

    Code:
    if e.dataSubmitted.SelectionID = "" then
    	
    	GenerateDocument = "alert('You must select a Deal first');"
    	
    	else
    	
    		dim conn as SQL::Connection
    		dim args as SQL::Arguments
    		dim sql as c = ""
    		dim SelectionID as N = convert_type(e.dataSubmitted.SelectionID,"N")	
    		
    			sql ="SELECT COUNT(*) FROM BuyersCoBuyersUnionJC where selectionid = :sID and Email = ''"
    			args.set("sID",SelectionID)
    			FlagResult = conn.open("::name::MYDB")
    			if FlagResult = .T.
    			conn.PortableSQLEnabled = .t. 
    			flagResult = conn.Execute(sql,args)
    			dim records_found as N=0
    			while conn.ResultSet.NextRow()
    			       'do some processing
    			        records_found=records_found+1
    			        GenerateDocument = "alert('Every Buyer must have a valid email address before docusign documents can be generated');"
    			end while
    			
    			
    			if records_found==0 then
    			   		GenerateDocument = "alert('You can now generate a document for Docusign');" 
    			end if
    					
    				else 
    					
    			conn.close()
    		end if
    		end if

    #2
    Re: Help with callback please, trying to ensure all buyers have email address before processing...

    from the documentation topic "Learning Xbasic - Using Xbasic with SQL Tables"

    Code:
    flag = cn.open("::Name::AlphasportsXbasic")
    dim sqlCommand as c
    sqlCommand = "Select count(*) from customer where bill_state_region = :whatstate"
    dim args as sql::arguments
    args.add("whatstate","CA")
    flag = cn.execute(sqlCommand,args)
    dim rs as sql::ResultSet
    rs = cn.ResultSet
    count = rs.data(1)
    ?count
    = 6
    Frank

    Tell me and I'll forget; show me and I may remember; involve me and I'll understand

    Comment


      #3
      Re: Help with callback please, trying to ensure all buyers have email address before processing...

      you want to know if there are records with the selectionID and email is blank
      if so you can actually check that instead of sending a count query for example your code can be rewritten as follows

      Code:
      if e.dataSubmitted.SelectionID = "" then
      	
      	GenerateDocument = "alert('You must select a Deal first');"
      	
      	else
      	
      		dim conn as SQL::Connection
      		dim args as SQL::Arguments
      		dim sql as c = ""
      		dim SelectionID as N = convert_type(e.dataSubmitted.SelectionID,"N")	
      		
      			sql ="SELECT * FROM BuyersCoBuyersUnionJC where selectionid = :sID and Email = ''"
      			args.set("sID",SelectionID)
      			FlagResult = conn.open("::name::MYDB")
      			if FlagResult = .T.
      			            conn.PortableSQLEnabled = .t. 
      			             flagResult = conn.Execute(sql,args)
                                           if flagResult then
                                          dim rs as sql::resultSet
                                           rs = cn.resultSet
                                           flag = rs.nextRow()
                                                if flag then
                                                 GenerateDocument = "alert('Every Buyer must have a valid email address before docusign documents can be generated');"
                                                else		
      			   		    GenerateDocument = "alert('You can now generate a document for Docusign');" 
      			                  end if
      				end if
                                       conn.close()
       	
      				else 
      		                     GenerateDocument = "alert('Unable to establish connection to database');
      		end if
      end if
      when I checked it looks like I matched all ifs and end ifs, please make sure.

      edit: I re-read your post and if you do not want the above but only how many records the result count then
      add this line to the code you have and the total count will be available here is the modified code.
      Code:
      if e.dataSubmitted.SelectionID = "" then
      	
      	GenerateDocument = "alert('You must select a Deal first');"
      	
      	else
      	
      		dim conn as SQL::Connection
      		dim args as SQL::Arguments
      		dim sql as c = ""
      		dim SelectionID as N = convert_type(e.dataSubmitted.SelectionID,"N")	
      		
      			sql ="SELECT COUNT(*) FROM BuyersCoBuyersUnionJC where selectionid = :sID and Email = ''"
      			args.set("sID",SelectionID)
      			FlagResult = conn.open("::name::MYDB")
      			if FlagResult = .T.
      			conn.PortableSQLEnabled = .t. 
      			flagResult = conn.Execute(sql,args)
                      dim count as n
                      count = rs.data(1)
                       if count > 1 then
      			        GenerateDocument = "alert('Every Buyer must have a valid email address before docusign documents can be generated');"
                          else		
      			    GenerateDocument = "alert('You can now generate a document for Docusign');" 
      	           end if
      					
      				else 
      					
      			conn.close()
      		end if
      		end if
      then the count will have the total record count returned b the query.
      Last edited by GGandhi; 05-11-2015, 05:55 PM.
      thanks for reading

      gandhi

      version 11 3381 - 4096
      mysql backend
      http://www.alphawebprogramming.blogspot.com
      [email protected]
      Skype:[email protected]
      1 914 924 5171

      Comment


        #4
        Re: Help with callback please, trying to ensure all buyers have email address before processing...

        Ghandi,

        Thanks for the response. That is originally how I had it structured. I went with the count method after receiving unexpected results.

        Comment


          #5
          Re: Help with callback please, trying to ensure all buyers have email address before processing...

          The are all reporting that the documents are ready to be generated but they aren't.

          Comment


            #6
            Re: Help with callback please, trying to ensure all buyers have email address before processing...

            okay, did you try with rs.data(1) to get the count?
            thanks for reading

            gandhi

            version 11 3381 - 4096
            mysql backend
            http://www.alphawebprogramming.blogspot.com
            [email protected]
            Skype:[email protected]
            1 914 924 5171

            Comment


              #7
              Re: Help with callback please, trying to ensure all buyers have email address before processing...

              Ghandi,

              The count method worked. Thank you very much for your help. For some reason, there are some records where the email was either null or blank so I had to filter on "IN (NULL, '')" and change the count so that it was > 0

              Works great, thanks again.

              Comment


                #8
                Re: Help with callback please, trying to ensure all buyers have email address before processing...

                Actually there are still issues but the issue is an SQL problem, not xbasic. The filter I am using is not catching all of them. I can't do a where selectionID = :sID and Email IS NULL OR Email = '' which is what I need. It returns a ton of non-relevant rows.

                Comment


                  #9
                  Re: Help with callback please, trying to ensure all buyers have email address before processing...

                  Proper SQL syntax if using AND as well as OR is...

                  where selectionID = :sID and (Email IS NULL OR Email = '')

                  Comment


                    #10
                    Re: Help with callback please, trying to ensure all buyers have email address before processing...

                    glad to hear it worked.
                    very good.
                    thanks for reading

                    gandhi

                    version 11 3381 - 4096
                    mysql backend
                    http://www.alphawebprogramming.blogspot.com
                    [email protected]
                    Skype:[email protected]
                    1 914 924 5171

                    Comment

                    Working...
                    X