二开获取yigo设计器里查询集合里中的某个SQL
package com.bokesoft.lrp_v3.mid.dongming.service; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import com.bokesoft.yigo.common.util.TypeConvertor;
import com.bokesoft.yigo.mid.base.DefaultContext;
import com.bokesoft.yigo.mid.service.IExtService;
import com.bokesoft.yigo.struct.datatable.DataTable;
import com.bokesoft.yigo.struct.document.Document;
import com.bokesoft.yigo.struct.usrpara.Paras; public class CalOutPrintTable3 implements IExtService { //private String update = "update Lrp_wmtx_h set OutPrint=33 where salesOrderNumber=?"; @Override
public Object doCmd(DefaultContext context, ArrayList<Object> arg1) throws Throwable {
// TODO Auto-generated method stub
Date d1 = TypeConvertor.toDate(arg1.get(0));
Date d2 = TypeConvertor.toDate(arg1.get(1));
Long SalesAdderss = TypeConvertor.toLong(arg1.get(2));
Long warehousecenterid = TypeConvertor.toLong(arg1.get(3));
Map<String, String> map = createsql(context, arg1);
String query = map.get("query");
String type = map.get("type");
DataTable tt = null;
switch (type) {
case "f":
tt = context.getDBManager().execPrepareQuery(query, SalesAdderss, warehousecenterid, warehousecenterid);
break;
case "ff":
tt = context.getDBManager().execPrepareQuery(query, d1, d2, SalesAdderss, warehousecenterid,
warehousecenterid);
break;
case "fff":
tt = context.getDBManager().execPrepareQuery(query, d1, SalesAdderss, warehousecenterid, warehousecenterid);
break;
case "ffff":
tt = context.getDBManager().execPrepareQuery(query, d2, SalesAdderss, warehousecenterid, warehousecenterid);
System.out.println(query);
break;
}
Paras paras = new Paras();//类似于SetPara
paras.put("StandardCarweight", setlist(context, tt));
return caltable(context, tt);
} private String billno(DefaultContext context,Long SalesAdderss) throws Throwable {
String SalesOrderNumbers = "";
Document doc = context.getDocument();
DataTable t1 = doc.get("DomesticOutbound_C");
t1.setFilter("shipcustomerNum=="+SalesAdderss);
t1.filter();
while (t1.next()) {
if (t1.getInt("SelectField") == 1) {
String salesOrderNumber = TypeConvertor.toString(t1.getObject("SalesOrderNumber"));
SalesOrderNumbers = SalesOrderNumbers + ",'" + salesOrderNumber + "'";
}
}
String SalesOrderNumber = SalesOrderNumbers.substring(1, SalesOrderNumbers.length());
return SalesOrderNumber;
} private Map<String, String> createsql(DefaultContext context, ArrayList<Object> arg1) throws Throwable {
String query = context.getVE().getMetaFactory().getMetaForm("DomesticOutbound").getQueryCollection()
.get("PrintTable1").getStatements().get(0).getContent();//获取查询集合里的查询SQL context这里需要好好理解下
String nos = billno(context,TypeConvertor.toLong(arg1.get(2)));
query = query.replace("salesorderNO_para", nos);
Date d1 = TypeConvertor.toDate(arg1.get(0));
Date d2 = TypeConvertor.toDate(arg1.get(1));
String Datesql = " ";
String type = "f";
if (d1 != null && d2 != null) {
Datesql = " and h.createtime between ? and ? ";
type = "ff";
}
if (d1 != null && d2 == null) {
Datesql = " and h.createtime >=? ";
type = "fff";
}
if (d1 == null && d2 != null) {
Datesql = " and h.createtime <=? ";
type = "ffff";
}
query = query.replace("createtime_paras", Datesql);
Map<String, String> map = new HashMap<String, String>();
System.out.println(query);
map.put("query", query);
map.put("type", type);
return map;
} private DataTable caltable(DefaultContext context, DataTable tt) {
List<String> list = new ArrayList<String>();
tt.beforeFirst();
while (tt.next()) {
String taskNumber = tt.getString("TaskNumber");
String BatchNo = tt.getString("BatchNo");
if (BatchNo != null)
if (BatchNo.trim().length() != 0)
tt.setString("BatchNo", splitbatchaNo(BatchNo));
if (!tt.getString("Packing").equals("FCL")) {
if (tt.getNumeric("countqty").compareTo(BigDecimal.ZERO) == 0
&& tt.getNumeric("BoxUnitNum1").compareTo(BigDecimal.ZERO) == 0
&& tt.getNumeric("BoxNum1").compareTo(BigDecimal.ZERO) != 0)
tt.setString("Packing", "OTHER");
else {
tt.setString("BoxSeq",
taskNumber.substring(taskNumber.length() - 8, taskNumber.length() - 4) + "-" + TypeConvertor
.toInteger(taskNumber.substring(taskNumber.length() - 4, taskNumber.length())));
list.add(taskNumber);
}
}
}
System.out.println("打印出库单(更新打印状态)DataTable: "+tt);
return tt;
} private String splitbatchaNo(String BatchNo) {
String[] nos = BatchNo.split(",");
if (nos.length > 1)
BatchNo = nos[0] + "," + nos[1];
else
BatchNo = nos[0];
return BatchNo;
} private static BigDecimal calCarweight(List<String> list) {
List<String> newList = new ArrayList<String>();
for (String cd : list) {
if (!newList.contains(cd)) {
newList.add(cd);
}
}
return new BigDecimal(newList.size());
} private static BigDecimal setlist(DefaultContext context, DataTable tt) {
List<String> list = new ArrayList<String>();
tt.beforeFirst();
while (tt.next()) {
if (!tt.getString("Packing").equals("FCL") && !tt.getString("Packing").equals("OTHER"))
list.add(tt.getString("taskNumber"));
}
return calCarweight(list);
}
}
二开获取yigo设计器里查询集合里中的某个SQL的更多相关文章
- 解析大型.NET ERP系统核心组件 查询设计器 报表设计器 窗体设计器 工作流设计器 任务计划设计器
企业管理软件包含一些公共的组件,这些基础的组件在每个新项目立项阶段就必须考虑.核心的稳定不变功能,方便系统开发与维护,也为系统二次开发提供了诸多便利.比如通用权限管理系统,通用附件管理,通用查询等组件 ...
- 基于Extjs的web表单设计器 第七节——取数公式设计之取数公式的使用
基于Extjs的web表单设计器 基于Extjs的web表单设计器 第一节 基于Extjs的web表单设计器 第二节——表单控件设计 基于Extjs的web表单设计器 第三节——控件拖放 基于Extj ...
- YbSoftwareFactory 代码生成插件【十六】:Web 下灵活、强大的审批流程实现(含流程控制组件、流程设计器和表单设计器)
程序=数据结构+算法,而企业级的软件=数据+流程,流程往往千差万别,客户自身有时都搞不清楚,随时变化的情况更是家常便饭,抛开功能等不谈,需求变化很大程度上就是流程的变化,流程的变化会给开发工作造成很大 ...
- 如何在CRM系统中集成ActiveReports最终报表设计器
有时候,将ActiveReports设计器集成到业务系统中,为用户提供一些自定义的数据表,用户不需要了解如何底层的逻辑关系和后台代码,只需要选择几张关联的数据表,我们会根据用户的选择生成可供用户直接使 ...
- 通过用 .NET 生成自定义窗体设计器来定制应用程序
通过用 .NET 生成自定义窗体设计器来定制应用程序 https://www.microsoft.com/china/MSDN/library/netFramework/netframework/Cu ...
- Springboot2集成Activiti设计器并去除security
前言 鉴于项目需要将acitiviti设计器整合到原工程中,在网上查了不少资料都不太适用,经过借鉴和自己倒腾终于搞定了,分享一下经验,如果有问题,可以在留言区咨询. 文中用到的资源代码链接: http ...
- ActiveReports 9 新功能:可视化查询设计器(VQD)介绍
在最新发布的ActiveReports 9报表控件中添加了多项新功能,以帮助你在更短的时间里创建外观绚丽.功能强大的报表系统,本文将重点介绍可视化数据查询设计器,无需手动编写任何SQL语句,主要内容如 ...
- Activiti(二) springBoot2集成activiti,集成activiti在线设计器
摘要 本篇随笔主要记录springBoot2集成activiti流程引擎,并且嵌入activiti的在线设计器,可以通过浏览器直接编辑出我们需要的流程,不需要通过eclipse或者IDEA的actiB ...
- C# 文件里的类不能进行设计,因此未能为该文件显示设计器
C# 文件里的类不能进行设计,因此未能为该文件显示设计器 vs 一直打不开设计界面 仅仅能查看代码界面 这时候须要查看 代码中 是不是 从 form 继承 假设不是 窗口类型 改为 fo ...
随机推荐
- &&、||和&、|的区别
1. && .|| 和 &.| 都是逻辑运算符,前两个 与后两个的区别就在于 &&.|| 有"短路"现象,而& .| 则没有. 例如 ...
- windows 查看物理内存有几条以及查看电脑系统版本号的命令(dxdiag)
- bzoj 1049: 数字序列 dp
题目大意: 给定一个长度为n的整数序列.在改变的数最小的和改变的幅度最小的前提下把它变成一个单调严格上升的序列.求改变的最小的数和这个幅度. 题解: (貌似以前考试考过这道题) 其实这道题就是两道题拼 ...
- 利用MEF实现插件机制(可根据输入类型来加载特定dll)
最近在做PACS的项目中想利用插件来加载各个不同的SCP的操作实现.比如Worklist的查询数据库,可以有多个实现. 比如MPPS的更新,也可以有多个实现. 为了统一弹性处理插件模块,增加了类型输入 ...
- Linq 支持动态字查询集合, 也就是说根据传入的值进行查询。
Linq 支持动态字查询集合, 也就是说根据传入的值进行查询. 比如我们有个类Patient, 其中有个字段PatientName, 现在有Patient集合, 想要查询PatientName为&qu ...
- .NETFramework:Random
ylbtech-.NETFramework:Random 1.程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c ...
- windows7无法启动Telnet服务,出现…
windows7无法启动Telnet服务,出现错误1068 2012 年 03 月 16 日 在[控制面板--程序--打开或关闭Windows功能]中开启telnet服务器和客户端后,在运行窗口中输入 ...
- 在VC6的debug框里面输出版权信息
在VC6的debug框里面输出版权信息,效果如下: 原理是: 新建一个批处理文档:如:"info.bat",放置到工程目录下[和dsw同级] @echo ===本程序作者是不要呵呵 ...
- 在Elasticsearch6.X中如何实现去重
1.前言 Elasticsearch有没有类似mysql的distinct的去重功能呢? 1)如何去重计数? 类似mysql: select distinct(count(1)) from my_ta ...
- 2019计蒜之道初赛3 D. 阿里巴巴协助征战SARS(困难)(大数取余+欧拉降幂)
阿里巴巴协助征战SARS(困难) 33.29% 1000ms 262144K 目前,SARS 病毒的研究在世界范围内进行,经科学家研究发现,该病毒及其变种的 DNA 的一条单链中,胞嘧啶.腺嘧啶均 ...