* * * COMPONENT: STD_FORM * * FUNCTION OPTIONS(*DIRECT) BEGIN_COM LEFT(370) TOP(143) DEFINE_COM CLASS(#VAOUTLOOK.Application) NAME(#olApp) REFERENCE(*dynamic) DEFINE_COM CLASS(#PRIM_PHBN) NAME(#CMDOUTLOOK) CAPTION('Outlook test') DISPLAYPOSITION(1) LEFT(40) PARENT(#COM_OWNER) TABPOSITION(1) TOP(32) DEFINE_COM CLASS(#vaOUTLOOK._NameSpace) NAME(#OLNS) REFERENCE(*DYNAMIC) DEFINE_COM CLASS(#vaOUTLOOK.IDispatch) NAME(#OLDispatch) REFERENCE(*DYNAMIC) DEFINE_COM CLASS(#vaOUTLOOK._contactItem) NAME(#OLContactItem) REFERENCE(*DYNAMIC) DEFINE_COM CLASS(#VAoutlook._MailItem) NAME(#olMailItem) REFERENCE(*dynamic) DEFINE_COM CLASS(#VAOutlook._AppointmentItem) NAME(#olAppointmentItem) REFERENCE(*Dynamic) DEFINE FIELD(#ITEMTYPE) TYPE(*DEC) LENGTH(5) DECIMALS(0) DEFINE FIELD(#TIMEC8) TYPE(*CHAR) LENGTH(8) DEFINE FIELD(#DATEC8) TYPE(*CHAR) LENGTH(8) DEFINE FIELD(#COLUM) TYPE(*CHAR) LENGTH(1) DEFAULT(':') DEFINE FIELD(#SLASH) TYPE(*CHAR) LENGTH(1) DEFAULT('/') EVTROUTINE HANDLING(#com_owner.Initialize) SET COM(#com_owner) CAPTION(*component_desc) ENDROUTINE EVTROUTINE HANDLING(#cmdOutlook.Click) * * Create Outlook object * SET_REF COM(#olApp) TO(*create_as #VAOUTLOOK.Application) INVOKE METHOD(#olApp.CreateObject) OBJECTNAME(outlook.application) INVOKE METHOD(#olApp.GetNamespace) TYPE(MAPI) GETNAMESPACE_RETVAL(#OLNS) INVOKE METHOD(#olNS.Logon) SHOWDIALOG(1) * Create New Contact INVOKE METHOD(#olApp.CreateItem) ITEMTYPE(vaoutlook.olContactItem) CREATEITEM_RETVAL(#olDispatch) SET_REF COM(#OlContactItem) TO(*dynamic #olDispatch) SET COM(#olContactItem) FULLNAME('Fred Jones') SET COM(#olContactItem) BIRTHDAY('9/15/1975') SET COM(#olContactItem) COMPANYNAME('Microsoft') SET COM(#olContactItem) HOMETELEPHONENUMBER('704-555-8888') * Please Enter a Valid Email Address SET COM(#olContactItem) EMAIL1ADDRESS('peter.pan@lansa.com') SET COM(#olContactItem) JOBTITLE('Developer') SET COM(#olContactItem) HOMEADDRESS('111 Main St. Charlotte, NC 28226') INVOKE METHOD(#olContactItem.Save) * Create an Appointment INVOKE METHOD(#olApp.CreateItem) ITEMTYPE(vaoutlook.olAppointmentItem) CREATEITEM_RETVAL(#olDispatch) SET_REF COM(#olAppointmentItem) TO(*dynamic #olDispatch) * Set up Appointment Time * Add 2 minutes to current time CHANGE FIELD(#TIME) TO('#time + 200') USE BUILTIN(NUMERIC_STRING) WITH_ARGS(#TIME) TO_GET(#TIMEC) * Add (:) to time and (/) to date and concatenate EXECUTE SUBROUTINE(CONVERTDTE) EXECUTE SUBROUTINE(CONVERTTME) USE BUILTIN(BCONCAT) WITH_ARGS(#DATEC8 #TIMEC8) TO_GET(#STD_TEXTS) * Datetime format is 9/24/97 1:30:00 PM SET COM(#olAppointmentItem) START(#STD_TEXTS) * Set up other appointment information SET COM(#olAppointmentItem) DURATION(60) SET COM(#olAppointmentItem) SUBJECT('Meeting to discuss plans...') CHANGE FIELD(#FULLNAME) TO('#OLCONTACTITEM.FULLNAME') USE BUILTIN(BCONCAT) WITH_ARGS('Meeting with ' #FULLNAME) TO_GET(#STD_TEXTS) SET COM(#olAppointmentItem) BODY(#std_texts) SET COM(#olAppointmentItem) LOCATION('Home Office') SET COM(#olAppointmentItem) REMINDERMINUTESBEFORESTART(1) SET COM(#olAppointmentItem) REMINDERSET(True) INVOKE METHOD(#olAppointmentItem.Save) * Send Mail to New contact INVOKE METHOD(#olApp.CreateItem) ITEMTYPE(vaoutlook.olMailItem) CREATEITEM_RETVAL(#olDispatch) SET_REF COM(#olMailItem) TO(*dynamic #olDispatch) SET COM(#olMailItem) TO(#olContactItem.Email1Address) SET COM(#olMailItem) SUBJECT('Test Mail') SET COM(#olMailItem) Body('I will see you in 2 minutes for our meeting!') INVOKE METHOD(#olMailItem.Send) * Send out message and clean up... Use Builtin(Message_Box_Add) With_Args('All done .....') USE BUILTIN(MESSAGE_BOX_SHOW) WITH_ARGS(OK OK INFORMATION INFORMATION) Set_Ref Com(#olNS) to(*Null) Set_Ref Com(#olMailItem) to(*Null) Set_Ref Com(#olContactItem) to(*Null) Set_Ref Com(#olAppointmentItem) to(*Null) ENDROUTINE * Change the date format to 31/01/01 SUBROUTINE NAME(CONVERTDTE) SUBSTRING FIELD(#DATEC 1 2) INTO_FIELD(#DATEC8 1 2) SUBSTRING FIELD(#SLASH 1 1) INTO_FIELD(#DATEC8 3 1) SUBSTRING FIELD(#DATEC 3 2) INTO_FIELD(#DATEC8 4 2) SUBSTRING FIELD(#SLASH 1 1) INTO_FIELD(#DATEC8 6 1) SUBSTRING FIELD(#DATEC 5 2) INTO_FIELD(#DATEC8 7 2) ENDROUTINE * Change the time format to 13:00:00 SUBROUTINE NAME(CONVERTTME) SUBSTRING FIELD(#TIMEC 1 2) INTO_FIELD(#TIMEC8 1 2) SUBSTRING FIELD(#COLUM 1 1) INTO_FIELD(#TIMEC8 3 1) SUBSTRING FIELD(#TIMEC 3 2) INTO_FIELD(#TIMEC8 4 2) SUBSTRING FIELD(#COLUM 1 1) INTO_FIELD(#TIMEC8 6 1) SUBSTRING FIELD(#TIMEC 5 2) INTO_FIELD(#TIMEC8 7 2) ENDROUTINE END_COM