提交 | 用户 | age
|
a6a76f
|
1 |
package com.yc.service.panel.v2; |
F |
2 |
|
|
3 |
import com.google.gson.JsonArray; |
|
4 |
import com.yc.action.grid.GridUtils; |
|
5 |
import com.yc.exception.ApplicationException; |
|
6 |
import com.yc.service.build.type.v2.BaseBean; |
|
7 |
import com.yc.service.build.type.v2.BaseImpl; |
|
8 |
import com.yc.service.commons.GformIfc; |
|
9 |
import com.yc.service.excel.ExcelIfc; |
|
10 |
import com.yc.service.grid.GridServiceIfc; |
|
11 |
import com.yc.service.impl.DBHelper; |
|
12 |
import com.yc.service.panel.*; |
|
13 |
import com.yc.service.panel.assist.AssistIfc; |
|
14 |
import com.yc.service.panel.inv.EmptyConn; |
|
15 |
import com.yc.utils.FileUtil; |
|
16 |
import com.yc.utils.SessionKey; |
875a46
|
17 |
import org.apache.commons.lang3.StringUtils; |
a6a76f
|
18 |
import org.springframework.beans.factory.annotation.Autowired; |
F |
19 |
import org.springframework.dao.DataAccessException; |
|
20 |
import org.springframework.stereotype.Service; |
|
21 |
|
|
22 |
import java.io.File; |
|
23 |
import java.sql.SQLException; |
|
24 |
import java.util.*; |
843144
|
25 |
import java.util.regex.Pattern; |
a6a76f
|
26 |
|
F |
27 |
/** |
|
28 |
* @author pengbei |
|
29 |
*/ |
|
30 |
@Service("PanelServiceV2") |
|
31 |
public class PanelServiceImpl implements PanelServiceIfc { |
|
32 |
@Autowired |
|
33 |
SystemSettingsDao systemSettingsBo; |
|
34 |
@Autowired |
|
35 |
TypeControlDao typeControlDao; |
|
36 |
@Autowired |
|
37 |
private GformFilterIfc filterIfc; |
|
38 |
@Autowired |
|
39 |
private SqlDBHelperIfc sqlDBHelperIfc; |
|
40 |
@Autowired |
|
41 |
private AssistIfc assistIfc; |
|
42 |
@Autowired |
|
43 |
private GfieldApprovedButtonIfc gButtonIfc; |
|
44 |
@Autowired |
|
45 |
ExcelIfc excelIfc; |
|
46 |
@Autowired |
|
47 |
GridServiceIfc gridServiceIfc; |
|
48 |
@Autowired |
|
49 |
private GformIfc gformIfc; |
|
50 |
|
|
51 |
|
|
52 |
|
|
53 |
// class 样式 |
|
54 |
|
|
55 |
|
|
56 |
// end |
|
57 |
@Override |
|
58 |
public String getPannelTalbe(int formId, int formType) throws Exception { |
|
59 |
//TODO 有可能有问题 |
|
60 |
PanelBean panelBean = new PanelBean(); |
|
61 |
return setTable(hasTiaoJian(formType, panelBean), formId, panelBean.pHelper); |
|
62 |
} |
|
63 |
|
|
64 |
/** |
|
65 |
* |
|
66 |
*/ |
|
67 |
@Override |
|
68 |
public Map<String, String> getPanelHtml(int formId, int formType, String[] templeteFile, Map<String, Object> gformInfo) |
|
69 |
throws Exception { |
|
70 |
BaseBean base = (BaseBean) gformInfo.get(BaseImpl.BEAN_INFO); |
|
71 |
List<Map<String, Object>> staList = assistIfc.getStatusByFormId(formId); |
|
72 |
Map<String, String> map = new HashMap<String, String>(); |
|
73 |
StringBuffer htmlBuffer = new StringBuffer(); |
|
74 |
StringBuffer infoJsBuffer = new StringBuffer(); |
|
75 |
PanelBean panelBean = new PanelBean(); |
|
76 |
PanelParmHelper pHelper = panelBean.pHelper; |
|
77 |
if (formType == 1) panelBean.panel11 = false; |
|
78 |
if (formType == 2) panelBean.shorten = true; |
|
79 |
if(formType==77||formType==496||formType==498||formType==16){ panelBean.indexPan=base.getIndexPan();} |
|
80 |
if(formType==496||formType==498||formType==16) {panelBean.isPrimaryPan=base.isPrimaryPan();} |
|
81 |
if(formType==20){ |
|
82 |
panelBean.shorten=base.isShorten(); |
|
83 |
panelBean.indexPan=base.getIndexPan(); |
|
84 |
panelBean.panel11=base.isPanel11(); |
|
85 |
panelBean.notPan=base.isNotPan(); |
|
86 |
panelBean.setNotPan(panelBean.notPan); |
|
87 |
panelBean.pHelper.primary=panelBean.indexPan; |
|
88 |
} |
|
89 |
setValueAll(formId, formType, pHelper, panelBean); |
|
90 |
typeControlDao.setFunLoadList(null, true, panelBean); |
|
91 |
typeControlDao.setFunList("", true, panelBean); |
|
92 |
panelBean.setButtonList(gButtonIfc.getButton(formId)); // 查询该面板是否有按钮 |
|
93 |
pHelper.URI = base.getURI(); // 物理路径 |
|
94 |
pHelper.realPath = File.separator + "app" + File.separator + base.getDataBaseId() + File.separator |
|
95 |
+ base.getVersionId() + File.separator + base.getLanguage() + File.separator + base.getFormID() |
|
96 |
+ File.separator; |
|
97 |
pHelper.maps = new HashMap<String, Map<String, String>>();// 保存字段Id,即数据库中的列,不让其暴露 |
|
98 |
pHelper.mapHids = new HashMap<String, Map<String, String>>(); |
|
99 |
pHelper.intvalueMap = new HashMap<String, String>(); |
|
100 |
pHelper.html_Col = new StringBuffer(); |
|
101 |
pHelper.panelAudit = new JsonArray(); |
|
102 |
pHelper.jsList = systemSettingsBo.getJs(formId); |
|
103 |
List<Map<String, Object>> openDocs = sqlDBHelperIfc.getHashMapObj( |
98c7bf
|
104 |
"set nocount on ; select execproc,o.formtype as otype,m.formtype as mtype from _sysOpenDoc o inner join _sysMenu m on (o.formid=m.formid) where o.formid=" |
a6a76f
|
105 |
+ formId + " and o.formtype=" + formType + " order by seqn ;"); |
98c7bf
|
106 |
panelBean.openDoc = "set nocount on ; "; |
a6a76f
|
107 |
for (Map<String, Object> openMap : openDocs) { |
F |
108 |
panelBean.openDoc += "exec " + DBHelper.getValue(openMap, "execproc").replaceAll(";", ",") + ";"; |
|
109 |
} |
|
110 |
if (templeteFile.length == 3) {// 判断是否跳过子面板审核代码。 |
|
111 |
pHelper.panelbol = (templeteFile[2] == null ? true : false); |
|
112 |
} |
|
113 |
String moBan = templeteFile[0];// 模板集合:数组[0]:面板2模板(panel.jsp),在查询中窗体如9类型为查询面板模板(panelSearch.jsp);数组[1]:默认为模板(panelHead.jsp),查询窗口为固定模板(topPanType9.jsp) |
|
114 |
switch (formType) { |
|
115 |
case 9:// 9类型面板 |
|
116 |
case 15: |
|
117 |
case 17: |
|
118 |
case 499: |
|
119 |
case 497: |
|
120 |
List<Map<String, Object>> gfList = filterIfc.getOrdByline(formId); |
|
121 |
List<Map<String, Object>> queryList = systemSettingsBo.getQuery(formId, 1); |
|
122 |
panelBean.setQueryList(queryList); |
|
123 |
int so = 0; |
|
124 |
if (gfList != null && gfList.size() > 0) {// 这里处理重新生成筛选面板 |
|
125 |
so = 1;// 针对面板中"搜索"按钮的处理,有自定义筛选则不显示原来的查询按钮 by danaus 2014-6-5 |
|
126 |
moBan = moBan.replaceAll("@panelHtml@", |
|
127 |
filterDollarStr(getJspPanSift(formId, gfList, infoJsBuffer, panelBean).toString()));// 表格上,无表格下设置 |
|
128 |
} else { |
|
129 |
moBan = templeteFile[2];// |
|
130 |
} |
|
131 |
map.put("sous", so + ""); |
|
132 |
break; |
|
133 |
default: |
|
134 |
panelBean.isLandscape = (gformInfo != null && gformInfo.get("panellabellayout") != null |
|
135 |
&& gformInfo.get("panellabellayout").toString().equals("2")) ? false : true; |
|
136 |
if (!panelBean.isLandscape) { |
|
137 |
pHelper.miaoShuTdWidth = 200; |
|
138 |
pHelper.kongJianTdWidth = 200; |
|
139 |
pHelper.kongHei = pHelper.rowHei * 2 - 7; |
|
140 |
pHelper.kongJianAndMiaoShu = pHelper.kongJianTdWidth; |
|
141 |
} |
|
142 |
pHelper.excelContext = ""; |
|
143 |
pHelper.excelField = ""; |
|
144 |
pHelper.excelLoca = ""; |
|
145 |
pHelper.excelTitles = ""; |
|
146 |
pHelper.panJs43 = ""; |
44e865
|
147 |
if (formType != 1) {//不是1类型窗体进入生成面板 |
X |
148 |
String panelUp = filterDollarStr(getPanel(formId, infoJsBuffer, false, panelBean).toString());// 获取格线之上的面板控件值 |
|
149 |
String panelDow = filterDollarStr(getPanel(formId, infoJsBuffer, true, panelBean).toString());// 获取格线之下的面板控件值 |
|
150 |
panelUp = ((panelBean.notPan || formType == 16) ? "" : getPar(pHelper)) |
|
151 |
+ getJspPanSession(formId, pHelper.maps, pHelper) + panelUp;// 16是496设置的类型,(字段的格式设置) |
|
152 |
moBan = moBan.replaceAll("@panelHtml@", panelUp);// 表格上(多数是生成面板需要的控件) |
|
153 |
moBan = moBan.replaceAll("@panelDownHtml@", panelDow);// 表格下 |
|
154 |
} else { |
|
155 |
moBan = moBan.replaceAll("@panelHtml@", "");// 表格上(多数是生成面板需要的控件) |
|
156 |
moBan = moBan.replaceAll("@panelDownHtml@", "");// 表格下 |
|
157 |
} |
a6a76f
|
158 |
moBan = moBan.replaceFirst("@wherePan496@", (formType == 16) ? "wherePan496" : "wherePan");// 替换 |
F |
159 |
// moBan+=getTypeIni(); |
|
160 |
// 生成取消确认代码 by danaus 2014-5-29 |
|
161 |
Map<String, Object> canel = this.gformIfc.getGformInfo( |
|
162 |
"CancelBtnProcName,CancelBtnExpression,CancelBtnEditStatus,CancelBtnName,RevokeBtnProcName,RevokeBtnExpression,RevokeBtnEditStatus", |
|
163 |
formId); |
|
164 |
String cancelBtnExpression=GridUtils.prossRowSetDataType_StringByReplaceBlank(canel |
|
165 |
,"CancelBtnExpression"); |
|
166 |
moBan = moBan |
|
167 |
.replaceAll("@canceldocstatus@", |
|
168 |
canel.get("CancelBtnEditStatus") == null ? "" : (String) canel.get("CancelBtnEditStatus")) |
|
169 |
.replaceAll("@iscanel@", |
|
170 |
canel.get("CancelBtnProcName") == null || "".equals(canel.get("CancelBtnProcName")) ? "0" |
|
171 |
: "1") |
|
172 |
.replaceAll("@CancelBtnName@", |
|
173 |
canel.get("CancelBtnName") == null || "".equals(canel.get("CancelBtnName")) ? "取消确认" |
|
174 |
: (String) canel.get("CancelBtnName")) |
|
175 |
.replaceAll("@sqlException@",cancelBtnExpression); |
|
176 |
// String procName=(String)canel.get("CancelBtnProcName"); |
|
177 |
// 撤回功能 |
|
178 |
String revokeBtnExpression=GridUtils.prossRowSetDataType_StringByReplaceBlank(canel |
|
179 |
,"RevokeBtnExpression"); |
|
180 |
moBan = moBan |
|
181 |
.replaceAll("@RevokeBtnEditStatus@", |
|
182 |
canel.get("RevokeBtnEditStatus") == null ? "" : (String) canel.get("RevokeBtnEditStatus")) |
|
183 |
.replaceAll("@isrevoke@", |
|
184 |
canel.get("RevokeBtnProcName") == null || "".equals(canel.get("RevokeBtnProcName")) ? "0" |
|
185 |
: "1") |
|
186 |
.replaceAll("@RevokeBtnExpression@",revokeBtnExpression); |
|
187 |
// ----end |
|
188 |
|
|
189 |
// 把需要导出的写到excel |
|
190 |
String filename = "/panel_data"; |
|
191 |
if (formType == 2) { |
|
192 |
filename = "/data";// 是为了作为格线数据来处理 |
|
193 |
} |
|
194 |
if (pHelper.excelContext.length() > 0) { |
|
195 |
try { |
|
196 |
|
|
197 |
FileUtil.writeFile((formType == 2 ? gformInfo.get("formname") + "-" : "") + pHelper.excelContext + "-" |
|
198 |
+ pHelper.tableIs + "-" + pHelper.excelField + "-" + pHelper.excelLoca + "-" |
|
199 |
+ pHelper.excelTitles, pHelper.URI + pHelper.realPath + "/" + formType + filename);// 写到文件里面 |
|
200 |
pHelper.isto = true; |
|
201 |
} catch (DataAccessException e) { |
|
202 |
throw new ApplicationException(e.getMessage()); |
|
203 |
} |
|
204 |
} |
|
205 |
moBan = moBan.replace("@autoOpen@", !GridUtils.prossRowSetDataType_Boolean(gformInfo, "autoOpen") ? ",' !1=2'" : ""); |
44e865
|
206 |
moBan = moBan.replace("@pansetInv@", (formType == 1 ? "" : getTypeIni(pHelper)));// 付必要初始值,调用topPanInv.txt(1类型窗体不生成这个文件) |
a6a76f
|
207 |
moBan = moBan.replace("@panelScript@", getJspPanScript(formId, "", panelBean)); |
F |
208 |
// added by johns wang,2017-10-31 |
|
209 |
moBan = moBan.replace("@uploadEditStatusMap@", getUploadEditStatusMap(pHelper)); |
|
210 |
break; |
|
211 |
} |
|
212 |
|
|
213 |
if (";38;238;".indexOf(";" + formType + ";") != -1) { |
|
214 |
map.put("panel238", "<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" " |
|
215 |
+ " pageEncoding=\"UTF-8\"%><html><head><title>238</title></head><body><iframe id=\"abc\" " |
|
216 |
+ "name=\"abc\" src=\"\" height=\"100%\" width=\"100%\" style=\"display: none;\" frameborder=\"0\"> " |
|
217 |
+ "</iframe></body></html>"); |
|
218 |
} |
|
219 |
moBan += "@addscript@"; |
|
220 |
moBan = outRepl(moBan, panelBean);// 替换面板里面设置的特殊替换信息。 |
|
221 |
moBan = moBan.replaceAll("@formId@", String.valueOf(formId)).replaceAll("@formType@", String.valueOf(formType)); |
|
222 |
infoJsBuffer = new StringBuffer(DBHelper.replaceBr(infoJsBuffer.toString())); |
|
223 |
htmlBuffer.append(" panMain[panIndex].panInfo={"); |
|
224 |
htmlBuffer.append(infoJsBuffer.length() > 0 ? infoJsBuffer.delete(infoJsBuffer.length() - 1, infoJsBuffer.length()) : infoJsBuffer); |
|
225 |
htmlBuffer.append("};"); |
|
226 |
htmlBuffer.append("\r\n panMain[panIndex].html_Col=["); |
|
227 |
htmlBuffer.append(pHelper.html_Col.length() > 0 ? pHelper.html_Col.delete(pHelper.html_Col.length() - 1, pHelper.html_Col.length()) : pHelper.html_Col); |
|
228 |
htmlBuffer.append("];"); |
|
229 |
htmlBuffer.append("\r\n panMain[panIndex].panelAuditValue=<%=jsonOldPanel%>;"); |
|
230 |
htmlBuffer.append("\r\n panMain[panIndex].auditFiled=" + pHelper.panelAudit + ";");// 审计字段 |
|
231 |
htmlBuffer.append("\r\n panMain[panIndex].panelTitle=\"\";");// 动态描述用到 |
|
232 |
htmlBuffer.append("\r\n panMain[panIndex].select="+GridUtils.toJson(panelBean.selectMap)+";");// 动态描述用到 |
|
233 |
htmlBuffer.append("\r\n if(typeof liewidth !='undefined'){liewidth=" + pHelper.liewidth + ";}");// 动态描述用到 |
|
234 |
pHelper.liemut = 0; |
|
235 |
pHelper.liewidth = 0; |
|
236 |
String sqlparam = pHelper.sqlBuffer != null ? pHelper.sqlBuffer.toString() : ""; |
|
237 |
htmlBuffer.append("\r\n panMain[panIndex].sqlParam=" + getJsList(DBHelper.getStrRepInfo(sqlparam, "&"))); |
|
238 |
if (staList.size() > 0) {// 没有设置的不要显示此变量(stas) |
|
239 |
htmlBuffer.append("\r\n panMain[panIndex].stas={}"); |
|
240 |
for (Map<String, Object> mapSta : staList) { |
|
241 |
htmlBuffer.append("\r\n panMain[panIndex].stas['" + DBHelper.getValue(mapSta, "interValue") + "']='" |
|
242 |
+ DBHelper.getValue(mapSta, "dictvalue") + "';"); |
|
243 |
} |
|
244 |
} |
|
245 |
base.setOverlapText(panelBean.overlapText);//设置面板控件出现重叠的提示信息 xin 2020-12-4 09:56:18 |
|
246 |
moBan = moBan.replaceAll("@panInfo@", htmlBuffer.toString()); |
|
247 |
map.put("panHTML", moBan); |
|
248 |
map.put("panelControl", templeteFile[1].replaceAll("@MapPut@", sqlparam)); |
|
249 |
map.put("zhu", pHelper.tableIs); |
|
250 |
return map; |
|
251 |
} |
|
252 |
|
|
253 |
private String getUploadEditStatusMap(PanelParmHelper pHelper) { |
|
254 |
Map<String, Map<String, String>> mapList = getMaps(pHelper); |
|
255 |
String rtn = ""; // <% Map<String,String> uploadEditStatusMap = new |
|
256 |
// HashMap<String,String>() ; |
|
257 |
for (String panId : mapList.keySet()) { |
|
258 |
if (mapList.get(panId).get("type") != null && (mapList.get(panId).get("type").equals("9") |
|
259 |
|| mapList.get(panId).get("type").equals("19") || mapList.get(panId).get("type").equals("40"))) { |
|
260 |
rtn += panId + ":'" |
|
261 |
+ (mapList.get(panId).get("headflag") == null ? 0 : mapList.get(panId).get("headflag")) + ";pb#" |
|
262 |
+ (mapList.get(panId).get("editstatus") == null ? "" : mapList.get(panId).get("editstatus")) |
|
263 |
+ "',"; |
|
264 |
} |
|
265 |
} |
|
266 |
rtn = " panMain[panIndex].picState={" + ("".equals(rtn) ? "" : (rtn.substring(0, rtn.length() - 1))) + "};"; |
|
267 |
return rtn; |
|
268 |
} |
|
269 |
|
|
270 |
|
|
271 |
/** |
|
272 |
* 把list集合写成页面js集合 |
|
273 |
* |
|
274 |
* @param parmList |
|
275 |
* @return |
|
276 |
*/ |
|
277 |
private String getJsList(List<String> parmList) { |
|
278 |
StringBuffer re_ = new StringBuffer(); |
|
279 |
re_.append("["); |
|
280 |
if (parmList.size() > 0) { |
|
281 |
for (int i = 0; i < parmList.size(); i++) { |
|
282 |
re_.append("'").append(parmList.get(i)).append("',"); |
|
283 |
} |
|
284 |
re_.deleteCharAt(re_.length() - 1); |
|
285 |
} |
|
286 |
re_.append("]");// 默认 |
|
287 |
return re_.toString(); |
|
288 |
} |
|
289 |
|
|
290 |
/** |
|
291 |
* 处理初始值信息 |
|
292 |
* |
|
293 |
* @param formId 功能号 |
|
294 |
* @param formType 功能类型 |
|
295 |
* @throws Exception |
|
296 |
*/ |
|
297 |
private void setValueAll(int formId, int formType, PanelParmHelper pHelper, PanelBean panelBean) throws Exception { |
|
298 |
pHelper.setMoren(); |
|
299 |
pHelper.sqlBuffer = new StringBuffer(); |
|
300 |
pHelper.pan11 = panelBean.panel11; |
|
301 |
pHelper.formTypePan = formType; |
|
302 |
pHelper.formIdPan = formId; |
|
303 |
pHelper.initialValue.formid = formId; |
|
304 |
if (panelBean.isPrimaryPan) { |
|
305 |
panelBean.tabindexIs = 0; |
|
306 |
} |
|
307 |
pHelper.primary = 0; |
|
308 |
pHelper.idNo = 0; |
|
309 |
pHelper.eConn = new EmptyConn();// 清空关联 |
|
310 |
pHelper.jsList = systemSettingsBo.getJs(formId); |
|
311 |
if (panelBean.shorten) { |
|
312 |
pHelper.miaoShuTdWidth -= 20; |
|
313 |
pHelper.kongJianTdWidth -= 15; |
|
314 |
pHelper.kongJianAndMiaoShu = pHelper.kongJianTdWidth + pHelper.miaoShuTdWidth; |
|
315 |
} |
|
316 |
setTable(hasTiaoJian(formType, panelBean), pHelper); |
|
317 |
systemSettingsBo.setPanelHelper(pHelper); |
|
318 |
try { |
|
319 |
boolean bol = (pHelper.tableIs.indexOf(".do") != -1 ? false : true); |
|
320 |
if (bol) { |
|
321 |
pHelper.verificationMap = systemSettingsBo.getVerification(pHelper.tableIs); |
|
322 |
} |
|
323 |
} catch (SQLException e) { |
|
324 |
e.printStackTrace(); |
|
325 |
} |
|
326 |
//typeControlDao.setVerificationMap(pHelper.verificationMap);-- |
|
327 |
panelBean.pHelper = pHelper; |
|
328 |
panelBean.initialValue = pHelper.initialValue; |
|
329 |
panelBean.id = pHelper.id; |
|
330 |
panelBean.setKeyBack(setKeyBack(pHelper.formTypePan)); |
|
331 |
panelBean.setToKeBack(setKeyBackBytoKeBack(pHelper.formTypePan)); |
|
332 |
} |
|
333 |
|
|
334 |
private boolean setKeyBack(int formType) {// 要不要回车触发 |
|
335 |
switch (formType) { |
|
336 |
case 5: |
|
337 |
case 8: |
|
338 |
case 9: |
|
339 |
case 17: |
|
340 |
case 16: |
|
341 |
case 18: |
|
342 |
case 19: |
|
343 |
case 38: |
|
344 |
return false; |
|
345 |
default: |
|
346 |
return true; |
|
347 |
} |
|
348 |
} |
|
349 |
|
|
350 |
private boolean setKeyBackBytoKeBack(int formType) { |
|
351 |
switch (formType) { |
|
352 |
case 301: |
|
353 |
case 20: |
|
354 |
return true; |
|
355 |
default: |
|
356 |
return false; |
|
357 |
} |
|
358 |
} |
|
359 |
|
|
360 |
public List<Map<String, Object>> getMacAll(String table) throws SQLException { |
98c7bf
|
361 |
String sql = "set nocount on ; select fieldiD,initvalue from " + table;// MASTERCODE |
a6a76f
|
362 |
List<Map<String, Object>> list = sqlDBHelperIfc.getHashMapObj(sql); |
F |
363 |
List<Map<String, Object>> list1 = new ArrayList<Map<String, Object>>(); |
|
364 |
for (int i = 0; i < list.size(); i++) { |
|
365 |
if (DBHelper.getValue(list.get(i), "initvalue").toUpperCase().equals("MASTERCODE")) { |
|
366 |
list1.add(list.get(i)); |
|
367 |
} |
|
368 |
} |
|
369 |
return list1; |
|
370 |
} |
|
371 |
|
|
372 |
/** |
|
373 |
* 替换一些信息 |
|
374 |
* |
|
375 |
* @param moBan |
|
376 |
* @return |
|
377 |
*/ |
|
378 |
private String outRepl(String moBan, PanelBean panelBean) { |
|
379 |
PanelParmHelper pHelper = panelBean.pHelper; |
|
380 |
moBan = moBan.replaceAll("@index@", String.valueOf(panelBean.indexPan)); |
|
381 |
moBan = moBan.replaceAll("@maxCols@", String.valueOf(pHelper.colsWidth)); |
|
382 |
moBan = moBan.replaceAll("@openDoc@", panelBean.openDoc); |
|
383 |
moBan = moBan.replaceAll("@doc@", (panelBean.isDoc ? "false" : "true")); |
|
384 |
moBan = moBan.replaceAll("@maoshuF@", (panelBean.isLandscape ? "float: left;text-align:right;" : "text-align:left;")); |
|
385 |
moBan = moBan.replaceAll("@rowHei@", String.valueOf(pHelper.kongHei)); |
|
386 |
moBan = moBan.replaceAll("@kongJian@", String.valueOf(pHelper.kongJianAndMiaoShu + 20)); |
|
387 |
moBan = moBan.replaceAll("@miaoShuo@", String.valueOf(pHelper.miaoShuTdWidth)); |
|
388 |
moBan = moBan.replaceAll("@zhu@", pHelper.tableIs); |
|
389 |
moBan = moBan.replaceAll("@minxi@", pHelper.tableIs2); |
|
390 |
moBan = moBan.replaceAll("@isPrimaryPan@", (panelBean.isPrimaryPan ? "1" : "0")); |
|
391 |
String linkJs = pHelper.linkJsDate + pHelper.linkJsFu; |
|
392 |
if (pHelper.jsList != null && pHelper.jsList.size() > 0) { |
|
393 |
String jsDin = ""; |
|
394 |
String jsDiao = ""; |
|
395 |
for (int i = 0; i < pHelper.jsList.size(); i++) { |
|
396 |
if ("1".equals(DBHelper.getValue(pHelper.jsList.get(i), "eventType"))) { |
|
397 |
jsDin += filterDollarStr(DBHelper.getValue(pHelper.jsList.get(i), "jsContent")); |
|
398 |
} else { |
|
399 |
jsDiao += filterDollarStr(DBHelper.getValue(pHelper.jsList.get(i), "jsContent")); |
|
400 |
} |
|
401 |
} |
|
402 |
moBan = moBan.replaceAll("@addscript@", jsDiao); |
|
403 |
moBan = moBan.replaceAll("@linkscript@", jsDin + linkJs); |
|
404 |
} |
|
405 |
moBan = moBan.replaceAll("@pan43Type@", pHelper.panJs43);// 43控件 |
|
406 |
moBan = moBan.replaceAll("@linkscript@", linkJs); |
|
407 |
moBan = moBan.replaceAll("@addscript@", ""); |
|
408 |
String stringTiPan1 = ""; |
|
409 |
String strTi = ""; |
|
410 |
String tiStr = ""; |
|
411 |
HashMap<String, String> map = null; |
|
412 |
String sql = "select predocstatus from gform where formid=" + pHelper.formIdPan; |
|
413 |
List<HashMap<String, String>> listS = sqlDBHelperIfc.getHashMap(sql); |
|
414 |
if (listS != null && listS.size() > 0) { |
|
415 |
map = listS.get(0); |
|
416 |
} |
|
417 |
tiStr = "out.print(\" getStatu(panMain[panIndex].statueis,'" + map.get("predocstatus") + "'," |
|
418 |
+ pHelper.formTypePan + ");\");"; |
|
419 |
switch (pHelper.formTypePan) { |
|
420 |
case 9:// 9类型面板 |
|
421 |
case 15: |
|
422 |
case 17: |
|
423 |
// stringTiPan1 = "where += \" and |
|
424 |
// (\"+getqx('<%=session.getAttribute(\"@usercode\")%>','<%=session.getAttribute(\"@department\")%>','<%=session.getAttribute(\"@rolename\")%>')+\")\";"; |
|
425 |
// %号在前台要编程@~这里没有处理 暂时不用了 stringTiPan1 = "where += \" and |
|
426 |
// <%=DBHelper.getQx(session) |
|
427 |
// %>\";";//前面这个变量@department是否用,不确定,则统一进入这个方法,需要改统一该一个地方 |
|
428 |
stringTiPan1 = "where += \" and (\"+getqx('<%=session.getAttribute(\"" + SessionKey.USERCODE |
|
429 |
+ "\")%>','<%=session.getAttribute(\"" + SessionKey.CCCODE + "\")%>','<%=session.getAttribute(\"" |
|
430 |
+ SessionKey.ROLE_NAME + "\")%>')+\")\";"; |
|
431 |
// stringTiPan1=stringTiPan1.replaceAll("%","@~"); |
|
432 |
break; |
|
433 |
case 5:// 后添除16窗体的权限 |
|
434 |
case 16: |
|
435 |
case 498: |
|
436 |
case 497: |
|
437 |
case 8: |
|
438 |
strTi = "panMain[panIndex].isReadTo('\"+session.getAttribute(\"" + SessionKey.USERCODE |
|
439 |
+ "\")+\"','\"+session.getAttribute(\"" + SessionKey.ROLE_NAME |
|
440 |
+ "\")+\"','\"+session.getAttribute(\"" + SessionKey.DEPARTMENT |
|
441 |
+ "\")+\";\"+session.getAttribute(\"" + SessionKey.CCCODE + "\")+\"');"; |
|
442 |
tiStr += "\r\n out.print(\"\\\\r\\\\n " + strTi + "\");"; |
|
443 |
break; |
|
444 |
default: |
|
445 |
tiStr = ""; |
|
446 |
break; |
|
447 |
} |
|
448 |
moBan = moBan.replaceAll("@formtypedocstatus@", tiStr); |
|
449 |
moBan = moBan.replaceAll("@Add@", stringTiPan1); |
|
450 |
Map<String, Map<String, String>> mapList = getMaps(pHelper); |
|
451 |
moBan = moBan.replaceAll("@selectColAll@", getSqlCol(mapList, pHelper)); |
|
452 |
return moBan; |
|
453 |
} |
|
454 |
|
|
455 |
/** |
|
456 |
* 替换文本中$符号 |
|
457 |
* |
|
458 |
* @param str 含有$符号的字符串 |
|
459 |
* @return 返回替换后的字符串 |
|
460 |
*/ |
|
461 |
public static String filterDollarStr(String str) { |
|
462 |
String sReturn = ""; |
|
463 |
if (!str.trim().equals("")) { |
|
464 |
if (str.indexOf('$', 0) > -1) { |
|
465 |
while (str.length() > 0) { |
|
466 |
if (str.indexOf('$', 0) > -1) { |
|
467 |
sReturn += str.subSequence(0, str.indexOf('$', 0)); |
|
468 |
sReturn += "\\$"; |
|
469 |
str = str.substring(str.indexOf('$', 0) + 1, str.length()); |
|
470 |
} else { |
|
471 |
sReturn += str; |
|
472 |
str = ""; |
|
473 |
} |
|
474 |
} |
|
475 |
} else { |
|
476 |
sReturn = str; |
|
477 |
} |
|
478 |
} |
|
479 |
return sReturn; |
|
480 |
} |
|
481 |
|
|
482 |
/** |
|
483 |
* 获得面板显示 |
|
484 |
* |
|
485 |
* @param formId 功能号 |
|
486 |
* @param infoJsBuffer 功能号组装的js集合信息 |
|
487 |
* @param downGride 获得是否表格下面板 |
|
488 |
* @return 返回显示代码 |
|
489 |
*/ |
|
490 |
@Deprecated |
|
491 |
private StringBuffer getPanel(int formId, StringBuffer infoJsBuffer, boolean downGride, PanelBean panelBean) |
|
492 |
throws Exception { |
98c7bf
|
493 |
//PanelParmHelper pHelper = panelBean.pHelper; |
a6a76f
|
494 |
StringBuffer htmlBuffer = new StringBuffer(); |
F |
495 |
// panelBean.control38height=0; |
|
496 |
if (downGride) { |
|
497 |
if (panelBean.isPrimaryPan) { |
|
498 |
htmlBuffer = getPanel(formId, infoJsBuffer, 1, panelBean);// 原格线下显示 |
|
499 |
List<Map<String, Object>> inFormList = systemSettingsBo.getFieldFormId(formId); |
|
500 |
int tiformid = 0; |
|
501 |
for (Map<String, Object> map : inFormList) { |
|
502 |
tiformid = DBHelper.getValueInt(map, "MasterFieldShowLocation"); |
|
503 |
htmlBuffer.append(getPanel(formId, infoJsBuffer, tiformid, panelBean)); |
|
504 |
htmlBuffer.append("<script>$(document).ready(function(){panFiled.replace(").append(formId) |
|
505 |
.append(",").append(tiformid).append(");});</script>"); |
|
506 |
} |
|
507 |
} |
|
508 |
} else { |
|
509 |
if (panelBean.isPrimaryPan) { |
|
510 |
htmlBuffer = getPanel(formId, infoJsBuffer, 0, panelBean);// 原格线上显示 |
|
511 |
} else { |
|
512 |
htmlBuffer = getPanel(formId, infoJsBuffer, 1, panelBean);// 原格线下显示 |
|
513 |
} |
|
514 |
} |
|
515 |
return htmlBuffer; |
|
516 |
} |
|
517 |
|
|
518 |
/** |
|
519 |
* 获得面板显示 |
|
520 |
* |
|
521 |
* @param formId 功能号 |
|
522 |
* @param infoJsBuffer 功能号组装的js集合信息 |
|
523 |
* @param downFormid 获得是否表格下面板 |
|
524 |
* @return 返回显示代码 |
|
525 |
*/ |
|
526 |
private StringBuffer getPanel(int formId, StringBuffer infoJsBuffer, int downFormid, PanelBean panelBean) |
|
527 |
throws Exception { |
|
528 |
PanelParmHelper pHelper = panelBean.pHelper; |
|
529 |
StringBuffer htmlBuffer = new StringBuffer(); |
|
530 |
StringBuffer hidBuffer = new StringBuffer(); |
|
531 |
Map<String, Integer> maxMap = new HashMap<String, Integer>(); |
|
532 |
Map<String, String> listRC = new TreeMap<String, String>(); |
|
533 |
String listmax = ""; |
|
534 |
// 处理 |
|
535 |
List<String> tabsheetNameS = systemSettingsBo.selectTabsheetname(formId, downFormid);// false为非grid下的面板 |
|
536 |
// if (tabsheetNameS.size() > 1) { |
|
537 |
tabsheetNameS.remove("");// 面板页多于2个时,去掉为空的面板页 |
|
538 |
tabsheetNameS.add("null"); |
|
539 |
// } |
|
540 |
int lineNO = systemSettingsBo.getShowMaxRow(formId, pHelper.primary, downFormid);// 总行数 |
|
541 |
lineNO = lineNO + ((tabsheetNameS.size() > 1) ? 1 : 0); |
|
542 |
List<Map<String, Object>> listSys = systemSettingsBo.selectList(formId, pHelper.primary, downFormid);// 暂时为表格上面板,设计好后改 |
|
543 |
Map<String, Object> maxRC = systemSettingsBo.getFormIdtable(formId, pHelper.primary, downFormid); |
|
544 |
try { |
|
545 |
listmax = gridServiceIfc.getTypeLengthInfo(pHelper.tableIs);// 返回char |
|
546 |
// nchar,varchar |
|
547 |
// nvarchar类型的字段和长度。操作时间:2014-7-2 |
|
548 |
// 16:39:42 |
|
549 |
} catch (Exception e) { |
|
550 |
listmax = null; |
|
551 |
maxMap = null; |
|
552 |
} |
|
553 |
if (listmax != null) {// 处理返回的char nchar,varchar nvarchar类型 |
|
554 |
String[] max = listmax.split(","); |
|
555 |
for (int m = 0; m < max.length; m++) { |
|
556 |
try { |
|
557 |
String[] maindex = max[m].split("-");// 获取字段名和字段的长度 |
|
558 |
if (maindex.length < 3) {// 处理出现负数的问题 负数不需要添加到里面 2014-7-5 |
|
559 |
// 10:13:34 |
|
560 |
maxMap.put(maindex[0].toLowerCase(), Integer.parseInt(maindex[1]));// 组装字段和长度操作时间:2014-7-2 |
|
561 |
// 16:39:29 |
|
562 |
} |
|
563 |
} catch (Exception e) { |
|
564 |
throw new Exception("【"+max[m]+"】数据类型长度为空,请检查数据类型是否正确"); |
|
565 |
} |
|
566 |
} |
|
567 |
} |
|
568 |
// 在上面已经把分页,面板位置,及分页内部处理考虑好了 |
|
569 |
int kuaHang = 0; |
|
570 |
int kuaLie = 0; |
|
571 |
int danLie = 0; |
|
572 |
int danHang = 0; |
|
573 |
String yePanel = ""; |
|
574 |
String showMiaoShu = ""; |
|
575 |
int yinMiaoShu = 0; |
|
576 |
String miaoshuHtml = ""; |
|
577 |
String control = ""; |
|
578 |
String describeSQL = ""; |
|
579 |
StringBuffer sb1 = new StringBuffer();// 面板需要导出的字段名+标题 |
|
580 |
StringBuffer sb2 = new StringBuffer();// 面板需要导出的字段名 |
|
581 |
StringBuffer sb3 = new StringBuffer();// 面板需要导出的字段位置(在几行几列) |
|
582 |
StringBuffer sb4 = new StringBuffer();// 面板需要导出的文件名称设置 |
|
583 |
for (Map<String, Object> map : listSys) {// 在这里循环,组装出每一个控件 |
5f1f90
|
584 |
pHelper.div42=""; |
a6a76f
|
585 |
pHelper.initialValue.setInv(map); |
F |
586 |
map.put(TypeControl.PANEL_INFO, panelBean); |
|
587 |
danLie = DBHelper.getValueInt(map, "ColNo"); |
|
588 |
danHang = DBHelper.getValueInt(map, "RowNo"); |
|
589 |
kuaHang = DBHelper.getValueInt(map, "HeightNum"); |
|
590 |
kuaLie = DBHelper.getValueInt(map, "LengthNum"); |
|
591 |
yePanel = DBHelper.getValue(map, "tabsheetname"); |
|
592 |
showMiaoShu = DBHelper.replaceBr(DBHelper.getValue(map, "fieldname")); |
|
593 |
showMiaoShu = showMiaoShu + (showMiaoShu.equals("") ? " " : "");// 获得些必要信息,避免重复获得 |
|
594 |
yinMiaoShu = DBHelper.getValueInt(map, "Hidelabel"); |
|
595 |
pHelper.id = DBHelper.getValue(map, "FieldID").toLowerCase();// 给控件赋值ID |
5f1f90
|
596 |
//如果是42控件或者3类型设置了42控制的值这为true |
a6a76f
|
597 |
boolean boldiv = (DBHelper.getValueInt(map, "ControlType") == 42 |
F |
598 |
|| !DBHelper.getValue(map, "SuggestFileds").equals("")) ? true : false; |
|
599 |
// 增加面板的excel导出,2014-3-25,by danaus |
|
600 |
if (DBHelper.getValueInt(map, "isExport") == 1) { |
|
601 |
String displayformat = DBHelper.getValue(map, "Displayformat"); |
|
602 |
if (displayformat != null && !displayformat.isEmpty()) { |
|
603 |
sb1.append(DBHelper.getValue(map, "fieldid")).append("#") |
|
604 |
.append(DBHelper.getValue(map, "fieldname")).append("#") |
|
605 |
.append(displayformat.replaceAll("-", "~")).append(";"); |
|
606 |
} else { |
|
607 |
sb1.append(DBHelper.getValue(map, "fieldid")).append("#") |
|
608 |
.append(DBHelper.getValue(map, "fieldname")).append(";"); |
|
609 |
} |
|
610 |
if (DBHelper.getValueInt(map, "exportTitle") == 1) |
|
611 |
sb4.append(DBHelper.getValue(map, "fieldid")).append(";"); |
|
612 |
sb3.append(DBHelper.getValue(map, "fieldid") + "#" + DBHelper.getValueInt(map, "RowNo") + "," |
|
613 |
+ DBHelper.getValueInt(map, "ColNo") + "," + DBHelper.getValueInt(map, "LengthNum") + "," |
|
614 |
+ DBHelper.getValueInt(map, "HeightNum")).append(";"); |
|
615 |
sb2.append(DBHelper.getValue(map, "fieldid")).append(","); |
|
616 |
} |
|
617 |
if (DBHelper.getValueInt(map, "isCopyExclude") == 1) { |
|
618 |
pHelper.iscopy += DBHelper.getValue(map, "fieldid") + ";";// 处理复单字段 |
|
619 |
} |
|
620 |
if (";34;36;".indexOf(";" + DBHelper.getValue(map, "ControlType") + ";") == -1) { |
|
621 |
getJsInfo(infoJsBuffer, map, panelBean); |
|
622 |
} |
|
623 |
// 处理审计字段 |
|
624 |
if (!DBHelper.getValue(map, "audit").equals("") && DBHelper.getValueInt(map, "audit") != 0) { |
|
625 |
JsonArray audit = new JsonArray(); |
|
626 |
audit.add(DBHelper.getValue(map, "FieldID").toLowerCase()); |
|
627 |
audit.add(DBHelper.getValue(map, "audit")); |
|
628 |
audit.add(DBHelper.getValue(map, "fieldname")); |
|
629 |
pHelper.panelAudit.add(audit); |
|
630 |
// pHelper.panelAudit.append(DBHelper.getValue(map, "FieldID").toLowerCase() + "&" |
|
631 |
// + DBHelper.getValue(map, "audit") + "&" + DBHelper.getValue(map, "fieldname") + ";");// 审计字段,编号,审计字段描述。 |
|
632 |
} |
|
633 |
//typeControlDao.setPanelParmHelper(pHelper); |
|
634 |
if (DBHelper.getValueInt(map, "Visible") == 1 && danLie != 0 && danHang != 0) {// 显示 |
|
635 |
if (!DBHelper.getValue(map, "showfieldvalueexpression").equals("") |
|
636 |
|| !DBHelper.getValue(map, "stylecss").equals("")) {// 隐藏这个控件的_expr |
|
637 |
hidBuffer.append(typeControlDao.getHidTextexpr(map)); |
|
638 |
} |
|
639 |
pHelper.maps = isAdd(pHelper.maps, map, pHelper); |
|
640 |
yePanel = (tabsheetNameS.size() == 1 || yePanel.trim().equals("")) ? "null" : yePanel;// 页名称 |
|
641 |
map.put("tdLen", ((pHelper.kongJianAndMiaoShu + 1) * kuaLie - 1) |
|
642 |
- ((panelBean.isLandscape) ? ((yinMiaoShu == 1) ? 0 : pHelper.miaoShuTdWidth) + 5 : +10));// 减5做备用 |
|
643 |
if (danLie > pHelper.liemut) {// 获取面板列控件的总宽度 |
|
644 |
pHelper.liemut = danLie; |
|
645 |
pHelper.liewidth = ((danLie - 1) * ((pHelper.kongJianAndMiaoShu))) + (pHelper.kongJianAndMiaoShu);// 面板列控件的总宽度 |
|
646 |
} |
|
647 |
if (showMiaoShu.substring(0, 1).indexOf("!") != -1) {//设置有动态字段描述,以!开头 |
|
648 |
showMiaoShu = showMiaoShu.replaceAll("!", ""); |
|
649 |
describeSQL = "\r\n<%String field" + DBHelper.getValue(map, "FieldID") |
|
650 |
+ "=build.msInfo(DBHelper.getValRepShiMS(\"" + showMiaoShu + "\",session,docMap, false));" |
|
651 |
+ "\r\n pantit+=\"" + pHelper.id + "(\"+field" + DBHelper.getValue(map, "FieldID") |
|
652 |
+ "+\"'\";%>\r\n"; |
|
653 |
showMiaoShu = "<%=field" + DBHelper.getValue(map, "FieldID") + "%>"; |
|
654 |
} |
|
655 |
if (yinMiaoShu == 1) { |
|
656 |
miaoshuHtml = ((!panelBean.isLandscape) ? "<div class=\"" + panelBean.miaoshu_pan + "\"> </div>" : ""); |
|
657 |
} else { |
7bac0e
|
658 |
miaoshuHtml = "<div class=\"" + panelBean.miaoshu_pan + "\" title=\""+showMiaoShu+"\">" + showMiaoShu + "</div>";// 显示描述 |
a6a76f
|
659 |
} |
F |
660 |
showMiaoShu = (DBHelper.getValue(map, "Hints").equals("")) ? showMiaoShu |
|
661 |
: DBHelper.getValue(map, "Hints");// 提示信息获得 |
|
662 |
if ((maxMap != null && maxMap.get(pHelper.id) != null) |
|
663 |
|| !DBHelper.getValue(map, "TipsExpression").equals("")) {// 控制控件描述的限定长度操作时间2014-7-3 |
|
664 |
// 10:07:14 |
|
665 |
if (DBHelper.getValueInt(map, "ControlType") != 31 && DBHelper.getValueInt(map, "ControlType") != 2 |
|
666 |
&& DBHelper.getValue(map, "TipsExpression").equals("")) {// 下拉不需要提示 |
|
667 |
showMiaoShu = showMiaoShu + " 【最长" + maxMap.get(pHelper.id) + "个字符(每个汉字占2个字符)】";// 提示限定长度描述 |
|
668 |
} |
|
669 |
if (!DBHelper.getValue(map, "TipsExpression").equals("")) { |
|
670 |
if (DBHelper.getValue(map, "TipsExpression").indexOf("!") != -1) {// 动态查询信息的时候 |
|
671 |
showMiaoShu = "<%=DBHelper.getValue(docMap,\"" + pHelper.id + "_tips\",mapAll)%>"; |
|
672 |
} else {// 没有动态查询时 |
|
673 |
showMiaoShu = DBHelper.getValue(map, "TipsExpression"); |
|
674 |
} |
|
675 |
} |
|
676 |
} |
|
677 |
// miaoshuHtml表示面板控件的名称:如:(单号)。showMiaoShu表示面板控件的提示信息:如:(单号【最长16个字符(每个汉字占2个字符)】 |
fc3567
|
678 |
control = describeSQL + miaoshuHtml + "\n<div class=\"" + (yinMiaoShu==1?panelBean.control_div+"1":panelBean.control_div) + "\" >\n <span class=\"\" title=\"" + showMiaoShu + "\" >\n"; |
a6a76f
|
679 |
//这里的tabs38属性是处理页面页卡的38类型控件显示边框问题-xin 2018-11-5 15:17:48 |
F |
680 |
map.put("tabs38", yePanel); |
|
681 |
if(listRC.get(yePanel + "R" + danHang + "C" + danLie)==null) {//不存在的话就保存到map里 |
|
682 |
// yePanel代表小页卡名,如果值是null表示不是在小页卡。R代表行号,如:R1代表在第一行。C代表列号,如:C1代表在第一列。组合起来就是:第一行的第一列位置。 |
|
683 |
listRC.put(yePanel + "R" + danHang + "C" + danLie, control + typeControlDao.getComponentForPanel(map, false, maxMap) + (boldiv ? pHelper.div42 : "")); |
|
684 |
listRC.put(yePanel + "R" + danHang + "C" + danLie+"-idd",DBHelper.getValue(map, "fieldname")+"-"+DBHelper.getValue(map, "fieldId")); |
|
685 |
}else { |
|
686 |
panelBean.overlapText+="<br>提示:"+formId+"-控件【"+DBHelper.getValue(map, "fieldname")+"-"+DBHelper.getValue(map, "fieldId")+"】" |
|
687 |
+ "在设置界面[行][列]中和【"+listRC.get(yePanel + "R" + danHang + "C" + danLie+"-idd")+"】出现重叠。" |
|
688 |
+ "【"+DBHelper.getValue(map, "fieldname")+"-"+DBHelper.getValue(map, "fieldId")+"】已被忽略。"; |
|
689 |
} |
|
690 |
// 38控件特殊处理 |
|
691 |
kuaHang = (DBHelper.getValueInt(map, "ControlType") == 38 ? 1 : kuaHang); |
|
692 |
listRC.put(yePanel + "R" + danHang + "C" + danLie + "r", kuaHang + "");// 对应每个字段的跨行值 |
|
693 |
listRC.put(yePanel + "R" + danHang + "C" + danLie + "c", kuaLie + "");// 对应每个字段的跨列值 |
|
694 |
pHelper.div42 = ""; |
|
695 |
describeSQL = ""; |
|
696 |
} else {// 隐藏字段 |
|
697 |
if (DBHelper.getValueInt(map, "isLoad") == 1) {// 加载页面显示判断 |
|
698 |
// 2014-7-29 |
|
699 |
// 12:05:57 |
|
700 |
pHelper.mapHids = isAdd(pHelper.mapHids, map, pHelper); |
|
701 |
hidBuffer.append(typeControlDao.getHidText(map)); |
|
702 |
hidBuffer.append(typeControlDao.getHidTextexpr(map));//得到_expr隐藏网页代码 2018-12-25 10:00:50 xin |
|
703 |
} |
|
704 |
} |
|
705 |
//下面这两个是31控件或43控件设置好的sql语句,存在在对应功能号下的panelControXXXXXX.jsp |
|
706 |
//之前放在面板控件显示的判断里面(上面的显示字段处理),移出来是为了解决当OA审核按钮的抄送设置不显示后,在新的OA审核界面的抄送也能加载到数据 |
|
707 |
//xin 2021-2-25 10:04:19 |
|
708 |
if (!DBHelper.getValue(map, "SqlScript").equals("")) { |
|
709 |
pHelper.sqlBuffer.append(" controls.put(\"").append(DBHelper.getValue(map, "FieldID").toLowerCase()) |
|
710 |
.append("\",\"").append(DBHelper.replaceBr(DBHelper.getValue(map, "SqlScript"))) |
|
711 |
.append("\");\r\n"); |
|
712 |
} |
|
713 |
if (!DBHelper.getValue(map, "SqlWhere").equals("")) { |
|
714 |
pHelper.sqlBuffer.append(" controls.put(\"").append(DBHelper.getValue(map, "FieldID").toLowerCase()) |
|
715 |
.append("Where\",\"").append(DBHelper.replaceBr(DBHelper.getValue(map, "SqlWhere"))) |
|
716 |
.append("\");\r\n"); |
|
717 |
} |
|
718 |
} |
|
719 |
if (sb1.length() > 0) { |
|
720 |
if (pHelper.excelContext == "") { |
|
721 |
pHelper.excelContext += sb1.substring(0, sb1.length() - 1); |
|
722 |
pHelper.excelField += sb2.substring(0, sb2.length() - 1); |
|
723 |
pHelper.excelLoca += sb3.substring(0, sb3.length() - 1); |
|
724 |
if (sb4.length() > 0) |
|
725 |
pHelper.excelTitles += sb4.substring(0, sb4.length() - 1); |
|
726 |
} else { |
|
727 |
pHelper.excelContext += ";" + sb1.substring(0, sb1.length() - 1); |
|
728 |
pHelper.excelField += "," + sb2.substring(0, sb2.length() - 1); |
|
729 |
pHelper.excelLoca += ";" + sb3.substring(0, sb3.length() - 1); |
|
730 |
if (sb4.length() > 0) |
|
731 |
pHelper.excelTitles += ";" + sb4.substring(0, sb4.length() - 1); |
|
732 |
} |
|
733 |
} |
|
734 |
// 组装成面板格式 |
|
735 |
// kong += (pHelper.kongHei + 1) * lineNO + ((tabsheetNameS.size() > 1) |
|
736 |
// ? pHelper.rowHei : 0); |
|
737 |
getjspPanTable(formId, tabsheetNameS, listRC, htmlBuffer, panelBean, maxRC, downFormid); |
|
738 |
htmlBuffer.append(hidBuffer);// 追加隐藏字段信息 |
|
739 |
if (downFormid == 0) {// 显示在表格下面的字段不追加 |
|
740 |
htmlBuffer.append("<input type=\"hidden\" name=\"formIdHid\" id=\"formIdHid\" value=\"" + formId |
|
741 |
+ "\" ><input type=\"hidden\" name=\"allIsChecks\" id=\"allIsChecks\" value=\"\" >"); |
|
742 |
} |
|
743 |
return htmlBuffer; |
|
744 |
} |
|
745 |
|
|
746 |
/** |
|
747 |
* 组装面板控件以table格式显示 |
|
748 |
* |
|
749 |
* @param formId |
|
750 |
* @param tabs |
|
751 |
* @param listRC |
|
752 |
* @param htmlBuffer |
|
753 |
* @param pHelper |
|
754 |
* @param maxRC |
|
755 |
* @return |
|
756 |
*/ |
|
757 |
private StringBuffer getjspPanTable(int formId, List<String> tabs, Map<String, String> listRC, |
|
758 |
StringBuffer htmlBuffer, PanelBean panelBean, Map<String, Object> maxRC, int downFormid) { |
|
759 |
int Rows = DBHelper.getValueInt(maxRC, "MaxRows");// 面板上最下那一行的行数 |
|
760 |
int Cols = DBHelper.getValueInt(maxRC, "MaxCols");// 面板上最多的列的列数 |
19cf5f
|
761 |
Cols = (Cols > 4 ? Cols : 4);//默认最少列数为4列。 |
a6a76f
|
762 |
PanelParmHelper pHelper = panelBean.pHelper; |
F |
763 |
pHelper.colsWidth = Cols;// 获取面板跨列数 |
|
764 |
Map<String, Integer> Rmap = null;// 跨行集合 |
|
765 |
String tab = "";// 小页卡 |
|
766 |
String panel = "";// 存放table的面板 |
|
767 |
int ck = 0;// 控件跨的列 |
|
768 |
int rk = 0;// 控件跨的行 |
|
769 |
try { |
fc3567
|
770 |
tab += "\r<div class=\"easyui-tabs PanelTabs\" tabPosition=\"bottom\">";//style=\"margin: 5px 0px 10px 10px;width:96%;height:auto\">"; |
a6a76f
|
771 |
for (int y = 0; y < tabs.size(); y++) {// 面板中的小页卡。null值表示面板不需要小页卡存在,存在null在内的其他值表示面板有页卡 |
F |
772 |
Rmap = new HashMap<String, Integer>(); |
|
773 |
String table = "";// 用来组装一个table |
fc3567
|
774 |
String margin_left = "";//(tabs.get(y).equals("null") ? "margin-left: 10px;" : "margin-left: -5px;margin-bottom: 10px;margin-top: 10px;"); |
b7ab66
|
775 |
table += "\r\n<table id=\"panelTable" + downFormid + "\" class=\"panel_table" + (Cols > 4 ? "ss" : "") + "\" style=\"" + margin_left |
a6a76f
|
776 |
+ "width:" + (258 * Cols) + "px;\">";// p_table" + Cols + " |
F |
777 |
for (int r = 1; r < Rows + 1; r++) {// 循环每一行 |
|
778 |
table += "\r<tr>"; |
|
779 |
for (int c = 1; c < Cols + 1; c++) {// 循环每一列 |
|
780 |
String style = ""; |
|
781 |
if (listRC.get(tabs.get(y) + "R" + r + "C" + c) != null) {// 判断r行c列是否有值 |
|
782 |
rk = Integer.parseInt(listRC.get(tabs.get(y) + "R" + r + "C" + c + "r"));// 控件跨的行 |
|
783 |
ck = Integer.parseInt(listRC.get(tabs.get(y) + "R" + r + "C" + c + "c"));// 控件跨的列 |
|
784 |
if (rk > 1 && ck != Cols) {// 存在跨行 |
|
785 |
Rmap.put(tabs.get(y) + "R" + r + "C" + c + "r", rk);// 跨行集合(统一放到一个集合里面) |
|
786 |
Rmap.put(tabs.get(y) + "R" + r + "C" + c + "c", ck);// 跨行集合(统一放到一个集合里面) |
|
787 |
style += "rowspan=\"" + rk + "\" ";// 获取控件的跨行数 |
|
788 |
} |
|
789 |
style += (ck > 1 ? "colspan=\"" + ck + "\" " : "");// 获取控件的跨列数 |
|
790 |
style += "style=\"width:" + ((256 * ck) + ((ck - 1) * 6)) + "px;\""; |
176200
|
791 |
table += "\r\n<td class=\"panel_table_td\" " + style + "><div class=\"panelControlTDDiv\">" |
X |
792 |
+ listRC.get(tabs.get(y) + "R" + r + "C" + c) + "</div></td>";// 组装一个td |
a6a76f
|
793 |
c = (ck > 1 ? (c + (ck - 1)) : c);// 跨列之后的位置 |
F |
794 |
r = ((rk > 1 && ck == Cols) ? (r + (rk - 1)) : r);// 跨行之后的位置 |
|
795 |
} else { |
|
796 |
// 判断在跨行集合(Rmap)里面是否有跨行 |
|
797 |
if (Rmap.get(tabs.get(y) + "R" + (r - 1) + "C" + c + "r") != null |
|
798 |
&& Rmap.get(tabs.get(y) + "R" + (r - 1) + "C" + c + "r") > 1) { |
|
799 |
Rmap.put(tabs.get(y) + "R" + (r) + "C" + c + "r", |
|
800 |
Rmap.get(tabs.get(y) + "R" + (r - 1) + "C" + c + "r") - 1); |
|
801 |
Rmap.remove(tabs.get(y) + "R" + (r - 1) + "C" + c + "r"); |
|
802 |
Rmap.put(tabs.get(y) + "R" + (r) + "C" + (c) + "c", |
|
803 |
Rmap.get(tabs.get(y) + "R" + (r - 1) + "C" + c + "c")); |
|
804 |
Rmap.remove(tabs.get(y) + "R" + (r - 1) + "C" + c + "c"); |
|
805 |
c = (c + (Rmap.get(tabs.get(y) + "R" + (r) + "C" + c + "c") - 1)); |
|
806 |
} else { |
19cf5f
|
807 |
table += "\r\n<td class=\"panel_table_td\" style=\"width:256px;\">" + |
X |
808 |
"<div class=\"panelControlTDDiv\"></div></td>";// r行c列没值时添加一个空TD |
a6a76f
|
809 |
} |
F |
810 |
} |
|
811 |
} |
|
812 |
table += "\r</tr>"; |
|
813 |
} |
|
814 |
table += "\r</table>\n"; |
|
815 |
|
|
816 |
if (!tabs.get(y).equals("null")) {// 有小页卡的时候进入进行组装 |
|
817 |
tab += "\r<div title=\"" + tabs.get(y) + "\">" + table + "</div>"; |
|
818 |
} else { |
|
819 |
panel = table; |
|
820 |
} |
|
821 |
} |
|
822 |
tab += "\r</div>"; |
|
823 |
htmlBuffer.append(tabs.size() > 1 ? tab : panel);// 赋值 |
|
824 |
} catch (Exception e) { |
|
825 |
e.printStackTrace(); |
|
826 |
} finally { |
|
827 |
Rmap.clear(); |
|
828 |
} |
|
829 |
return htmlBuffer; |
|
830 |
} |
|
831 |
|
|
832 |
/** |
|
833 |
* 筛选面板获得 9窗体的日期从。。。。。到。。。。。调用到。 |
|
834 |
* |
|
835 |
* @param gfList 筛选设置集合 |
|
836 |
* @param infoJsBuffer 条件 |
|
837 |
* @return 返回面板html代码 |
|
838 |
* @throws Exception |
|
839 |
*/ |
|
840 |
private StringBuffer getJspPanSift(int formId, List<Map<String, Object>> gfList, StringBuffer infoJsBuffer, |
|
841 |
PanelBean panelBean) throws Exception { |
|
842 |
PanelParmHelper pHelper = panelBean.pHelper; |
|
843 |
Map<String, String> panelMap = new HashMap<String, String>(); |
|
844 |
StringBuffer hidBuffer = new StringBuffer(); |
|
845 |
StringBuffer htmlBuffer = new StringBuffer(); |
a6789a
|
846 |
List<Integer> pailit=new ArrayList<>(); |
a6a76f
|
847 |
panelMap.put("null", "");// 无多页的情况处理 |
F |
848 |
int kuaHang = 0; |
|
849 |
int kuaLie = 0; |
|
850 |
int danLie = 0; |
|
851 |
int danHang = 0; |
a6789a
|
852 |
int panHeight=0; |
a6a76f
|
853 |
String yePanel = ""; |
F |
854 |
String style = ""; |
|
855 |
String showMiaoShu = ""; |
|
856 |
int xianMiaoShu = 0; |
|
857 |
String miaoshuHtml = ""; |
|
858 |
for (Map<String, Object> map : gfList) { |
|
859 |
danLie = DBHelper.getValueInt(map, "ColNo"); |
|
860 |
danHang = DBHelper.getValueInt(map, "RowNo"); |
a6789a
|
861 |
if(!pailit.contains(danHang)){ |
X |
862 |
panHeight=panHeight+30; |
|
863 |
pailit.add(danHang); |
|
864 |
} |
a6a76f
|
865 |
if (";34;36;".indexOf(";" + DBHelper.getValue(map, "ControlType") + ";") == -1) { |
F |
866 |
map.put("isLoad", "1"); |
|
867 |
map.put("FT", DBHelper.getValue(map, "FT")); |
|
868 |
getJsInfo(infoJsBuffer, map, panelBean); |
|
869 |
} |
|
870 |
pHelper.id = DBHelper.getValue(map, "FieldID").toLowerCase();// 给控件赋值ID |
|
871 |
//typeControlDao.setPanelParmHelper(pHelper); |
|
872 |
if (DBHelper.getValueInt(map, "Visible") == 1 && danLie != 0 && danHang != 0) {// 显示 |
|
873 |
pHelper.maps = isAdd(pHelper.maps, map, pHelper); |
|
874 |
kuaHang = DBHelper.getValueInt(map, "HeightNum"); |
|
875 |
kuaLie = DBHelper.getValueInt(map, "LengthNum"); |
|
876 |
yePanel = DBHelper.getValue(map, "tabsheetname"); |
|
877 |
showMiaoShu = DBHelper.replaceBr(DBHelper.getValue(map, "fieldname")); |
|
878 |
xianMiaoShu = DBHelper.getValueInt(map, "Hidelabel"); |
|
879 |
showMiaoShu = showMiaoShu + (showMiaoShu.equals("") ? " " : "");// 获得些必要信息,避免重复获得 |
|
880 |
yePanel = "null";// 页名称 |
768134
|
881 |
danLie = danLie == 1 ? 0 : danLie; |
a6a76f
|
882 |
style = "margin-top: " + ((danHang - 1) * (pHelper.kongHei) + (danHang == 1 ? 5 : 10)) + "px; margin-left: " |
768134
|
883 |
+ (danLie * 120) + "px;";// 确定位置 |
X |
884 |
// + (danLie * (pHelper.kongJianAndMiaoShu)) + "px;";// 确定位置 |
a6a76f
|
885 |
map.put("tdLen", ((pHelper.kongJianAndMiaoShu + 1) * kuaLie - 1) |
F |
886 |
- ((panelBean.isLandscape) ? ((xianMiaoShu == 1) ? 0 : pHelper.miaoShuTdWidth) + 5 : +10));// 减5做备用 |
|
887 |
if (kuaLie > 1) { |
768134
|
888 |
style += "width:" + (190 * kuaLie) + "px;"; //"width:" + (pHelper.kongJianAndMiaoShu * kuaLie) + "px;"; // 加10为控件不至于换行用 |
a6a76f
|
889 |
} |
F |
890 |
if (kuaHang > 1) { |
768134
|
891 |
style += "height:" + (pHelper.kongHei * kuaHang) + "px;";// 设置高度 |
a6a76f
|
892 |
} |
F |
893 |
if (danLie > pHelper.liemut) {// 获取面板列控件的总宽度 |
|
894 |
pHelper.liemut = danLie; |
|
895 |
pHelper.liewidth = ((danLie - 1) * ((pHelper.kongJianAndMiaoShu) + 1)) |
|
896 |
+ ((pHelper.kongJianAndMiaoShu) + 1); |
|
897 |
} |
7bac0e
|
898 |
miaoshuHtml = (xianMiaoShu == 1) ? "" : "<div class=\"" + panelBean.miaoshu_pan + "\" " + |
X |
899 |
"title=\""+showMiaoShu+"\">" + showMiaoShu + "</div>";// 显示描述 |
a6a76f
|
900 |
showMiaoShu = (DBHelper.getValue(map, "Hints").equals("")) ? showMiaoShu |
F |
901 |
: DBHelper.getValue(map, "Hints");// 提示信息获得 |
|
902 |
if (!DBHelper.getValue(map, "TipsExpression").equals("")) { |
|
903 |
if (DBHelper.getValue(map, "TipsExpression").indexOf("!") != -1) {// 动态查询信息的时候 |
|
904 |
showMiaoShu = "<%=DBHelper.getValue(docMap,\"" + pHelper.id + "_tips\",mapAll)%>"; |
|
905 |
} else {// 没有动态查询时 |
|
906 |
showMiaoShu = DBHelper.getValue(map, "TipsExpression"); |
|
907 |
} |
|
908 |
} |
|
909 |
//这里的tabs38属性是处理页面页卡的38类型控件显示边框问题-xin 2018-11-5 15:17:30 |
|
910 |
map.put("tabs38", yePanel); |
|
911 |
map.put(TypeControl.PANEL_INFO, panelBean); |
|
912 |
panelMap.put(yePanel, |
|
913 |
panelMap.get(yePanel) + "\r\n<span style=\"" + style + "\" class=\"" + panelBean.posPan + "\" title=\"" |
|
914 |
+ showMiaoShu + "\">" + miaoshuHtml + "<div class=\"" + panelBean.control_div + "\">" |
|
915 |
+ typeControlDao.get(map) + "</div></span>");// 组装成控件添加进当前页面,typeControlDao.get(map,false)之后统一考虑实现 |
|
916 |
} else {// 隐藏字段 |
|
917 |
// if(mrq==0) { |
|
918 |
pHelper.mapHids = isAdd(pHelper.mapHids, map, pHelper); |
|
919 |
hidBuffer.append(typeControlDao.getHidText(map)); |
|
920 |
// } |
|
921 |
} |
|
922 |
} |
|
923 |
|
a6789a
|
924 |
htmlBuffer.append("<div id=\"").append("panel").append("_").append(formId).append("\" class=\"searchWindsType\" style=\"height:") |
X |
925 |
.append(panHeight).append("px;width:auto\">"); |
|
926 |
// .append((pHelper.rowHei + 4) * systemSettingsBo.getMaxRow(formId)).append("px;width:auto\">"); |
a6a76f
|
927 |
htmlBuffer.append(panelMap.get("null")).append("</div>"); |
F |
928 |
|
|
929 |
htmlBuffer.append("<div id=\"tplt-grid\"><%@ include file=\"@formId@_grid.jsp\" %></div>"); |
|
930 |
// js 代码 |
|
931 |
htmlBuffer.append("\r\n <script language=\"javascript\" type=\"text/javascript\"> "); |
|
932 |
htmlBuffer.append("\r\n panMain[panIndex].keyDown=function(op,e){");// 键触发 |
|
933 |
htmlBuffer.append("\r\n var event;\r\n if(e!='null'){ event = $.event.fix(e);}"); // 键盘按下事件 |
|
934 |
htmlBuffer.append("\r\n if(op=='123' || event.keyCode==13){getOder();"); |
|
935 |
htmlBuffer.append("\r\n }"); |
|
936 |
htmlBuffer.append("\r\n}"); |
|
937 |
htmlBuffer.append("\r\n function getOder(){");// 拼sql |
|
938 |
htmlBuffer.append("\r\n var where = \"\"; var str=\"\";"); |
|
939 |
// kong += (pHelper.rowHei + 1) * systemSettingsBo.getMaxRow(formId); |
|
940 |
for (String fun : panelBean.getFunList()) { |
|
941 |
htmlBuffer.append("\r\n str=" + fun + ";"); |
|
942 |
htmlBuffer.append("\r\n if(str!=\"\"){where += getKuoHao(str)+ \" and \";}"); |
|
943 |
} |
|
944 |
htmlBuffer.append( |
|
945 |
"if(where!=\"\") {where +=\"(( isnull(readerusercodes,'') = '' and isnull(readerorganizations,'') = '' and isnull(readerroles , '' ) = '' ) or ( isnull(readerusercodes,'') <> '' and (readerusercodes like '@~,\"+usercodes+\",@~' )) or ( isnull(ReaderOrganizations,'') <> '' and ( ReaderOrganizations like '@~,<%=session.getAttribute(SessionKey.CCNAME)%>,@~' ) ) or ( isnull(ReaderRoles , '' ) <> '' and ( ReaderRoles like '@~,<%=session.getAttribute(SessionKey.ROLE_NAME)%>,@~' or ReaderRoles like '@~,<%=session.getAttribute(SessionKey.ROLE_NAME)%>,@~' ) )) and ( formid in (\"+formId+\"<%=dateformid%>)) and\";where=where.substring(0,where.length-4);where=where.replaceAll(\"%\",\"@~\"); create(encodeText(where),<%=flag%>);}"); |
|
946 |
htmlBuffer.append("else{create(encodeText(''),<%=flag%>);}}"); |
|
947 |
htmlBuffer.append("\r\n function getKuoHao(str){");// 套括号 |
|
948 |
htmlBuffer.append("\r\n return \"( \"+str+\" )\";"); |
|
949 |
htmlBuffer.append("\r\n }"); |
|
950 |
htmlBuffer.append("\r\n "); |
|
951 |
htmlBuffer.append("<%"); |
|
952 |
htmlBuffer.append("HashMap<String, String> timeMap=PanelTimeBo.getTimeTag(" + formId + ").get(0);"); |
|
953 |
htmlBuffer.append("%>"); |
|
954 |
pHelper.mapAlls.putAll(pHelper.maps); |
|
955 |
pHelper.mapAlls.putAll(pHelper.mapHids); |
|
956 |
htmlBuffer.append("\r\n $(document).ready(function(){getOder();});</script> "); |
|
957 |
return htmlBuffer; |
|
958 |
} |
|
959 |
|
346ab1
|
960 |
|
a6a76f
|
961 |
/** |
F |
962 |
* 给js集合添加设置 |
|
963 |
* |
|
964 |
* @param infoJsBuffer js集合显示的面板设置 |
|
965 |
* @param map 一条设置集合 |
|
966 |
*/ |
|
967 |
private void getJsInfo(StringBuffer infoJsBuffer, Map<String, Object> map, PanelBean panelBean) |
|
968 |
throws Exception { |
|
969 |
PanelParmHelper pHelper = panelBean.pHelper; |
|
970 |
if (DBHelper.getValueInt(map, "isLoad") == 1) { |
|
971 |
pHelper.html_Col.append("{fileid:\"").append(DBHelper.getValue(map, "FieldID").toLowerCase()) |
|
972 |
.append("\"},"); |
|
973 |
} |
|
974 |
int controltype = DBHelper.getValueInt(map, "ControlType"); |
|
975 |
String morenV_ = DBHelper.getValRep(DBHelper.getValue(map, "initValue"), false); |
|
976 |
String ft = DBHelper.getValue(map, "ft"); |
|
977 |
if (controltype == 2) { |
|
978 |
if (ft.equals("")) { |
|
979 |
morenV_ = getSelectValue(morenV_, ft); |
|
980 |
} |
|
981 |
} |
dc7ad9
|
982 |
String initV=morenV_; |
X |
983 |
if(initV.indexOf("!")!=-1){//有!符号时进入 xin 2022-4-21 15:18:22 |
35cdb2
|
984 |
initV=initV.replaceAll("<%=","\"+").replaceAll("%>","+\""); |
X |
985 |
initV="<%=DBHelper.getInitValue(request,docMap,\\\""+ initV+"\\\")%>"; |
dc7ad9
|
986 |
} |
a6a76f
|
987 |
String temp = DBHelper.getValue(map, "FieldID").toLowerCase(); |
F |
988 |
if (DBHelper.getValueInt(map, "isLoad") == 1) { |
843144
|
989 |
//验证数字格式是否规范正确 xin 2023-3-28 09:53:14 |
346ab1
|
990 |
String forMat=DBHelper.getValue(map,"Displayformat"); |
X |
991 |
if(StringUtils.isNotBlank(forMat)){ |
dc5797
|
992 |
//正则表达式(数字和日期在内) |
X |
993 |
boolean isFormat = Pattern.matches("^,?0\\.?0*$|^(?:(?:[y]{4})?-?(?:M{1,2})?-?(?:d{1,2})?)?(?:\\s*(?:H{1,2})?:?(?:m{1,2})?:?(?:s{1,2})?)?$", forMat); |
346ab1
|
994 |
if (!isFormat) { |
dc5797
|
995 |
panelBean.overlapText += "<br>提示:功能号" + pHelper.formIdPan + ",字段:" + temp + "--" + DBHelper.getValue(map, "fieldname") + |
346ab1
|
996 |
",设置的【数字格式】无法识别,有可能导致显示不出值。当前格式:" + forMat; |
X |
997 |
} |
|
998 |
} |
a6a76f
|
999 |
infoJsBuffer.append("\"" + temp + "\"").append(":{\r\n title:\"") |
F |
1000 |
.append(DBHelper.replaceBr(DBHelper.getValue(map, "fieldname").equals("") ? temp |
|
1001 |
: DBHelper.getValue(map, "fieldname")))// 描述 |
|
1002 |
.append("\",\r\n keyinput:\"").append(DBHelper.getValue(map, "keyinput"))// 必录 |
|
1003 |
.append("\",\r\n ft:\"").append(ft)// 外表表号 |
|
1004 |
.append("\",\r\n ftformtype:\"").append(DBHelper.getValue(map, "FTFormType"))// 外表类型 |
|
1005 |
.append("\",\r\n emptyrefdata:\"").append(DBHelper.getValue(map, "emptyrefdata"))// 外表清空关联 |
|
1006 |
.append("\",\r\n fk:\"").append(DBHelper.replaceBr(DBHelper.getValue(map, "FK")))// 外表接收数据外表字段 |
|
1007 |
.append("\",\r\n seekgroupid:\"").append(DBHelper.replaceBr(DBHelper.getValue(map, "SeekGroupID")))// 外表接收数据自身字段 |
|
1008 |
.append("\",\r\n spremissfield:\"").append(DBHelper.getValue(map, "sPremissField"))// 外表条件自身字段 |
|
1009 |
.append("\",\r\n dpremissfield:\"").append(DBHelper.getValue(map, "dPremissField"))// 外表条件外表字段 |
|
1010 |
.append("\",\r\n efilter:\"").append(DBHelper.getValue(map, "eFilter"))// 外表条件自定义 |
|
1011 |
.append("\",\r\n hyperlinkft:\"").append(DBHelper.getValue(map, "HyperlinkFT"))// 超链接外表号 |
|
1012 |
.append("\",\r\n hyperlinkftformtype:\"").append(DBHelper.getValue(map, "HyperlinkFTFormType"))// 超链接外表类型 |
|
1013 |
.append("\",\r\n hyperlinkspremissfield:\"") |
|
1014 |
.append(DBHelper.getValue(map, "HyperlinkSPremissField"))// 超链接自身字段 |
|
1015 |
.append("\",\r\n hyperlinkdpremissfield:\"") |
|
1016 |
.append(DBHelper.getValue(map, "HyperlinkDPremissField"))// 超链接外表字段 |
|
1017 |
.append("\",\r\n Hyperlinkmode:\"") |
|
1018 |
.append(DBHelper.getValue(map, "Hyperlinkmode"))//操作模式 |
|
1019 |
.append("\",\r\n isAutoRefresh:\"") |
|
1020 |
.append(DBHelper.getValue(map, "isAutoRefresh"))//执行后自动刷新 |
|
1021 |
.append("\",\r\n hyperlinkefilter:\"").append(DBHelper.getValue(map, "HyperlinkEFilter"))// 超链接自定义 |
|
1022 |
.append("\",\r\n datalink:\"").append(DBHelper.getValue(map, "DataLink"))// 感应字段 |
|
1023 |
.append("\",\r\n stylecss:\"") |
|
1024 |
.append("<%=DBHelper.getValRepShi(\"" + DBHelper.getValue(map, "StyleCss") |
|
1025 |
+ "\",session,null,false)%>")// css样式 |
|
1026 |
.append("\",\r\n controltype:\"").append(controltype)// 控件类型 |
|
1027 |
.append("\",\r\n ReadOnly:\"").append(DBHelper.getValue(map, "ReadOnly"))// 只读 |
dc7ad9
|
1028 |
.append("\",\r\n initValue:\"").append(initV)// 初始值 |
346ab1
|
1029 |
.append("\",\r\n format:\"").append(forMat)//数字各式 |
c8bf0a
|
1030 |
.append("\",\r\n isSuppressBlankLineForDropDown:\"").append(DBHelper.getValue(map,"isSuppressBlankLineForDropDown"))// |
a6a76f
|
1031 |
.append("\"\r\n },");// 存放页面必要且经常用到的信息,减小冗余,需要信息直接从里面获得 |
F |
1032 |
// 之后把java获得的值也想办法弄进去,即一加载内部就有了所需要的所有信息,值改变顺带把值传进此,所有处理即可用这个集合,之后可以处理掉多余信息传递,不处理不影响 |
|
1033 |
if (!morenV_.equals("")) { |
|
1034 |
pHelper.intvalueMap.put(temp, morenV_); |
|
1035 |
} |
|
1036 |
} |
|
1037 |
} |
|
1038 |
|
|
1039 |
/** |
|
1040 |
* 更加默认值从ft表号中获得其实际值 |
|
1041 |
* |
|
1042 |
* @param morenV_ 默认设置值 |
|
1043 |
* @param ft 外表号 |
|
1044 |
* @return 实际值 |
|
1045 |
*/ |
|
1046 |
private String getSelectValue(String morenV_, String ft) { |
|
1047 |
if (!ft.equals("")) { |
|
1048 |
String sql = "select intervalue,dictvalue from _sysdict where dictid = " + ft; |
|
1049 |
List<HashMap<String, String>> list = null;// intervalue为实际值 |
|
1050 |
list = sqlDBHelperIfc.getHashMap(sql); |
|
1051 |
for (HashMap<String, String> mapSel : list) { |
|
1052 |
if (morenV_.trim().equals(mapSel.get("intervalue")) || morenV_.trim().equals(mapSel.get("dictvalue"))) { |
|
1053 |
morenV_ = mapSel.get("intervalue");// 实际值 |
|
1054 |
break; |
|
1055 |
} |
|
1056 |
} |
|
1057 |
} |
|
1058 |
return morenV_; |
|
1059 |
} |
|
1060 |
|
|
1061 |
/** |
|
1062 |
* 判断主从表 |
|
1063 |
* |
|
1064 |
* @param formType 窗体类型 |
|
1065 |
* @param pHelper 集合信息 |
|
1066 |
* @return 返回主表:0从表:1 |
|
1067 |
*/ |
|
1068 |
private int hasTiaoJian(int formType, PanelBean panelBean) throws Exception { |
|
1069 |
panelBean.isDoc = true; |
|
1070 |
switch (formType) {// 0和-1为俩个特殊值 是不存在的窗体类型 需要用此信息做事情 0匹配查主表 -1匹配查从表 |
|
1071 |
case 0:// 为499类型改为此 (主表) |
|
1072 |
case 9:// 9类型面板 |
|
1073 |
case 15: |
|
1074 |
case 17: |
|
1075 |
break; |
|
1076 |
case -1:// 为301类型对应的第二个面板 |
|
1077 |
case -2:// 为20类型对应的第二个面板 |
|
1078 |
case 7: |
|
1079 |
case 38: |
|
1080 |
case 18: |
|
1081 |
case 181: |
|
1082 |
case 182: |
|
1083 |
case 238: |
|
1084 |
case 77: |
|
1085 |
panelBean.pHelper.primary = (panelBean.notPan ? 0 : 1); |
|
1086 |
panelBean.isDoc = false; |
|
1087 |
break; |
|
1088 |
default: |
|
1089 |
panelBean.pHelper.primary = (panelBean.notPan ? 1 : 0); |
|
1090 |
break; |
|
1091 |
} |
|
1092 |
return panelBean.pHelper.primary; |
|
1093 |
} |
|
1094 |
|
|
1095 |
private String setTable(int primary1, int formId, PanelParmHelper pHelper, int x) throws Exception { |
|
1096 |
return tableIs(primary1, formId, pHelper); |
|
1097 |
} |
|
1098 |
|
|
1099 |
private String setTable(int primary1, int formId, PanelParmHelper pHelper) throws Exception { |
|
1100 |
String tableString = ""; |
|
1101 |
Map<String, Object> sysMap = systemSettingsBo.getFormIdInTable(formId); |
|
1102 |
pHelper.primary = primary1; |
|
1103 |
if (pHelper.primary == 1) { |
|
1104 |
pHelper.tableIs = DBHelper.getValue(sysMap, "DTTable").trim(); |
|
1105 |
tableString = DBHelper.getValue(sysMap, "DTTable").trim(); |
|
1106 |
pHelper.tableIs2 = DBHelper.getValue(sysMap, "HDTable").trim(); |
|
1107 |
} else { |
|
1108 |
pHelper.tableIs = DBHelper.getValue(sysMap, "HDTable").trim(); |
|
1109 |
tableString = DBHelper.getValue(sysMap, "HDTable").trim(); |
|
1110 |
pHelper.tableIs2 = DBHelper.getValue(sysMap, "DTTable").trim(); |
|
1111 |
} |
|
1112 |
return tableString; |
|
1113 |
} |
|
1114 |
|
|
1115 |
/** |
|
1116 |
* 得到面板的表名,给出相应的信息 |
|
1117 |
* |
|
1118 |
* @param primary1 是否从表 |
|
1119 |
* @param formId 功能号 |
|
1120 |
* @param pHelper 信息 |
|
1121 |
* @return 返回表名字符,表信息直接由pHelper返回 |
|
1122 |
*/ |
|
1123 |
private String tableIs(int primary1, int formId, PanelParmHelper pHelper) throws Exception { |
|
1124 |
String tableString = ""; |
|
1125 |
Map<String, Object> sysMap = systemSettingsBo.getFormIdInTable(formId); |
|
1126 |
pHelper.primary = primary1; |
|
1127 |
if (pHelper.primary == 1) { |
|
1128 |
pHelper.tableIs = DBHelper.getValue(sysMap, "DTTable").trim(); |
|
1129 |
tableString = DBHelper.getValue(sysMap, "DTTable").trim(); |
|
1130 |
pHelper.tableIs2 = DBHelper.getValue(sysMap, "HDTable").trim(); |
|
1131 |
} else { |
|
1132 |
pHelper.tableIs = DBHelper.getValue(sysMap, "HDTable").trim(); |
|
1133 |
tableString = DBHelper.getValue(sysMap, "HDTable").trim(); |
|
1134 |
pHelper.tableIs2 = DBHelper.getValue(sysMap, "DTTable").trim(); |
|
1135 |
} |
|
1136 |
return tableString; |
|
1137 |
} |
|
1138 |
|
|
1139 |
private String setTable(int primary1, PanelParmHelper pHelper) throws Exception { |
|
1140 |
return setTable(primary1, pHelper.formIdPan, pHelper, 1); |
|
1141 |
} |
|
1142 |
|
|
1143 |
private Map<String, Map<String, String>> isAdd(Map<String, Map<String, String>> maps, Map<String, Object> sys, |
|
1144 |
PanelParmHelper pHelper) { |
|
1145 |
pHelper.sysTi = sys; |
|
1146 |
String yeId = DBHelper.getValue(sys, "FieldID").toLowerCase(); |
|
1147 |
// 排除非数据库字段 |
|
1148 |
if (";34#;36#".indexOf(";" + DBHelper.getValue(sys, "ControlType").trim() + "#") == -1) { |
|
1149 |
Map<String, String> map = new HashMap<String, String>(); |
|
1150 |
map.put("FieldID", yeId);// 字段名 |
|
1151 |
map.put("type", DBHelper.getValue(sys, "ControlType"));// 控件类型 |
|
1152 |
map.put("HeadFlag", DBHelper.getValue(sys, "HeadFlag"));// 是否从表 |
|
1153 |
map.put("format", DBHelper.getValue(sys, "Displayformat")); |
|
1154 |
map.put("must", DBHelper.getValue(sys, "KeyInput")); |
|
1155 |
map.put("HDTable", DBHelper.getValue(sys, "HDTable"));// 主表 |
|
1156 |
map.put("DTTable", DBHelper.getValue(sys, "DTTable"));// 从表 |
|
1157 |
map.put("editstatus", DBHelper.getValue(sys, "EditStatus"));// 必录或者编辑状态设置 |
|
1158 |
map.put("datetype", (pHelper.verificationMap == null || pHelper.verificationMap.get(yeId) == null) ? "-1" |
|
1159 |
: pHelper.verificationMap.get(yeId));// 在数据库中的类型 |
|
1160 |
map.put("downGrid", String.valueOf(DBHelper.getValueInt(sys, "MasterFieldShowLocation")));// 是否显示在grid下面 |
|
1161 |
// 添加处理信息自动 |
|
1162 |
map.put("datalink", String.valueOf(DBHelper.getValueInt(sys, "DataLink")));// 是否感应 |
|
1163 |
map.put("showfieldvalueexpression", DBHelper.getValue(sys, "showFieldValueExpression"));// 权限查看字段 |
|
1164 |
map.put("stylecss", DBHelper.getValue(sys, "stylecss"));// css样式 |
|
1165 |
map.put("tipsexpression", DBHelper.getValue(sys, "tipsexpression"));// css样式 |
|
1166 |
map.put("datalink", DBHelper.getValue(sys, "datalink"));// 感应字段才处理更新插入 |
|
1167 |
maps.put(yeId, map);// 解决Id暴露问题 |
|
1168 |
} |
|
1169 |
return maps; |
|
1170 |
} |
|
1171 |
|
|
1172 |
private Map<String, Map<String, String>> getMaps(PanelParmHelper pHelper) {// 得到此表所有字段 |
|
1173 |
Map<String, Map<String, String>> mapList = new HashMap<String, Map<String, String>>(); |
|
1174 |
if (pHelper.maps != null) { |
|
1175 |
mapList.putAll(pHelper.maps); |
|
1176 |
} |
|
1177 |
if (pHelper.mapHids != null) { |
|
1178 |
mapList.putAll(pHelper.mapHids);// 后追加 |
|
1179 |
} |
|
1180 |
return mapList; |
|
1181 |
} |
|
1182 |
|
|
1183 |
/** |
|
1184 |
* @param maps 包含所查列的一些必须信息 |
|
1185 |
* @return 拼写的查询sql语句 |
|
1186 |
*/ |
|
1187 |
private String getSqlCol(Map<String, Map<String, String>> maps, PanelParmHelper pHelper) { |
|
1188 |
String retuString = " "; |
|
1189 |
String field = ""; |
|
1190 |
String showField = ""; |
|
1191 |
String stylecss = ""; |
|
1192 |
String TipsExpression = ""; |
|
1193 |
boolean hasQuan = false; |
|
1194 |
for (Map<String, String> map : maps.values()) { |
|
1195 |
if (map.get("datalink").equals("1")) {// 是感应字段 |
|
1196 |
field = map.get("FieldID"); |
|
1197 |
showField = map.get("showfieldvalueexpression"); |
|
1198 |
stylecss = map.get("stylecss"); |
|
1199 |
TipsExpression = map.get("tipsexpression");// DBHelper.getValue(map, |
|
1200 |
// "TipsExpression");// |
|
1201 |
if (showField.equals("")) {// 权限字段无 |
|
1202 |
retuString += field + ","; |
|
1203 |
// hasQuan = true;//格线加载时,已经报错了,但面板却没有这样的错误弹出 ,显然,面板是写 * |
|
1204 |
// 代替所有字段 。把 * 号改成 字段名就行了,其它的不用改了 |
|
1205 |
} else { |
|
1206 |
if (field.indexOf("_expr") == -1 || !field.substring(field.lastIndexOf("_expr")).equals("_expr")) {// 有这个特殊符还必须在最后 |
|
1207 |
showField = pHelper.initialValue.getValLinShi(showField, false); |
8efeef
|
1208 |
//把替换值特殊符号全去掉 |
X |
1209 |
showField=showField.replace("'&","") |
|
1210 |
.replace("&'","") |
|
1211 |
.replace("&",""); |
a6a76f
|
1212 |
retuString += "case when (" + showField + ")=0 then null else " + field + " end as " + field |
F |
1213 |
+ " ,case when (" + showField + ")=1 then 1 when (" + showField |
|
1214 |
+ ")=2 then 2 else 0 end as " + field + "_expr,";// 一大堆逻辑,后处理 |
|
1215 |
hasQuan = true; |
|
1216 |
} |
|
1217 |
} |
|
1218 |
// StyleCss样式设置 |
|
1219 |
if (!stylecss.equals("")) { |
|
1220 |
if (field.indexOf("_css") == -1 || !field.substring(field.lastIndexOf("_css")).equals("_css")) {// 有这个特殊符还必须在最后 |
|
1221 |
stylecss = pHelper.initialValue.getValLinShi(stylecss, false); |
|
1222 |
retuString += stylecss + " as " + field + "_css,";// 一大堆逻辑,后处理 |
|
1223 |
hasQuan = true; |
|
1224 |
} |
|
1225 |
} |
|
1226 |
// 鼠标移动到控件动态显示信息 |
|
1227 |
if (!TipsExpression.equals("") && TipsExpression.indexOf("!") != -1) { |
|
1228 |
if (field.indexOf("_tips") == -1 || !field.substring(field.lastIndexOf("_tips")).equals("_tips")) {// 有这个特殊符还必须在最后 |
|
1229 |
TipsExpression = pHelper.initialValue.getValLinShi(TipsExpression, false); |
|
1230 |
TipsExpression = TipsExpression.replace("!", ""); |
|
1231 |
retuString += "(" + TipsExpression + ") as " + field + "_tips,";// 一大堆逻辑,后处理 |
|
1232 |
hasQuan = true; |
|
1233 |
} |
|
1234 |
} |
|
1235 |
} |
|
1236 |
} |
|
1237 |
return (!hasQuan) ? "*" : DBHelper.replaceBr(retuString.substring(0, retuString.length() - 1)); |
|
1238 |
} |
|
1239 |
|
|
1240 |
private StringBuffer getJspPanScript(int formId, String frameName, PanelBean panelBean) throws Exception { |
|
1241 |
StringBuffer sBuffer = new StringBuffer(); |
|
1242 |
PanelParmHelper pHelper = panelBean.pHelper; |
|
1243 |
Map<String, Map<String, String>> mapList = getMaps(pHelper); |
|
1244 |
sBuffer.append("\r\n panMain[panIndex].formtypeOne=" + pHelper.formTypePan + ";"); |
|
1245 |
sBuffer.append("\r\n panMain[panIndex].keyDown=function(op,e,f){\r\n var flag = checkSession();"); |
|
1246 |
sBuffer.append("\r\n if(flag){return;}"); |
|
1247 |
if (!panelBean.notPan) {// |
|
1248 |
if (";16;0;-1;22;2;-2;1;".indexOf(";" + pHelper.formTypePan + ";") == -1) { // !=17 |
|
1249 |
sBuffer.append("\r\n var event;\r\n if(e!=null){\r\n if(e!='null'){ event = $.event.fix(e);}"); // 键盘按下事件 |
|
1250 |
sBuffer.append("\r\n if(op=='123' || event.keyCode==13){"); |
|
1251 |
sBuffer.append("\r\n var where =\"\";"); |
|
1252 |
sBuffer.append("\r\n var value =\"\";"); |
|
1253 |
List<String> masterCodeList = pHelper.initialValue.getMASTERCODE(); |
|
1254 |
if (masterCodeList == null || masterCodeList.size() == 0) {// getMASTERCODE判断是否有值 |
|
1255 |
// 如果有错误返回旧版本单个2014-8-21 |
|
1256 |
// 后改,只有这两个要把所有参数传出 |
|
1257 |
if (";38#;238#;18#;7#;19#;77#".indexOf(";" + pHelper.formTypePan + "#") != -1) { |
|
1258 |
if (";238#;38#".indexOf(";" + pHelper.formTypePan + "#") != -1) { |
|
1259 |
Map<String, Map<String, String>> allIsChecks = new HashMap<String, Map<String, String>>(); |
|
1260 |
Map<String, String> checkMap = new HashMap<String, String>(); |
|
1261 |
checkMap.put("FieldID", "allIsChecks"); |
|
1262 |
allIsChecks.put("allIsChecks", checkMap); |
|
1263 |
mapList.putAll(allIsChecks); |
|
1264 |
} |
|
1265 |
String colS = ""; |
|
1266 |
String colsInDate = "";// 数据库当前字段 |
|
1267 |
for (String panId : mapList.keySet()) { |
|
1268 |
colS += panId + ";"; |
|
1269 |
colsInDate += mapList.get(panId).get("FieldID") + ";"; |
|
1270 |
} |
|
1271 |
if (pHelper.formTypePan == 19) { |
|
1272 |
colS = ""; |
|
1273 |
colsInDate = "";// 数据库当前字段 |
98c7bf
|
1274 |
String execSql = "set nocount on ; select fieldid from gfield where headflag=" + pHelper.primary |
a6a76f
|
1275 |
+ " and formid=" + formId + " and DataLink=1 order by statisid"; |
F |
1276 |
List<Map<String, Object>> col_descList = sqlDBHelperIfc.getHashMapObj(execSql); |
|
1277 |
for (int i = 0; i < col_descList.size(); i++) { |
|
1278 |
colS += col_descList.get(i).get("fieldid").toString().toLowerCase() + ";"; |
|
1279 |
colsInDate += col_descList.get(i).get("fieldid").toString().toLowerCase() + ";"; |
|
1280 |
} |
|
1281 |
} |
|
1282 |
sBuffer.append("\r\n var cols=\"\";var colsInDate=\"\";"); |
|
1283 |
if (!colS.equals("")) { |
|
1284 |
sBuffer.append("\r\n cols=(\"" + colS.substring(0, colS.length() - 1) + "\").split(';');"); |
|
1285 |
sBuffer.append("\r\n colsInDate=(\"" + colsInDate.substring(0, colsInDate.length() - 1) |
|
1286 |
+ "\").split(';');"); |
|
1287 |
} |
|
1288 |
if (";18#;7#;19#;77#".indexOf(";" + pHelper.formTypePan + "#") != -1) {// 第一次传值为空的做法 |
|
1289 |
sBuffer.append( |
|
1290 |
"\r\nwhere +=panMain[panIndex].keyWhere(!panMain[panIndex].no_load_first,cols,colsInDate)"); |
|
1291 |
} else { |
|
1292 |
sBuffer.append("\r\nwhere +=panMain[panIndex].keyWhere(false,cols,colsInDate)"); |
|
1293 |
} |
|
1294 |
} else { |
|
1295 |
if (mapList.get("doccode") != null) { |
|
1296 |
sBuffer.append("\r\n value = document.getElementById('doccode').value;"); |
|
1297 |
sBuffer.append("\r\n where +=\"" + mapList.get("doccode").get("FieldID") |
|
1298 |
+ "='\" + value.Trim() + \"' and \";"); |
|
1299 |
} |
|
1300 |
} |
|
1301 |
} else {// 有MASTERCODE就只传MASTERCODE的那个字段信息 |
|
1302 |
if (pHelper.formTypePan == 10) { |
|
1303 |
sBuffer.append("\n var col_;//查询的条件字段名\n"); |
|
1304 |
for (int m = 0; m < pHelper.initialValue.getMASTERCODE().size(); m++) { // 对设置了matercode的字段进行组装 |
|
1305 |
sBuffer.append("\r\n value = document.getElementById('" |
|
1306 |
+ pHelper.initialValue.getMASTERCODE().get(m) + "').value;\n"); |
|
1307 |
sBuffer.append(" col_=panMain[panIndex].getOrder('" |
|
1308 |
+ pHelper.initialValue.getMASTERCODE().get(m) + "');\r\n"); |
|
1309 |
// 2015-6-1 10:44:46 |
|
1310 |
sBuffer.append("\r\n if(value != null && col_!=null){"); |
|
1311 |
sBuffer.append("\r\n where +=col_+\"='\" + value + \"' and \";"); |
|
1312 |
sBuffer.append("\r\n }"); |
|
1313 |
} |
|
1314 |
} else { |
|
1315 |
for (int m1 = 0; m1 < pHelper.initialValue.getMASTERCODE().size(); m1++) {// 循环 |
|
1316 |
// 2014-8-21 |
|
1317 |
sBuffer.append("\r\n value = document.getElementById('" |
|
1318 |
+ pHelper.initialValue.getMASTERCODE().get(m1) + "').value;"); |
44e865
|
1319 |
// sBuffer.append("\r\n if(value != \"\"){"); |
X |
1320 |
sBuffer.append("\r\n if(value != null){"); |
a6a76f
|
1321 |
sBuffer.append("\r\n where +=\"" + pHelper.initialValue.getMASTERCODE().get(m1) |
F |
1322 |
+ "='\" + value + \"' and \";"); |
|
1323 |
sBuffer.append("\r\n }"); |
|
1324 |
} |
|
1325 |
} |
|
1326 |
} |
|
1327 |
sBuffer.append( |
|
1328 |
"\r\n where = where.substring(0,where.lastIndexOf(\"and\"));\r\n where += \"<%=addUrl%>\";"); |
|
1329 |
if (";4#;238#;38#".indexOf(";" + pHelper.formTypePan + "#") != -1) { |
|
1330 |
sBuffer.append(" return where;"); |
|
1331 |
} else if (";301#;30#;20#".indexOf(";" + pHelper.formTypePan + "#") != -1) { |
|
1332 |
sBuffer.append("\r\n query=(query==\"\"?where:query);"); |
|
1333 |
sBuffer.append("\r\n loadTree(\"treeData.jsp\",{query:where});"); |
|
1334 |
} else if (";77#".indexOf(";" + pHelper.formTypePan + "#") != -1) { |
|
1335 |
sBuffer.append("\r\n if(null!=this.returnWhere&&\"\"!=this.returnWhere){where+=this.returnWhere;where=where.replaceAll(\"%\",\"@~\");}"); |
|
1336 |
sBuffer.append("\r\n create@panelNo@(encodeText(where),<%=flag%>);"); |
|
1337 |
} else if (";5#;16#;496#;498#".indexOf(";" + pHelper.formTypePan + "#") != -1) { |
|
1338 |
sBuffer.append("\r\n where=where.replaceAll(\"%\",\"@~\");"); |
|
1339 |
sBuffer.append("\r\n if(<%=copy%>!=null){\r\n create(encodeText(\"<%=where%>\"),<%=flag%>,1);\r\n }else{"); |
|
1340 |
sBuffer.append("\r\n create(encodeText(where),<%=flag%>);\r\n }"); |
|
1341 |
} else if (";8#".indexOf(";" + pHelper.formTypePan + "#") != -1) {// 对3表做特别处理 |
|
1342 |
// by |
|
1343 |
// danaus |
|
1344 |
// 18-1-29 |
|
1345 |
sBuffer.append("\r\n where=where.replaceAll(\"%\",\"@~\");"); |
|
1346 |
sBuffer.append("\r\n if(<%=copy%>!=null){\r\n create(encodeText(\"<%=where%>\"),<%=flag%>,1).then(function(d){\r\n" |
|
1347 |
+ " create1(encodeText(\"<%=where%>\"),<%=flag%>,1).then(function(d){\r\n" |
|
1348 |
+ " mygrid.setThreeFilter();});});\r\n }else{"); |
|
1349 |
sBuffer.append("\r\n create(encodeText(where),<%=flag%>).then(function(d){\n" |
|
1350 |
+ "create1(encodeText(where),<%=flag%>).then(function(d){\n" |
|
1351 |
+ "mygrid.setThreeFilter();});});\r\n }"); |
|
1352 |
} else { |
|
1353 |
sBuffer.append("\r\n where=where.replaceAll(\"%\",\"@~\");\n"); |
|
1354 |
sBuffer.append("\r\n if(f!=undefined&&isOpen==0) where+=f;\r\ncreate(encodeText(where),<%=flag%>);");// by |
|
1355 |
// 2015-5-6 |
|
1356 |
// 增加对18类型设置为不自动加载数据的处理 |
|
1357 |
} |
|
1358 |
sBuffer.append("\r\n }\r\n }"); |
|
1359 |
} |
|
1360 |
} |
|
1361 |
|
|
1362 |
mapList.remove("allIsChecks"); |
|
1363 |
sBuffer.append("\r\n } "); |
|
1364 |
sBuffer.append("\r\n panMain[panIndex].checkUp=function (){"); |
|
1365 |
String colStr = ""; |
|
1366 |
// String cmsStr = ""; |
|
1367 |
// 后添加判断表格增加行用的必录检查 |
|
1368 |
String colToGrid = ""; |
|
1369 |
int i = 0; |
|
1370 |
String docstastuString = ""; |
|
1371 |
for (String panId : mapList.keySet()) { |
|
1372 |
if (mapList.get(panId).get("must").equals("1")) { |
|
1373 |
if (panId.lastIndexOf("_expr") == -1 || (panId.lastIndexOf("_expr") != -1 |
|
1374 |
&& mapList.get(panId.substring(0, panId.lastIndexOf("_expr"))) == null)) { |
|
1375 |
docstastuString = mapList.get(panId).get("editstatus"); |
|
1376 |
colStr += ((i == 0) ? "" : ";pb#") + panId |
|
1377 |
+ (docstastuString.equals("") ? "" : ";sta#" + docstastuString); |
|
1378 |
if (mapList.get(panId).get("downGrid").equals("0")) { |
|
1379 |
colToGrid += ";pb#" + panId + (docstastuString.equals("") ? "" : ";sta#" + docstastuString); |
|
1380 |
} |
|
1381 |
i++; |
|
1382 |
} |
|
1383 |
} |
|
1384 |
} |
|
1385 |
sBuffer.append("\r\n var cols=(\"" + colStr + "\");"); |
|
1386 |
sBuffer.append("\r\n var cms=(\"\");");// " + cmsStr + " |
|
1387 |
sBuffer.append("\r\n return panMain[panIndex].mustCheck(cols,cms,<%=docstatePan%>); \r\n }"); |
|
1388 |
sBuffer.append("\r\n panMain[panIndex].checkToGrid= function (){"); |
|
1389 |
sBuffer.append("\r\n var cols=(\"" + colToGrid + "\");"); |
|
1390 |
sBuffer.append("\r\n var cms=(\"\");");// " + cmsToGrid + " |
|
1391 |
sBuffer.append("\r\n return panMain[panIndex].mustCheck(cols,cms,<%=docstatePan%>); \r\n }"); |
|
1392 |
sBuffer.append("\r\n panMain[panIndex].upSub=function(op){");// 设置情况关联 |
|
1393 |
// 程序代码 |
|
1394 |
pHelper.mapAlls.putAll(pHelper.maps); |
|
1395 |
pHelper.mapAlls.putAll(pHelper.mapHids); |
|
1396 |
// sBuffer.append(pHelper.eConn.empty(pHelper.mapAlls)); |
|
1397 |
if (pHelper.formTypePan == -1) { |
|
1398 |
sBuffer.append("setPanel301=true;"); |
|
1399 |
} |
|
1400 |
// 追加公式触发 |
875a46
|
1401 |
// sBuffer.append("\r\n var gongSiCo='" + pHelper.gongsiCols + "';"); |
X |
1402 |
// sBuffer.append("\r\n var gongSi='" + pHelper.gongsiStr.replaceAll("\'", "\\\\\'") + "';"); |
|
1403 |
sBuffer.append("\r\n var gongSiCo='" + StringUtils.join(pHelper.gongsiCols,";") + "';"); |
|
1404 |
sBuffer.append("\r\n var gongSi='" + StringUtils.join(pHelper.gongsiStr,"@#@") + "';"); |
a6a76f
|
1405 |
sBuffer.append("\r\n panMain[panIndex].upSub_gongsi(op,gongSiCo,gongSi);"); |
F |
1406 |
sBuffer.append("\r\n panMain[panIndex].set_upSub(op);\r\n }"); |
|
1407 |
sBuffer.append(getMapScript(mapList)); |
|
1408 |
sBuffer.append("\r\n panMain[panIndex].loadSet=function(docstatePan){ "); |
|
1409 |
sBuffer.append("\r\n var buttonInfo=null; "); |
|
1410 |
sBuffer.append("\r\n var reads="); |
|
1411 |
sBuffer.append(panelBean.getFunLoadList()); |
|
1412 |
// i = 0; |
|
1413 |
// for (String fun : typeControlDao.getFunLoadList()) {// 页面生成后的处理函数 |
|
1414 |
// sBuffer.append(((i == 0) ? "" : ";fen#")).append(fun); |
|
1415 |
// i++; |
|
1416 |
// } |
|
1417 |
sBuffer.append(";"); |
|
1418 |
switch (pHelper.formTypePan) {// 按钮显示设置 |
|
1419 |
case 0: |
|
1420 |
case 5: |
|
1421 |
case 8: |
|
1422 |
case 16: |
|
1423 |
case 18: |
|
1424 |
if (pHelper.panelbol) { |
|
1425 |
sBuffer.append("\r\n <%if(1==1){\r\n JsonArray butt=new JsonArray();\r\n JsonArray buttonInfo=new JsonArray();\r\n String sqlStr=\"\";");//\r\n String writeInfo=\"\";"); |
|
1426 |
sBuffer.append("\r\n List<Map<String,Object>> buttonList=gButtonIfc.getButton(formId);"); |
|
1427 |
sBuffer.append("\r\n for (Map<String, Object> buttonMap : buttonList) {"); |
|
1428 |
sBuffer.append("\r\n sqlStr+=DBHelper.getValue(buttonMap,\"buttonID\").toLowerCase()+\";pb#\";"); |
|
1429 |
sBuffer.append("\r\n sqlStr+=DBHelper.getValRepShi(formId,DBHelper.getValue(buttonMap,\"showItemExpression\"),session,((listInfo!=null&&listInfo.size()>0)?listInfo.get(0):null),false)+\";pb#\";"); |
|
1430 |
sBuffer.append("\r\n sqlStr+=session.getAttribute(SessionKey.USERCODE).toString()+\";pb#\";"); |
|
1431 |
sBuffer.append("\r\n sqlStr+=DBHelper.getValue(buttonMap,\"editStatus\")+\";pb#\"+tableIs+\";pb#\"+(DBHelper.getValue(docMap,\"doccode\").equals(\"\")?\"null\":DBHelper.getValue(docMap,\"doccode\"))+\";fen#\";"); |
|
1432 |
// sBuffer.append("+\";pb#\"+tableIs+\";pb#\"+(DBHelper.getValue(docMap,\"doccode\").equals(\"\")?\"null\":DBHelper.getValue(docMap,\"doccode\"))+\";pb#\"+DBHelper.getValueInt(buttonMap,\"editStatus\")+\";fen#\"; |
|
1433 |
// }"); |
|
1434 |
sBuffer.append("\r\n JsonArray buttString=new JsonArray();"); |
|
1435 |
sBuffer.append("\r\n buttString.add(2);"); |
|
1436 |
sBuffer.append("\r\n buttString.add(DBHelper.getValue(buttonMap,\"fieldid\").toLowerCase());"); |
|
1437 |
sBuffer.append("\r\n buttString.add(DBHelper.getValue(buttonMap, \"buttonID\"));"); |
|
1438 |
sBuffer.append("\r\n buttString.add(DBHelper.getValue(buttonMap,\"editStatus\"));"); |
|
1439 |
sBuffer.append("\r\n butt.add(buttString);"); |
|
1440 |
//sBuffer.append("\r\n buttString+=\";fen#2;pb#\"+DBHelper.getValue(buttonMap,\"fieldid\").toLowerCase()+\";pb#\"+DBHelper.getValue(buttonMap, \"buttonID\")+\";pb#\"+DBHelper.getValue(buttonMap,\"editStatus\");"); |
|
1441 |
// sBuffer.append("\r\natMap.put(DBHelper.getValue(buttonMap, |
|
1442 |
// \"buttonID\"),DBHelper.getValue(buttonMap,\"editStatus\"));"); |
|
1443 |
// sBuffer.append("\r\nnb=DBHelper.getValue(docMap,\"curchecker\").toLowerCase().indexOf(session.getAttribute(\"@usercode\").toString().toLowerCase())!=-1?true:false; |
|
1444 |
// "); |
|
1445 |
sBuffer.append("\r\n }"); |
|
1446 |
sBuffer.append("\r\n if(!sqlStr.equals(\"\")){"); |
|
1447 |
// sBuffer.append("\r\n String sqlwhere=\"\";"); |
|
1448 |
// sBuffer.append("\r\n if(!tableIs.equals(\"\") && |
|
1449 |
// tableIs.indexOf(\"///|\")==-1){"); |
|
1450 |
// sBuffer.append("\r\n sqlwhere=\"from \"+tableIs+\" where |
|
1451 |
// DocCode='\"+DBHelper.getValue(docMap,\"doccode\")+\"'\";}"); |
|
1452 |
// sBuffer.append("\r\n Map<String,Object> buMap=sqlDBHelperIfc.getBoolSql(sqlStr);"); |
|
1453 |
// sBuffer.append("\r\n if(buMap.get(\"error\")!=null){%>"); |
|
1454 |
// sBuffer.append("\r\n alert(\"<%=buMap.get(\"error\")%>\")"); |
|
1455 |
// sBuffer.append("\r\n <%}"); |
|
1456 |
// sBuffer.append("\r\n if(buMap!=null){"); |
|
1457 |
// sBuffer.append("\r\n bdMap.putAll(buMap);\r\n }"); |
|
1458 |
// sBuffer.append("\r\n if(buMap!=null&&buMap.size()>0){"); |
|
1459 |
// sBuffer.append("\r\n for(String key:buMap.keySet()){"); |
|
1460 |
// sBuffer.append("\r\n writeInfo+=\",{\\\"filed\\\":\\\"\"+key+\"\\\",\\\"value\\\":\\\"\"+buMap.get(key)+\"\\\"}\";"); |
|
1461 |
// sBuffer.append("\r\n }"); |
|
1462 |
// sBuffer.append("\r\n }"); |
|
1463 |
// sBuffer.append("\r\n writeInfo=(writeInfo.indexOf(\",\")!=-1)?writeInfo.substring(1):writeInfo;"); |
|
1464 |
sBuffer.append("\r\n try{"); |
|
1465 |
sBuffer.append("\r\n bdMap=sqlDBHelperIfc.getBoolSql(sqlStr);"); |
|
1466 |
sBuffer.append("\r\n for(String key:bdMap.keySet()){"); |
|
1467 |
sBuffer.append("\r\n if(bdMap.get(key)!=null){"); |
|
1468 |
sBuffer.append("\r\n JsonObject info=new JsonObject();"); |
|
1469 |
sBuffer.append("\r\n info.addProperty(\"filed\", key);"); |
|
1470 |
sBuffer.append("\r\n info.addProperty(\"value\",bdMap.get(key).toString());"); |
|
1471 |
sBuffer.append("\r\n buttonInfo.add(info);"); |
|
1472 |
sBuffer.append("\r\n }"); |
|
1473 |
sBuffer.append("\r\n }"); |
|
1474 |
sBuffer.append("\r\n }catch(Exception e){"); |
|
1475 |
sBuffer.append("\r\n throw e;"); |
|
1476 |
sBuffer.append("\r\n }"); |
|
1477 |
sBuffer.append("\r\n }"); |
|
1478 |
sBuffer.append("\r\n out.print(\"buttonInfo=\"+buttonInfo+\";\");"); |
|
1479 |
sBuffer.append("\r\n out.print(\"\\r\\n reads = reads.concat(\"+butt+\");\");"); |
|
1480 |
sBuffer.append("\r\n }%>"); |
|
1481 |
} |
|
1482 |
break; |
|
1483 |
default: |
|
1484 |
break; |
|
1485 |
} |
|
1486 |
if (!"".equals(pHelper.iscopy)) { |
|
1487 |
sBuffer.append("\r\n panMain[panIndex].bolCopy=\"<%=copy%>\";");// 是不是复单 |
|
1488 |
} else { |
|
1489 |
sBuffer.append("\r\n panMain[panIndex].bolCopy=\"0\";");// 是不是复单 |
|
1490 |
} |
|
1491 |
sBuffer.append("\r\n panMain[panIndex].set_read_load(reads,docstatePan,<%=isNewOpen%>,'<%=session.getAttribute(\"@usercode\")%>;<%=session.getAttribute(\"@cccode\")%>;<%=session.getAttribute(\"@rolename\")%>',buttonInfo);"); |
|
1492 |
sBuffer.append("\r\n }"); |
|
1493 |
// 处理不复制字段 |
|
1494 |
String colString = ""; |
|
1495 |
if ("".equals(pHelper.iscopy)) { |
|
1496 |
colString = DBHelper.replaceBr(DBHelper.getValue(assistIfc.getClernCol(formId), "rowcopyfields")); |
|
1497 |
} else { |
|
1498 |
colString = pHelper.iscopy; |
|
1499 |
} |
|
1500 |
sBuffer.append("\r\n panMain[panIndex].copy=function(){\r\n panMain[panIndex].noCopy('" + colString + "');\r\n }"); |
|
1501 |
pHelper.iscopy = ""; |
|
1502 |
switch (pHelper.formTypePan) { |
|
1503 |
case 5: |
|
1504 |
case 8: |
|
1505 |
case 16: |
|
1506 |
case 498: |
|
1507 |
case 0:// 498 |
|
1508 |
// sBuffer |
|
1509 |
// .append("\r\nvar timer_h=null;function |
|
1510 |
// start_Show(){try{setTimeout(parent.topFrame.hiddenToolButton(function(){stop();}),0);stop();}catch(e_){}}function |
|
1511 |
// stop(){window.clearInterval(timer_h);}timer_h=window.setInterval(\"start_Show()\",300);"); |
|
1512 |
break; |
|
1513 |
default: |
|
1514 |
break; |
|
1515 |
} |
|
1516 |
if (pHelper.formTypePan == 16) { |
|
1517 |
sBuffer.append("<% if(\"@liuChen@\".equals(\"1\")){%><jsp:include page=\"/processTrack.jsp\">"); |
|
1518 |
sBuffer.append("\r\n<jsp:param value=\"<%=formId%>\" name=\"formid\"/>"); |
|
1519 |
sBuffer.append("\r\n<jsp:param value=\"<%=doccode%>\" name=\"doccode\"/>"); |
|
1520 |
sBuffer.append("\r\n</jsp:include><%} %>"); |
|
1521 |
} |
|
1522 |
// sBuffer.append("</script> "); |
|
1523 |
return sBuffer; |
|
1524 |
} |
|
1525 |
|
|
1526 |
// 获得面板中 的getPanMap |
|
1527 |
private StringBuffer getMapScript(Map<String, Map<String, String>> mapList) { |
|
1528 |
StringBuffer sBuffer = new StringBuffer(); |
|
1529 |
sBuffer.append("\r\n panMain[panIndex].getPanMap=function(panIndexs){"); |
|
1530 |
sBuffer.append("\r\n if(panIndexs==undefined){\r\n return panMain[panIndex].getPanMap_All();\r\n }else{\r\n return panMain[panIndexs].getPanMap_All();\r\n }");// 返回grid所需形式的字符串 |
|
1531 |
sBuffer.append("\r\n }"); |
|
1532 |
return sBuffer; |
|
1533 |
} |
|
1534 |
|
|
1535 |
private String getTypeIni(PanelParmHelper pHelper) throws Exception { |
|
1536 |
String output = ""; |
|
1537 |
output += pHelper.FAFO.readFile(pHelper.URI + File.separator + "public" + File.separator + "template" |
|
1538 |
+ File.separator + "topPanInv.txt"); |
|
1539 |
output = output.replaceAll("#zhu#", pHelper.tableIs); |
|
1540 |
if (pHelper.seqtypefilde.indexOf("19") != -1) { |
|
1541 |
String id19 = pHelper.seqtypefilde.replace("19;", ""); |
|
1542 |
output = output.replace("[?seq]", "DBHelper.getValue(docMap,\"" + id19 + "\",mapAll)"); |
|
1543 |
} else { |
|
1544 |
output = output.replace("[?seq]", "\"\""); |
|
1545 |
} |
|
1546 |
return output; |
|
1547 |
} |
|
1548 |
|
|
1549 |
/** |
|
1550 |
* panPar.txt |
|
1551 |
* |
|
1552 |
* @param pHelper |
|
1553 |
* @return |
|
1554 |
* @throws Exception |
|
1555 |
*/ |
|
1556 |
private String getPar(PanelParmHelper pHelper) throws Exception { |
|
1557 |
String output = ""; |
|
1558 |
output += pHelper.FAFO.readFile( |
|
1559 |
pHelper.URI + File.separator + "public" + File.separator + "template" + File.separator + "panPar.txt"); |
|
1560 |
return output; |
|
1561 |
} |
|
1562 |
|
|
1563 |
/** |
|
1564 |
* @param formId |
|
1565 |
* @param maps |
|
1566 |
* @param pHelper |
|
1567 |
* @return |
|
1568 |
*/ |
|
1569 |
private StringBuffer getJspPanSession(int formId, Map<String, Map<String, String>> maps, PanelParmHelper pHelper) { |
|
1570 |
StringBuffer sBuffer = new StringBuffer(); |
|
1571 |
sBuffer.append("<%\r//9802设置每一个字段的属性集合,在加载每个字段值的时候调用这个mapAll集合。\r maps = new HashMap<String, Map<String, String>>();");// 保存字段Id,即数据库中的列,不让其暴露 |
|
1572 |
sBuffer.append("\r\n mapHids = new HashMap<String, Map<String, String>>();\r\n map_pb = null;"); |
|
1573 |
sBuffer.append(" \r\n seStr=\"\";\r\n infoS=null;\r\n mapsetStr=null;"); |
|
1574 |
String infoString = ""; |
|
1575 |
if (maps != null) { |
|
1576 |
for (String yeIdStr : maps.keySet()) { |
|
1577 |
infoString += getPanMapStr(maps, yeIdStr, true) + ";pb#"; |
|
1578 |
} |
|
1579 |
} |
|
1580 |
sBuffer.append("\r\n seStr=\"" + DBHelper.replaceBr(infoString) + "\";"); |
|
1581 |
getMapSession(sBuffer, "maps");// 循环 |
|
1582 |
for (String yeIdStr : pHelper.mapHids.keySet()) { |
|
1583 |
infoString += getPanMapStr(pHelper.mapHids, yeIdStr, false) + ";pb#"; |
|
1584 |
} |
|
1585 |
sBuffer.append("\r\n seStr=\"" + DBHelper.replaceBr(infoString) + "\";"); |
|
1586 |
getMapSession(sBuffer, "mapHids"); |
|
1587 |
sBuffer.append( |
|
1588 |
"\r\n mapAll = new HashMap<String, Map<String, String>>(); \r\n mapAll.putAll(maps); \r\n mapAll.putAll(mapHids);"); |
|
1589 |
// if (pHelper.panelAudit.size() > 0) { // 审计功能调用到的属性 |
|
1590 |
// sBuffer.append("\r\n String[] auditFiled@index@=\""+ pHelper.panelAudit.delete(pHelper.panelAudit.length() - 1, pHelper.panelAudit.length()) + "\".split(\";\");"); |
|
1591 |
// sBuffer.append("\r\n String Filed@index@=\"\";"); |
|
1592 |
// sBuffer.append("\r\n for(String Fileds@index@ : auditFiled@index@){"); |
|
1593 |
// sBuffer.append("\r\n Filed@index@=Fileds@index@.substring(0,Fileds@index@.length()-2);\r\n%>"); |
|
1594 |
// sBuffer.append("\r\n<script type=\"text/javascript\">");//\r\npanMain[panIndex].panelAuditValue['<%=Filed@index@%>']='<%=DBHelper.getValue(docMap,Filed@index@,mapAll)%>';"); |
|
1595 |
// sBuffer.append("\r\npanMain[panIndex].auditFiled="+pHelper.panelAudit+"\r\n</script>");//+='<%=Fileds@index@%>#';\r\n</script>"); |
|
1596 |
// sBuffer.append("\r\n<%}%>"); |
|
1597 |
// pHelper.panelAudit = null; |
|
1598 |
// } else { |
|
1599 |
sBuffer.append("\r\n%>"); |
|
1600 |
// } |
|
1601 |
return sBuffer; |
|
1602 |
} |
|
1603 |
|
|
1604 |
/** |
|
1605 |
* 循环 |
|
1606 |
* |
|
1607 |
* @param sBuffer |
|
1608 |
* @param maps |
|
1609 |
*/ |
|
1610 |
private void getMapSession(StringBuffer sBuffer, String maps) { |
|
1611 |
sBuffer.append("\r\n mapsetStr=seStr.split(\";pb#\");"); |
|
1612 |
sBuffer.append("\r\n for(i=0;i<mapsetStr.length;i++){"); |
|
1613 |
sBuffer.append("\r\n if(!mapsetStr[i].equals(\"\")){"); |
|
1614 |
sBuffer.append("\r\n infoS=mapsetStr[i].split(\";\");"); |
|
1615 |
sBuffer.append("\r\n map_pb = new HashMap<String, String>();"); |
|
1616 |
sBuffer.append("\r\n map_pb.put(\"FieldID\", infoS[0]);"); |
|
1617 |
sBuffer.append("\r\n map_pb.put(\"type\",infoS[1]);"); |
|
1618 |
sBuffer.append("\r\n map_pb.put(\"format\", infoS[2]);"); |
|
1619 |
sBuffer.append("\r\n map_pb.put(\"downGrid\", infoS[3]);"); |
|
1620 |
sBuffer.append("\r\n map_pb.put(\"datetype\", infoS[4]);"); |
|
1621 |
sBuffer.append("\r\n map_pb.put(\"hidden\",infoS[5]);"); |
|
1622 |
sBuffer.append("\r\n " + maps).append(".put(infoS[0], map_pb);"); |
|
1623 |
sBuffer.append("\r\n }"); |
|
1624 |
sBuffer.append("\r\n }"); |
|
1625 |
} |
|
1626 |
|
|
1627 |
private StringBuffer getPanMapStr(Map<String, Map<String, String>> maps, String yeIdStr, boolean hid) { |
|
1628 |
StringBuffer sBuffer = new StringBuffer(); |
|
1629 |
Map<String, String> mapStr = maps.get(yeIdStr); |
|
1630 |
sBuffer.append(mapStr.get("FieldID")).append(";").append(mapStr.get("type")).append(";") |
|
1631 |
.append(((mapStr.get("format") == null) ? "" : mapStr.get("format"))).append(";") |
|
1632 |
.append(mapStr.get("downGrid")).append(";").append(mapStr.get("datetype")).append(";") |
|
1633 |
.append((hid) ? "1" : "0"); |
|
1634 |
return sBuffer; |
|
1635 |
} |
|
1636 |
|
|
1637 |
/* |
|
1638 |
* 修改后的38类型需要用到的数据采集方法 |
|
1639 |
*/ |
|
1640 |
public StringBuffer newgetJspPanContent38(int formId, PanelBean panelBean) throws Exception { |
|
1641 |
panelBean.bian38 = 0; |
|
1642 |
StringBuffer sBuffer = new StringBuffer(); |
|
1643 |
sBuffer.append( |
|
1644 |
"\r\n <table class=\"main_talbe\" width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" id=\"checkPan\">"); |
|
1645 |
List<Map<String, Object>> selChecks = systemSettingsBo.getStatisDetail(formId); |
|
1646 |
String tdSel = ""; |
|
1647 |
int colNo = 4; |
|
1648 |
Map<String, Object> mapObject = null; |
|
1649 |
|
|
1650 |
int tiI = 0; |
|
1651 |
String theMes = null; |
|
1652 |
/* String modder=null; */ |
|
1653 |
StringBuffer sbFieldset = new StringBuffer(); |
|
1654 |
String fieldCaption = null; |
|
1655 |
String StatisID = null; |
|
1656 |
for (int i = 0; i < selChecks.size(); i++) { |
|
1657 |
mapObject = selChecks.get(i); |
|
1658 |
String a = "0" + i; |
|
1659 |
fieldCaption = mapObject.get("FieldCaption").toString(); |
|
1660 |
StatisID = mapObject.get("StatisID") + ""; |
|
1661 |
theMes = mapObject.get("DetailGroupName") == null ? "" |
|
1662 |
: mapObject.get("DetailGroupName").toString().toLowerCase(); |
|
1663 |
if (theMes.equals(mapObject.get("FieldID").toString().toLowerCase())) { |
|
1664 |
tdSel = getEndTd(tdSel, colNo, tiI, sbFieldset, sBuffer); |
|
1665 |
sbFieldset = new StringBuffer(); |
|
1666 |
sbFieldset.append("<td colspan=\"" + colNo + "\"><fieldset><legend title=\"").append(fieldCaption) |
|
1667 |
.append("\">").append(fieldCaption) |
|
1668 |
.append(typeControlDao.getSelectAndCheckBoxs(a, StatisID, mapObject.get("FieldID").toString(), |
|
1669 |
mapObject.get("FieldAlias") + "", mapObject.get("StatisType").toString(), |
|
1670 |
mapObject.get("Sequence").toString(), mapObject.get("DisplayWidth").toString(), |
|
1671 |
mapObject.get("displayformat") + "", mapObject.get("displayYN") + "", |
|
1672 |
mapObject.get("isFilterZero") + "", mapObject.get("jionFlag") + "", |
|
1673 |
mapObject.get("jionFlagGroup") + "", mapObject.get("conFlag") + "", |
|
1674 |
mapObject.get("modfvalues") + "", mapObject.get("modfvalues2") + "", fieldCaption, panelBean)) |
|
1675 |
.append("</legend>"); |
|
1676 |
tiI = 0; |
|
1677 |
continue; |
|
1678 |
} else { |
|
1679 |
|
|
1680 |
tiI++; |
|
1681 |
tdSel += "\r\n<div nowrap align=\"right\" style=\"display:none;\" title=\"" + fieldCaption |
|
1682 |
+ "\"><span class=\"checkMiaoShu\" >" + fieldCaption + "</span>" |
|
1683 |
+ typeControlDao.getSelectAndCheckBoxs(a, mapObject.get("StatisID") + "", |
|
1684 |
mapObject.get("FieldID").toString(), mapObject.get("FieldAlias") + "", |
|
1685 |
mapObject.get("StatisType").toString(), mapObject.get("Sequence") + "", |
|
1686 |
mapObject.get("DisplayWidth").toString(), mapObject.get("displayformat") + "", |
|
1687 |
mapObject.get("displayYN") + "", mapObject.get("isFilterZero") + "", |
|
1688 |
mapObject.get("jionFlag") + "", mapObject.get("jionFlagGroup") + "", |
|
1689 |
mapObject.get("conFlag") + "", mapObject.get("modfvalues") + "", |
|
1690 |
mapObject.get("modfvalues2") + "", fieldCaption, panelBean) |
|
1691 |
+ "</div>";// 描述 |
|
1692 |
/* |
|
1693 |
* modder= |
|
1694 |
* typeControlDao.getSelectAndCheckBoxs(mapObject.get("StatisID" |
|
1695 |
* )+"",mapObject.get("FieldID").toString(), |
|
1696 |
* mapObject.get("FieldAlias" |
|
1697 |
* )+"",mapObject.get("StatisType").toString |
|
1698 |
* (),mapObject.get("Sequence" |
|
1699 |
* ).toString(),mapObject.get("DisplayWidth" |
|
1700 |
* ).toString(),mapObject |
|
1701 |
* .get("displayformat")+"",mapObject.get("displayYN" |
|
1702 |
* )+"",mapObject |
|
1703 |
* .get("isFilterZero")+"",mapObject.get("jionFlag" |
|
1704 |
* )+"",mapObject |
|
1705 |
* .get("jionFlagGroup")+"",mapObject.get("conFlag" |
|
1706 |
* )+"",mapObject.get("modfvalues")+"", |
|
1707 |
* mapObject.get("modfvalues2")+"", fieldCaption); |
|
1708 |
*/ |
|
1709 |
/* |
|
1710 |
* if (tiI == colNo) {// |
|
1711 |
* 这样只能显示4的倍数,如果还有另起一行却多出两个单元格有信息,却没编码显示--现在来实现 tdSel = tdSel + |
|
1712 |
* "</tr>\r\n<tr>"; tiI = 0; } |
|
1713 |
*/ |
|
1714 |
|
|
1715 |
} |
|
1716 |
} |
|
1717 |
tdSel = getEndTd(tdSel, colNo, tiI, sbFieldset, sBuffer); |
|
1718 |
sbFieldset = new StringBuffer(); |
|
1719 |
sBuffer.append("\r\n</table>");// 这里供选择信息 |
|
1720 |
sBuffer.append( |
|
1721 |
"\r\n<form action=\"/public/template/grid38.jsp\" method=\"post\" name=\"fuxuanForm\" id=\"fuxuanForm\" target=\"abc\"> "); |
|
1722 |
sBuffer.append("<input type=\"hidden\" name=\"formIdHid\" id=\"formIdHid\" value=\"" + formId + "\" >"); |
|
1723 |
sBuffer.append("<input type=\"hidden\" id=\"datalist\" name=\"datalist\" value=\"\" />"); |
|
1724 |
sBuffer.append( |
|
1725 |
"<input type=\"hidden\" id=\"where\" name=\"where\" value=\"\"><input type=\"hidden\" id=\"grapht\" name=\"grapht\" value=\"\">");// |
|
1726 |
sBuffer.append("\r\n</form>");// 这里为提交信息 |
|
1727 |
sBuffer.append( |
|
1728 |
"<input type=\"hidden\" id=\"panelinitvalue\" value=\"\"> <input type=\"hidden\" id=\"selectinitvalue\" value=\"\"> ");// 这为保存进库信息 |
|
1729 |
sBuffer.append("\r\n<script type=\"text/javascript\"> "); |
|
1730 |
sBuffer.append("get38value('');").append("getPanValue();</script>"); |
|
1731 |
|
|
1732 |
return sBuffer; |
|
1733 |
} |
|
1734 |
|
|
1735 |
/* |
|
1736 |
* 新增38类型的面板显示方法 fromid筛选出是哪个功能号 |
|
1737 |
*/ |
|
1738 |
/* |
|
1739 |
* private StringBuffer getType38(int formId) throws Exception { |
|
1740 |
* |
|
1741 |
* List<Map<String, Object>> list = typei.selecttype(formId); StringBuffer |
|
1742 |
* sBuffer = new StringBuffer(); String tdSel = ""; String tdSels = ""; int |
|
1743 |
* colNo = 4; |
|
1744 |
* |
|
1745 |
* Map<String, Object> mapObject = null; int tiI = 0; |
|
1746 |
* |
|
1747 |
* StringBuffer sbFieldset = new StringBuffer(); String StatisName = null; |
|
1748 |
* String StatisID = null; tdSel=""; String id=null; for (int i = 0; i < |
|
1749 |
* list.size(); i++) { |
|
1750 |
* |
|
1751 |
* mapObject = list.get(i); String usercode = mapObject.get("UserCode") + |
|
1752 |
* ""; if(usercode.equals("")||usercode.equals("")){ StatisName = |
|
1753 |
* mapObject.get("StatisName")+""; StatisID = |
|
1754 |
* mapObject.get("StatisID").toString()+""; if(StatisName.equals("null")){ |
|
1755 |
* StatisName=StatisID; } String id = mapObject.get("FormID") + ""; tiI++; |
|
1756 |
* |
|
1757 |
* tdSel += "\r\n<td nowrap align=\"right\" title=\"" + StatisName + |
|
1758 |
* "\"><a class=\"easyui-linkbutton\" plain=\"true\" onclick=\"commit38();\"><span class=\"type\">" |
|
1759 |
* + StatisName + |
|
1760 |
* "</span></a><a id=\"zdy\" href='javascript:void(0);' onclick=\"parent.addTab('自定义条件或标准条件','','','','/general/publicpage/indexsc.jsp?zdy=" |
|
1761 |
* + zdy + |
|
1762 |
* "')\" class=\"easyui-linkbutton\" plain=\"true\"><input type=\"hidden\" id=\"zdy\" name=\"zdy\" value=\"" |
|
1763 |
* + zdy + |
|
1764 |
* "\"><span class=\"type\"><img src=\"/images/QQ20170511111548.png\"></span></a>" |
|
1765 |
* + "</td>"; // 描述 tdSel += |
|
1766 |
* "<div class=\"col-md-3\"><a id=\"zdy\" href='javascript:void(0);' onclick=\"parent.addTab('自定义条件或标准条件','','','','/general/publicpage/indexsc.jsp?zdy=" |
|
1767 |
* + zdy + |
|
1768 |
* "')\" class=\"easyui-linkbutton\" plain=\"true\"><span class=\"type\"><img src=\"/images/QQ20170511111548.png\"></span></a><input id=\"StatisName\" type=\"hidden\" value=\"" |
|
1769 |
* + StatisID + |
|
1770 |
* "\"/><a class=\"easyui-linkbutton\" plain=\"true\" onclick=\"commit38(" |
|
1771 |
* +"'"+StatisID+"'"+");\"><span class=\"type\">" + StatisName + |
|
1772 |
* "</span></a></div>"; |
|
1773 |
* parent.addTab('自定义条件或标准条件','','','','/general/publicpage/10/index.jsp') |
|
1774 |
* tdSel += |
|
1775 |
* "<div class=\"col-md-3\"><a id=\"zdy\" href='javascript:void(0);' onclick=\"funcLink('800001','10','" |
|
1776 |
* +formId+";"+ |
|
1777 |
* StatisID+"','formid;statisid','1','','','null','','','0','0','','1','')\" class=\"easyui-linkbutton\" plain=\"true\"><span class=\"type\"><img src=\"/images/QQ20170511111548.png\"></span></a><input id=\"StatisName\" type=\"hidden\" value=\"" |
|
1778 |
* + StatisID + |
|
1779 |
* "\"/><a class=\"easyui-linkbutton\" plain=\"true\" onclick=\"commit38(" |
|
1780 |
* +"'"+StatisID+"'"+");\"><span class=\"type\">" + StatisName + |
|
1781 |
* "</span></a></div>"; |
|
1782 |
* |
|
1783 |
* |
|
1784 |
* if (tiI == colNo) {// 这样只能显示4的倍数,如果还有另起一行却多出两个单元格有信息,却没编码显示--现在来实现 tdSel |
|
1785 |
* = tdSel + "</tr></br><tr>"; tiI = 0; |
|
1786 |
* |
|
1787 |
* } |
|
1788 |
* |
|
1789 |
* |
|
1790 |
* if (tiI == colNo) {// 这样只能显示4的倍数,如果还有另起一行却多出两个单元格有信息,却没编码显示--现在来实现 tdSels |
|
1791 |
* += "<div class=\"row\">" + tdSel + "</div>"; tiI = 0; tdSel = ""; } } } |
|
1792 |
* int a = list.size() % 4; if (a < 4) { tdSels += "<div class=\"row\">" + |
|
1793 |
* tdSel + "</div>"; } tdSel="<div class=\"row\">"+tdSel+"</div>"; tdSels = |
|
1794 |
* getEndTd(tdSels, colNo, tiI, sbFieldset, sBuffer); sbFieldset = new |
|
1795 |
* StringBuffer(); sBuffer.append("\r\n</table>");// 这里供选择信息 sBuffer. |
|
1796 |
* append("\r\n<form action=\"/public/template/grid38.jsp\" method=\"post\" name=\"fuxuanForm\" id=\"fuxuanForm\" target=\"abc\"> " |
|
1797 |
* ); sBuffer. |
|
1798 |
* append("<input type=\"hidden\" name=\"formIdHid\" id=\"formIdHid\" value=\"" |
|
1799 |
* + formId + "\" >"); sBuffer. |
|
1800 |
* append("<input type=\"hidden\" name=\"StatisNames\" id=\"StatisNames\" value=\"\" >" |
|
1801 |
* ); sBuffer. |
|
1802 |
* append("<input type=\"hidden\" id=\"datalist\" name=\"datalist\" value=\"\">" |
|
1803 |
* ); sBuffer. |
|
1804 |
* append("<input type=\"hidden\" id=\"where\" name=\"where\" value=\"\"><input type=\"hidden\" id=\"grapht\" name=\"grapht\" value=\"\">" |
|
1805 |
* );// sBuffer.append("\r\n</form>");// 这里为提交信息 sBuffer. |
|
1806 |
* append("<input type=\"hidden\" id=\"panelinitvalue\" value=\"\"> <input type=\"hidden\" id=\"selectinitvalue\" value=\"\"> " |
|
1807 |
* );// 这为保存进库信息 sBuffer.append("\r\n<script type=\"text/javascript\"> "); |
|
1808 |
* sBuffer.append("get38value('');").append("getPanValue();</script>"); |
|
1809 |
* return sBuffer; } |
|
1810 |
*/ |
|
1811 |
|
|
1812 |
private String getEndTd(String tdSel, int colNo, int tiI, StringBuffer sbFieldset, StringBuffer sBuffer) { |
|
1813 |
if (tiI < 5 && tiI > 0) { |
|
1814 |
tdSel += "<td colspan=\"" + (colNo - tiI) + "\"> </td>"; |
|
1815 |
} |
|
1816 |
if (sbFieldset.length() > 0) { |
|
1817 |
if (tdSel.trim().length() > 0) { |
|
1818 |
sbFieldset.append("<table><tr>").append(tdSel).append("</tr></table>"); |
|
1819 |
} |
|
1820 |
sbFieldset.append("</fieldset></td>"); |
|
1821 |
tdSel = ""; |
|
1822 |
} |
|
1823 |
if (tdSel.toCharArray().length > 0) {// 未分组显示的情况 |
|
1824 |
sbFieldset.append(tdSel); |
|
1825 |
} |
|
1826 |
try { |
|
1827 |
tdSel = getTr38(sBuffer, sbFieldset.toString()); |
|
1828 |
} catch (Exception e) { |
|
1829 |
e.printStackTrace(); |
|
1830 |
} |
|
1831 |
return tdSel; |
|
1832 |
} |
|
1833 |
|
|
1834 |
private String getTr38(StringBuffer sBuffer, String tdSel) throws Exception { |
|
1835 |
sBuffer.append("\r\n<tr>"); |
|
1836 |
sBuffer.append(tdSel); |
|
1837 |
sBuffer.append("\r\n</tr>"); |
|
1838 |
return ""; |
|
1839 |
} |
|
1840 |
|
|
1841 |
} |