This article about How to create a visualforce page for event using custom controller.
public class EventController {
public string valcid{get; set;}
public EventController(ApexPages.StandardController controller) {
EventCheck();
}
public Account Acc{get; set;}
public Event event{get; set;}
public Contact con{get; set;}
public void EventCheck()
{
event=new Event();
Acc=new Account();
Contact cont=new Contact();
String selectedAccId = System.currentPageReference().getParameters().get('what_id');
if(selectedAccId !=null)
{
// System.debug('@@@@@@@@@@@@'+selectedAccId );
Acc=[Select id,Name from Account where id=:selectedAccId];
event.whatid='00190000006MsiI';
// event.ownerid=UserInfo.getUserId();
event.ownerid='00590000000lvzt';
// event.Location=Acc.Name;
event.StartDateTime=System.Now().addHours(1);
event.EndDateTime=System.Now().addHours(2);
}
String selectedConId = System.currentPageReference().getParameters().get('who_id');
if(selectedConId !=null)
{
// System.debug('@@@@@@@@@@@@'+selectedAccId );
Cont=[Select id from Contact where id=:selectedConId ];
event.ownerid=UserInfo.getUserId();
event.StartDateTime=System.Now().addHours(1);
event.EndDateTime=System.Now().addHours(2);
}
}
Public void GetVal()
{
//System.debug('@@@@@@@@@@@@Entered GetVal**************');
con=[Select LastName,MailingStreet from contact where id=:valcid];
event.description=con.LastName ;
event.location=con.MailingStreet;
}
public Pagereference saveEvent()
{
insert event;
String returnurl='/'+event.whatid;
Pagereference seekerpage=new PageReference(returnurl);
return seekerpage;
}
public Pagereference cancelEvent()
{
String cancelurl='/'+event.whatid;
Pagereference backpage=new PageReference(cancelurl);
return backpage;
}
}
and the VFP looks like this
<apex:page standardController="Event" tabStyle="Event" label="New Event" extensions="EventController">
<apex:form id="myform" >
<script>
function call(nm,n)
{
document.getElementById('j_id0:myform:EventPage:Contctid').value=document.getElementById('j_id0:myform:EventPage:Calender:contact_txt_lkid').value;
}
function GetVal()
{
}
</script>
<apex:pageBlock id="EventPage" tabStyle="Event">
<apex:inputHidden id="Contctid" value="{!valcid}"/>
<apex:actionFunction action="{!GetVal}" name="GetVal" reRender="Description,loc_txt"></apex:actionFunction>
<apex:pageBlockButtons title="Event Edit" dir="Event Edit" >
<apex:commandButton id="SaveEvent" value="Save" Action="{!saveEvent}"/>
<apex:commandButton id="CancelEvent" value="Cancel" Action="{!cancelEvent}"/>
</apex:pageBlockButtons>
<apex:pageBlockSection id="Calender" title="Calendar Details" collapsible="false" showHeader="true" columns="2" >
<apex:inputfield id="assignto_txt" value="{!event.ownerid}" />
<apex:inputfield id="loc_txt" value="{!event.location}"/>
<apex:inputfield id="subject_txt" required="true" value="{!event.Subject}"/>
<apex:inputfield id="start_txt" value="{!event.StartDateTime}"/>
<apex:inputfield id="contact_txt" value="{!event.whoid}" onblur="call('{!$Component.myform.EventPage.Calender.contact_txt}','{!$Component.myform.EventPage.Calender.contact_txt_lkid}');GetVal();"/>
<apex:inputfield id="end_txt" value="{!event.EndDateTime}"/>
<apex:inputfield id="whoto_txt" value="{!event.whatid}" />
<apex:inputfield id="allday_txt" value="{!event.IsAllDayEvent}"/>
</apex:pageBlockSection>
<apex:pageBlockSection id="Description" title="Description Information" collapsible="false" showHeader="true" columns="1" >
<apex:inputfield id="description_txt" value="{!event.description}" />
</apex:pageBlockSection>
<apex:pageBlockSection id="Recurrence" title="Recurrence" collapsible="false" showHeader="true" columns="1">
<div>
<apex:inputfield id="IsRecurrence" value="{!event.IsRecurrence}" onclick="ActivityFunction.selectMakeRecurring('IsRecurrence','evt15','evt4','StartDateTime','EndDateTime');" />
<apex:inputfield id="RecurrenceType" value="{!event.RecurrenceType}"/> <apex:inputfield id="RecurrenceDayOfMonth" value="{!event.RecurrenceDayOfMonth}"/>
<div id="recpat" style="">
<table width="100%">
<tbody>
<tr>
<td class="labelCol">
<label>Frequency</label>
</td>
<td>
<table class="recurrenceTable">
<tbody>
<tr>
<td>
<div>
<div>
<input checked="checked" id="rectypeftd" name="rectype" onclick="ActivityFunction.adjustRecurrenceFrequency('d');" type="radio" value="ftd"/>
<label for="rectypeftd">Daily</label></div>
<div>
<input id="rectypeftw" name="rectype" onclick="ActivityFunction.adjustRecurrenceFrequency('w');ActivityFunction.setDayOfWeekDefault('RecurrenceStartDateTime');" type="radio" value="ftw"/>
<label for="rectypeftw">Weekly</label></div>
<div>
<input id="rectypeftm" name="rectype" onclick="ActivityFunction.adjustRecurrenceFrequency('m');" type="radio" value="ftm"/>
<label for="rectypeftm">Monthly</label></div>
<div>
<input id="rectypefty" name="rectype" onclick="ActivityFunction.adjustRecurrenceFrequency('y');" type="radio" value="fty"/>
<label for="rectypefty">Yearly</label></div></div>
</td>
<td>
<div class="periodElementGroup" id="d" style="display:">
<div><input checked="checked" id="recdd0" name="recd" title="Recurs every weekday" type="radio" value="d0"/>
<label for="recdd0">Every weekday</label></div>
<div>
<input id="recdd1" name="recd" title="Specify interval in days" type="radio" value="d1" /><label for="recdd1">
</label>Every
<input id="di" name="di" onkeypress="document.getElementById('recdd1').checked=true;" size="3" title="specify interval in days" type="text" value="1"/> day(s)
</div>
</div>
<div class="periodElementGroup" id="w" style="display:none">
<div>Recurs every <input id="wi" name="wi" size="3" title="specify interval in weeks" type="text" value="1"/> week(s) on</div>
<div><input id="1" name="1" type="checkbox" value="1"/><label for="1">Sunday</label>
<input id="2" name="2" type="checkbox" value="1"/>
<label for="2">Monday</label><input id="4" name="4" type="checkbox" value="1"/><label for="4">Tuesday</label><input id="8" name="8" type="checkbox" value="1"/><label for="8">Wednesday</label><input id="16" name="16" type="checkbox" value="1"/><label for="16">Thursday</label><input id="32" name="32" type="checkbox" value="1"/><label for="32">Friday</label><input id="64" name="64" type="checkbox" value="1"/><label for="64">Saturday</label></div></div><div class="periodElementGroup" id="m" style="display:none"><div><input checked="checked" id="recmm0" name="recm" title="Specify number of days into month and monthly interval" type="radio" value="m0"/><label for="recmm0"></label>On day <select id="mdom" name="mdom" onchange="document.getElementById('recmm0').checked=true;" title="select day of the month"><option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select> of every <input id="mint" name="mint" onkeypress="document.getElementById('recmm0').checked=true;" size="3" title="specify interval in months" type="text" value="1"/> month(s)</div>
<div><input id="recmm1" name="recm" title="Specify which day of which week and the monthly interval" type="radio" value="m1"/>
<label for="recmm1"></label>On the
<select id="mnins" name="mnins" onchange="document.getElementById('recmm1').checked=true;" title="select which week of the month">
<option value="1" selected="selected">1st</option>
<option value="2">2nd</option>
<option value="3">3rd</option>
<option value="4">4th</option>
<option value="5">last</option>
</select>
<select id="mndow" name="mndow" onchange="document.getElementById('recmm1').checked=true;" title="select which day of the week">
<option value="127" selected="selected">day</option>
<option value="1">Sunday</option>
<option value="2">Monday</option>
<option value="4">Tuesday</option>
<option value="8">Wednesday</option>
<option value="16">Thursday</option>
<option value="32">Friday</option>
<option value="64">Saturday</option>
</select> of every
<input id="mnint" name="mnint" onkeypress="document.getElementById('recmm1').checked=true;" size="3" title="specify interval in months" type="text" value="1"/>
month(s)</div></div>
<div id="y" style="display:none">
<div>
<input checked="checked" id="recyy0" name="recy" title="Specify month and day" type="radio" value="y0"/>
<label for="recyy0"></label>On every
<select id="ymoy" name="ymoy" onchange="document.getElementById('recyy0').checked=true;" title="select the month">
<option value="0" selected="selected">January</option>
<option value="1">February</option>
<option value="2">March</option>
<option value="3">April</option>
<option value="4">May</option>
<option value="5">June</option>
<option value="6">July</option>
<option value="7">August</option>
<option value="8">September</option>
<option value="9">October</option>
<option value="10">November</option>
<option value="11">December</option>
</select>
<select id="ydom" name="ydom" onchange="document.getElementById('recyy0').checked=true;" title="select day of the month">
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select></div><div><input id="recyy1" name="recy" title="Specify day of particular week in a specific month" type="radio" value="y1"/>
<label for="recyy1"></label>On the
<select id="ynins" name="ynins" onchange="document.getElementById('recyy1').checked=true;" title="select which week of the month">
<option value="1" selected="selected">1st</option>
<option value="2">2nd</option>
<option value="3">3rd</option>
<option value="4">4th</option>
<option value="5">last</option>
</select> <select id="yndow" name="yndow" onchange="document.getElementById('recyy1').checked=true;" title="select which day of the week">
<option value="127" selected="selected">day</option>
<option value="1">Sunday</option>
<option value="2">Monday</option>
<option value="4">Tuesday</option>
<option value="8">Wednesday</option>
<option value="16">Thursday</option>
<option value="32">Friday</option>
<option value="64">Saturday</option>
</select> of <select id="ynmoy" name="ynmoy" onchange="document.getElementById('recyy1').checked=true;" title="select the month"><option value="0" selected="selected">January</option>
<option value="1">February</option>
<option value="2">March</option>
<option value="3">April</option>
<option value="4">May</option>
<option value="5">June</option>
<option value="6">July</option>
<option value="7">August</option>
<option value="8">September</option>
<option value="9">October</option>
<option value="10">November</option>
<option value="11">December</option>
</select></div></div></td></tr>
</tbody></table></td></tr>
</tbody></table></div>
<apex:inputfield id="RecurrenceStartDateTime" value="{!event.RecurrenceStartDateTime}" required="true"/>
<apex:inputfield id="RecurrenceEndDateOnly" value="{!event.RecurrenceEndDateOnly}" required="true"/>
</div>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
<!--call('{!$Component.myform.EventPage.Calender.contact_txt}','{!event.whoid}');-->
</apex:page>
Hi Rajendra,
ReplyDeleteThis is a good blog.I am also creating new event using VFP.This blog good reference for me. But i have doubt on Attachment and Invite others related list in Event Creation.How to Create those related lists.
Thanks,
DevineniSarath