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

Outlook Calendar and Tasks

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

  • viiddi
    replied
    Re: Outlook Calendar and Tasks

    Hi every one long time no speak

    ive made considerabloe progress in alpha working with outllok pulling info from table etc etc lernt alot of coding thanks to that

    ive got a question to do with ms word mail merging basically i want to record in my customers db record when and what letter i have sent them automatically when i do a mail merge..

    basically i have a buton on screen for when i want to send them a letter via mail merge i click it brings up a list of my letters i have preconfigured and it merges the client info straight acroos to word and done.

    what i now want to do is when that happens i want it to record what ive done in the clients record say in a table called letters joint to the customer via the unique id. ho would i go about doing this also it n=be great if the file auto saves to the clients specific folder based on ther unique id i understand this bit can be done via macros in word to a degree

    i know this question is in the wrong section but you have all been of great help so far

    many thanks dave

    Leave a comment:


  • johnkoh
    replied
    Re: Outlook Calendar and Tasks

    David,

    now i want a button to import all the data shown on the event
    After you done the above, let me know.
    Next step is "Reading from table ". Sorry, You have to understand the variable and how to get the data from simple way(?) before complex(?) code way.

    Leave a comment:


  • johnkoh
    replied
    Re: Outlook Calendar and Tasks

    Next, Create the Outlook ole udf,
    Code:
    FUNCTION outlook_ole AS A (ptr AS P )
    	with ptr
    	'========== Start the Outlook OLE ==============
    	
    	dim objOutlook as P
    	constant olAppointmentItem = 1
    	objOutlook = ole.GetObject("","Outlook.Application")
    	objAppointment = objOutlook.CreateItem(olAppointmentItem)
    	
    	objAppointment.Start = vStartDate    '<<=== the variable and make sure same name when you create the below at button1
    	objAppointment.Duration = vDuration
    	objAppointment.AllDayEvent = vDayEvent
    	objAppointment.Subject = vSubject
    	objAppointment.Body = vBody
    	objAppointment.Location = vLocation 
    	objAppointment.ReminderMinutesBeforeStart = vReminder
    	objAppointment.ReminderSet = vRemSet
    	
    	
    	objAppointment.Save()
    
    
    'ui_msg_box("Confirmation","Appointment Booked" )	
    	end with
    
    END FUNCTION

    Button1; current data
    * How to get the value?
    1) Create the variables with current form's value which called the object method.
    1-a) onpush event -- open an ActionScripts
    1-b) See the attachments and create the variables as you need
    1-c) Watch on the variable name. you have to create same name as the Outlook_ole udf

    2) Select a form/record to export to outlook then press the button 1, you should get a(one you have selected) same appointment from outlook.

    Lesson_btn1_event.jpglesson_btn1_eventDetail.jpgLesson_object.jpg


    I noticed that the table does not have the Reminder and reminderSet so you may write the variables as
    dim vReminder as L = .t.
    dim vRemSet = 15

    Leave a comment:


  • johnkoh
    replied
    Re: Outlook Calendar and Tasks

    David,

    Try Lesson 2 or Case 2 and see what is going on the Passing variables

    from button3, changed this to activate red or blue color
    Code:
    'Get 'Value' property of 'Start_date' in Form 'Event_List' .
    ' DIM shared vStartDate AS d
    
    'Lesson 2; Check after delete shared variable. 
    DIM vStartDate AS d
    
    vStartDate = parentform:Start_date.value
    From myFirst_udf

    Code:
    		'=========== Case 2; Change the value here and show the revised value ==============
                    'Hold this until 2nd lesson
    		vRevisedDate = {1/1/2014}
    		vStartDate = vRevisedDate   'or you can write vStartDate = {1/1/2014}  'which is simple way
    		'Test for Same MsgBox with same variable name -- changed the value, not same as the form's value
    		msgbox("from UDf ","Changed the value at UDF "+crlf()+"Start Date: "+vStartDate )
    This is the basic of the passing values to other codes and programming with it.

    If you are not sure, post the questions.
    Last edited by johnkoh; 03-18-2014, 12:17 PM. Reason: typo

    Leave a comment:


  • johnkoh
    replied
    Re: Outlook Calendar and Tasks

    Good Morning,

    ** assumed you know the definition of the VARIABLES, but not know how to use it.

    First, I want to show you how to use the variables.

    Created the UDF
    Code:
    'It will show How to pass the variables from a to b
    FUNCTION myfirst_udf AS A (ptr as p)
            '// " With ..end with " is called NameSpace Function. A5 will be passing the variables within
    	with ptr
                    
    		'Case 1; Check the form's value
    		msgbox("from UDf ","Show the PASSING Result from UDF "+crlf()+"Start Date: "+vStartDate )
    		
    		'=========== Case 2; Change the value here and show the revised value ==============
                    'Hold this until 2nd lesson
    		'vRevisedDate = {1/1/2014}
    		'vStartDate = vRevisedDate   'or you can write vStartDate = {1/1/2014}  'which is simple way
    		'Test for Same MsgBox
    		'msgbox("from UDf ","Changed the value at UDF "+crlf()+"Start Date: "+vStartDate )
    	end with
    END FUNCTION
    created the 3rd button and named as "passing variables". Insert this code on this button push event.

    Code:
    'Save record in current form.
    topparent.commit()
    
    
    
    'Get 'Value' property of 'Start_date' in Form 'Event_List' .
    DIM shared vStartDate AS d
    
    'Lesson 2; Check after delete shared variable
    'DIM vStartDate AS d
    
    vStartDate = parentform:Start_date.value
    
    
    'test passing variables
    myfirst_udf(local_variables())
    after done the above, you will see the message when you press the 3rd button.

    See the "lesson 2", make it as activate after try 1st.
    Last edited by johnkoh; 03-18-2014, 02:39 PM. Reason: typo

    Leave a comment:


  • viiddi
    replied
    Re: Outlook Calendar and Tasks

    Originally posted by johnkoh View Post
    David,

    OK, Make the sample database.
    I made one from A5 sample. (1) from Tables/sets control panel --> select "New" button ---> Using Genie --> Select "event list" from template name.
    ===> Selected "include sample data ==> Next , table name as "event" ==> Finish.


    Now you have the table with sample data.

    I have attached the screenshots for your reference.

    [ATTACH=CONFIG]37853[/ATTACH][ATTACH=CONFIG]37854[/ATTACH][ATTACH=CONFIG]37855[/ATTACH]
    ok ive created the sample database same as yours now i want a button to import all the data shown on the event form into the body of an appoinmnet o outllook on the start date but i also want all the other record in the body of the appoinment aswell so event id 01 02 03 and all data corespondiing in the single body of the appoinmnet

    Leave a comment:


  • johnkoh
    replied
    Re: Outlook Calendar and Tasks

    David,

    The xbasic is easy once you know how to and the concept of the command.

    I created two buttons without any "action"

    lesson_form_button.jpg


    I do not have good skill of teaching or writing but I can help you.

    a) Button1 will be a case A --> Just the records from Form, whatever you see.
    1) Which records and fields(value)
    2) and How to find the records?
    3) Two method; object and table method

    b) Button2 will be a case B --> read from table's records
    1) Which records and fields(value)
    2) and How to find the records?
    3) How to find and read the table's records -- query-method, index-method, array-method

    Think about those cases and will show you more on tomorrow

    Leave a comment:


  • johnkoh
    replied
    Re: Outlook Calendar and Tasks

    David,

    OK, Make the sample database.
    I made one from A5 sample. (1) from Tables/sets control panel --> select "New" button ---> Using Genie --> Select "event list" from template name.
    ===> Selected "include sample data ==> Next , table name as "event" ==> Finish.


    Now you have the table with sample data.

    I have attached the screenshots for your reference.

    lesson_table.jpglesson_Data.jpgLesson_form_01.jpg

    Leave a comment:


  • viiddi
    replied
    Re: Outlook Calendar and Tasks

    ok so this is doing my nut in is there a way the transfer the browser from a form into outlook appoinmnetbody as i filter the browse for the records i want all ones matching the customers id with the fields in the browse this is doing my nutt pwease anybody help i just cant seem to get my head around xbasic coding

    Leave a comment:


  • johnkoh
    replied
    Re: Outlook Calendar and Tasks

    David,

    Please, find this fetch_1.jpg from A5 help and read.
    It will be next step to do.

    Leave a comment:


  • johnkoh
    replied
    Re: Outlook Calendar and Tasks

    David,

    That is great. Now do you have a sample table?
    If you do, show me the Structure and some of data or zip file here so I can make my side sample.

    Leave a comment:


  • viiddi
    replied
    Re: Outlook Calendar and Tasks

    Originally posted by johnkoh View Post
    David,

    Try to work with one record only.

    Copy and paste this code on the xBasic Script, save and Run it. After run it, open your outlook see the appointment date and show me the result.

    Code:
    '// this is called variables. 
    vStatDate = "1/16/2014 11:00 AM" 
    vDuration = 4
    vDayEvent = .t.
    vSubject = "Test My first Appointment"
    vBody = "Test Body work with outlook"
    'Location --- 'I do not know what it is ref. So I left it as is now
    vReminder = 15
    vRemSet = .t.
    
    '===== End ==========
    
    '========== Start the Outlook OLE ==============
    
    dim objOutlook as P
    constant olAppointmentItem = 1
    objOutlook = ole.GetObject("","Outlook.Application")
    objAppointment = objOutlook.CreateItem(olAppointmentItem)
    
    objAppointment.Start = vStartDate
    objAppointment.Duration = vDuration
    objAppointment.AllDayEvent = vDayEvent
    objAppointment.Subject = vSubject
    objAppointment.Body = vBody
    objAppointment.Location = "44/2039"  
    objAppointment.ReminderMinutesBeforeStart = vReminder
    objAppointment.ReminderSet = vRemSet
    
    
    objAppointment.Save()
    
    
    ui_msg_box("Confirmation","Appointment Booked" )
    ok so that code works for one record the one im working on which is fine here is the result

    code work for one record.png

    Leave a comment:


  • johnkoh
    replied
    Re: Outlook Calendar and Tasks

    David,

    Try to work with one record only.

    Copy and paste this code on the xBasic Script, save and Run it. After run it, open your outlook see the appointment date and show me the result.

    Code:
    '// this is called variables. 
    vStatDate = "1/16/2014 11:00 AM" 
    vDuration = 4
    vDayEvent = .t.
    vSubject = "Test My first Appointment"
    vBody = "Test Body work with outlook"
    'Location --- 'I do not know what it is ref. So I left it as is now
    vReminder = 15
    vRemSet = .t.
    
    '===== End ==========
    
    '========== Start the Outlook OLE ==============
    
    dim objOutlook as P
    constant olAppointmentItem = 1
    objOutlook = ole.GetObject("","Outlook.Application")
    objAppointment = objOutlook.CreateItem(olAppointmentItem)
    
    objAppointment.Start = vStartDate
    objAppointment.Duration = vDuration
    objAppointment.AllDayEvent = vDayEvent
    objAppointment.Subject = vSubject
    objAppointment.Body = vBody
    objAppointment.Location = "44/2039"  
    objAppointment.ReminderMinutesBeforeStart = vReminder
    objAppointment.ReminderSet = vRemSet
    
    
    objAppointment.Save()
    
    
    ui_msg_box("Confirmation","Appointment Booked" )

    Leave a comment:


  • viiddi
    replied
    Re: Outlook Calendar and Tasks

    Originally posted by viiddi View Post
    HERE IS WHAT I PUT TOGETHER



    dim objOutlook as P


    constant olAppointmentItem = 1

    objOutlook = ole.GetObject("","Outlook.Application")

    objAppointment = objOutlook.CreateItem(olAppointmentItem)


    objAppointment.Start = DATE_OF_APPOITNMENT_.value '

    objAppointment.AllDayEvent = .T.
    objAppointment.Subject = CUSTOMER_ID_.value + " " + NAME.text + " " + SURNAME.text + " "
    recs = parentform.QueryRun("customer_id_ = "+customer_id_.value) 'get a count of the records with the same customer_id as the record visible on the form
    if recs > 0
    parentform.Fetch_first()
    objAppointment.Body = CUSTOMER_ID_.value + " " + NAME.text + " " + SURNAME.text + crlf(1) + " Mobile Numbers= "+ CONTACT_NUMBER1.VALUE +crlf(1) +" Phone Numbers= "+ CONTACT_NUMBER_2.VALUE +crlf(1) + ADDRESS.TEXT +crlf(1)+ ADDRESS2.TEXT +crlf(1)+ TOWN.TEXT+crlf(1)+COUNTY.TEXT +crlf(1)+POSTCODE.TEXT +crlf(2)+ " E-MAIL = " + EMAIL_ADDRESS_.TEXT + crlf(2) + crlf(3)+ "NOTES" +crlf(2)+ Notes_.value + crlf(3) + "TS_______ INV________ Paid_________ Unpaid________ Last Charge___________" + crlf(2) + "previous jobs below " + crlf(2)
    for qx = 1 to recs -1
    parentform.Fetch_next()
    objAppointment.Body = CUSTOMER_ID_.value + " " + NAME.text + " " + SURNAME.text + crlf(1) + " Mobile Numbers= "+ CONTACT_NUMBER1.VALUE +crlf(1) +" Phone Numbers= "+ CONTACT_NUMBER_2.VALUE +crlf(1) + ADDRESS.TEXT +crlf(1)+ ADDRESS2.TEXT +crlf(1)+ TOWN.TEXT+crlf(1)+COUNTY.TEXT +crlf(1)+POSTCODE.TEXT +crlf(2)+ " E-MAIL = " + EMAIL_ADDRESS_.TEXT + crlf(2) + crlf(3)+ "NOTES" +crlf(2)+ Notes_.value + crlf(3) + "TS_______ INV________ Paid_________ Unpaid________ Last Charge___________" + crlf(2) + "previous jobs below " + crlf(2)
    next
    end if
    objAppointment.Location = CONTACT_NUMBER1.value + " " + POSTCODE.TEXT '
    objAppointment.ReminderMinutesBeforeStart = 15
    objAppointment.ReminderSet = .T.

    objAppointment.Save()


    ui_msg_box("Confirmation","Appointment Booked" )

    )
    The problem im getting with this code is that the the body field of the appointmnet still only contains one records worth of data and is not keeping each record after one another and only puts in the latest record HEEEELLLPPPPPPPP----- ( I BET BY NOW EVERY ONE IS PISSED OFF WITH THIS :-P

    Leave a comment:


  • viiddi
    replied
    Re: Outlook Calendar and Tasks

    Originally posted by Stan Mathews View Post
    If customer_id is numeric

    recs = parentform.QueryRun("customer_id = "+customer_id.value) 'get a count of the records with the same customer_id as the record visible on the form
    if recs > 0 ' if the count is greater than zero
    parentform.Fetch_First() 'make sure we're on the first record of the customer_id
    'your present code here 'writes the values from the first record to the outlook calendar
    for qx = 1 to recs -1 'loop to process the rest of the records for the current customer (total count - 1 for the first record)
    parentform.Fetch_next() 'go to the next record with the same id
    'your present code here, again 'writes the values from the next record to the outlook calendar
    next 'loop back if more records
    end if


    HERE IS WHAT I PUT TOGETHER



    dim objOutlook as P


    constant olAppointmentItem = 1

    objOutlook = ole.GetObject("","Outlook.Application")

    objAppointment = objOutlook.CreateItem(olAppointmentItem)


    objAppointment.Start = DATE_OF_APPOITNMENT_.value '

    objAppointment.AllDayEvent = .T.
    objAppointment.Subject = CUSTOMER_ID_.value + " " + NAME.text + " " + SURNAME.text + " "
    recs = parentform.QueryRun("customer_id_ = "+customer_id_.value) 'get a count of the records with the same customer_id as the record visible on the form
    if recs > 0
    parentform.Fetch_first()
    objAppointment.Body = CUSTOMER_ID_.value + " " + NAME.text + " " + SURNAME.text + crlf(1) + " Mobile Numbers= "+ CONTACT_NUMBER1.VALUE +crlf(1) +" Phone Numbers= "+ CONTACT_NUMBER_2.VALUE +crlf(1) + ADDRESS.TEXT +crlf(1)+ ADDRESS2.TEXT +crlf(1)+ TOWN.TEXT+crlf(1)+COUNTY.TEXT +crlf(1)+POSTCODE.TEXT +crlf(2)+ " E-MAIL = " + EMAIL_ADDRESS_.TEXT + crlf(2) + crlf(3)+ "NOTES" +crlf(2)+ Notes_.value + crlf(3) + "TS_______ INV________ Paid_________ Unpaid________ Last Charge___________" + crlf(2) + "previous jobs below " + crlf(2)
    for qx = 1 to recs -1
    parentform.Fetch_next()
    objAppointment.Body = CUSTOMER_ID_.value + " " + NAME.text + " " + SURNAME.text + crlf(1) + " Mobile Numbers= "+ CONTACT_NUMBER1.VALUE +crlf(1) +" Phone Numbers= "+ CONTACT_NUMBER_2.VALUE +crlf(1) + ADDRESS.TEXT +crlf(1)+ ADDRESS2.TEXT +crlf(1)+ TOWN.TEXT+crlf(1)+COUNTY.TEXT +crlf(1)+POSTCODE.TEXT +crlf(2)+ " E-MAIL = " + EMAIL_ADDRESS_.TEXT + crlf(2) + crlf(3)+ "NOTES" +crlf(2)+ Notes_.value + crlf(3) + "TS_______ INV________ Paid_________ Unpaid________ Last Charge___________" + crlf(2) + "previous jobs below " + crlf(2)
    next
    end if
    objAppointment.Location = CONTACT_NUMBER1.value + " " + POSTCODE.TEXT '
    objAppointment.ReminderMinutesBeforeStart = 15
    objAppointment.ReminderSet = .T.

    objAppointment.Save()


    ui_msg_box("Confirmation","Appointment Booked" )

    The problem im getting with this code is that the the body field of the appointmnet still only contains one records worth of data and is not keeping each record after one another and only puts in the latest record HEEEELLLPPPPPPPP----- ( I BET BY NOW EVERY ONE IS PISSED OFF WITH THIS :-P )

    Leave a comment:

Working...
X