• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
MSCRM janmson
MS CRM顾问及二次开发
博客园    首页    新随笔    联系   管理    订阅  订阅

part of work 在frame中顯示實體

1.
Form _OnLoad
var _oArea;
fetchObj=new Object();
fetchObj.loadUserDefinedArea=_loadUserDefinedArea;
fetchObj.ExecuteQuery=_ExecuteQuery;
fetchObj.myalert=_myalert;
fetchObj.getFetchXml=_getFetchXml;
fetchObj.getLayoutXml=_getLayoutXml;
leftNavRename ('WriteInProducts','ProductPriceLevel','Write-In Products','Product Price Level');


Code

function leftNavRename(oldleftNav, newleftNav, oldName, newName)

{

    
var navItem = document.getElementById('nav'+oldleftNav);
    
if(navItem  != null)
    {
        navItem
=navItem.parentElement;    
        
var navItemNewParent=navItem.cloneNode(true);
        
var navItemNew=navItemNewParent.firstChild;
        navItemNew.id
='nav'+newleftNav;
        navItemNew.innerHTML 
= navItemNew.innerHTML.replace(oldName, newName);

        navItemNew.innerHTML 
= navItemNew.innerHTML.replace(oldName, newName);
        navItemNew.innerHTML 
= navItemNew.innerHTML.replace(oldleftNav, newleftNav);
        navItemNew.onclick
= function ()
        {

         loadArea(newleftNav,
null,prependOrgName("/isv/var_advfetch.aspx"));

          
        
var associatedViewIFrame = document.getElementById(newleftNav+ 'Frame');
            
            
if (associatedViewIFrame != null)
            {

                associatedViewIFrame.onreadystatechange 
= function LoadAdvanceFetch()
                {
                    
//完成狀態的話,才去把Button去掉
                     var oRender=associatedViewIFrame.contentWindow.document.body.all["resultRender"];
                        
if (associatedViewIFrame.readyState == 'complete' &&  oRender )
                    {
                        associatedViewIFrame.contentWindow.document.body.all[
"resultFrame"].contentWindow.document.body.innerHTML = "<table height='100%' width='100%' style='cursor:wait'><tr><td valign='middle' align='center'><img alt='' src='_imgs/AdvFind/progress.gif'/><br></td></tr></table>";
                         fetchObj.ExecuteQuery(oRender);
                    }
                }
            }

        }
        navItem.parentElement.appendChild(navItemNewParent);

    }

}

function _loadUserDefinedArea(sArea, sParams, sUrl, bIsvMode)
{
debugger;
if (!_oArea) _oArea = tdAreas.firstChild;

var o=null;

if (o)
{
if (o == _oArea) return false;
_oArea.style.display 
= "none";
o.style.display 
= "inline";
}
else
{
var sBaseUrl = "areas.aspx";

if (sUrl)
{
sBaseUrl 
= sUrl;
}


if (sParams)
{
sBaseUrl 
+= sParams;
}

html 
= "<iframe allowTransparency='-1' src='" + sBaseUrl;
html 
+= "' id='" + sArea + "Frame' scrolling='no' isArea='1' width='100%' height='100%' frameborder='0'></iframe>";

o 
= document.createElement("DIV");
o.id 
= sArea;
if(!IsNull(sParams))
{
o.params 
= sParams;
}
o.innerHTML 
= html;

_oArea.style.display 
= "none";

tdAreas.appendChild(o);
}

_oArea 
= o;


ResetBreadcrumb(event.srcElement);


var button = document.all("_MBdocumentallRelatedInformationPaneExpanddocumentallRelatedInformationPaneLoadContextDatafollowup");
if (button != null)
{
if (sArea == "areaForm")
{
button.disabled 
= false;
}
else
{
button.disabled 
= true;
}
}
        
}

function _ExecuteQuery(vDynamicForm)
{
        vDynamicForm.FetchXml.value   
= fetchObj.getFetchXml();
        vDynamicForm.LayoutXml.value  
= fetchObj.getLayoutXml();
        
//vDynamicForm.EntityName.value = 'pricelevel';
        //vDynamicForm.DefaultAdvFindViewId.value = '{3A736265-B902-4D09-A08B-725F6C31916E}';
        //vDynamicForm.ViewId.value='{2ca5dce5-1477-de11-8acb-002215572eef}';
        //vDynamicForm.action="/AdvancedFind/fetchData.aspx";
        //vDynamicForm.ViewType.value = 1039;
       
        vDynamicForm.submit();
}

function _myalert(message)
{
   alert(message);
}
function _getFetchXml()
{
var lookupItem = new Array;

// Get the lookup for the primarycontactid attribute on the account form.
lookupItem = crmForm.all.pricelevelid.DataValue;

return "<fetch mapping='logical'>    <entity name='pricelevel'>        <attribute name='name'/>    <filter type='and'>            <condition attribute='pricelevelid' operator='in'>                <value>"+lookupItem[0].id+"</value>                <value>9439FF4D-8613-DE11-B063-001EC9B6EAFD</value>            </condition>        </filter>        <link-entity name='productpricelevel' from='pricelevelid' to='pricelevelid' alias='productpricelevel' link-type='inner'>    <attribute name='productpricelevelid'/>        <link-entity name='uom' from='uomid' to='uomid' alias='uom' link-type='natural'>                <attribute name='name'/>            </link-entity>            <link-entity name='product' from='productid' to='productid' alias='product' link-type='natural'>                <attribute name='name'/>                <attribute name='productnumber'/>            </link-entity>        </link-entity>    </entity></fetch>";
}
function _getLayoutXml()
{
  
return '<grid name="resultset" object="1026"  select="1" icon="1" preview="0"><row name="result" id="productpricelevel.productpricelevelid"><cell name="productpricelevel.productpricelevelid" ishidden="1"/><cell name="name" displayName="Name(PriceLevel)" width="150"/><cell name="product.name" displayName="Product Name" width="300" disableSorting="1"/><cell name="product.productnumber" displayName="EV_P/N" width="200" disableSorting="1"/><cell name="uom.name" displayName="Unit" width="100"/><cell name="statecode" width="100"/></row></grid>';
}
2.aspx
<%@ page language="C#" autoeventwireup="true" inherits="Var_AdvFetch, App_Web_var_advfetch.aspx.cdcab7d2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>AdvanceFind</title>

<script type="text/javascript" src="/_static/_controls/util/util.js"></script>
<script type="text/javascript" src="/_static/_common/scripts/global.js"></script>
<script type="text/javascript" src="/_static/_common/scripts/xmlutil.js"></script>
<script type="text/javascript" src="/_static/_controls/remotecommands/remotecommand.js"></script>
<script type="text/javascript" src="/_common/windowinformation/windowinformation.aspx"></script>
<script type="text/javascript" src="/_static/_common/scripts/stage.js"></script>
<script type="text/javascript" src="/_static/_common/scripts/select.js"></script>
<script type="text/javascript" src="/_static/_controls/lookup/lookup.js"></script>
<script type="text/javascript" src="/_static/_controls/datetime/time.js"></script>
<script type="text/javascript" src="/_static/_controls/number/number.js"></script>


    
<script type="text/javascript" language ="javascript" >
    
/*
     *函數功能:從href獲得參數
    *韓建興
     *sHref:   http://www.var.com.tw/arg.htm?arg1=d&arg2=re
     *sArgName:arg1, arg2
     *return:  the value of arg. d, re

     
*/
    
    
function GetArgsFromHref(sHref, sArgName)
    {
       
        
var args  = sHref.split("?");
        
var retval = "";
        
        
if(args[0] == sHref) /*參數爲空*/
        {
             
return retval; /*無需做任何處理*/
        }  
        
var str = args[1];
        args 
= str.split("&");
        
for(var i = 0; i < args.length; i ++)
        {
            str 
= args[i];
            
var arg = str.split("=");
            
if(arg.length <= 1) continue;
            
if(arg[0] == sArgName) retval = arg[1]; 
        }
        
return retval;
    }
     
function GetArgs(sArgName)
    {
       
        
var args  = window.location.split("?");
        
var retval = "";
        
        
if(args[0] == window.location) /*參數爲空*/
        {
             
return retval; /*無需做任何處理*/
        }  
        
var str = args[1];
        args 
= str.split("&");
        
for(var i = 0; i < args.length; i ++)
        {
            str 
= args[i];
            
var arg = str.split("=");
            
if(arg.length <= 1) continue;
            
if(arg[0] == sArgName) retval = arg[1]; 
        }
        
return retval;
    }
    
function ExecuteQuery()
    {
    
//resultRender.FetchXml.value = GetArgs ("FetchXml");
    //resultRender.LayoutXml.value = GetArgs ("LayoutXml");
    //resultRender.EntityName.value = GetArgs ("EntityName");
    
    
    resultFrame.document.body.innerHTML 
= "<table height='100%' width='100%' style='cursor:wait'><tr><td valign='middle' align='center'><img alt='' src='_imgs/AdvFind/progress.gif'/><br></td></tr></table>";
    window.setTimeout(
"resultRender.submit()", 10);
   
    
   
    
//target="resultFrame"
    }
    
function onresultFrameReady()
    {
        
var i=0;
        
if( event.srcElement.readyState == "complete" && resultFrame.document.body.all["crmGrid"])

        {
        
        
//afterresultRefresh();
    var resultcrmGrid=resultFrame.document.body.all["crmGrid"];
    debug.innerText 
=resultcrmGrid.gridXml;
    
//resultcrmGrid.onrefresh=function()
    //{
//
      afterresultRefresh();    
    //}
   
        
//resultFrame.document.selectSingleNode("");
        }
    }
    
function afterresultRefresh()
    {
    
var document1=loadXmlDocument(resultRender.LayoutXml.value);
        
var resultcrmGrid=resultFrame.document.body.all["crmGrid"];
        
var oCells=document1.selectNodes("//cell");
        
if (oCells!=null)
        {
                       iLen 
= oCells.length;
            
for (i = 0; i < iLen; i++)
            {
               
var odisplayName=oCells[i].getAttribute ("displayName");                
               
if (odisplayName!=null)
               {
                  
var oName=oCells[i].getAttribute ("name");               
                  
var oGridCol=findColumn(oName);
                  
if (oGridCol!=null)
                  {
 
//                    oGridCol.innerText=odisplayName;
                  }
               }
            }
        
        }
        
        
var   oPrimaryCol=findColumn("productpricelevel.productpricelevelid"); 
        oPrimaryCol.display
="none";
            debug.innerText 
=resultcrmGrid.gridXml;
    
        
var ogridbodyTable=resultcrmGrid.all["gridBodyTable"];
        
//ogridbodyTable.oname="1026";

    
var oRows=resultcrmGrid.all["gridBodyTable"].rows;
    
var iLen=oRows.length;
    i
=0;
        
//objecttypecode="1026";
    while (i<iLen)
    {

      
//oRows[i].otype="1026";
      //oRows[i].oid=oRows[i]["productpricelevel.productpricelevelid"];
      //alert(oRows[i].getAttribute ("productpricelevel.productpricelevelid").value);
      
      i
++;
    }

    
//resultcrmGrid.SetParameter("otc","1026");
    }
    
function findColumn(sName)
{
var i = 0;
var oCells = resultFrame.document.body.all["crmGrid"].all["gridBar"].rows[0].cells;
var iLen = oCells.length;
while (i < iLen)
{
if (oCells[i].field && oCells[i].field == sName)
{
return oCells[i];
}
i
++;
}
return null;
}


    
//document.frames("resultFrame").onreadystatechange = onresultFrameReady;
      //target="resultFrame"
    </script>
</head>

<body>
    
   
<FORM id="resultRender" action="/AdvancedFind/fetchData.aspx" method="post" target="resultFrame" >
    
<INPUT type="button" name="btnOK" value="OK" id ="btnOK" onclick="ExecuteQuery()">
    
<INPUT type="input"  name=FetchXml value ="<fetch mapping='logical'>    <entity name='pricelevel'>        <attribute name='name'/>    <filter type='and'>            <condition attribute='pricelevelid' operator='in'>                <value>9439FF4D-8613-DE11-B063-001EC9B6EAFD</value>                <value>34D7F7A6-6F56-DE11-B691-002215572EEF</value>            </condition>        </filter>        <link-entity name='productpricelevel' from='pricelevelid' to='pricelevelid' alias='productpricelevel' link-type='inner'>    <attribute name='productpricelevelid'/>        <link-entity name='uom' from='uomid' to='uomid' alias='uom' link-type='natural'>                <attribute name='name'/>            </link-entity>            <link-entity name='product' from='productid' to='productid' alias='product' link-type='natural'>                <attribute name='name'/>                <attribute name='productnumber'/>            </link-entity>        </link-entity>    </entity></fetch>">
    
<INPUT type="input" name=LayoutXml value='<grid name="resultset" object="1022"  select="1" icon="1" preview="0"><row name="result" id="productpricelevel.productpricelevelid"><cell name="productpricelevel.productpricelevelid" ishidden="1"/><cell name="name" displayName="Name(PriceLevel)" width="150"/><cell name="product.name" displayName="Product Name" width="300" disableSorting="1"/><cell name="product.productnumber" displayName="EV_P/N" width="200" disableSorting="1"/><cell name="uom.name" displayName="Unit" width="100"/><cell name="statecode" width="100"/></row></grid>'>

<!--    <INPUT type ="hidden"    name="FetchXml" value="<fetch mapping='logical'>    <entity name='productpricelevel'><attribute name='pricelevelid'/> <attribute name='productpricelevelid'/></entity></fetch>">
    
<INPUT type ="hidden"    name="LayoutXml" value="<grid name='resultset' object='1026' select ='1' icon='1'><row name='result' id='productpricelevelid'><cell name='pricelevelid'/></row></grid>">
-->
    
<INPUT type="input" value="pricelevel"  name="EntityName">
    
<INPUT type="input" value="{3A736265-B902-4D09-A08B-725F6C31916E}" name="DefaultAdvFindViewId">
    
<INPUT type="input" value="{2ca5dce5-1477-de11-8acb-002215572eef}" name="ViewId">
    
<INPUT type="input" value="1039" name="ViewType">
    
    
<INPUT type="hidden" value="false" name="SortDescend">
</FORM>
<div id="debug"  style="display:inline;position:absolute;width:100%;height:50%"> </div>
<iframe id="resultFrame" name="resultFrame"  style ="position:absolute;top:600px;width:100%;height:50%;border:0px" src="/_root/Blank.aspx" onreadystatechange="onresultFrameReady()"  ></iframe>
</body>
</html
posted @ 2009-07-24 11:23  韩建兴  阅读(452)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3