• BALA_RAM
  • NEWBIE
  • 25 Points
  • Member since 2012
  • Salesforce Certified Developer

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 5
    Questions
  • 25
    Replies
Hi ,
While I am  trying to deploy the package using workbench ,getting the error as"No file uploaded for deployment."
Performed below Steps:
1.Created the XML with all components.
2.Using XML, Retrieved the package from source sandbox using workbench .
3.Tried to deploy the retrieved package into target sandbox then getting error as"No file uploaded for deployment."
Expecting reasons for issue.
i) Target sandbox issue 
ii) Package issue
So I have tried to validate the same retrieved package in source sandbox itself but getting same error"No file uploaded for deployment".

NOTE: While retrieving the package, i didn't get any errors and whatever i have included the components,those are available in retrived package that means no issues with package.
If any one knows this issue,Please provide your inputs ASAP and dothe needful.

Please give me help.

 

My visualforce page view

                                               dropdown Product Family     & Search "Button"

                                                          TextBox                           & Search "Button"  

 

When i click Search button it will display List of Records[List View] Every record Has Add "Button".

When i'm clic Add button how can I display the Recod into another visualforce page

 

<apex:page controller="Stringdisplay">
<apex:form id="myForm">
<apex:actionFunction name="productSearch" action="{!AddtoCart}" >
<apex:param name="ab" value="" assignTo="{!getCartID}" />
</apex:actionFunction>
<!--<apex:actionFunction name="displayContacts" action="{!getdisplayName}" reRender="myForm" />-->
<!--<center align="Right">
<b><apex:commandLink value="+Add New Product" action="/01t/e?retURL=%2F01t%2Fo"/></b></center>-->
<apex:pageBlock >
<center>
Search by Product Category<p/>
<apex:selectList size="1" value="{!strSelAccount}" onclick="displayContacts()">
<apex:selectOptions value="{!distinctrecs}">
</apex:selectOptions>
</apex:selectList>
&nbsp;&nbsp;<apex:commandButton value="Search" action="{!getdisplayName}"/>
<p/>
<apex:selectRadio value="{!searchbutton}">
<apex:selectOptions value="{!Selectsearching}"/>
</apex:selectRadio>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<apex:inputText value="{!str}" size="30"/> &nbsp;&nbsp;
<apex:commandButton value="Search" action="{!submit}"/>
</center>
</apex:pageBlock>
<p/>
<apex:pageBlock rendered="{!renderFirst}">
<apex:outputPanel id="out1">
<apex:pageblockTable value="{!lstCon}" var="con" id="out">
<apex:column value="{!con.Productcode}" headerValue="Code"/>
<apex:column value="{!con.Family}" headerValue="Category"/>
<apex:column headerValue="Description">
<apex:commandLink value="{!con.Description}" action="{!redirect}">
<apex:param value="{!con.id}" assignTo="{!pid}" name="p1"/></apex:commandLink>
</apex:column>
<apex:column value="{!con.Servings_Container__c}" headerValue="Container"/>
<apex:column headerValue="Add to Cart">
<apex:commandButton value="Add" onclick="test('{!con.id}')"/>
</apex:column>
</apex:pageblockTable>
</apex:outputPanel>
</apex:pageBlock>
</apex:form>
<p/>
<apex:form >
<apex:pageBlock rendered="{!isdisplay}">
<apex:pageBlockTable value="{!showrecord}" var="record">
<apex:column headerValue="Code" value="{!record.ProductCode}"/>
<apex:column headerValue="Category" value="{!record.Family}"/>
<!--<apex:column headerValue="Name" Value="{!record.name}"/>-->
<apex:column headerValue="Description">
<apex:commandLink Value="{!record.Description}" action="{!redirect}">
<apex:param value="{!record.pid}" assignTo="{!pid}" name="p1"/></apex:commandLink>
</apex:column>
<apex:column headerValue="Container" value="{!record.container}"/>
<apex:column headerValue="Add to Cart">
<apex:commandButton value="Add" onclick="test('{!record.pid}')"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
<script>
function test(val)
{
alert(val);
window.open('/apex/Mycart?ide='+val);
//productSearch(val);
}
</script>
</apex:page>

 

 

Controller

 

public class Stringdisplay
{
public List<wraper> wrap {get;set;}
public string getCartID{get;set;}
public boolean isdisplay{get;set;}
public boolean renderFirst{get;set;}
//public list<wrapper> SelectedprodList{get;set;}
String str=null;
String myname,myphone,myFamily,myDescription,myProductCode,myContainer,myId;
public void setstr(String astr)
{
this.str=astr;
}
public String getstr()
{
return null;
}
public PageReference submit()
{
isdisplay=true;
renderFirst = false;
return null;
}
Public PageReference AddtoCart()
{
//Stringdisplay sd = new Stringdisplay();
//system.debug('###'+getCartID);
//Product2 p =[Select Id,Name,Productcode from Product2 where Id=:ApexPages.currentPage().getParameters().get('Id')];
pageReference ref = new pageReference('/apex/Mycart?ide='+getCartID);
//ref.getParameters().put('Id',pid);
ref.setRedirect(true);
return ref;
}
public Stringdisplay()
{
isdisplay= false;
renderFirst = false;
//rendered= false;
}
public String searchbutton{get;set;}
public List<SelectOption> getSelectsearching()
{
List<SelectOption> options=new List<SelectOption>();
options.add( new SelectOption('Search by Description','Search by Description'));
options.add( new SelectOption('Search by Burger Maker Code','Search by Burger Maker Code'));
options.add( new SelectOption('Search by Sysco Code ','Search by Sysco Code'));

return options;
}

public List<wraper> getshowrecord()
{
String str3=str+'%';
if(searchbutton=='Search by Description')
{
List<product2> product=[select Id,Name,Description,Family,ProductCode,Servings_Container__c from Product2 where Description Like:str3];
wrap = new List<wraper>();
for(product2 a1:product)
{
myname = a1.name;
myFamily = a1.Family;
myDescription=a1.Description;
myProductCode=a1.ProductCode;
myContainer=a1.Servings_Container__c;
myId=a1.Id;
wrap.add(new wraper(myname,myFamily,myDescription,myProductCode,myContainer,myId));
}
return wrap ;
}
if(searchbutton=='Search by Burger Maker Code')
{
List<product2> product=[select id,Name,Description,Family,ProductCode,Servings_Container__c from Product2 where ProductCode like:str3];
wrap = new List<wraper>();
for(product2 a1:product)
{
myname = a1.name;
myFamily = a1.Family;
myDescription=a1.Description;
myProductCode=a1.ProductCode;
myContainer=a1.Servings_Container__c;
myId=a1.Id;
wrap.add(new wraper(myname,myFamily,myDescription,myProductCode,myContainer,myId));
}
return wrap;
}
if(searchbutton=='Search by Sysco Code')
{
List<product2> product=[select Id,Name,Description,Family,ProductCode,Servings_Container__c from Product2];
wrap = new List<wraper>();
for(product2 a1:product)
{
myname = a1.name;
myFamily = a1.Family;
myDescription=a1.Description;
myProductCode=a1.ProductCode;
myContainer=a1.Servings_Container__c;
myId=a1.Id;
wrap.add(new wraper(myname,myFamily,myDescription,myProductCode,myContainer,myId));
}
}
return null;
}

public string pid {get; set;}
Public class wraper
{
public String name {get;set;}
public String Family {get;set;}
public String Description{get;set;}
public String ProductCode{get;set;}
public String Container{get;set;}
public string pid {get; set;}
Public wraper(String name,String Family,String Description,String ProductCode,String Container,String Id)
{
this.name=name;
this.Family=Family;
this.Description=Description;
this.ProductCode=ProductCode;
this.Container=Container;
this.pid = Id;
}
}

public PageReference redirect()
{
System.debug('---------->'+pid);
pagereference ref = new pagereference('/'+pid);
return ref;
}
/*Public PageReference AddtoCart()
{
//Stringdisplay sd = new Stringdisplay();
//system.debug('###'+sd.getCartID);
pageReference ref = new pageReference('/apex/Mycart?ide='+getCartID);

//ref.getParameters().put('Id',pid);
ref.setRedirect(true);
return ref;
} */

public List<Product2> lstCon{get;set;}
public string strSelAccount{get;set;}
public boolean rendered{get;set;}
public List<Product2> getDisplayContacts()
{
lstCon=[select Id,Name,Description,Family,ProductCode,Servings_Container__c from Product2 where Family=:strSelAccount];
system.debug('Size is '+lstCon.size());
renderFirst = true;
return lstCon;
}

public List<SelectOption> getdistinctrecs()
{
List<SelectOption> options=new List<SelectOption>();
Map<String,String> prodMap=new Map<String,String>();
Product2[] prod=[select Id,Name,Description,Family,ProductCode,Servings_Container__c from Product2 order by Family];
for(Product2 prods:prod)
{
prodMap.put(prods.Family,prods.Family);
}
Set<String> prodNames=prodMap.keySet();
List<String> prodids=prodMap.values();
List<String> prodNames1= new List<String>(prodNames);
options.add(new SelectOption('--None--','--None--'));
for(integer i=0;i<prodNames.size();i++)
{
options.add(new SelectOption(prodids.get(i),prodNames1.get(i)));
}
return options;
}
public Void getDisplayName()
{
isdisplay= false;
if(strSelAccount=='--None--')
rendered=false;
else
rendered=true;
getDisplayContacts();
}
}

trigger BulkCreating180upsell on Opportunity (after Update) 
{      
  List<Opportunity> o = new List<Opportunity>();
  //List<account> acc = new List<account>();
  
  Set<id>accId = new Set<Id>();
    //for(Account a :acc)
 // accId.add(aId);
    
  Set<Id> setId = new Set<Id>();
   for(Opportunity opp :trigger.new)
   {
   setId.add(opp.Id);
   accId.add(opp.accountId);
   }
  
            
      //opp.adderror(opp.AccountId);          
     // Account acc=[Select id,Name from Account where id=:opp.AccountId];        
      /*if(opp.StageName=='Closed Won' && opp.Name =='Up-Sell 90 days'+' ('+ mapacc.ContainsKey.Name +')')
      {                                   
        o.add(new Opportunity (Name ='Up-Sell 180 days'+' ('+ acc.Name +')',CloseDate=date.today().adddays(180),AccountId=mapacc.id,StageName='Prospecting'));         
      }*/
      Map<Id, Account> mapacc = new Map<Id, Account>([Select id,Name from Account where Id=:accId]);
      Map<Id, Opportunity> mapopp = new Map<Id, Opportunity>([Select id,Name,CloseDate,AccountId,StageName from Opportunity where Id=:setId]);
      
      for(Opportunity opp :trigger.new)
      {   
        /*opp.Name = mapopp.get(opp.Id).opp.'Up-Sell 180 days'+' ('+ mapacc.Name +')';
        opp.CloseDate=mapopp.get(opp.Id).opp.date.today().adddays(180);
        opp.AccountId=mapopp.get(opp.Id).opp.mapacc.Id;
        opp.StageName=mapopp.get(opp.Id).opp.'Prospecting';*/
        
        opportunity op=mapopp.get(opp.Id);
        Account ac=mapacc.get(opp.accountId);
         if(op.StageName=='Closed Won' && op.Name =='Up-Sell 90 days'+' ('+ ac.Name +')')
      {         
             /*Opportunity oppInsert = new Opportunity();
             oppInsert.Name = 'Up-Sell 180 days'+' ('+ aFullName +')';
             oppInsert.CloseDate = date.today().adddays(180);
             //oppInsert.AccountId = convertedLead.ConvertedAccountId;
             oppInsert.StageName = 'Prospecting';
             oppInsert.OwnerId=UserInfo[0].id;*/
                          
       o.add(new Opportunity (Name ='Up-Sell 180 days'+' ('+ ac.Name +')',CloseDate=date.today().adddays(180),AccountId=ac.id,StageName='Prospecting',LeadSource=opp.LeadSource));         
      }  
        
      }  
      //System.debug('Account Id is'+opp.AccountId);  
  insert o; 
}

public class accountlistpage{
// ApexPages.StandardSetController must be instantiated
// for standard list controllers
public ApexPages.StandardSetController setCon {
get {
if(setCon == null) {
setCon = new ApexPages.StandardSetController(Database.getQueryLocator(
[select name,phone from Account]));
}
return setCon;
}
set;
}
// Initialize setCon and return a list of records
public List<Account> getAccount() {
return (List<Account>) setCon.getRecords();
}
}

trigger  EmailAlert on Task (after Update) {

for(Task m : trigger.new)
{
if (m.Mail_Send_Check__c == True ) {
//User p = [SELECT Id,Email FROM User WHERE UserRole = 'Team lead/Supervisor'];
List <User> p = [SELECT Id,Email,Name FROM User WHERE UserRoleId IN(select id from UserRole where Name = 'Team lead/Supervisor')];
  
  Set<string> users = new Set<string>();
  List<Task> taskList = new List<Task>();
  for(Integer i = 0; i< p.size(); i++)
   {
      users.add(p[i].id);
   //}    
    //for(string requireduser :users)  
   //{ 
    Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
     mail.setTargetObjectId(p[i].Id);
     mail.setTemplateId('00XF0000001P4ll');
     mail.saveAsActivity=false;
     //mail.add(mail);
     Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
     //Messaging.sendEmail(mail);
     Task tt = new Task();
 //tt.Ownerid = P[0].id;
  tt.Ownerid = p[i].id;
  tt.Status = 'Not Started';
  tt.ActivityDate = date.today();
  tt.Subject = 'Alert Task';
  taskList.add(tt);
   }
 
 insert taskList;
  }
 }
}


i have one object called AGREEMENT  with in this object having 2 fields called..agrement start date,agrement end date ...and i have one pik lish called agrement status ...if i give  expire date(i means yesterday date) pik list still in inefect mode ..but i want to change piklist status in effect to  EXPIRE.. how can i go through dis can any one help me plz
Hi All,

I have scenario to calculate the sum of child amount in Parent opp.

I have created trigger its working for Insert and update its not  working in Isdelete();

Can anyone help on this?

The following code which is worked for isinsert() and isupdate() and not updated in Isdelete.

trigger opprollup on Opportunity (after insert, after update,after delete)
{
  
   Set<Id> oppIds = new Set<Id> ();
     Set<Id> poppIds = new Set<Id> ();
   Public List <Opportunity > opps = new List<Opportunity >();
     Public List <Opportunity > popps = new List<Opportunity >();
   List <AggregateResult> groupedResults  = new List<AggregateResult>();
   
    
if(trigger.isInsert || trigger.isUpdate)
{
           for(Opportunity opp:trigger.new)
           {
             oppIds.add(opp.Parent_Opportunity__c );
            }
            opps = [Select Id,amount From Opportunity  Where Id In :oppIds  ];
            groupedResults  = [SELECT SUM(Amount) FROM Opportunity where Parent_Opportunity__c IN:oppIds];

  for(integer j=0; j<groupedResults  .size(); j++ )
  
       {
         for(integer i=0; i<opps  .size(); i++ )
         {  
         opps[i].Child_Total_Amount__c=(Decimal) groupedResults[j].get('expr0');
         }
  
        }
  
   update(opps );


  }
 
if(Trigger.IsDelete )
{

          
            popps = [Select Id,amount From Opportunity  Where Id In :oppIds  ];
            groupedResults  = [SELECT SUM(Amount) FROM Opportunity where Parent_Opportunity__c IN:oppIds];

  for(integer j=0; j<groupedResults  .size(); j++ )
  
       {
         for(integer i=0; i<popps  .size(); i++ )
         {
         System.Debug('VALUEEEEEEEEEEEEEEEEE'+ popps[0].amount);
         opps[i].Child_Total_Amount__c=(Decimal) groupedResults[j].get('expr0')-popps[0].amount;
         }
  
        }
  
   update(opps );



}
 

}




Thanks in advance!
Hi all,

I am showing list of attachments against a record in the visualforce page, also showing a DELETE link  before each attachment. Now i want to delete the particular attachment when clicking on DELETE button. can someone help me out.

<apex:column >
     <apex:facet name="header">Attachment</apex:facet>
           <table border = '0' cellspacing="0" cellpadding="0">
              <tr><td><b><center><apex:outputLink value="/apex/AttachmentUpload?id={!card.time.id}" rendered="{!!(card.time.id ==                                                                                                                null)}">Upload</apex:outputLink></center></b><br/></td>
                        <td><apex:repeat var="attach" value="{!card.time.Attachments}">
                            <apex:outputLink value="/servlet/servlet.FileDownload?file={!attach.id}" target="_blank">
                                {!attach.Name}
                            </apex:outputLink>&nbsp;&nbsp;&nbsp;<b><a href="javascript:if (window.confirm('Are you sure?')) DeleteFile('{!attach.Id}');" style="font-weight:bold">Del</a></b><br/>
                        </apex:repeat></td></tr></table>
                </apex:column>

 Thanks,
Uday
  • December 26, 2013
  • Like
  • 0

i have 10 users, these 10 users having same profiles here i have a scenario from these 10 users 5 users have delete permissions and 5 users do not have delete permissions ... how can we achieve this scenario..............? any body help me..

So I'm I'm writing a test method for some code that queries RecordType.Name on the Opportunity object. I'm able to grab the RecordType ID and assign it to the Opportunity. System.debug shows that the RecordType I query in the test method has an ID and Name as well.

 

For some reason, it's telling me that Opportunity.RecordType.Name is null, even after I've assigned a RecordType to the Opportunity. Anyone know what's going wrong here? Here's the code:

 

RecordType UpsellRT = [SELECT Id,Name FROM RecordType WHERE sObjectType = 'Opportunity' AND Name = 'UpSell' LIMIT 1];

Opportunity OPP = new Opportunity(
	Name = 'Test Opp',
	RecordTypeId = UpsellRT.Id,
	CloseDate = Date.valueOf('2013-01-01'),
	StageName = 'Closed Won');
insert OPP; 

Hi all,

I used upsert sObject; statement , after executing this statement I need to know upsert is inserted or updated record

  • September 30, 2013
  • Like
  • 0

Hi,

 

I want to display Values from map in VF and also update the values.

 

Public void getListAnswerMap(){
AnswerMap =new Map<String,List<Answer__c>>();
for (Answer__c a : [Select Id,C__c,Review__r.Dealer__r.Name,NC__c,R__c,Comment__c,Question1__r.Name,Question1__r.Section__c,Question1__r.Source_Document__c,Question1__r.Resp_Party__c from Answer__c]) {
if(AnswerMap.containsKey(a.Question1__r.Section__c)){
AnswerMap.get(a.Question1__r.Section__c);
}
else{
AnswerMap.put(a.Question1__r.Section__c, new List<Answer__c>());

}
System.debug('List of answers'+AnswerMap.size());

}
planskey=AnswerMap.Keyset();
System.debug('size of keys'+planskey);
keyslist = new List<String>();
List<String> keyslistTemp = new List<String>();
keyLableMap = new Map<String, String>();
keyslistTemp.add('Security Perfected');
keyLableMap.put('Security Perfected', Label.Security_Perfected);
keyslistTemp.add('Security Information Properly Documented');
keyLableMap.put('Security Information Properly Documented', Label.Security_Information_Properly_Documented);
keyslistTemp.add('Documentation');
keyLableMap.put('Documentation', Label.Documentation);

for(String keyName:keyslistTemp){
if(planskey.contains(keyName)){
keyslist.add(keyName);
System.debug('List of keys'+keyslist);
}
}

}

  • September 29, 2013
  • Like
  • 0

Our company have 2 separate lines of business, for example company A and company B.


These 2 companies have completely separate branding and styling behind them.

 

We have been sold one Salesforce community and have been told by a salesforce sales engineer that this is possible to do through using CSS linked to portal user profile records but we are unable to find any documentation around this.

 

Does anyone have an idea how this could be completed.

i  am doing with  small project, i need help  from  real time people,  i working with  travel project which  books hotels and  flight tickets and holiday packages , domestic packeges,  so  please  any one give me idea  about  "" what   possible objects  i should need  to take  just  tell me  by  guessing"..............

 

what  are the possible objects are there for  travel site.  please  tell me its a big  help  for me.

We have just rolled out salesforce knowledge in our org, but for some reason, the detach button does not work from the case page layout. Is there any way that I can attach/detach articles manually via Apex? I never looked into this functionality as we used the out of the box functionality for creating articles from the case. Thank you all!

 

Michael

On Accounts, there is a related list called - Account Technical Profile . One Account can only have one ATP record. It will never have more than one ATP record.

There is a master details relationship between Account and ATP custom object.

 

I have another lookup field on Account - Copy_TechnicalProfile. I would like this field to be populated when the Account has an ATP record created.  Here is my trigger.

 

trigger Capture_AccountTechnicalProfile on Account (before update) {

Set<Id> accIds = new Set<Id>();
Map(Id, Account> accmap;

for(Account acct: trigger.new)
{
    if(acct.Account_Technical_Profile__Id != null)
    {
        accIds.add(acct.Account_Technical_Profile__Id);
    }

accmap = [select Id, Copy_Account_Technical_Profile__c FROM Account where Account_Technical_Profile__Id IN : accIds];

    for(Account acct : trigger.new)
    {
        if(acct.AccountId !=null && accmap.containsKey(acct.Account_Technical_Profile__Id)
        {
            
            Copy_Account_Technical_Profile__c = accMap.get(acct.Account_Technical_Profile__Id).Copy_Account_Technical_Profile__c;
        }
}

 

 

I am getting this error message:-

 

Error

Error: Compile Error: unexpected token: 'Map' at line 5 column 0

 

 

 

 

 

Hello,

 

I have the following trigger, aimed to populate a Contact Lookup field with the Contact Id of a related record called Rep ID.

 

Here is the trigger I have:

trigger AccommodationsBeforeTrigger on Accommodations__c (before insert, before update) 
{
    for (Accommodations__c a: trigger.new)
    {
        a.Contact__c = a.Rep_ID__r.Contact__r.Id;
    } 
}

 

This trigger is returning a blank value for the Contact lookup field whenever a record is saved.

However, what's interesting is that if I create a formula field, and use my trigger to set the Contact lookup value equal to this formula field, it works. 

For example, I created a Formula field: test__c whose value is Rep_ID__r.Contact__r.Id.

 

Then, I adjusted my trigger to the following

trigger AccommodationsBeforeTrigger on Accommodations__c (before insert, before update) 
{
    for (Accommodations__c a: trigger.new)
    {
        a.Contact__c = a.Test__c;
    } 
}

 I don't get why it works this way and not the first way since the formula code is the same as the code in my first trigger example. I'd like the trigger to work without the need to create a separate field.

 

Thanks!

Mikey

Hi

 

I am very new to salesforce and apex programming...so needed some help...

I have created a custom object  with some text fields as Name,Address...etc and a lookup field .Now when I select a record or a value  from the lookup field I need the text fields to be filled automatically  ,based on which value is selected from lookup field.

 

Any help or guidance on this will be great !!!

Thanks in advance

  • October 17, 2011
  • Like
  • 1

I would like to write a trigger whereby the user can enter the name of a Contact via a lookup field and the Contact's address and phone number will be automatically displayed in textfields. Please help. Thank you.

I am new to the apex scene and with the help of another developerforce.com community member I was able to create a simple trigger. The trigger acts as such: upon an Account being marked as Type 'Customer', create a new custom object called Conversion and map over the appropriate fields.  Code below

 

 

trigger AddConversionUponAccountCustomer on Account (after insert, after update) {
    Conversions__c[] cList = new Conversions__c[]{};
    for(Account a : trigger.new)
    {
        if(a.Type == 'Customer')
        cList.add(new Conversions__c (Name = a.name, phone__c = a.Phone, email__c = a.Email__c));
        }
        insert cList;
}

 

The trigger works great, but I need to be able to grab the Account that the Conversions record was created off of and attach it.  I created a new lookup field called Account__c under my Conversions custom object, but I am having trouble integrating this into my trigger so that when the Account is marked 'Customer', a new Conversions record is created, with all of the appropriate fields mapped over, AND THE ACCOUNT IS ATTACHED IN THIS FIELD.  Can somone please offer me some advice on how I can incorporate a lookup field into the above? (Did I mention I am new :p)

 

 

So we're looking to be able to auto-populate a field within the Case object (Entitlement) upon case creation with the value of a field from a custom field from the Accounts object (Entitlement__c).  Looks like from what we've been told, this can be done only via Apex code.  Can someone give any suggestions as to how it should be written.....thanks. 

I want to convert DateTime Value to Date Value , Please help me out ????????????
Is there a way to auto populate several fields based on the value from a lookup field?
 
For example, I have a custom lookup field on the Account object. When the user selects the account, I would like three custom fields (text boxes) to be auto-populated with the address, city and state from the account the user selected.
 
Is this possible?  If so, how?
 
Thanks.