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;
        }
    }
    此刻,静下心来学习
  • 相关阅读:
    gcd
    Kuglarz
    三分题解
    杜教筛
    第一组dp解题报告
    dp总结1
    cf-BitwiseXor
    6.6总结
    图论总结
    CF1309总结
  • 原文地址:https://www.cnblogs.com/bandariFang/p/6220405.html
Copyright © 2011-2022 走看看