Windchill中MVC选中事件级联另一MVC内容

目录

一、背景

二、步骤示例

三、代码说明


一、背景

在创建/编辑对象的场景中,经常会有一些需要mvc表格相互联动的需求。本示例为通过wizard实现mvc勾选时,联动别的mvc表格的示例。

二、步骤示例

2.1 jsp页面的代码示例

html 复制代码
<%@ taglib prefix="jca" uri="http://www.ptc.com/windchill/taglib/components"%>
<%@ taglib uri="http://www.ptc.com/windchill/taglib/components" prefix="jca"%>
<%@ taglib uri="http://www.ptc.com/windchill/taglib/fmt" prefix="fmt"%> 

<%@ include file="/netmarkets/jsp/components/beginWizard.jspf"%>
<%@ include file="/netmarkets/jsp/components/includeWizBean.jspf"%>

<fmt:setLocale value="${localeBean.locale}"/>
<fmt:setBundle basename="ext.test.resource.SealedSampleResource"/>
<fmt:message var="tableLabel" key="saledSample.techCreate.title"/>
<fmt:message var="PRODUCTION_BOM_VERSION_LABEL" key="PRODUCTION_BOM_VERSION_LABEL"/>
<fmt:message var="SET_SALED_SAMPLE_DETAIL" key="SET_SALED_SAMPLE_DETAIL"/>
<fmt:message var="SET_PRINCIPAL" key="SET_PRINCIPAL"/>
	
<input type="hidden" name="wizardActionClass" value="ext.test.processors.TechnicalSealedSampleCreateProcessor" />
<input type="hidden" name="wizardActionMethod" value="execute" />
<input type="hidden" name="portlet" value="poppedup" />
	
<jca:wizard  title="${tableLabel}" buttonList="DefaultWizardButtons">
	<jca:wizardStep action="techSaledSample_step" type="saledSample" label="${SET_SALED_SAMPLE_DETAIL}"/>
</jca:wizard>

<input type="hidden" id="selectOid" name="selectOid">
<input type="hidden" id="soid" name="soid">
<input type="hidden" id="copyParentOid" name="copyParentOid">

<%@ include file="/netmarkets/jsp/util/end.jspf"%>
<script Language="JavaScript">
	
  var parentBuliderID="ext.test.builders.TechParentTableBuilder";
	var childBuliderID="ext.test.builders.TechChildTableBuilder";
	
  Ext.onReady(function() {        
	      var tables = tableUtils.getTable(parentBuliderID);	
	      tables.on('cellclick', function(table, rowIndex, columnIndex, event) {
	      	
	      		 if (columnIndex >= 0 && rowIndex >= 0) { 
				       var record = table.getStore().getAt(rowIndex);
				       if (PTC.isDefined(record)) {
				       		var oid = record.data.oid;
				       		//alert(oid);
				       		document.getElementById('copyParentOid').value = '';
				       		document.getElementById('selectOid').value = oid;
				       		document.getElementById('soid').value = oid;
				       		PTC.jca.table.Utils.reload(childBuliderID, null, true);
				          //loadCompenetPanel(record.data.oid);
				       }
				     }
	      	});
	});
	 
 	var loadCompenetPanel = function(oid) {	 
	var tableId = "promotion.addParticipants.ParticipantTable";
	var mform = getMainForm(); 
    var url="/netmarkets/jsp/ext/test/techSealedSample.jsp?soid="+oid;
    getElementHtml(Form.serialize(mform),tableId, true, url,false);
  };

</script>

2.2 step_jsp页面代码示例

html 复制代码
<%@ page language="java"  pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.ptc.com/windchill/taglib/components" prefix="jca"%>
<%@ taglib uri="http://www.ptc.com/windchill/taglib/wrappers" prefix="w"%>
<%@ taglib uri="http://www.ptc.com/windchill/taglib/fmt" prefix="fmt"%>
<%@ taglib uri="http://www.ptc.com/windchill/taglib/mvc" prefix="mvc"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="wctags"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="ext.test.partbom.util.PartBomCommonUtil,	 
								 java.util.ArrayList"				 
%> 

<jsp:useBean id="localeBean" class="com.ptc.netmarkets.util.beans.NmLocaleBean" scope="request"/>
<fmt:setLocale value="${localeBean.locale}"/>
<fmt:setBundle basename="ext.test.resource.SealedSampleResource"/>
<fmt:message var="tableLabel" key="techCreate.title"/>
<fmt:message var="PRODUCTION_BOM_VERSION_LABEL" key="PRODUCTION_BOM_VERSION_LABEL"/>
	
<%
	ArrayList list = (ArrayList)PartBomCommonUtil.getTypeLegalValues("ext.test.model.TechnicalSealedSample","ProductionBomVersion");
%>
<c:set var="internalList" value="<%=list%>"/>

<jsp:include page="${mvc:getComponentURL('ext.test.builders.TechParentTableBuilder')}" />

<jca:renderPropertyPanel>
 <w:comboBox propertyLabel="${PRODUCTION_BOM_VERSION_LABEL}" required="true" id="ProductionBomVersion" name="ProductionBomVersion" internalValues="${internalList}"  displayValues="${internalList}"/>
</jca:renderPropertyPanel>

<jsp:include page="${mvc:getComponentURL('ext.test.builders.TechChildTableBuilder')}" />
	
<jsp:include page="${mvc:getComponentURL('ext.test.builders.ChooseWTUserTableBuilder')}" />



<input type="hidden" name="selectedRows" id="selectedRows" value=""/> 
<input type="hidden" name="changeSubstituteLink" id="changeSubstituteLink" value=""/> 

<script>
	
Ext.ComponentMgr.onAvailable( 'ext.test.builders.TechChildTableBuilder',function (grid){
      PTC.util.tableDataManager.registerTableListener("ext.test.builders.TechChildTableBuilder");
});

function removeRow(event) {
       var tableID = tableUtils.findTableID(event);
       var selectedItems = getJCASelectedTableItems(tableID);

       if (selectedItems == null || selectedItems.length == 0 ) {
             JCAAlert('com.ptc.netmarkets.util.utilResource.NONE_CHECKED');
             return false;
       } else {
             if (JCAConfirm('com.ptc.netmarkets.util.utilResource.CONFIRM_DELETE')){
                 var selectedRow = "";
                 for(var i = 0; i < selectedItems.length; i++) {
                     selectedRow += selectedItems[i].value + "@@";
                 }
                 document.getElementById('selectedRows').value = selectedRow;
                 jsca.unSelectHiddenCheckboxes(tableID);
                 return true;
             }else{
                 return false;
             }
       }       
}

function removeGroups(event) {

	rowHandler.removeRowsFromParentTable(event);
  return false;
}

function setChange(name,value) {
	var table = PTC.jca.table.Utils.getTable("ext.test.builders.TechChildTableBuilder");
	var selections = table.getSelectionModel().getSelections();
	if (selections == null || selections.length == 0) {
		JCAAlert('com.ptc.core.agreements.agreementsResource.NOTHING_SELECTED');
		return;
	}
	for (var i = 0; i < selections.length; i++) {
		var selection = selections[i];
		var oid = selection.get(name).gui.id;
		var tf = document.getElementById(oid);
		if (tf != null) {
			for (var j = 0; j < tf.options.length; j++) {
				if (value == tf.options[j].value) {
					tf.options[j].selected = true;
				}
			}
		}
	}
}

function setAddress(values) {
	var table = PTC.jca.table.Utils.getTable("ext.test.builders.TechChildTableBuilder");
  var selections = table.getSelectionModel().getSelections();
  if (selections == null || selections.length == 0) {
    JCAAlert('com.ptc.core.agreements.agreementsResource.NOTHING_SELECTED');
    return;
  } 
  for (var i = 0; i < selections.length; i++) {
    var selection = selections[i];
    var id = selection.data.oid; 
    
    console.info(id);
    var valueStr = values.split(',');  
    for(var j=0; j< valueStr.length; j++) {
      var tagetId = id + valueStr[j];
      console.info(tagetId);
      document.getElementById(tagetId).checked = true;
    }
    
  }
}


function setChangeDate(name,value){
	var table = PTC.jca.table.Utils.getTable("ext.test.builders.TechChildTableBuilder");
	var selections = table.getSelectionModel().getSelections();
	if (selections == null || selections.length == 0) {
		JCAAlert('com.ptc.core.agreements.agreementsResource.NOTHING_SELECTED');
		return;
	}
	for (var i = 0; i < selections.length; i++) {
		var selection = selections[i];
		var oid = selection.data.oid
		var tf = document.getElementById(oid+"_"+name);
		if (tf != null) {
			tf.value = value;
		}
	}
}

</SCRIPT> 

三、代码说明

本代码示例的核心技术点为hidden隐藏域的使用。请仔细留意代码中的使用。

相关推荐
老鼠只爱大米7 小时前
Java 设计模式之适配器模式:系统集成的万能接口
java·设计模式·适配器模式·adapter·java设计模式
一叶飘零_sweeeet7 小时前
Java+EasyExcel 打造学习平台视频学习时长统计系统
java·报表·easyexcel
Go away, devil7 小时前
Java-----集合
java·开发语言
JIngJaneIL7 小时前
旅游|内蒙古景点旅游|基于Springboot+Vue的内蒙古景点旅游管理系统设计与实现(源码+数据库+文档)
java·vue.js·spring boot·论文·旅游·毕设·内蒙古景点旅游
新之助小锅8 小时前
java版连接汇川PLC,发送数据,读取数据,保持重新链接,适用安卓
android·java·python
无糖冰可乐2110 小时前
IDEA多java版本切换
java·ide·intellij-idea
合作小小程序员小小店11 小时前
web开发,在线%超市销售%管理系统,基于idea,html,jsp,java,ssh,sql server数据库。
java·前端·sqlserver·ssh·intellij-idea
brucelee18611 小时前
IntelliJ IDEA 设置 Local History 永久保留
java·ide·intellij-idea
浩星12 小时前
react的框架UmiJs(五米)
前端·javascript·react.js
Pluto_CSND13 小时前
Java中的静态代理与动态代理(Proxy.newProxyInstance)
java·开发语言