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

Getting existing email settings using xbasic

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

    Getting existing email settings using xbasic

    The title says it all. Is it possible to get the users existing email settings?

    #2
    Re: Getting existing email settings using xbasic

    Email_profile_load()

    if there is a chance that more than one profile is set up

    A5_EMAIL_PROFILES_ENUM()
    There can be only one.

    Comment


      #3
      Re: Getting existing email settings using xbasic

      Thanks Stan. I am familiar with these. In continuing my quest, I discovered a disturbing situation.

      When building a new EXE, I copy my existing directory, modify the new copy to remove my data and go into the email setup to remove my profiles. I also change the Default profile to clear my data and leave it dis-functional so that, during the user install, they are forced to enter the information that is appropriate for their email setup. Now, the problem...

      After 'clearing' my email profiles in the copy, the profiles in the original also clear! It is apparent that A5 writes these changes somewhere that is not unique to the application that is running. I need to find a way to prevent this, or at least restore the current data.

      Another twist on this is that the old profiles show up on a machine that had a prior version installed. This info, wherever it is, is not deleted when the old application is removed using the Windows program remove function. This poses a real problem.

      Any thoughts?

      Gene

      Comment


        #4
        Re: Getting existing email settings using xbasic

        It is apparent that A5 writes these changes somewhere that is not unique to the application that is running.
        Correct, they are unique to the Alpha version install.

        or at least restore the current data
        email_profile_load() puts the settings in a pointer variable, FILE.FROM_PROPERTY() saves the pointer, FILE.TO_PROPERTY() gets it back, EMAIL_PROFILE_SAVE() restores it.
        There can be only one.

        Comment


          #5
          Re: Getting existing email settings using xbasic

          You may look in your registry

          hkey_current_User
          Software
          alphasoftware
          alpha anywhere 12.0
          init
          email
          also look at:
          Profile1 or similar

          and path = [PathAlias.ADB_Path]\emails which you will see

          I have no idea if this is all of it, but maybe a place to start
          Dave Mason
          [email protected]
          Skype is dave.mason46

          Comment


            #6
            Re: Getting existing email settings using xbasic

            Thanks guys!

            Working on it. I'll see if I can make it work and find a succinct way to share my results.

            Gene

            Comment


              #7
              Re: Getting existing email settings using xbasic

              Here is the code I ending up with. I hope it helps others.

              'This is run AFTER the installation on the users' machine as a final installation step.
              'At that point, all my own email profiles exist on the users' machine. This is not
              'appropriate so with this routine, I remove all these profiles except Default and
              'make Default dis-functional to force the user to set it up for their own needs.

              'Copy existing Blank profile to Profiles.txt

              Dim default as P
              Dim filename as C
              Dim found as L

              found = .f.
              filename = a5.get_path()+"\"+"profiles.txt"

              'Remove existing profiles.txt and create a new one

              found = file.exists(filename)
              if found = .t.
              a5_file_remove(filename)
              end if

              email_profile_load("Blank",default)

              'Put the data into a temporary text file (profiles.txt)

              file.from_property(filename,default)

              'Put Profiles.txt into the Default Profile

              file.to_property(filename,default)
              email_Profile_save("Default",default)

              'Remove the inappropriately loaded email profiles
              'from the users machine.

              email_profile_delete("BHS_Sales")
              email_profile_delete("Blank")

              'Following this action, I open the Email Setup screen. I provide a
              'PDF file that lists the information items needed to properly
              'setup the Email and advice the user to obtain this information
              'from their ISP. I then send myself an email from their system
              'which provides me with their date and time of installation and
              'their email.
              'The code follows...
              'The places where you need to put your own information are noted in CAPS

              Dim Result as C
              Dim msg as C
              Dim male as C
              Dim name as C
              Dim dt as T
              Dim cdt as C
              Dim product as C
              Dim version as C
              Dim Tbl1 as P

              if state.value = ""
              msgbox("","Please enter the information.")
              goto donotrun
              end if

              Result = ui_msg_Box("Ready?","Do you have the information called for on page 2 of the read me first document?",UI_YES_NO)
              if Result = "7"
              Result = ui_msg_box("","Would you like to use the system without email functions?",UI_YES_NO)
              if Result <> "7"'YES
              msgbox("NOTE","You will need to let me know you downloaded this copy"+crlf()+"to enable support and updates.")
              goto carryon
              else
              msgbox("OK","Click this button again when you are ready.")
              goto donotrun
              end if
              end if

              if email0.value = ""'THIS POINTS TO THE VALUE ON THE FORM FROM WHICH IT IS CALLED
              Result = ui_msg_box("","Do you have an email address?",UI_YES_NO)
              if Result = "7"'NO
              msgbox("NOTE","There are many free email services available"+crlf()\
              +"BHS uses email for several functions so you may want to"+crlf()\
              +"consider getting an email service. You can run it without email if you choose.")

              Result = ui_msg_box("","Continue without email?",UI_YES_NO)
              if Result = "7"'NO
              msgbox("","Please click OK after obtaining an email address.")
              goto donotrun
              else
              msgbox("NOTE","You will need to let me know you downloaded this copy"+crlf()+"to enable support and updates.")
              goto carryon
              end if
              end if

              if Result <> "7"'YES
              msgbox("","Please enter your email address.")
              goto donotrun
              end if
              end if


              if email0.value <> ""
              Result = ui_msg_box("Next Step","You now need to set up the Alpha5 internal email"+crlf()\
              +"client. At this point you should have printed page two"+crlf()\
              +"of your Read Me First document and filled in the blanks."+crlf()\
              +"Are you ready to proceed?",UI_YES_NO)
              if Result = "7"'NO
              msgbox("","Please start again when you are ready.")
              goto donotrun
              end if
              if Result <> "7"'OK to go.
              rerun:
              'Allows the user to set e-mail settings for built-in Alpha Five e-mail client.
              ui_email_settings()
              Result = ui_msg_box("Good To Go?","Did you run the email test settings with good results?",UI_YES_NO)
              if Result = "7"'NO
              Result = ui_msg_box("","Would you like to go back to the email setup?",UI_YES_NO)
              if Result <> "7"'YES
              goto rerun
              else
              msgbox("NOTE","You will need to let me know you downloaded this copy"+crlf()+"to enable support and updates.")
              goto carryon
              end if
              end if

              'Save record in current form.
              topparent.commit()

              if Result <> "7"'Send me an email
              product = "YOUR PRODUCT NAME"
              Tbl1 = table.open("License",FILE_RW_SHARED)
              version = alltrim(Tbl1.revision)
              Tbl1.close()

              male = alltrim(email0.value)
              name = alltrim(First_Name.value)+" "+alltrim(Last_Name.value)
              Tbl1 = table.open("YOUR FILE NAME",FILE_RW_SHARED)
              Tbl1.change_begin()
              Tbl1.install_date = date()
              Tbl1.change_end(.t.)
              Tbl1.close()

              'Disallow editing of records in current form.
              topparent.allow_change(.f.)

              'Email the info to me

              dt = now()
              cdt = convert_type(dt,"T")

              msg = name+" ( "+male+" ) "+" has installed YOUR APP, version "+version+" at "+cdt
              if is_object(topparent.this) then
              form_name = topparent.name()+".this"
              else
              form_name = ""
              end if
              Dim message_type as c
              message_type = ""
              param_to = "YOUR EMAIL ADDRESS"
              param_subject = "YOUR SUBJECT TEXT"+version
              param_cc = ""
              param_bcc = ""
              message_text = msg
              param_message = msg
              attachment_list = ""
              param_attachments = alltrim(attachment_list)
              'Send the e-mail message directly - do not open the Alpha Five e-mail client
              send_result = email_send(param_to,param_subject,param_message,param_attachments,param_cc,param_bcc,.t.,message_type)
              if send_result = 1 then
              ui_msg_box("Notice","Trial registration message sent.",UI_INFORMATION_SYMBOL)
              else
              ui_msg_box("Error","Trial registration message was not sent."+crlf()\
              +"You will need to let me know you downloaded the"+crlf()\
              +"YOUR APPLICATION NAME to receive support.",UI_STOP_SYMBOL)
              end if

              xbasic_wait_for_idle()
              goto carryon
              end if
              end if
              end if
              carryon:

              'THIS ASSURES THEY COMPLETED THE FORM/INSTALLATION BEFORE THEY ARE REGISTERED

              itsago = .t.

              if First_Name.value = ""
              itsago = .f.
              end if
              if Last_Name.value = ""
              itsago = .f.
              end if
              if email0.value = ""
              itsago = .f.
              end if

              if itsago = .f.
              result = ui_msg_box("Not Yet Ready.","Please enter all the information before proceeding.",UI_OK)
              goto donotrun
              end if


              'Define the other data

              'Save record in current form.
              topparent.commit()

              Dim choice1 as C
              Choice1 = ui_msg_Box("","Do you have printers to set up?",UI_YES_NO)
              if choice1 = "6"'YES I do.
              'SeT_Up_Printers
              script_play_local("SeT_Up_Printers")
              msgbox("Restart required!","Please restart Balanced Health POS System"+crlf()\
              +"to finish registering the printers with Windows.")
              'Exit Alpha Five.
              :a5.close()
              end if

              if choice1 <> "6"
              var->settingup = .f.
              'Open BHS_Manager'THE MAIN STARTUP SCREEN IS STARTED HERE

              DIM Shared varP_BHS_Manager as P
              DIM layout_name as c
              layout_name = "BHS_Manager"
              DIM tempP as p
              'Get pointer to existing window.
              tempP=obj(":"+object_Name_normalize(word(layout_name,1,"@")))
              'Test if pointer is valid
              if is_object(tempP) then
              'Test if pointer refers to a form or browse
              if tempP.class() = "form" .or. tempP.class() = "browse" then
              'If so, then activate the already open window
              tempP.activate()

              else
              'Window is not already open, so open it
              varP_BHS_Manager = :Form.view(layout_name)


              end if
              else
              varP_BHS_Manager = :Form.view(layout_name)


              end if
              end if

              parentform.close()

              donotrun:

              '******************END OF CODE*******************

              Gene

              Comment

              Working...
              X