EAS BOS DEP(动态扩展平台自用)基本操作

2024-03-16 07:32

本文主要是介绍EAS BOS DEP(动态扩展平台自用)基本操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1:DEP脚本友情链接: http://web20.kingdee.com/share/depScript/depScript.html

2:分享一些常用的DEP脚本

var imp = JavaImporter(); 
//imp.importPackage(Packages.);
imp.importPackage(Packages.com.kingdee.eas.util.app);
imp.importPackage(Packages.com.kingdee.bos.dao.query);
imp.importPackage(Packages.com.kingdee.eas.util.client);
imp.importPackage(Packages.com.kingdee.bos.metadata.entity);
imp.importPackage(Packages.com.kingdee.bos.metadata.query.util);
imp.importPackage(Packages.com.kingdee.util);
imp.importPackage(Packages.java.lang);
imp.importPackage(Packages.java.util);with(imp){//**公司值改变监听**//pluginCtx.getKDBizPromptBox("prmthCompany").addDataChangeListener(function(e){pluginCtx.getKDTextField("txtFEnglishName").setStringValue("");pluginCtx.getKDTextField("txtFEmpName").setStringValue("");pluginCtx.getKDTextField("txthrpcode").setStringValue("");pluginCtx.getKDTextField("txthrpid").setStringValue("");pluginCtx.getKDBizPromptBox("prmtempPosition").setValue(null);pluginCtx.getKDBizPromptBox("prmtperson").setValue(null);pluginCtx.getKDBizPromptBox("prmtdirdept").setValue(null);pluginCtx.getKDBizPromptBox("prmthperson").setValue(null);/*根据公司过滤该公司的职员*/var companyInfo = pluginCtx.getKDBizPromptBox("prmthCompany").getValue();if(companyInfo != null && companyInfo != ""){var companyID = companyInfo.get("id");var director = pluginCtx.getKDBizPromptBox("prmthperson");var emp = pluginCtx.getKDBizPromptBox("prmtperson");var empFilterInfo = new FilterInfo();var empEntityViewInfo = new EntityViewInfo();//MsgBox.showInfo(companyID);empFilterInfo.getFilterItems().add(new FilterItemInfo("CU.id", companyID ,CompareType.EQUALS));empEntityViewInfo.setFilter( empFilterInfo );director.setEntityViewInfo(empEntityViewInfo);emp.setEntityViewInfo(empEntityViewInfo);}});//**上级负责人值改变监听**//pluginCtx.getKDBizPromptBox("prmthperson").addDataChangeListener(function(e){//MsgBox.showInfo("负责人值改变监听");pluginCtx.getKDBizPromptBox("prmtdirdept").setValue(null);var companyInfo = pluginCtx.getKDBizPromptBox("prmthCompany").getValue();var directorInfo = pluginCtx.getKDBizPromptBox("prmthperson").getValue();if(companyInfo != null && companyInfo!="" && directorInfo != null && directorInfo != ""){var companyID = companyInfo.get("id");var directorID = directorInfo.get("id");var dept = pluginCtx.getKDBizPromptBox("prmtdirdept");//MsgBox.showInfo(directorID + "-" + companyID);var sql = "select FAdminOrgUnitID from T_ORG_Position WHERE FName_L2 ='负责人' AND FID IN " +"(SELECT FPositionID FROM dbo.T_ORG_PositionMember WHERE FPersonID = '" + directorID + "')";//MsgBox.showInfo(sql);var rs = SQLExecutorFactory.getRemoteInstance(sql).executeSQL();var orgIdSet = new HashSet();while( rs.next() ){var FAdminOrgUnitID = rs.getString("FAdminOrgUnitID");if(!(StringUtils.isEmpty(FAdminOrgUnitID))){//MsgBox.showInfo("FAdminOrgUnitID:" + FAdminOrgUnitID);orgIdSet.add(FAdminOrgUnitID);}}var filterInfo = new FilterInfo();var entityViewInfo = new EntityViewInfo();//MsgBox.showInfo("orgIdSet:" + orgIdSet);filterInfo.getFilterItems().add( new FilterItemInfo("id", orgIdSet ,CompareType.INCLUDE) );entityViewInfo.setFilter(filterInfo);dept.setEntityViewInfo(entityViewInfo);}});//**对变更职员监听  带出 HRPCode、HRPID、中文名、英文名**//pluginCtx.getKDBizPromptBox("prmtperson").addDataChangeListener(function(e){//MsgBox.showInfo("变更职员值改变监听");pluginCtx.getKDTextField("txtFEnglishName").setStringValue("");pluginCtx.getKDTextField("txtFEmpName").setStringValue("");pluginCtx.getKDTextField("txthrpcode").setStringValue("");pluginCtx.getKDTextField("txthrpid").setStringValue("");pluginCtx.getKDBizPromptBox("prmtempPosition").setValue(null);//通过职员ID 取到cfhrpempidnew ,在T_HRP_person 取到 var empInfo = pluginCtx.getKDBizPromptBox("prmtperson").getValue();if(empInfo != null && empInfo!= ""){var empID = empInfo.get("id");var sql = "SELECT CFHrpEmpIdNew FROM T_BD_Person  WHERE FID = '" + empID + "'";//MsgBox.showInfo(sql);var rs = SQLExecutorFactory.getRemoteInstance(sql).executeSQL();if( rs.next() ){var CFHrpEmpIdNew = rs.getString("CFHrpEmpIdNew");if(CFHrpEmpIdNew != null && CFHrpEmpIdNew != ""){var sql2 = "SELECT FEmpCode,FEmpID,FEmpName,FEnglishName FROM dbo.t_hrp_person WHERE FEmpID_NEW = '"+ CFHrpEmpIdNew +"'";//MsgBox.showInfo(sql2);var rs2 = SQLExecutorFactory.getRemoteInstance(sql2).executeSQL();if( rs2.next() ){var FEmpCode = rs2.getString("FEmpCode");//MsgBox.showInfo(FEmpCode);var FEmpID = rs2.getString("FEmpID");var FEmpName = rs2.getString("FEmpName");var FEnglishName = rs2.getString("FEnglishName");pluginCtx.getKDTextField("txthrpcode").setStringValue(FEmpCode);pluginCtx.getKDTextField("txthrpid").setStringValue(FEmpID);pluginCtx.getKDTextField("txtFEmpName").setStringValue(FEmpName);pluginCtx.getKDTextField("txtFEnglishName").setStringValue(FEnglishName);}}else{MsgBox.showInfo("没有FEmpCode");}}}else{//MsgBox.showInfo("emp为空,不做任何处理");}});//**对Code监听**//pluginCtx.getKDTextField("txthrpcode").addFocusListener(function(event, methodName){//MsgBox.showInfo("Code值改变监听");if(methodName == "focusGained"){}if(methodName == "focusLost"){var empcode = pluginCtx.getKDTextField("txthrpcode").getText();//MsgBox.showInfo("empcode:" + empcode);if(empcode != null && empcode!= ""){var sql = "SELECT FEmpID,FEmpName,FEnglishName FROM T_HRP_person WHERE FEmpCode = '" + empcode +"'";//MsgBox.showInfo(sql);var rs = SQLExecutorFactory.getRemoteInstance(sql).executeSQL();while(rs.next()){var FEmpID = rs.getString("FEmpID");var FEmpName = rs.getString("FEmpName");var FEnglishName = rs.getString("FEnglishName");}if(FEmpID != null && FEmpID != ""){pluginCtx.getKDTextField("txthrpid").setStringValue(FEmpID);pluginCtx.getKDTextField("txtFEmpName").setStringValue(FEmpName);pluginCtx.getKDTextField("txtFEnglishName").setStringValue(FEnglishName);}}}});//MsgBox.showInfo("负责人部门值改变监听");pluginCtx.getKDBizPromptBox("prmtdirdept").addDataChangeListener(function(e){pluginCtx.getKDBizPromptBox("prmtempPosition").setValue(null);var deptInfo = pluginCtx.getKDBizPromptBox("prmtdirdept").getValue();if(deptInfo != null && deptInfo != ""){var deptID = deptInfo.get("id");var empPosition = pluginCtx.getKDBizPromptBox("prmtempPosition");var deptFilterInfo = new FilterInfo();var deptEntityViewInfo = new EntityViewInfo();//MsgBox.showInfo(deptID);deptFilterInfo.getFilterItems().add(new FilterItemInfo("AdminOrgUnit.id", deptID ,CompareType.EQUALS));deptEntityViewInfo.setFilter( deptFilterInfo );empPosition.setEntityViewInfo(deptEntityViewInfo);}});
}//默认当前组织
//如果是新增界面,则设置默认值
if(pluginCtx.getOprtState().equals("ADDNEW")){var Thcom = pluginCtx.getUIContext().get("sysContext").getCurrentFIUnit();pluginCtx.getKDBizPromptBox("prmthCompany").setValue(Thcom);
} //设置编码非必填
pluginCtx.getKDTextField("txtNumber").setRequired(false);
pluginCtx.getUIContext()pluginCtx.getUIContext().get("sysContext")pluginCtx.getOprtState()com.kingdee.eas.util.client.MsgBox.showInfo(args);

 

3.1:DEP与BOS的结合使用。    DEP添加字段
 

 

 

3.2:界面获取DEP控件 (onload是调用此方法)

 

KDDatePicker kdclose = new KDDatePicker();
KDPromptBox kdUser = new KDPromptBox();
KDFormattedTextField rejects = new KDFormattedTextField();
KDCheckBox moreProduct = new KDCheckBox();
KDBizPromptBox costObjectGroup = new KDBizPromptBox();
KDCheckBox lsMainMaterial = new KDCheckBox();

 

private void initDEPContronl() {
Hashtable srTable = new Hashtable();
Object obj = null;
CommonUtils.findComponent(ManufactureOrderEditUICTEx.this, new String[]{"pkkDclose","prmtcloseuser","txtrejects","chkmoreProduct","prmtcostObjectGroup"}, srTable);
if(srTable.size()>0){
obj = srTable.get("pkkDclose");
if(obj instanceof KDDatePicker){
kdclose = (KDDatePicker)srTable.get("pkkDclose");
kdclose.setTimeEnabled(true);
}
obj = srTable.get("prmtcloseuser");
if(obj instanceof KDPromptBox){
kdUser = (KDPromptBox)srTable.get("prmtcloseuser");
}
obj = srTable.get("txtrejects");
if(obj instanceof KDFormattedTextField){
rejects = (KDFormattedTextField)srTable.get("txtrejects");
}
obj =  srTable.get("chkmoreProduct");
if(obj instanceof KDCheckBox){
moreProduct = (KDCheckBox)srTable.get("chkmoreProduct");
}
obj =  srTable.get("prmtcostObjectGroup");
if(obj instanceof KDPromptBox){
costObjectGroup = (KDBizPromptBox)srTable.get("prmtcostObjectGroup");
}
obj = srTable.get("lsMainMaterial");
if(obj instanceof KDCheckBox){
lsMainMaterial = (KDCheckBox)srTable.get("lsMainMaterial");
}
}

}

 

 

3.3:DEP控件公共方法的书写

/**

 

 * 获得通过dep添加的控件
 * 
 * @param comp
 *            当前页面.this
 * @param controls
 *            String数组。数组里面放dep添加字段的属性名字,
 * @param found
 */
public static void findComponent(Component comp, String[] controls,
Hashtable<String, Component> found) {
Container con = null;
boolean nameEquals = false;
String CompName = null;
if (comp instanceof Container) {
CompName = ((java.awt.Component) comp).getName();
System.out.println(CompName);
if (CompName != null) {
for (int i = 0; i < controls.length; i++) {
if (CompName.equals(controls[i])) {
if (!found.containsKey(CompName)) {
found.put(CompName, comp);
nameEquals = true;
break;
}
}
}
}
if (found.size() != controls.length) {
con = (Container) comp;
int count = con.getComponentCount();
for (int i = 0; i < count; i++) {
findComponent(con.getComponent(i), controls, found);
if (found.size() == controls.length)
return;
}
}
}

 

}

 

 

/******************************  DEP控件的赋值与取值  *************************************/

PurReceivalEntryInfo pInfo = iPurReceivalEntry.getPurReceivalEntryInfo(new ObjectUuidPK(purEntryids));
     if(UIRuleUtil.isNull(pInfo.getString("lotNumber"))){
     pInfo.setString("lotNumber", pInfo.getString("lotNumber")+lotNumber);
     }else{
     pInfo.setString("lotNumber", pInfo.getString("lotNumber")+";"+lotNumber);

}
}

/********************************  DEP控件的赋值与取值  ************************************/

 

 

//为DEP添加的按钮绑定action

KDWorkButton  a = null;
   Hashtable hashTable2 = new Hashtable();
findComponent(this.toolBar, new String[] { "btnduifangjianjin", },
hashTable2);
if (hashTable2.size() > 0) {
  Object oo = hashTable2.get("btnduifangjianjin");
if (oo != null) {
a = (KDWorkButton) oo;
a.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {  // 此处是为按钮绑定方法  相当于在业务设计界面绑定action 
try {
showDuiFangJianJinBuLvUI();// 我自己的方法
      } catch (Exception e1) {
e1.printStackTrace();
     }
        }
});
}
}

 

 

这篇关于EAS BOS DEP(动态扩展平台自用)基本操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/814754

相关文章

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

如何用Python绘制简易动态圣诞树

《如何用Python绘制简易动态圣诞树》这篇文章主要给大家介绍了关于如何用Python绘制简易动态圣诞树,文中讲解了如何通过编写代码来实现特定的效果,包括代码的编写技巧和效果的展示,需要的朋友可以参考... 目录代码:效果:总结 代码:import randomimport timefrom math

Java中JSON字符串反序列化(动态泛型)

《Java中JSON字符串反序列化(动态泛型)》文章讨论了在定时任务中使用反射调用目标对象时处理动态参数的问题,通过将方法参数存储为JSON字符串并进行反序列化,可以实现动态调用,然而,这种方式容易导... 需求:定时任务扫描,反射调用目标对象,但是,方法的传参不是固定的。方案一:将方法参数存成jsON字

.NET利用C#字节流动态操作Excel文件

《.NET利用C#字节流动态操作Excel文件》在.NET开发中,通过字节流动态操作Excel文件提供了一种高效且灵活的方式处理数据,本文将演示如何在.NET平台使用C#通过字节流创建,读取,编辑及保... 目录用C#创建并保存Excel工作簿为字节流用C#通过字节流直接读取Excel文件数据用C#通过字节

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖