Scenario :1 1. Create a DynamicDMLExample 1.DataMemebers 1.Name : String 2.Industry: String 3.Phone :String 4.accs :List<Account> 5.flag :Boolean 2.Create a constructor assign flag as true 3.create a method search() 1.Fetch all the account records from Account which same name given in the VF page 4.Create method create(); 1.This should take a new account record and returnto detail page of account new accountrecord creatd Class : public class DynamicDMLExample { public String name {set;get;} public String industry {Set;get;} public String phone {set;get;} public Boolean flag {set;get;} public List<Account> accs {Set;get;} public DynamicDMLExample(){ flag=true; } public void search(){ flag=false; accs=[select id,name,Industry from Account where name=:name]; } public PageReference create(){ Account a=new Account(); a.name=name; a.industry=industry; a.phone=phone; insert a; PageReference p=new PageReference('/'+a.id); return p; } } Visualforce: <apex:page controller="DynamicDMLExample" > <apex:form > <apex:pageBlock title="Account Create"> <apex:pageBlockButtons > <apex:commandButton value="Search" action="{!search}"/> <apex:commandButton value="create" disabled="{! flag}" action="{!create}"/> </apex:pageBlockButtons> <apex:pageBlocksection columns="1"> <apex:pageBlocksectionItem > <apex:outputLabel value="Account Name" /> <apex:inputText value="{!name}" /> </apex:pageBlocksectionItem> <apex:pageBlocksectionItem > <apex:outputLabel value="Industry" /> <apex:inputText value="{!industry}" /> </apex:pageBlocksectionItem> <apex:pageBlocksectionItem > <apex:outputLabel value="Phone" /> <apex:inputText value="{!phone}" /> </apex:pageBlocksectionItem> </apex:pageBlocksection> </apex:pageBlock> <apex:pageBlock title="Account Records" rendered="{! !ISNULL(accs)}"> <apex:pageBlockTable value="{!accs}" var="a"> <apex:column> <apex:commandLink value="select" action="{!URLFOR($Action.Account.edit,a.id)}"/> </apex:column> <apex:column value="{!a.name}" /> <apex:column value="{!a.industry}" /> </apex:pageBlockTable> </apex:pageBlock> </apex:form> </apex:page> ======================================================================== Scenario :2 1.Create a wrapper class AccountWrap with two datamemembers 1.flag :Boolean 2.acc : Account 3.AccountWrap(Account acc) 2.Create a AccountLineItems class 1. accounts :List<AccountWrap> 2.AccountLineItems(): 1.Fetch all the accounts records from Sobject :Account 2. Create a list of AccoutWrap objects based on the records fetched from soql 3. Create a method deleteRecords() 1. fetch all the account records which are selected from vf page 2.Delete the selected records 3.run the soql query and recreate AccountWrapper list public class AccountWrap { public Boolean flag {set;get;} public Account acc{set;get;} public AccountWrap(Account acc){ this.acc=acc; } } ---------------------------------------------- public class AccountLineItems { public List<Accountwrap> accounts {Set;get;} public AccountLineItems(){ accounts=new List<AccountWrap>(); soqlRecords(); } public void soqlRecords(){ List<Account> result=[select id,name,Industry,phone from Account]; for(Account a:result){ AccountWrap aw=new AccountWrap(a); accounts.add(aw); } } public void deleteRecords(){ List<Account> records=new List<Account>(); for(AccountWrap aw:accounts){ if(aw.flag==true){ records.add(aw.acc); } } Database.delete(records,false); accounts.clear(); soqlrecords(); } } ----------------------------------------- <apex:page controller="AccountLineItems"> <apex:form> <apex:pageBlock title="Account List"> <apex:pageBlockButtons> <apex:commandButton value="Delete" action="{!deleteRecords}" /> </apex:pageBlockButtons> <apex:pageBlockTable value="{!accounts}" var="a"> <apex:column> <apex:inputCheckBox value="{!a.flag}" /> </apex:column> <apex:column value="{!a.acc.name}" /> <apex:column value="{!a.acc.industry}" /> <apex:column value="{!a.acc.phone}" /> </apex:pageBlockTable> </apex:pageBlock> </apex:form> </apex:page> ========================================================================
Tuesday, 12 April 2016
Soql And DML Example
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment