Tuesday, July 31, 2018

Code for Assignment-1 (Apex and VF)

Code for Assignment-1 (Apex and VF)

(Sunil Sharma and Vikas Tyagi)

Controller Class
public class EmployeeDataRegistartionForm{ //Controller Class
   
    /**************Variable Declaration Area*****************/
    public EmployeeData__c st {get; set;}
    public string SelectedEmployeeDataId {get; set;}
    private List<EmployeeData__c> employees;
    private String sortDirection = 'ASC';
    private String sortExp = 'name';
    public Integer maxAge {get; set;}
    public Integer salarySum {get; set;}
   public String sortExpression
   {
     get
     {
        return sortExp;
     }
     set
     {
       //if the column is clicked, on then switch between Ascending and Descending modes
       if (value == sortExp)
         sortDirection = (sortDirection == 'ASC')? 'DESC' : 'ASC';
       else
         sortDirection = 'ASC';
       sortExp = value;
     }
   }
     public String getSortDirection()
     {
        //if no column is selected, For Default Sorting Action
        if (sortExpression == null || sortExpression == '')
          return 'ASC';
        else
         return sortDirection;
     }
   
     public void setSortDirection(String value)
     {  
       sortDirection = value;
     }
// get data from employeeData object
   
   public List<EmployeeData__c> getEmployees() {
       return employees;
   }
    public PageReference ViewData() {
        maxAge=0;
        salarySum=0;
       //build the full sort expression --order by <field name> ASC/DESC
       string sortFullExp = sortExpression  + ' ' + sortDirection;
       //query the database based on the sort expression
       employees= Database.query('select id ,name,Age__c,Salary__c,ContactNo__c,Email__c,Designation__c,Qualification__c from EmployeeData__c order by ' + sortFullExp + ' limit 1000');
       if(employees[0].age__c!=null)
           maxAge= integer.ValueOf(employees[0].age__c);
       if(employees[0].Salary__c!=null)
           salarySum=integer.ValueOf(employees[0].Salary__c);
        For (integer i =0;i<employees.size();i++) //i = 0, 0 + 1, 1 + 1 >>employees[0], [1], [2]...employees[last]
        {   if(employees[i].Salary__c!=null)
                salarySum= salarySum+integer.ValueOf(employees[i].Salary__c);
            if( integer.ValueOf(employees[i].age__c) > maxAge && employees[i].age__c!=null)//
                maxAge= integer.ValueOf(employees[i].Age__c);
        }
       //maxAge= Database.query('select max(Age__c) from EmployeeData__c order by age__c desc  limit 1');
       return null;
   }
    /*******************************************************/
    public EmployeeDataRegistartionForm() { //Constructor
        st = new EmployeeData__c();
        // refresh list after insertion of a record
        ViewData();
    }
   
    // call on  onchange of input field Name
    public void getRecords(){
    }
    // insert record in EmployeeData
    public void InsertData(){
        List<EmployeeData__c> tempList = new List<EmployeeData__c> ();
        If ( st.Name == null ){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'Please Enter EmployeeData Name'));
        }  
        Else{
            //create instance of employeeData record for insertion
            EmployeeData__c s1 = new EmployeeData__c();
            s1.Name = st.Name;
            s1.Age__c = st.Age__c;
            s1.Email__c = st.email__c;
            s1.ContactNo__c = st.ContactNo__c;
            s1.Designation__c = st.Designation__c;
            s1.Qualification__c = st.Qualification__c;
            s1.Salary__c = st.Salary__c;
            tempList.add(s1);   // add object instance to list
        }
        try {
            // check list size for insert
            if(tempList.size()>0) {
                insert tempList; //DML Statement
            }
            ViewData();
            // refresh List Data
            st.clear();
        }
        catch (Exception e) { System.debug('Exception: '+e.getMessage()); }
    }
   
    public void DeleteEmployeeData()
    {
      // if for any reason we are missing the reference
      if (SelectedEmployeeDataId == null) {
          return;
      }
     
      // find the EmployeeData record within the collection
      EmployeeData__c tobeDeleted = null;
      for(EmployeeData__c a : employees)
          if (a.Id == SelectedEmployeeDataId) {
              tobeDeleted = a;
              break;
          }
     
      //if EmployeeData record found delete it
      if (tobeDeleted != null) {
          Delete tobeDeleted;
      }
     
      //refresh the data
      ViewData();
   }    
}
Visualforce Page
<apex:page controller="EmployeeDataRegistartionForm">
    <head>
        <style>  <!-- CSS -->
            .font{
                text-align:center;
            }
            .headerRow .TableTitle {
                background-color: #F0F8FF !important;
                color: #CC0000 !important;
                font-size:100% !important;
                text-align:center;
            }
            .req{
                width:150px;
                padding:2px;
                border:1px solid #c6c6c6;
                border-left:3px ridge #FF3333; <!--CSS For Required Field-->
            }
            .nor{
                width:150px;
                padding:2px;
                border:1px solid #c6c6c6;
            }
            .roundtable {
                border: 1px solid #ddd;
                border-collapse: separate;
                border-radius: 10px;
                border-spacing: 0px;
                background: #e8edff;
            }
        </style>
    </head>
    <apex:form id="form">
        <apex:pageMessages ></apex:pageMessages>
        <apex:pageBlock title="Employee Form">
            <table border="0"  cellpadding="3" cellspacing="0" style="width:800px; font-size:12px; font-weight:bold;" Class="roundtable">
                <tr>
                    <td align="right" width="15%">
                        <apex:outputText value="Employee Name"></apex:outputText>
                    </td>
                    <td align="left"  width="30%"> &nbsp;
                        <apex:inputField value="{!st.Name}" styleClass="req" style="background-color:yellow;">
                            <apex:actionSupport event="onchange" action="{!getRecords}" reRender="form"/>
                        </apex:inputField>
                    </td>
                    <td align="right" width="3%"> Age</td>
                    <td align="left"  width="20%">&nbsp;
                        <apex:inputField value="{!st.Age__c}" styleClass="nor" style="background-color:yellow;"></apex:inputField>
                    </td>
                </tr>
                <tr>
                    <td align="right">ContactNo.</td>
                    <td align="left"> &nbsp;
                        <apex:inputField value="{!st.ContactNo__c}" styleClass="nor" style="background-color:yellow;"></apex:inputField>
                    </td>
                    <td align="right">Email</td>
                    <td align="left"> &nbsp;
                        <apex:inputField value="{!st.Email__c}" styleClass="nor" style="background-color:yellow;"></apex:inputField>
                    </td>
                </tr>
                <tr>
                    <td align="right">Designation</td>
                    <td align="left"> &nbsp;
                        <apex:inputField value="{!st.Designation__c}" styleClass="nor" style="background-color:yellow;"></apex:inputField>
                    </td>
                    <td align="right">Qualification</td>
                    <td align="left"> &nbsp;
                        <apex:inputField value="{!st.Qualification__c}" styleClass="nor" style="background-color:yellow;"></apex:inputField>
                    </td>
                </tr>
                <tr>
                    <td align="right">Salary</td>
                    <td align="left"> &nbsp;
                        <apex:inputField value="{!st.Salary__c}" styleClass="nor" style="background-color:yellow;"></apex:inputField>
                    </td>
                    <td align="right"></td>
                    <td align="left"> &nbsp;
                    </td>
                </tr>
                <tr>
                    <td colspan="4">
                        <center>
                            <apex:commandButton value="Save Record" action="{!InsertData}" style="width:170px;height:25px;" reRender="form">
                            </apex:commandButton>
                        </center>
                    </td>
                </tr>
            </table>
        </apex:pageBlock>
        <div style="clear:both; height:40px;"> </div>
       
        <!-----------Page Block------->
        <apex:pageBlock title="Employee Records">
            <apex:pageBlockTable value="{!employees}" var="row" headerClass="TableTitle">
                <apex:column headerValue="Action" styleClass="font" headerClass="TableTitle">
                    <apex:outputLink title="" value="/{!row.id}/e?retURL=/apex/{!$CurrentPage.Name}" style="font-weight:bold">Edit</apex:outputLink>&nbsp;|&nbsp;
                    <a href="javascript:if (window.confirm('Are you sure want to delete this record?')) DeleteEmployeeData('{!row.Id}');" style="font-weight:bold">Del</a>
                </apex:column>
                <apex:column styleClass="font" headerClass="TableTitle">
                    <apex:facet name="header">  
                        <apex:commandLink action="{!ViewData}" value="Name{!IF(sortExpression=='name',IF(sortDirection='ASC','▼','▲'),'')}" id="cmdSort">
                            <apex:param value="name" name="column" assignTo="{!sortExpression}" ></apex:param>
                        </apex:commandLink>
                    </apex:facet>{!row.Name}
                </apex:column>
                <apex:column styleClass="font" headerClass="TableTitle">
                    <apex:facet name="header">  
                        <apex:commandLink action="{!ViewData}" value="Age{!IF(sortExpression=='Age__c',IF(sortDirection='ASC','▼','▲'),'')}" id="cmdSortAge">
                            <apex:param value="Age__c" name="column" assignTo="{!sortExpression}" ></apex:param>
                        </apex:commandLink>
                    </apex:facet>{!row.Age__c}
                    <apex:facet name="footer"> <Center><span style="color:red">Max: </span>   {!maxAge}  </Center> </apex:facet>
       <!-- Column headers and footers are controlled by the facets.-->
                </apex:column>
                <apex:column styleClass="font" headerClass="TableTitle">
                    <apex:facet name="header">  
                        <apex:commandLink action="{!ViewData}" value="Salary{!IF(sortExpression=='Salary__c',IF(sortDirection='ASC','▼','▲'),'')}" id="cmdSortSalary">
                            <apex:param value="Salary__c" name="column" assignTo="{!sortExpression}" ></apex:param>
                        </apex:commandLink>
                    </apex:facet>{!row.Salary__c}
                    <apex:facet name="footer"> <Center><span style="color:red">Sum: </span> {!salarySum}  </Center> </apex:facet>
                </apex:column>
                <apex:column styleClass="font" headerClass="TableTitle">
                    <apex:facet name="header">  
                        <apex:commandLink action="{!ViewData}" value="Contact No {!IF(sortExpression=='ContactNo__c',IF(sortDirection='ASC','▼','▲'),'')}" id="cmdSortContact">
                            <apex:param value="ContactNo__c" name="column" assignTo="{!sortExpression}" ></apex:param>
                        </apex:commandLink>
                    </apex:facet>{!row.ContactNo__c}
                </apex:column>
                <apex:column styleClass="font" headerClass="TableTitle">
                    <apex:facet name="header">  
                        <apex:commandLink action="{!ViewData}" value="Email {!IF(sortExpression=='Email__c',IF(sortDirection='ASC','▼','▲'),'')}" id="cmdSortEmail">
                            <apex:param value="Email__c" name="column" assignTo="{!sortExpression}" ></apex:param>
                        </apex:commandLink>
                    </apex:facet>{!row.Email__c}
                </apex:column>
                <apex:column styleClass="font" headerClass="TableTitle">
                    <apex:facet name="header">  
                        <apex:commandLink action="{!ViewData}" value="Qualification {!IF(sortExpression=='Qualification__c',IF(sortDirection='ASC','▼','▲'),'')}" id="cmdSortQualification_">
                            <apex:param value="Qualification__c" name="column" assignTo="{!sortExpression}" ></apex:param>
                        </apex:commandLink>
                    </apex:facet>{!row.Qualification__c}
                </apex:column>
                <apex:column styleClass="font" headerClass="TableTitle">
                    <apex:facet name="header">  
                        <apex:commandLink action="{!ViewData}" value="Designation {!IF(sortExpression=='Designation__c',IF(sortDirection='ASC','▼','▲'),'')}" id="cmdSortAgeDesignation">
                            <apex:param value="Designation__c" name="column" assignTo="{!sortExpression}" ></apex:param>
                        </apex:commandLink>
                    </apex:facet>{!row.Designation__c}
                </apex:column>
            </apex:pageBlockTable>
        </apex:pageBlock>
        <apex:actionFunction action="{!DeleteEmployeeData}" name="DeleteEmployeeData" reRender="form" >
            <apex:param name="EmployeeDataid" value="" assignTo="{!SelectedEmployeeDataId}"/>
        </apex:actionFunction>
    </apex:form>
</apex:page>

3 comments:

Governor Limits Example-Too Many DML Statements :151

Governor Limits Example : Too Many DML Statements :151 (Sunil Sharma) Example:Code Hitting Governor Limits System.LimitExceptio...