zoukankan      html  css  js  c++  java
  • 005_重写 Standard Delete Button

    {!REQUIRESCRIPT("/soap/ajax/32.0/connection.js")}
    {!REQUIRESCRIPT("/soap/ajax/32.0/apex.js")}
    
    var record = new sforce.SObject("Opportunity");
    record.Id = '{!Opportunity.Id}';
    
    //copy opportunity line items
    result = sforce.connection.query("Select PricebookEntry.Product2.Name, Quantity, TotalPrice From OpportunityLineItem WHERE OpportunityId = '{!Opportunity.Id}' and (NOT Name like '%Discount%')");
    records = result.getArray("records");
    
    var strProductNames = '';
    for(var i=0; i<records.length ; i++){
     strProductNames += 'PRODUCT NAME: ' + records[i].PricebookEntry.Product2.Name + ' --- QUANTITY: ' + records[i].Quantity + ' --- TOTAL PRICE: $ ' + records[i].TotalPrice +',
    ';
    }
    
    if(strProductNames.length>0){
     strProductNames = strProductNames.substring(0,strProductNames.length-2);
    }
    record.Samples_Sent__c = strProductNames;
    
    //delete opportunity line items
    var lineItems = sforce.connection.query("select id from opportunitylineitem where opportunityid = '{!Opportunity.Id}'")
    var oliIds = []
    var qri = new sforce.QueryResultIterator(lineItems)
    while(qri.hasNext())
        oliIds.push(qri.next().Id)
    sforce.connection.deleteIds(oliIds)
    
    sforce.connection.update([record]);
    window.location.reload();
    

      

    -------------------------------------------------------------------以下的方法是以传统的,适用于较多的业务逻辑的方式。页面->Controller

    以后会用JS直接删除,但是在加载.js时候出现问题,会在以后进一步追踪完善:

    <apex:page standardController="Opportunity" >
    <!--extensions="accountDelete" action="{!deleterecord}"-->

    <script type="text/javascript">
    var __sfdcSessionId = '{!GETSESSIONID()}';
    </script>

    <script src="../../soap/ajax/35.0/connection.js" type="text/javascript"></script>

    <script type="text/javascript">

    window.onload = setupPage;

    function setupPage() {
    if('{!Opportunity.Name}'=='ddd33'){
    alert('{!Opportunity.Name}');
    window.top.location = '/' + '{!Opportunity.Id}';
    } else{
    sforce.connection.deleteIds('{!Opportunity.Id}');
    alert('123456');
    window.top.location = '/' + '001/o'; }
    }

    </script>

    </apex:page>

    ——————————————————————————————————————————————————————————

    <apex:page standardController="Account" extensions="accountDelete" action="{!deleterecord}">
        <apex:pageMessages />
    </apex:page>

    public with sharing class accountDelete {
        apexpages.standardcontroller controller;
        public accountDelete(ApexPages.StandardController controller) {
            this.controller = controller;
        }
        public pagereference deleteRecord() {
            try {
                delete controller.getRecord();
                return new pagereference('/home/home.jsp');  //return new pagereference('/001/o');   ----------执行完controller 后跳转到的页面;
            } catch(exception e) {
                apexpages.addmessages(e);
            }
            return null;
        }
    }
    此刻,静下心来学习
  • 相关阅读:
    Codeforces Round #592 (Div. 2)C. The Football Season(暴力,循环节)
    Educational Codeforces Round 72 (Rated for Div. 2)D. Coloring Edges(想法)
    扩展KMP
    poj 1699 Best Sequence(dfs)
    KMP(思路分析)
    poj 1950 Dessert(dfs)
    poj 3278 Catch That Cow(BFS)
    素数环(回溯)
    sort与qsort
    poj 1952 buy low buy lower(DP)
  • 原文地址:https://www.cnblogs.com/bandariFang/p/6220405.html
Copyright © 2011-2022 走看看