Transaction Control using SavePoint and Rollback in Salesforce

SavePoint and Rollback will help us to maintain transaction for DML statement.
Suppose you  have written multiple lines of DML statements in a try block, If any error occurs during DML Operations, the operation will be rolled back to the most recent save point and the entire transaction will not be aborted.

Savepoint sp;
try{
   sp = Database.setSavepoint();
 
   Account a = new Account();
   a.Name = 'Test Account';
   insert a;
 
   Contact c = new Contact(Account = a.Id);
   c.FirstName = 'Biswajeet';
   c.LastName = 'Samal';
   insert c;
  }
catch(Exception e){
    Database.RollBack(sp);
}

In this example, if any error occurs while inserting the Account ‘a’ or Contact ‘c’, then the entire transaction will be rolled back to SavePoint ‘sp’, as specified in the catch section by Database.Rollback method.

Salesforce: Convert decimal value to integer using apex

If we convert decimal into integer like below code, it will compile without a problem, but at the time of execution, an error will occur.

Decimal mydecval = 15.0;
Integer myintval = Integer.valueOf(mydecval);

So, we should always use decimalvariable.intValue() to convert decimal value into integer.
Here is sample code:

Decimal mydecval = 15.0;
Integer myintval = dmydecval.intValue();

How to get default value of a picklist in apex controller?

String defaultVal = '';
Schema.DescribeFieldResult objDF = Lead.Status.getDescribe();
List<schema.picklistentry> pickVals = objDF.getPicklistValues();        
for (Schema.PicklistEntry pv: pickVals) {
    if (pv.isDefaultValue()) {
        defaultVal = pv.getValue();
    break;
    }    
}
system.debug('Picklist Default value is' + defaultVal);

How to Print a Visualforce page in Salesforce?

Controller:

public class PrintSample {
 
    public List<account> objList {get; set;}
    
    public PrintSample() {
        objList = new List<account>();
        objList = [SELECT Name, Phone FROM Account];
    }
}

Visualforce Page:

<apex:page showheader="false" controller="PrintSample">
    <apex:panelgrid width="100%" style="text-align:right;">
        <apex:form>
            <apex:commandlink value="Print" onclick="window.print();"></apex:commandlink>
        </apex:form>
    </apex:panelgrid>
    <apex:pageblock title="Account Information">
        <apex:pageblocktable value="{!objList}" var="a">
            <apex:column value="{!a.Name}"></apex:column>
            <apex:column value="{!a.Phone}"></apex:column>
        </apex:pageblocktable>
    </apex:pageblock>
</apex:page>

Output:

download