PageRenderTime 108ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/VisualFlow/Comm/UC/UCSys.ascx.cs

#
C# | 2744 lines | 2649 code | 27 blank | 68 comment | 4 complexity | 3071902c731a88e53520d53a0b7f57c2 MD5 | raw file
Possible License(s): AGPL-3.0
  1. namespace BP.Web.Comm.UC
  2. {
  3. using System;
  4. using System.Collections;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Data.SqlClient;
  8. using System.Data.Odbc;
  9. using System.Drawing;
  10. using System.Web;
  11. using System.Web.SessionState;
  12. using System.Web.UI;
  13. using System.Web.UI.WebControls;
  14. using System.Web.UI.HtmlControls;
  15. using BP.Rpt;
  16. using BP.DA;
  17. using BP.En;
  18. using BP.Sys;
  19. using BP.Web;
  20. using BP.Web.Controls;
  21. using BP.Web.UC;
  22. using BP.XML;
  23. using BP.Sys.Xml;
  24. using BP.Port;
  25. // using OWC10;
  26. using Microsoft.Office.Interop.Owc11;
  27. /// <summary>
  28. /// UCSys 的摘要说明。
  29. /// </summary>
  30. public partial class UCSys : BP.Web.UC.UCBase
  31. {
  32. public static string FilesViewStr(string enName, object pk)
  33. {
  34. string url = System.Web.HttpContext.Current.Request.ApplicationPath + "/Comm/FileManager.aspx?EnsName=" + enName + "&PK=" + pk.ToString();
  35. //string strs="<a href=\"javascript:WinOpen("") \" >附件</>";
  36. //string strs="<a href=\"javascript:WinOpen('"+url+"') \" >编辑附件</>";
  37. string strs = "";
  38. SysFileManagers ens = new SysFileManagers(enName, pk.ToString());
  39. string path = System.Web.HttpContext.Current.Request.ApplicationPath;
  40. foreach (SysFileManager file in ens)
  41. {
  42. strs += "<img src='" + path + "/Images/FileType/" + file.MyFileExt.Replace(".", "") + ".gif' border=0 /><a href='" + path + file.MyFilePath + "' target='_blank' >" + file.MyFileName + file.MyFileExt + "</a>&nbsp;";
  43. if (file.Rec == WebUser.No)
  44. {
  45. strs += "<a title='打开它' href=\"javascript:DoAction('" + path + "/Comm/Do.aspx?ActionType=" + (int)ActionType.DeleteFile + "&OID=" + file.OID + "&EnsName=" + enName + "&PK=" + pk + "','删除文件《" + file.MyFileName + file.MyFileExt + "》')\" ><img src='" + path + "/Images/Btn/delete.gif' border=0 alt='删除此附件' /></a>&nbsp;";
  46. }
  47. }
  48. return strs;
  49. }
  50. public static string FilesViewStr1(string enName, object pk)
  51. {
  52. string url = System.Web.HttpContext.Current.Request.ApplicationPath + "/Comm/FileManager.aspx?EnsName=" + enName + "&PK=" + pk.ToString();
  53. //string strs="<a href=\"javascript:WinOpen("") \" >附件</>";
  54. string strs = "<a href=\"javascript:WinOpen('" + url + "') \" >编辑附件</>";
  55. SysFileManagers ens = new SysFileManagers(enName, pk.ToString());
  56. string path = System.Web.HttpContext.Current.Request.ApplicationPath;
  57. foreach (SysFileManager file in ens)
  58. {
  59. strs += "<img src='" + path + "/Images/FileType/" + file.MyFileExt.Replace(".", "") + ".gif' border=0 /><a href='" + path + file.MyFilePath + "' target='_blank' >" + file.MyFileName + file.MyFileExt + "</a>&nbsp;";
  60. }
  61. return strs;
  62. }
  63. public string GenerIt()
  64. {
  65. ////创建一个图形容器对象
  66. //OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass();
  67. ////在图形容器中增加一个图形对象
  68. //OWC11.ChChart objChart = objCSpace.Charts.Add(0);
  69. ////将图形的类型设置为柱状图的一种
  70. //objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeColumnStacked;
  71. ////将图形容器的边框颜色设置为白色
  72. //objCSpace.Border.Color = "White";
  73. ////显示标题
  74. //objChart.HasTitle = true;
  75. ////设置标题内容
  76. //objChart.Title.Caption = "统计图测试";
  77. ////设置标题字体的大小
  78. //objChart.Title.Font.Size = 10;
  79. ////设置标题为粗体
  80. //objChart.Title.Font.Bold = true;
  81. ////设置标题颜色为红色
  82. //objChart.Title.Font.Color = "Red";
  83. ////显示图例
  84. //objChart.HasLegend = true;
  85. ////设置图例字体大小
  86. //objChart.Legend.Font.Size = 10;
  87. ////设置图例位置为底端
  88. //objChart.Legend.Position = OWC11.ChartLegendPositionEnum.chLegendPositionBottom;
  89. ////在图形对象中添加一个系列
  90. //objChart.SeriesCollection.Add(0);
  91. ////给定系列的名字
  92. //objChart.SeriesCollection[0].SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames,
  93. // +(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, "指标");
  94. ////给定值
  95. //objChart.SeriesCollection[0].SetData(OWC11.ChartDimensionsEnum.chDimValues,
  96. // +(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, "10\t40\t58\t55\t44");
  97. ////显示数据,创建GIF文件的相对路径.
  98. //string FileName = DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".gif";
  99. //objCSpace.ExportPicture(@"E:\Projects\Study\OwcImg\ChartDetail.gif", "GIF", 450, 300);
  100. //return FileName;
  101. //Image1.ImageUrl = "Http://localhost/Study/OwcImg/ChartDetail.gif";
  102. return null;
  103. }
  104. public static string GenerChart(DataTable dt, string colOfGroupField, string colOfGroupName,
  105. string colOfNumField, string colOfNumName, string title, int chartHeight, int chartWidth, ChartType ct)
  106. {
  107. string strCategory = "";
  108. string strValue = "";
  109. //声明对象
  110. ChartSpace ThisChart = new ChartSpaceClass();
  111. ChChart ThisChChart = ThisChart.Charts.Add(0);
  112. ChSeries ThisChSeries = ThisChChart.SeriesCollection.Add(0);
  113. //显示图例
  114. ThisChChart.HasLegend = true;
  115. //标题
  116. ThisChChart.HasTitle = true;
  117. ThisChChart.Title.Caption = title;
  118. //给定x,y轴图示说明
  119. ThisChChart.Axes[0].HasTitle = true;
  120. ThisChChart.Axes[1].HasTitle = true;
  121. ThisChChart.Axes[0].Title.Caption = colOfGroupName;
  122. ThisChChart.Axes[1].Title.Caption = colOfNumName;
  123. switch (ct)
  124. {
  125. case ChartType.Histogram:
  126. foreach (DataRow dr in dt.Rows)
  127. {
  128. strCategory += dr[colOfGroupField].ToString() + '\t';
  129. strValue += dr[colOfNumField].ToString() + '\t';
  130. }
  131. ThisChChart.Type = ChartChartTypeEnum.chChartTypeColumnClustered;
  132. ThisChChart.Overlap = 50;
  133. //旋转
  134. ThisChChart.Rotation = 360;
  135. ThisChChart.Inclination = 10;
  136. //背景颜色
  137. ThisChChart.PlotArea.Interior.Color = "white";
  138. //底色
  139. ThisChChart.PlotArea.Floor.Interior.Color = "green";
  140. ////给定series的名字
  141. ThisChSeries.SetData(ChartDimensionsEnum.chDimSeriesNames,
  142. ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), colOfGroupName);
  143. //给定分类
  144. ThisChSeries.SetData(ChartDimensionsEnum.chDimCategories,
  145. ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strCategory);
  146. //给定值
  147. ThisChSeries.SetData(ChartDimensionsEnum.chDimValues,
  148. ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), strValue);
  149. break;
  150. case ChartType.Pie:
  151. // 产生数据
  152. foreach (DataRow dr in dt.Rows)
  153. {
  154. strCategory += dr[colOfGroupField].ToString() + '\t';
  155. strValue += dr[colOfNumField].ToString() + '\t';
  156. }
  157. ThisChChart.Type = ChartChartTypeEnum.chChartTypePie3D;
  158. ThisChChart.SeriesCollection.Add(0);
  159. //在图表上显示数据
  160. ThisChChart.SeriesCollection[0].DataLabelsCollection.Add();
  161. ThisChChart.SeriesCollection[0].DataLabelsCollection[0].Position = ChartDataLabelPositionEnum.chLabelPositionAutomatic;
  162. ThisChChart.SeriesCollection[0].Marker.Style = ChartMarkerStyleEnum.chMarkerStyleCircle;
  163. //给定该组图表数据的名字
  164. ThisChChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames,
  165. +(int)ChartSpecialDataSourcesEnum.chDataLiteral, "strSeriesName");
  166. //给定数据分类
  167. ThisChChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,
  168. +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);
  169. //给定值
  170. ThisChChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues,
  171. (int)ChartSpecialDataSourcesEnum.chDataLiteral, strValue);
  172. break;
  173. case ChartType.Line:
  174. // 产生数据
  175. foreach (DataRow dr in dt.Rows)
  176. {
  177. strCategory += dr[colOfGroupField].ToString() + '\t';
  178. strValue += dr[colOfNumField].ToString() + '\t';
  179. }
  180. ThisChChart.Type = ChartChartTypeEnum.chChartTypeLineStacked;
  181. ThisChChart.SeriesCollection.Add(0);
  182. //在图表上显示数据
  183. ThisChChart.SeriesCollection[0].DataLabelsCollection.Add();
  184. //ThisChChart.SeriesCollection[0].DataLabelsCollection[0].Position=ChartDataLabelPositionEnum.chLabelPositionAutomatic;
  185. //ThisChChart.SeriesCollection[0].DataLabelsCollection[0].Position=ChartDataLabelPositionEnum.chLabelPositionOutsideBase;
  186. ThisChChart.SeriesCollection[0].Marker.Style = ChartMarkerStyleEnum.chMarkerStyleCircle;
  187. //给定该组图表数据的名字
  188. ThisChChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames,
  189. +(int)ChartSpecialDataSourcesEnum.chDataLiteral, "strSeriesName");
  190. //给定数据分类
  191. ThisChChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,
  192. +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);
  193. //给定值
  194. ThisChChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues,
  195. (int)ChartSpecialDataSourcesEnum.chDataLiteral, strValue);
  196. break;
  197. }
  198. //导出图像文件
  199. //ThisChart.ExportPicture("G:\\chart.gif","gif",600,350);
  200. string fileName = ct.ToString() + WebUser.No + ".gif";
  201. string strAbsolutePath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\Temp\\" + fileName;
  202. try
  203. {
  204. ThisChart.ExportPicture(strAbsolutePath, "GIF", chartWidth, chartHeight);
  205. }
  206. catch (Exception ex)
  207. {
  208. throw new Exception("@不能创建文件,可能是权限的问题,请把该目录设置为任何人都可以修改。" + strAbsolutePath + " Exception:" + ex.Message);
  209. }
  210. return fileName;
  211. }
  212. public void BindMenu_Small(string enumKey, string url, string selecVal, bool IsShowAll)
  213. {
  214. SysEnums ses = new SysEnums(enumKey);
  215. this.Add("<Table >");
  216. this.AddTR();
  217. if (IsShowAll)
  218. {
  219. if (selecVal == "all")
  220. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center > <b>全部</A> </TD>");
  221. else
  222. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center ><A href='" + url.Replace("@" + enumKey, "all") + "' >全部</A> </TD>");
  223. }
  224. foreach (SysEnum se in ses)
  225. {
  226. if (se.IntKey.ToString() == selecVal)
  227. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center ><b>" + se.Lab + "</b></TD>");
  228. else
  229. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center ><A href='" + url.Replace("@" + enumKey, se.IntKey.ToString()) + "' >" + se.Lab + "</A> </TD>");
  230. }
  231. this.AddTREnd();
  232. this.AddTableEnd();
  233. }
  234. public void BindMenu(string enumKey, string url, string selecVal, bool IsShowAll, string imgPath, string newStr)
  235. {
  236. SysEnums ses = new SysEnums(enumKey);
  237. this.Add("<Table >");
  238. this.AddTR();
  239. if (newStr != null)
  240. {
  241. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center >" + newStr + "</TD>");
  242. }
  243. if (IsShowAll)
  244. {
  245. if (selecVal == "all")
  246. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center ><img src='" + imgPath + "all.gif' border=0 />全部</TD>");
  247. else
  248. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center ><A href='" + url.Replace("@" + enumKey, "all") + "' ><img src='" + imgPath + "all.gif' border=0 />全部</A> </TD>");
  249. }
  250. foreach (SysEnum se in ses)
  251. {
  252. if (se.IntKey.ToString() == selecVal)
  253. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center ><b><img src='" + imgPath + se.IntKey + ".gif' border=0 />" + se.Lab + "</b></TD>");
  254. else
  255. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center ><A href='" + url.Replace("@" + enumKey, se.IntKey.ToString()) + "' ><img src='" + imgPath + se.IntKey + ".gif' border=0 />" + se.Lab + "</A> </TD>");
  256. }
  257. this.AddTREnd();
  258. this.AddTableEnd();
  259. }
  260. public void BindMenu(string enumKey, string url, string selecVal, bool IsShowAll)
  261. {
  262. SysEnums ses = new SysEnums(enumKey);
  263. this.Add("<Table >");
  264. this.AddTR();
  265. if (IsShowAll)
  266. {
  267. if (selecVal == "all")
  268. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center > <b>全部</A> </TD>");
  269. else
  270. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center ><A href='" + url.Replace("@" + enumKey, "all") + "' >全部</A> </TD>");
  271. }
  272. foreach (SysEnum se in ses)
  273. {
  274. if (se.IntKey.ToString() == selecVal)
  275. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center ><b>" + se.Lab + "</b></TD>");
  276. else
  277. this.Add("<TD style='font-size:14px; font-weight:bolder; ' background=Enum.gif width='126' height='36' align=center ><A href='" + url.Replace("@" + enumKey, se.IntKey.ToString()) + "' >" + se.Lab + "</A> </TD>");
  278. }
  279. this.AddTREnd();
  280. this.AddTableEnd();
  281. }
  282. public void BindMenuList(string enumKey, string url, string selecVal)
  283. {
  284. SysEnums ses = new SysEnums(enumKey);
  285. this.Add("<Table >");
  286. foreach (SysEnum se in ses)
  287. {
  288. this.AddTR();
  289. if (se.IntKey.ToString() == selecVal)
  290. this.Add("<TD style='font-size:12px; font-weight:bolder;' background=Enum.gif width='126' height='36' align=center ><b>" + se.Lab + "</b></TD>");
  291. else
  292. this.Add("<TD style='font-size:12px; font-weight:bolder;' background=Enum.gif width='126' height='36' align=center ><A href='" + url.Replace("@" + enumKey, se.IntKey.ToString()) + "' >" + se.Lab + "</A> </TD>");
  293. this.AddTREnd();
  294. }
  295. this.AddTableEnd();
  296. }
  297. // public void BindXmlEns(XmlEns ens)
  298. public void BindXmlEns(XmlEns ens)
  299. {
  300. this.Clear();
  301. this.AddTable();
  302. XmlEn myen = ens[0];
  303. this.Add("<TR>");
  304. foreach (string key in myen.Row.Keys)
  305. this.Add("<TD class='Title' >" + key + "</TD>");
  306. this.AddTREnd();
  307. foreach (XmlEn en in ens)
  308. {
  309. this.Add("<TR onmouseover='TROver(this)' onmouseout='TROut(this)' >");
  310. foreach (string key in en.Row.Keys)
  311. this.AddTD(en.GetValStringByKey(key));
  312. this.AddTREnd();
  313. }
  314. this.Add("</Table>");
  315. }
  316. // public void GenerOutlookMenuV2(string cate)
  317. public void GenerOutlookMenuV2(string cate)
  318. {
  319. if (cate == null)
  320. cate = "01";
  321. this.Controls.Clear();
  322. DataSet ds = new DataSet();
  323. ds.ReadXml(SystemConfig.PathOfXML + "Menu.xml");
  324. DataTable dt = ds.Tables[0];
  325. DataTable dtl = dt.Clone();
  326. DataTable dtCate = dt.Clone();
  327. //DataTable dtl = dt.Clone();
  328. foreach (DataRow dr in dt.Rows)
  329. {
  330. string ForUser = dr["ForUser"].ToString().Trim();
  331. switch (ForUser)
  332. {
  333. case "SysAdmin":
  334. if (WebUser.HisUserType != UserType.SysAdmin)
  335. continue;
  336. break;
  337. case "AppAdmin":
  338. if (WebUser.HisUserType == UserType.AppAdmin
  339. || WebUser.HisUserType == UserType.SysAdmin)
  340. {
  341. }
  342. else
  343. continue;
  344. break;
  345. default:
  346. break;
  347. }
  348. string no = dr["No"].ToString().Trim();
  349. if (no.Trim().Length == 2)
  350. {
  351. DataRow dr2 = dtCate.NewRow();
  352. dr2["No"] = dr["No"];
  353. dr2["Name"] = dr[BP.Web.WebUser.SysLang];
  354. dr2["Url"] = dr["Url"];
  355. dr2["Desc"] = dr["Desc"];
  356. dr2["Img"] = dr["Img"];
  357. dtCate.Rows.Add(dr2);
  358. continue;
  359. }
  360. if (no.Substring(0, 2) == cate)
  361. {
  362. DataRow dr1 = dtl.NewRow();
  363. dr1["No"] = dr["No"];
  364. dr1["Name"] = dr[BP.Web.WebUser.SysLang];
  365. dr1["Url"] = dr["Url"];
  366. dr1["Desc"] = dr["Desc"];
  367. dr1["Img"] = dr["Img"];
  368. dtl.Rows.Add(dr1);
  369. }
  370. }
  371. this.Add("<TABLE class='MainTable' >");
  372. int i = 0;
  373. foreach (DataRow dr in dtCate.Rows)
  374. {
  375. i++;
  376. string no = dr["No"].ToString();
  377. string name = dr[BP.Web.WebUser.SysLang].ToString();
  378. string url = dr["Url"].ToString();
  379. string img = dr["Img"].ToString();
  380. string desc = dr["Desc"].ToString(); //描述数据
  381. if (img.Trim().Length != 5)
  382. name = "<img src='" + img + "' border=0 />" + name;
  383. string srcp = "window.location.href='LeftOutlook.aspx?cate=" + no + "'";
  384. /*他是目录数据。*/
  385. if (cate == no)
  386. {
  387. /* 当前要选择他。*/
  388. this.Add("<TR >");
  389. this.Add("<TD class='TDM_Selected' nowrap=true title='" + dr["DESC"].ToString() + "' ><b>" + name + "</b></TD>");
  390. this.AddTREnd();
  391. /*如果遇到了当前要选择的菜单。*/
  392. this.Add("<TR height='100%' >");
  393. this.Add("<TD calss='TDItemTable' height='100%' >");
  394. this.Add("<Table class='ItemTable' cellpadding='0' cellspacing='0' style='border-collapse: collapse' >");
  395. foreach (DataRow itemdr in dtl.Rows)
  396. {
  397. string no1 = itemdr["No"].ToString();
  398. string name1 = itemdr[BP.Web.WebUser.SysLang].ToString();
  399. string url1 = itemdr["Url"].ToString();
  400. string img1 = itemdr["Img"].ToString();
  401. string desc1 = itemdr["Desc"].ToString(); //描述数据
  402. if (img1.Trim().Length != 5)
  403. name1 = "<img src='" + img1 + "' border=0 />" + name1;
  404. this.Add("<TR >");
  405. this.Add("<TD onclick=\"Javascript:WinOpen('" + url1 + "','mainfrm' )\" onmouseover=\"javascript:ItemOver(this);\" onmouseout=\"javascript:ItemOut(this);\" class='Item' title='" + desc1 + "' >");
  406. this.Add(name1);
  407. this.Add("</TD>");
  408. this.AddTREnd();
  409. }
  410. this.Add("</Table>");
  411. this.Add("</TD>");
  412. this.AddTREnd();
  413. }
  414. else
  415. {
  416. this.Add("<TR >");
  417. this.Add("<TD class='TDM' nowrap=true title='" + dr["DESC"].ToString() + "' onclick=\"" + srcp + "\" >" + name + "</TD>");
  418. this.AddTREnd();
  419. }
  420. }
  421. this.Add("</TABLE>");
  422. }
  423. // public void ClearViewState()
  424. public void ClearViewState()
  425. {
  426. this.ViewState.Clear();
  427. }
  428. // public void GenerOutlookMenuV2()
  429. public void GenerOutlookMenuV2()
  430. {
  431. this.Controls.Clear();
  432. DataSet ds = new DataSet();
  433. ds.ReadXml(SystemConfig.PathOfXML + "MenuMain.xml");
  434. DataTable dt = ds.Tables[0];
  435. this.Add("<TABLE border=-1 class='MainTable' >");
  436. int i = 0;
  437. foreach (DataRow dr in dt.Rows)
  438. {
  439. i++;
  440. string id = "Img" + i.ToString();
  441. string file = dr["File"].ToString();
  442. string ImgOut = dr["Out"].ToString();
  443. string ImgOn = dr["On"].ToString();
  444. string Name = "&nbsp;" + dr["Name"].ToString();
  445. string srcp = "window.location.href='LeftOutlook.aspx?xml=" + file + "'";
  446. this.Add("<TR >");
  447. //this.Add("<TD class='TDL' ><Img src='./ImgOutlook/panel_left_r.gif' border=0 width=1% > </TD>");
  448. this.Add("<TD class='TDM' nowrap=true title='" + dr["DESC"].ToString() + "' onclick=\"" + srcp + "\" >" + Name + "</TD>");
  449. //this.Add("<TD class='TDR' > </TD>");
  450. this.AddTREnd();
  451. /*如果遇到了当前要选择的菜单。*/
  452. this.Add("<TR >");
  453. //this.Add("<TD ></TD>");
  454. this.Add("<TD calss='TDItemTable' >");
  455. this.Add("<Table class='ItemTable' cellpadding='0' cellspacing='0' style='border-collapse: collapse' >");
  456. ds.Tables.Clear();
  457. ds.ReadXml(SystemConfig.PathOfXML + file);
  458. DataTable items = ds.Tables["Item"];
  459. foreach (DataRow itemdr in items.Rows)
  460. {
  461. string itemUrl = itemdr["URL"].ToString();
  462. string itemName = itemdr["Name"].ToString();
  463. string ICON = itemdr["ICON"].ToString();
  464. string Desc = itemdr["Desc"].ToString();
  465. this.Add("<TR >");
  466. //this.Add("<TD nowrap=true title='"+itemdr["DESC"].ToString()+"' >");
  467. this.Add("<TD onclick=\"Javascript:WinOpen('" + itemUrl + "','mainfrm' )\" onmouseover=\"javascript:ItemOver(this);\" onmouseout=\"javascript:ItemOut(this);\" class='Item' title='" + itemdr["DESC"].ToString() + "' >");
  468. this.Add(itemName);
  469. //this.Add("<img src='"+ImgOn+"' id='"+id+"' onclick=\"javascript:"+id+".src='"+ImgOut+"'; TDClick( '"+this.Request.ApplicationPath+"','"+file+"', '"+ ImgOn +"'); \" onmouseover=\"javascript:"+id+".src='"+ImgOut+"';\" onmouseout=\"javascript: "+id+".src='"+ImgOn+"'; \" />" );
  470. this.Add("</TD>");
  471. this.AddTREnd();
  472. }
  473. this.Add("</Table>");
  474. this.Add("</TD>");
  475. //this.Add("<TD ></TD>");
  476. this.AddTREnd();
  477. }
  478. this.Add("</TABLE>");
  479. }
  480. // public void ShowTableGroupEns( DataTable dt, Map map, int top,string url,bool isShowNoCol)
  481. public void ShowTableGroupEns(DataTable dt, Map map, int top, string url, bool isShowNoCol)
  482. {
  483. string str = "";
  484. str += "<Table style='border-collapse: collapse' bordercolor='#111111' >";
  485. str += "<TR>";
  486. str += " <TD warp=false class='Title' nowrap >";
  487. str += "ID";
  488. str += " </TD>";
  489. foreach (Attr attr in map.Attrs)
  490. {
  491. if (attr.Field == null && (attr.MyFieldType == FieldType.Enum || attr.MyFieldType == FieldType.PKEnum))
  492. continue;
  493. if (attr.MyFieldType == FieldType.RefText || attr.MyFieldType == FieldType.Normal)
  494. {
  495. str += " <TD warp=false class='Title' nowrap >";
  496. str += attr.Desc;
  497. str += " </TD>";
  498. }
  499. else
  500. {
  501. if (isShowNoCol)
  502. {
  503. str += " <TD warp=false class='Title' nowrap >";
  504. str += attr.Desc;
  505. str += " </TD>";
  506. }
  507. }
  508. }
  509. str += "</TR>";
  510. int idx = 0;
  511. string myurl = "";
  512. foreach (DataRow dr in dt.Rows)
  513. {
  514. idx++;
  515. str += "<TR class='TR' onmouseover='TROver(this)' onmouseout='TROut(this)' >";
  516. str += " <TD class='Idx' nowrap >";
  517. str += idx.ToString();
  518. str += " </TD>";
  519. myurl = "";
  520. foreach (Attr attr in map.Attrs)
  521. {
  522. if (attr.Field == null && (attr.MyFieldType == FieldType.Enum || attr.MyFieldType == FieldType.PKEnum))
  523. continue;
  524. if (attr.MyFieldType == FieldType.Normal)
  525. {
  526. str += " <TD class='TDNum' nowrap >";
  527. str += "<a href=\"javascript:WinOpen('" + url + myurl + "')\" >" + dr[attr.Field] + "</a>";
  528. str += " </TD>";
  529. }
  530. else
  531. {
  532. if (attr.MyFieldType == FieldType.RefText)
  533. {
  534. str += " <TD class='TD' nowrap >";
  535. str += dr[attr.Key];
  536. str += " </TD>";
  537. }
  538. else
  539. {
  540. myurl += "&" + attr.Key + "=" + dr[attr.Field];
  541. if (isShowNoCol)
  542. {
  543. str += " <TD class='TD' nowrap >";
  544. str += dr[attr.Field];
  545. str += " </TD>";
  546. }
  547. }
  548. }
  549. }
  550. str += "</TR>";
  551. if (idx == top)
  552. break;
  553. }
  554. str += "</Table>";
  555. this.Add(str);
  556. }
  557. // public void ShowTable( DataTable dt, Map map)
  558. public void ShowTable(DataTable dt, Map map)
  559. {
  560. string str = "";
  561. str += "<Table class='Table' >";
  562. str += "<TR>";
  563. str += " <TD warp=false class='Title' nowrap >";
  564. str += "ID";
  565. str += " </TD>";
  566. foreach (Attr attr in map.Attrs)
  567. {
  568. if (attr.Field == null)
  569. continue;
  570. str += " <TD warp=false class='Title' nowrap >";
  571. str += attr.Desc;
  572. str += " </TD>";
  573. }
  574. str += "</TR>";
  575. int idx = 0;
  576. foreach (DataRow dr in dt.Rows)
  577. {
  578. idx++;
  579. str += "<TR class='TR' onmouseover='TROver(this)' onmouseout='TROut(this)' >";
  580. str += " <TD class='TDLeft' nowrap >";
  581. str += idx.ToString();
  582. str += " </TD>";
  583. foreach (Attr attr in map.Attrs)
  584. {
  585. if (attr.UIContralType == UIContralType.DDL)
  586. continue;
  587. str += " <TD class='TD' nowrap >";
  588. if (attr.MyFieldType == FieldType.RefText)
  589. str += dr[attr.Key];
  590. else
  591. str += dr[attr.Field];
  592. str += " </TD>";
  593. }
  594. str += "</TR>";
  595. }
  596. str += "</Table>";
  597. this.Add(str);
  598. }
  599. public void ShowHidenMsg(string id, string title, string msg, bool isShowHelpIcon)
  600. {
  601. string appPath = this.Request.ApplicationPath;
  602. if (isShowHelpIcon)
  603. title = "<img src='" + appPath + "/Images/btn/help.gif' border=0 />" + title;
  604. msg = "<table class=Table id='t" + id + "' border=0 ><TR Class=TR ><TD class=TD bgcolor=InfoBackground >" + msg + "</TD></TR></Table>";
  605. string str = "<A onclick='show" + id + "();' style='cursor:hand' > <FONT color='#008000' style='font-size:14px' ><b>" + title + "</b><img src='" + appPath + "/Images/downUp.gif' id=Img" + id + "' ></FONT></A><span id='" + id + "'></span>";
  606. string script = "\n <script language='javascript'> var mode; mode=1; ";
  607. script += "\n function show" + id + "() {";
  608. script += "\n if (mode==0) ";
  609. script += "\n { \n";
  610. script += id + ".innerHTML='' \n";
  611. //script += "Img"+id + ".Src='/imgages/Up.gif' \n";
  612. script += " mode=1 \n";
  613. script += " }else{ \n";
  614. script += id + ".innerHTML=' " + msg + "'\n";
  615. // script += "Img" + id + ".Src='/imgages/Down.gif' \n";
  616. script += " mode=0 \n";
  617. script += " }\n";
  618. script += "}\n";
  619. script += "</script>\n";
  620. this.Add(str);
  621. this.Add(script);
  622. }
  623. public void ShowTable(string title, DataTable dt, DataTable sDT, string color, string refF)
  624. {
  625. this.AddTable();
  626. if (title != null)
  627. this.AddCaptionLeft(title);
  628. this.AddTR();
  629. this.AddTDTitle("序");
  630. foreach (DataColumn dc in dt.Columns)
  631. this.AddTDTitle(dc.ColumnName);
  632. this.AddTREnd();
  633. int i = 0;
  634. foreach (DataRow dr in dt.Rows)
  635. {
  636. i++;
  637. string bg = "";
  638. foreach (DataRow mydr in sDT.Rows)
  639. {
  640. if (mydr[refF].ToString() == dr[refF].ToString())
  641. {
  642. bg = "bgcolor=" + color;
  643. break;
  644. }
  645. }
  646. this.AddTR(bg);
  647. this.AddTDIdx(i);
  648. foreach (DataColumn dc in dt.Columns)
  649. {
  650. this.AddTD(dr[dc.ColumnName].ToString());
  651. }
  652. this.AddTREnd();
  653. }
  654. this.AddTableEnd();
  655. }
  656. // public void ShowTable( DataTable dt)
  657. public void ShowTable(string title, DataTable dt, bool is_TR_TX)
  658. {
  659. this.AddTable();
  660. if (title != null)
  661. this.AddCaptionLeft(title);
  662. this.AddTR();
  663. this.AddTDTitle("序");
  664. foreach (DataColumn dc in dt.Columns)
  665. this.AddTDTitle(dc.ColumnName);
  666. this.AddTREnd();
  667. int i = 0;
  668. foreach (DataRow dr in dt.Rows)
  669. {
  670. i++;
  671. if (is_TR_TX)
  672. this.AddTRTX();
  673. else
  674. this.AddTR();
  675. this.AddTDIdx(i);
  676. foreach (DataColumn dc in dt.Columns)
  677. {
  678. this.AddTD(dr[dc.ColumnName].ToString());
  679. }
  680. this.AddTREnd();
  681. }
  682. this.AddTableEnd();
  683. }
  684. // public void GenerOutlookMenu(string xmlFile)
  685. public void GenerOutlookMenu(string xmlFile)
  686. {
  687. this.Controls.Clear();
  688. DataSet ds = new DataSet();
  689. ds.ReadXml(SystemConfig.PathOfXML + "MenuMain.xml");
  690. DataTable dt = ds.Tables[0];
  691. if (xmlFile == null || xmlFile == "ss") //如果没有找到它,就设置第一个。
  692. this.Add("<TABLE border=-1 class='MainTable' >");
  693. else
  694. this.Add("<TABLE border=-1 class='MainTable' height=100% >");
  695. int i = 0;
  696. foreach (DataRow dr in dt.Rows)
  697. {
  698. i++;
  699. string id = "Img" + i.ToString();
  700. string file = dr["File"].ToString();
  701. string ImgOut = dr["Out"].ToString();
  702. string ImgOn = dr["On"].ToString();
  703. string Name = "&nbsp;" + dr["Name"].ToString();
  704. string srcp = "window.location.href='LeftOutlook.aspx?xml=" + file + "'";
  705. if (file == xmlFile)
  706. {
  707. this.Add("<TR >");
  708. this.Add("<TD class='TDM_Selected' nowrap=true title='" + dr["DESC"].ToString() + "' ><b>" + Name + "</b></TD>");
  709. this.AddTREnd();
  710. }
  711. else
  712. {
  713. this.Add("<TR >");
  714. this.Add("<TD class='TDM' nowrap=true title='" + dr["DESC"].ToString() + "' onclick=\"" + srcp + "\" >" + Name + "</TD>");
  715. this.AddTREnd();
  716. }
  717. if (xmlFile == "RptTemplate" && file == "RptTemplate")
  718. {
  719. /*如果遇到了当前要选择的菜单。*/
  720. this.Add("<TR >");
  721. this.Add("<TD calss='TDItemTable' >");
  722. this.Add("<Table class='ItemTable' cellpadding='0' cellspacing='0' style='border-collapse: collapse' >");
  723. //GroupEnsTemplates rpts = new GroupEnsTemplates(WebUser.No);
  724. //foreach (GroupEnsTemplate rpt in rpts)
  725. //{
  726. // string itemUrl = "../../Comm/GroupEnsMNum.aspx?EnsName=" + rpt.EnsName + "&Attrs=" + rpt.Attrs + "&OperateCol=" + rpt.OperateCol;
  727. // this.Add("<TR >");
  728. // this.Add("<TD onclick=\"Javascript:WinOpen('" + itemUrl + "','mainfrm' )\" onmouseover=\"javascript:ItemOver(this);\" onmouseout=\"javascript:ItemOut(this);\" class='Item' title='" + rpt.EnName + "' >");
  729. // this.Add("<Img src='../../TA/Images/Rpt.ico' border=0 />" + rpt.Name);
  730. // this.Add("</TD>");
  731. // this.AddTREnd();
  732. //}
  733. this.Add("</Table>");
  734. this.Add("</TD>");
  735. this.AddTREnd();
  736. }
  737. else if (file == xmlFile)
  738. {
  739. /*如果遇到了当前要选择的菜单。*/
  740. this.Add("<TR >");
  741. this.Add("<TD calss='TDItemTable' >");
  742. this.Add("<Table class='ItemTable' cellpadding='0' cellspacing='0' style='border-collapse: collapse' >");
  743. ds.Tables.Clear();
  744. ds.ReadXml(SystemConfig.PathOfXML + file);
  745. DataTable items = ds.Tables["Item"];
  746. foreach (DataRow itemdr in items.Rows)
  747. {
  748. string itemUrl = itemdr["URL"].ToString();
  749. string itemName = itemdr["Name"].ToString();
  750. string ICON = itemdr["ICON"].ToString();
  751. string Desc = itemdr["Desc"].ToString();
  752. this.Add("<TR >");
  753. //this.Add("<TD nowrap=true title='"+itemdr["DESC"].ToString()+"' >");
  754. this.Add("<TD onclick=\"Javascript:WinOpen('" + itemUrl + "','mainfrm' )\" onmouseover=\"javascript:ItemOver(this);\" onmouseout=\"javascript:ItemOut(this);\" class='Item' title='" + itemdr["DESC"].ToString() + "' >");
  755. this.Add(itemName);
  756. //this.Add("<img src='"+ImgOn+"' id='"+id+"' onclick=\"javascript:"+id+".src='"+ImgOut+"'; TDClick( '"+this.Request.ApplicationPath+"','"+file+"', '"+ ImgOn +"'); \" onmouseover=\"javascript:"+id+".src='"+ImgOut+"';\" onmouseout=\"javascript: "+id+".src='"+ImgOn+"'; \" />" );
  757. this.Add("</TD>");
  758. this.AddTREnd();
  759. }
  760. this.Add("</Table>");
  761. this.Add("</TD>");
  762. //this.Add("<TD ></TD>");
  763. this.AddTREnd();
  764. }
  765. }
  766. this.Add("</TABLE>");
  767. }
  768. // public void GenerOutlookMenu()
  769. public void GenerOutlookMenu()
  770. {
  771. this.Controls.Clear();
  772. DataSet ds = new DataSet();
  773. ds.ReadXml(SystemConfig.PathOfXML + "MenuMain.xml");
  774. DataTable dt = ds.Tables[0];
  775. this.Add("<TABLE border=-1 class='MainTable' >");
  776. int i = 0;
  777. foreach (DataRow dr in dt.Rows)
  778. {
  779. i++;
  780. string id = "Img" + i.ToString();
  781. string file = dr["File"].ToString();
  782. string ImgOut = dr["Out"].ToString();
  783. string ImgOn = dr["On"].ToString();
  784. string Name = "&nbsp;" + dr["Name"].ToString();
  785. string srcp = "window.location.href='LeftOutlook.aspx?xml=" + file + "'";
  786. this.Add("<TR >");
  787. //this.Add("<TD class='TDL' ><Img src='./ImgOutlook/panel_left_r.gif' border=0 width=1% > </TD>");
  788. this.Add("<TD class='TDM' nowrap=true title='" + dr["DESC"].ToString() + "' onclick=\"" + srcp + "\" >" + Name + "</TD>");
  789. //this.Add("<TD class='TDR' > </TD>");
  790. this.AddTREnd();
  791. /*如果遇到了当前要选择的菜单。*/
  792. this.Add("<TR >");
  793. //this.Add("<TD ></TD>");
  794. this.Add("<TD calss='TDItemTable' >");
  795. this.Add("<Table class='ItemTable' cellpadding='0' cellspacing='0' style='border-collapse: collapse' >");
  796. ds.Tables.Clear();
  797. ds.ReadXml(SystemConfig.PathOfXML + file);
  798. DataTable items = ds.Tables["Item"];
  799. foreach (DataRow itemdr in items.Rows)
  800. {
  801. string itemUrl = itemdr["URL"].ToString();
  802. string itemName = itemdr["Name"].ToString();
  803. string ICON = itemdr["ICON"].ToString();
  804. string Desc = itemdr["Desc"].ToString();
  805. this.Add("<TR >");
  806. //this.Add("<TD nowrap=true title='"+itemdr["DESC"].ToString()+"' >");
  807. this.Add("<TD onclick=\"Javascript:WinOpen('" + itemUrl + "','mainfrm' )\" onmouseover=\"javascript:ItemOver(this);\" onmouseout=\"javascript:ItemOut(this);\" class='Item' title='" + itemdr["DESC"].ToString() + "' >");
  808. this.Add(itemName);
  809. //this.Add("<img src='"+ImgOn+"' id='"+id+"' onclick=\"javascript:"+id+".src='"+ImgOut+"'; TDClick( '"+this.Request.ApplicationPath+"','"+file+"', '"+ ImgOn +"'); \" onmouseover=\"javascript:"+id+".src='"+ImgOut+"';\" onmouseout=\"javascript: "+id+".src='"+ImgOn+"'; \" />" );
  810. this.Add("</TD>");
  811. this.AddTREnd();
  812. }
  813. this.Add("</Table>");
  814. this.Add("</TD>");
  815. //this.Add("<TD ></TD>");
  816. this.AddTREnd();
  817. }
  818. this.Add("</TABLE>");
  819. }
  820. // public void GenerOutlookMenu_Img(string xmlFile)
  821. public void GenerOutlookMenu_Img(string xmlFile)
  822. {
  823. this.Controls.Clear();
  824. DataSet ds = new DataSet();
  825. ds.ReadXml(SystemConfig.PathOfXML + "MenuMain.xml");
  826. DataTable dt = ds.Tables[0];
  827. if (xmlFile == null || xmlFile == "") //如果没有找到它,就设置第一个。
  828. xmlFile = dt.Rows[0]["File"].ToString();
  829. this.Add("<TABLE border=0 class='MainTable' >");
  830. //e.Item.Attributes.Add("onmouseover","DGTROn"+WebUser.Style+"(this)");
  831. //e.Item.Attributes.Add("onmouseout","DGTROut"+WebUser.Style+"(this)");
  832. int i = 0;
  833. foreach (DataRow dr in dt.Rows)
  834. {
  835. i++;
  836. string id = "Img" + i.ToString();
  837. string file = dr["File"].ToString();
  838. string ImgOut = dr["Out"].ToString();
  839. string ImgOn = dr["On"].ToString();
  840. // window.location.href='MyDay.aspx?RefDate='+date;
  841. if (file == xmlFile)
  842. {
  843. this.Add("<TR>");
  844. this.Add("<TD nowrap=true title='" + dr["DESC"].ToString() + "' >");
  845. this.Add("<img src='" + ImgOn + "' id='" + id + "' />");
  846. this.Add("</TD>");
  847. this.AddTREnd();
  848. }
  849. else
  850. {
  851. string srcp = "window.location.href='LeftOutlook.aspx?xml=" + file + "'";
  852. this.Add("<TR>");
  853. this.Add("<TD nowrap=true title='" + dr["DESC"].ToString() + "' >");
  854. this.Add("<img src='" + ImgOn + "' id='" + id + "' onclick=\"javascript:" + id + ".src='" + ImgOut + "'; " + srcp + " ; ; \" onmouseover=\"javascript:" + id + ".src='" + ImgOut + "';\" onmouseout=\"javascript: " + id + ".src='" + ImgOn + "'; \" />");
  855. this.Add("</TD>");
  856. this.AddTREnd();
  857. }
  858. if (file == xmlFile)
  859. {
  860. /*如果遇到了当前要选择的菜单。*/
  861. this.Add("<TR>");
  862. this.Add("<TD>");
  863. this.Add("<Table border=0 class='ItemTable' >");
  864. ds.Tables.Clear();
  865. ds.ReadXml(SystemConfig.PathOfXML + file);
  866. DataTable items = ds.Tables["Item"];
  867. foreach (DataRow itemdr in items.Rows)
  868. {
  869. string itemUrl = itemdr["URL"].ToString();
  870. string itemName = itemdr["Name"].ToString();
  871. string ICON = itemdr["ICON"].ToString();
  872. string Desc = itemdr["Desc"].ToString();
  873. this.Add("<TR>");
  874. this.Add("<TD nowrap=true title='" + itemdr["DESC"].ToString() + "' >");
  875. this.Add("<a href='" + itemUrl + "' target='mainfrm' class='Link' >" + itemName + "</a>");
  876. //this.Add("<img src='"+ImgOn+"' id='"+id+"' onclick=\"javascript:"+id+".src='"+ImgOut+"'; TDClick( '"+this.Request.ApplicationPath+"','"+file+"', '"+ ImgOn +"'); \" onmouseover=\"javascript:"+id+".src='"+ImgOut+"';\" onmouseout=\"javascript: "+id+".src='"+ImgOn+"'; \" />" );
  877. this.Add("</TD>");
  878. this.AddTREnd();
  879. }
  880. this.Add("</Table>");
  881. this.Add("</TD>");
  882. this.AddTREnd();
  883. }
  884. }
  885. this.Add("</TABLE>");
  886. }
  887. // public void BindSystems()
  888. public void BindSystems()
  889. {
  890. this.AddTable();
  891. this.Add("<TR>");
  892. this.AddTDTitle("系统编号");
  893. this.AddTDTitle("名称");
  894. this.AddTDTitle("版本");
  895. this.AddTDTitle("发布日期");
  896. this.AddTREnd();
  897. //BPSystems ens = new BPSystems();
  898. //ens.RetrieveAll();
  899. //foreach (BPSystem en in ens)
  900. //{
  901. // this.Add("<TR onmouseover='TROver(this)' onmouseout='TROut(this)' >");
  902. // this.AddTD(en.No);
  903. // if (en.IsOk && SystemConfig.SysNo != en.No)
  904. // this.AddTD("<a href='" + en.URL + "&Token=" + WebUser.Token + "&No=" + WebUser.No + "' target='_parent' >" + en.Name + "</a> ");
  905. // else
  906. // this.AddTD(en.Name);
  907. // this.AddTD(en.Ver);
  908. // this.AddTD(en.IssueDate);
  909. // this.AddTREnd();
  910. //}
  911. this.Add("</Table>\n");
  912. }
  913. // public void BindWel()
  914. public void BindWel()
  915. {
  916. this.Controls.Clear();
  917. //this.Add("<font color='#000000' size=2 >欢迎您:"+WebUser.Name+",部门:"+WebUser.HisEmp.FK_DeptText+",岗位:"+WebUser.HisEmp.FK_StationText+"。</font>");
  918. }
  919. // public void BindMsgInfo(string msg)
  920. public void BindMsgInfo(string msg)
  921. {
  922. this.Controls.Clear();
  923. this.Add("<Table border='1' cellpadding='0' cellspacing='0' style='border-collapse: collapse' >");
  924. this.Add("<Caption align=left ><b>提示信息</b></Caption>");
  925. this.Add("<TR>");
  926. this.Add("<TD bgcolor='#FFFF00' >" + msg + "</TD>");
  927. this.AddTREnd();
  928. this.Add("</Table>");
  929. }
  930. // public void BindMsgWarning(string msg)
  931. public void BindMsgWarning(string msg)
  932. {
  933. this.Controls.Clear();
  934. this.Add("<font color='#000000' size=40 >" + msg + "</font>");
  935. }
  936. // public void GenerMenuMain()
  937. public void GenerMenuMain()
  938. {
  939. this.Controls.Clear();
  940. DataSet ds = new DataSet();
  941. ds.ReadXml(SystemConfig.PathOfXML + "MenuMain.xml");
  942. DataTable dt = ds.Tables[0];
  943. this.Add("<TABLE border=0>");
  944. this.Add("<TR>");
  945. int i = 0;
  946. foreach (DataRow dr in dt.Rows)
  947. {
  948. i++;
  949. string id = "Img" + i.ToString();
  950. string file = dr["File"].ToString();
  951. string ImgOut = dr["Out"].ToString();
  952. string ImgOn = dr["On"].ToString();
  953. this.Add("<TD nowrap=true title='" + dr["DESC"].ToString() + "' >");
  954. this.Add("<img src='" + ImgOn + "' id='" + id + "' onclick=\"javascript:" + id + ".src='" + ImgOut + "'; TDClick( '" + this.Request.ApplicationPath + "','" + file + "', '" + ImgOn + "'); \" onmouseover=\"javascript:" + id + ".src='" + ImgOut + "';\" onmouseout=\"javascript: " + id + ".src='" + ImgOn + "'; \" />");
  955. this.Add("</TD>");
  956. }
  957. this.AddTREnd();
  958. this.Add("</TABLE>");
  959. }
  960. // public void DataPanel(Entities ens, string ctrlId, string key, ShowWay sh)
  961. public void DataPanel(Entities ens, string ctrlId, string key, ShowWay sh)
  962. {
  963. switch (sh)
  964. {
  965. case ShowWay.Cards:
  966. this.DataPanelCards(ens, ctrlId, key, true);
  967. break;
  968. case ShowWay.List:
  969. this.DataPanelCards(ens, ctrlId, key, false);
  970. break;
  971. case ShowWay.Dtl:
  972. this.DataPanelDtl(ens, ctrlId, key);
  973. break;
  974. }
  975. }
  976. // public void DataPanelDtl(Entities ens, string ctrlId , string colName, string urlAttrKey, string colUrl )
  977. public void DataPanelDtl(Entities ens, string ctrlId, string colName, string urlAttrKey, string colUrl)
  978. {
  979. this.Controls.Clear();
  980. Entity myen = ens.GetNewEntity;
  981. string pk = myen.PK;
  982. string clName = myen.ToString();
  983. Attrs attrs = myen.EnMap.Attrs;
  984. Attrs selectedAttrs = myen.EnMap.GetChoseAttrs(ens);
  985. string appPath = this.Request.ApplicationPath;
  986. // 生成标题
  987. this.Add("<TABLE style='border-collapse: collapse' bordercolor='#111111' >");
  988. this.Add("<TR >");
  989. this.Add("<TH nowrap >序</TH>");
  990. this.Add("<TH nowrap >" + colName + "</TH>");
  991. foreach (Attr attrT in selectedAttrs)
  992. {
  993. if (attrT.UIVisible == false)
  994. continue;
  995. this.Add("<TD nowrap >" + attrT.Desc + "</TD>");
  996. }
  997. this.AddTREnd();
  998. int idx = 0;
  999. string style = WebUser.Style;
  1000. foreach (Entity en in ens)
  1001. {
  1002. #region 处理keys
  1003. string url = "";
  1004. foreach (Attr attr in attrs)
  1005. {
  1006. switch (attr.UIContralType)
  1007. {
  1008. case UIContralType.TB:
  1009. if (attr.IsPK)
  1010. url += "&" + attr.Key + "=" + en.GetValStringByKey(attr.Key);
  1011. break;
  1012. case UIContralType.DDL:
  1013. url += "&" + attr.Key + "=" + en.GetValStringByKey(attr.Key);
  1014. break;
  1015. }
  1016. }
  1017. #endregion
  1018. this.Add("<TR onmouseover=\"TROver(this,'" + this.Page.Request.ApplicationPath + "','" + ctrlId + "', '" + clName + "', '" + url + "');\" onmouseout='TROut(this)' ondblclick=\" WinOpen( '" + appPath + "/Comm/UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "')\" >");
  1019. idx++;
  1020. this.Add("<TD class='Idx' nowrap >" + idx + "</TD>");
  1021. this.Add("<TD class='No' nowrap ><a href='" + colUrl + en.GetValStringByKey(urlAttrKey) + "' target='_blank'> " + colName + "</a></TD>");
  1022. foreach (Attr attr in selectedAttrs)
  1023. {
  1024. if (attr.UIVisible == false)
  1025. continue;
  1026. if (attr.UIContralType == UIContralType.DDL)
  1027. this.Add("<TD nowrap >" + en.GetValRefTextByKey(attr.Key) + "&nbsp;</TD>");
  1028. else
  1029. {
  1030. string str = en.GetValStringByKey(attr.Key);
  1031. switch (attr.MyDataType)
  1032. {
  1033. case DataType.AppBoolean:
  1034. if (str == "1")
  1035. this.AddTD("是&nbsp;");
  1036. else
  1037. this.AddTD("否&nbsp;");
  1038. break;
  1039. case DataType.AppDate:
  1040. case DataType.AppDateTime:
  1041. this.AddTD(str);
  1042. break;
  1043. case DataType.AppString:
  1044. if (attr.UIHeight != 0)
  1045. this.AddTDDoc(str, str);
  1046. else
  1047. this.AddTD(str);
  1048. break;
  1049. case DataType.AppDouble:
  1050. case DataType.AppFloat:
  1051. case DataType.AppMoney:
  1052. case DataType.AppRate:
  1053. this.AddTDNum(str);
  1054. break;
  1055. default:
  1056. throw new Exception("sdfasdfsd");
  1057. }
  1058. }
  1059. }
  1060. this.AddTREnd();
  1061. }
  1062. this.Add("</TABLE>");
  1063. }
  1064. public void DataPanelDtlCheckBox(Entities ens)
  1065. {
  1066. this.Controls.Clear();
  1067. Entity myen = ens.GetNewEntity;
  1068. string pk = myen.PK;
  1069. string clName = myen.ToString();
  1070. Attrs attrs = myen.EnMap.Attrs;
  1071. Attrs selectedAttrs = myen.EnMap.GetChoseAttrs(ens);
  1072. BP.Sys.Xml.PanelEnss cfgs = new BP.Sys.Xml.PanelEnss();
  1073. cfgs.RetrieveBy(BP.Sys.Xml.PanelEnsAttr.For, ens.ToString());
  1074. // 生成标题
  1075. this.Add("<table style=\"width:30%\" >");
  1076. this.AddTR();
  1077. // CheckBox cb = new CheckBox();
  1078. // cb.Text = "序";
  1079. // cb.ID = "CB_Idx";
  1080. // cb.Attributes["CheckedChanged"] = "javascript:CheckIt(this)";
  1081. // cb.Attributes["CheckedChanged"] = "javascrip:CheckIt(this)";
  1082. //cb.CheckedChanged ["CheckedChanged"] = "javascrip:CheckIt(this)";
  1083. if (ens.Count > 0)
  1084. {
  1085. string str1 = "<INPUT id='checkedAll' onclick='selectAll()' type='checkbox' name='checkedAll'>";
  1086. this.AddTDTitle(str1);
  1087. }
  1088. else
  1089. {
  1090. this.AddTDTitle();
  1091. }
  1092. foreach (Attr attrT in selectedAttrs)
  1093. {
  1094. if (attrT.UIVisible == false)
  1095. continue;
  1096. if (attrT.Key == "MyNum")
  1097. continue;
  1098. if (attrT.IsNum && attrT.IsEnum == false && attrT.MyDataType == DataType.AppBoolean == false)
  1099. this.AddTDTitle("<a href=\"javascript:WinOpen('GroupEnsMNum.aspx?EnsName=" + ens.ToString() + "&NumKey=" + attrT.Key + "','sd','800','700');\" >" + attrT.Desc + "</a>");
  1100. else
  1101. this.AddTDTitle(attrT.Desc);
  1102. }
  1103. this.AddTDTitle();
  1104. this.AddTREnd();
  1105. #region 用户界面属性设置
  1106. BP.Web.Comm.UIRowStyleGlo tableStyle = UIRowStyleGlo.MouseAndAlternately;
  1107. bool IsEnableDouclickGlo = false;
  1108. bool IsEnableRefFunc = false;
  1109. bool IsEnableFocusField = false;
  1110. bool isShowOpenICON = false;
  1111. string FocusField = null;
  1112. int WinCardH = 600;
  1113. int WinCardW = 500;
  1114. try
  1115. {
  1116. tableStyle = (UIRowStyleGlo)ens.GetEnsAppCfgByKeyInt("UIRowStyleGlo"); // 界面风格。
  1117. IsEnableDouclickGlo = ens.GetEnsAppCfgByKeyBoolen("IsEnableDouclickGlo"); // 是否启用双击
  1118. IsEnableRefFunc = ens.GetEnsAppCfgByKeyBoolen("IsEnableRefFunc"); // 是否显示相关功能。
  1119. IsEnableFocusField = ens.GetEnsAppCfgByKeyBoolen("IsEnableFocusField"); //是否启用焦点字段。
  1120. isShowOpenICON = ens.GetEnsAppCfgByKeyBoolen("IsEnableOpenICON"); //是否启用 OpenICON 。
  1121. FocusField = null;
  1122. if (IsEnableFocusField)
  1123. FocusField = ens.GetEnsAppCfgByKeyString("FocusField");
  1124. WinCardH = ens.GetEnsAppCfgByKeyInt("WinCardH"); // 弹出窗口高度c
  1125. WinCardW = ens.GetEnsAppCfgByKeyInt("WinCardW"); // 弹出窗口宽度
  1126. }
  1127. catch
  1128. {
  1129. }
  1130. bool isAddTitle = false; //是否显示相关功能列。
  1131. if (isShowOpenICON)
  1132. isAddTitle = true;
  1133. if (IsEnableRefFunc)
  1134. isAddTitle = true;
  1135. #endregion 用户界面属性设置
  1136. bool isRefFunc = true;
  1137. int pageidx = this.PageIdx - 1;
  1138. int idx = SystemConfig.PageSize * pageidx;
  1139. bool is1 = false;
  1140. string urlExt = "";
  1141. foreach (Entity en in ens)
  1142. {
  1143. idx++;
  1144. #region 处理keys
  1145. string style = WebUser.Style;
  1146. string url = this.GenerEnUrl(en, attrs);
  1147. #endregion
  1148. urlExt = "\"javascript:ShowEn('UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "', 'cd','" + WinCardH + "','" + WinCardW + "');\"";
  1149. // urlExt = "javascript:ShowEn('UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "', 'cd');";
  1150. switch (tableStyle)
  1151. {
  1152. case UIRowStyleGlo.None:
  1153. if (IsEnableDouclickGlo)
  1154. this.AddTR("ondblclick=" + urlExt);
  1155. else
  1156. this.AddTR();
  1157. break;
  1158. case UIRowStyleGlo.Mouse:
  1159. if (IsEnableDouclickGlo)
  1160. this.AddTRTX("ondblclick=" + urlExt);
  1161. else
  1162. this.AddTRTX();
  1163. break;
  1164. case UIRowStyleGlo.Alternately:
  1165. case UIRowStyleGlo.MouseAndAlternately:
  1166. if (IsEnableDouclickGlo)
  1167. is1 = this.AddTR(is1, "ondblclick=" + urlExt);
  1168. else
  1169. is1 = this.AddTR(is1);
  1170. break;
  1171. default:
  1172. throw new Exception("@目前还没有提供。");
  1173. }
  1174. // this.Add("<TR onmouseover=\"TROver(this);\" onmouseout='TROut(this)' ondblclick=\"WinOpen( 'UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "', 'cd' )\" >");
  1175. CheckBox cb = new CheckBox();
  1176. cb.ID = "CB_" + en.PKVal;
  1177. cb.Text = idx.ToString();
  1178. //cb.Attributes["PK"] = en.PKVal;
  1179. this.AddTDIdx(cb);
  1180. string val = "";
  1181. foreach (Attr attr in selectedAttrs)
  1182. {
  1183. if (attr.UIVisible == false)
  1184. continue;
  1185. if (attr.Key == "MyNum")
  1186. continue;
  1187. this.DataPanelDtlAdd(en, attr, cfgs, url, urlExt, FocusField);
  1188. }
  1189. if (isRefFunc && IsEnableRefFunc)
  1190. {
  1191. string str = "";
  1192. #region 加入他门的 方法
  1193. RefMethods myreffuncs = en.EnMap.HisRefMethods;
  1194. foreach (RefMethod func in myreffuncs)
  1195. {
  1196. if (func.Visable == false || func.IsForEns == false)
  1197. continue;
  1198. //myurl="/Comm/RefMethod.aspx?Index="+func.Index+"&EnsName="+ens.ToString() ;
  1199. str += "<A onclick=\"javascript:RefMethod1('" + this.Request.ApplicationPath + "', '" + func.Index + "', '" + func.Warning + "', '" + func.Target + "', '" + ens.ToString() + "','" + url + "') \" > " + func.GetIcon(this.Request.ApplicationPath) + "<font color=blue >" + func.Title + "</font></A>";
  1200. // str += "<A onclick=\"javascript:RefMethod1('" + this.Request.ApplicationPath + "', '" + func.Index + "', '" + func.Warning + "', '" + func.Target + "', '" + ens.ToString() + "','" + url + "') \" > " + func.GetIcon(this.Request.ApplicationPath) + "<font color=blue >" + func.Title + "</font></A>";
  1201. //this.AddItem(func.Title, "RefMethod('"+func.Index+"', '"+func.Warning+"', '"+func.Target+"', '"+this.EnsName+"')", func.Icon);
  1202. }
  1203. #endregion
  1204. #region 加入他的明细
  1205. EnDtls enDtls = en.EnMap.Dtls;
  1206. foreach (EnDtl enDtl in enDtls)
  1207. {
  1208. str += "[<A onclick=\"javascript:EditDtl1('" + this.Request.ApplicationPath + "', '" + myen.ToString() + "', '" + enDtl.EnsName + "', '" + enDtl.RefKey + "', '" + url + "&IsShowSum=1')\" >" + enDtl.Desc + "</A>]";
  1209. }
  1210. #endregion
  1211. #region 加入一对多的实体编辑
  1212. AttrsOfOneVSM oneVsM = en.EnMap.AttrsOfOneVSM;
  1213. foreach (AttrOfOneVSM vsM in oneVsM)
  1214. {
  1215. str += "[<A onclick=\"javascript:EditOneVsM1('" + this.Request.ApplicationPath + "','"+en.ToString()+"','" + vsM.EnsOfMM.ToString() + "s','" + vsM.EnsOfMM + "&dt=" + DateTime.Now.ToString("hhss") + "','" + myen.ToString() + "','" + url + "'); return; \" >" + vsM.Desc + "</A>]";
  1216. }
  1217. #endregion
  1218. if (isShowOpenICON)
  1219. this.Add("<TD class='TD' style='cursor:hand;' nowrap=true >" + str + " </TD>");
  1220. else
  1221. this.Add("<TD class='TD' style='cursor:hand;' nowrap=true >" + str + " </TD>");
  1222. // this.Add("<TD class='TD' style='cursor:hand;' nowrap=true >" + str + " <a href=\"" + urlExt + "\" ><img src='../Images/Btn/Open.gif' border=0/></a></TD>");
  1223. }
  1224. else
  1225. {
  1226. if (isShowOpenICON)
  1227. this.AddTD();
  1228. // this.Add("<TD class='TD' style='cursor:hand;' nowrap=true><a href=\"" + urlExt + "\" ><img src='../Images/Btn/Open.gif' border=0/></a></TD>");
  1229. else
  1230. this.AddTD();
  1231. }
  1232. this.AddTREnd();
  1233. }
  1234. this.AddTableEnd();
  1235. }
  1236. // public void DataPanelDtl(Entities ens, string ctrlId )
  1237. public void DataPanelDtl(Entities ens, string ctrlId)
  1238. {
  1239. this.Controls.Clear();
  1240. Entity myen = ens.GetNewEntity;
  1241. string pk = myen.PK;
  1242. string clName = myen.ToString();
  1243. Attrs attrs = myen.EnMap.Attrs;
  1244. Attrs selectedAttrs = myen.EnMap.GetChoseAttrs(ens);
  1245. BP.Sys.Xml.PanelEnss cfgs = new BP.Sys.Xml.PanelEnss();
  1246. cfgs.RetrieveBy(BP.Sys.Xml.PanelEnsAttr.For, ens.ToString());
  1247. // 生成标题
  1248. this.Add("<Table border='1' width='20%' align=left cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#C0C0C0'>");
  1249. // this.AddTable("");
  1250. this.AddTR();
  1251. this.AddTDTitle("序");
  1252. foreach (Attr attrT in selectedAttrs)
  1253. {
  1254. if (attrT.UIVisible == false)
  1255. continue;
  1256. if (attrT.Key == "MyNum")
  1257. continue;
  1258. this.AddTDTitle(attrT.Desc);
  1259. }
  1260. bool isRefFunc = false;
  1261. //if (myen.EnMap.HisRefMethods.CountOfVisable > 0
  1262. // || myen.EnMap.Dtls.Count > 0 || myen.EnMap.AttrsOfOneVSM.Count > 0)
  1263. //{
  1264. // isRefFunc = true;
  1265. //}
  1266. isRefFunc = true;
  1267. int pageidx = this.PageIdx - 1;
  1268. int idx = SystemConfig.PageSize * pageidx;
  1269. bool is1 = false;
  1270. #region 用户界面属性设置
  1271. BP.Web.Comm.UIRowStyleGlo tableStyle = UIRowStyleGlo.MouseAndAlternately;
  1272. bool IsEnableDouclickGlo = true;
  1273. bool IsEnableRefFunc = true;
  1274. bool IsEnableFocusField = true;
  1275. bool isShowOpenICON = true;
  1276. string FocusField = null;
  1277. int WinCardH = 500;
  1278. int WinCardW = 400;
  1279. try
  1280. {
  1281. tableStyle = (UIRowStyleGlo)ens.GetEnsAppCfgByKeyInt("UIRowStyleGlo"); // 界面风格。
  1282. IsEnableDouclickGlo = ens.GetEnsAppCfgByKeyBoolen("IsEnableDouclickGlo"); // 是否启用双击
  1283. IsEnableRefFunc = ens.GetEnsAppCfgByKeyBoolen("IsEnableRefFunc"); // 是否显示相关功能。
  1284. IsEnableFocusField = ens.GetEnsAppCfgByKeyBoolen("IsEnableFocusField"); //是否启用焦点字段。
  1285. isShowOpenICON = ens.GetEnsAppCfgByKeyBoolen("IsEnableOpenICON"); //是否启用 OpenICON 。
  1286. FocusField = null;
  1287. if (IsEnableFocusField)
  1288. FocusField = ens.GetEnsAppCfgByKeyString("FocusField");
  1289. WinCardH = ens.GetEnsAppCfgByKeyInt("WinCardH"); // 弹出窗口高度
  1290. WinCardW = ens.GetEnsAppCfgByKeyInt("WinCardW"); // 弹出窗口宽度
  1291. }
  1292. catch
  1293. {
  1294. }
  1295. bool isAddTitle = false; //是否显示相关功能列。
  1296. if (isShowOpenICON)
  1297. isAddTitle = true;
  1298. if (IsEnableRefFunc)
  1299. isAddTitle = true;
  1300. #endregion 用户界面属性设置
  1301. if (isAddTitle)
  1302. this.AddTDTitle();
  1303. this.AddTREnd();
  1304. string urlExt = "";
  1305. foreach (Entity en in ens)
  1306. {
  1307. #region 处理keys
  1308. string style = WebUser.Style;
  1309. string url = this.GenerEnUrl(en, attrs);
  1310. #endregion
  1311. urlExt = "\"javascript:ShowEn('"+this.Request.ApplicationPath+"/Comm/UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "', 'cd','" + WinCardH + "','" + WinCardW + "');\"";
  1312. switch (tableStyle)
  1313. {
  1314. case UIRowStyleGlo.None:
  1315. if (IsEnableDouclickGlo)
  1316. this.AddTR("ondblclick=" + urlExt);
  1317. else
  1318. this.AddTR();
  1319. break;
  1320. case UIRowStyleGlo.Mouse:
  1321. if (IsEnableDouclickGlo)
  1322. this.AddTRTX("ondblclick=" + urlExt);
  1323. else
  1324. this.AddTRTX();
  1325. break;
  1326. case UIRowStyleGlo.Alternately:
  1327. case UIRowStyleGlo.MouseAndAlternately:
  1328. if (IsEnableDouclickGlo)
  1329. is1 = this.AddTR(is1, "ondblclick=" + urlExt);
  1330. else
  1331. is1 = this.AddTR(is1);
  1332. break;
  1333. default:
  1334. throw new Exception("@目前还没有提供。");
  1335. }
  1336. idx++;
  1337. this.AddTDIdx(idx);
  1338. string val = "";
  1339. foreach (Attr attr in selectedAttrs)
  1340. {
  1341. if (attr.UIVisible == false)
  1342. continue;
  1343. if (attr.Key == "MyNum")
  1344. continue;
  1345. this.DataPanelDtlAdd(en, attr, cfgs, url, urlExt, FocusField);
  1346. }
  1347. if (IsEnableRefFunc && isRefFunc)
  1348. {
  1349. string str = "";
  1350. // string str = "<a href=\"javascript:WinOpen('UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "', 'cd')\" >打开</a>";
  1351. //<a href=\"javascript:WinOpen('UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "','cd','400','600')\" >打开</A>
  1352. #region 加入他门的 方法
  1353. RefMethods myreffuncs = en.EnMap.HisRefMethods;
  1354. foreach (RefMethod func in myreffuncs)
  1355. {
  1356. if (func.Visable == false || func.IsForEns == false)
  1357. continue;
  1358. //myurl="/Comm/RefMethod.aspx?Index="+func.Index+"&EnsName="+ens.ToString() ;
  1359. str += "<A onclick=\"javascript:RefMethod1('" + this.Request.ApplicationPath + "', '" + func.Index + "', '" + func.Warning + "', '" + func.Target + "', '" + ens.ToString() + "','" + url + "') \" > " + func.GetIcon(this.Request.ApplicationPath) + "<font color=blue >" + func.Title + "</font></A>";
  1360. // str += "<A onclick=\"javascript:RefMethod1('" + this.Request.ApplicationPath + "', '" + func.Index + "', '" + func.Warning + "', '" + func.Target + "', '" + ens.ToString() + "','" + url + "') \" > " + func.GetIcon(this.Request.ApplicationPath) + "<font color=blue >" + func.Title + "</font></A>";
  1361. //this.AddItem(func.Title, "RefMethod('"+func.Index+"', '"+func.Warning+"', '"+func.Target+"', '"+this.EnsName+"')", func.Icon);
  1362. }
  1363. #endregion
  1364. #region 加入他的明细
  1365. EnDtls enDtls = en.EnMap.Dtls;
  1366. foreach (EnDtl enDtl in enDtls)
  1367. {
  1368. str += "[<A onclick=\"javascript:EditDtl1('" + this.Request.ApplicationPath + "', '" + myen.ToString() + "', '" + enDtl.EnsName + "', '" + enDtl.RefKey + "', '" + url + "&IsShowSum=1')\" >" + enDtl.Desc + "</A>]";
  1369. }
  1370. #endregion
  1371. #region 加入一对多的实体编辑
  1372. AttrsOfOneVSM oneVsM = en.EnMap.AttrsOfOneVSM;
  1373. foreach (AttrOfOneVSM vsM in oneVsM)
  1374. {
  1375. str += "[<A onclick=\"javascript:EditOneVsM1('" + this.Request.ApplicationPath + "','" + en.ToString() + "','" + vsM.EnsOfMM.ToString() + "s','" + vsM.EnsOfMM + "&dt=" + DateTime.Now.ToString("hhss") + "','" + myen.ToString() + "','" + url + "'); return; \" >" + vsM.Desc + "</A>]";
  1376. }
  1377. #endregion
  1378. if (isShowOpenICON)
  1379. this.Add("<TD class='TD' style='cursor:hand;' nowrap=true >" + str + " <a href=" + urlExt + " ><img src='../Images/Btn/Open.gif' border=0/></a></TD>");
  1380. else
  1381. this.Add("<TD class='TD' style='cursor:hand;' nowrap=true >" + str + "</TD>");
  1382. }
  1383. else
  1384. {
  1385. if (isShowOpenICON)
  1386. this.Add("<TD class='TD' style='cursor:hand;' nowrap=true><a href=" + urlExt + " ><img src='../Images/Btn/Open.gif' border=0/></a></TD>");
  1387. }
  1388. this.AddTREnd();
  1389. }
  1390. #region 求合计代码写在这里
  1391. string NoShowSum = SystemConfig.GetConfigXmlEns("NoShowSum", ens.ToString());
  1392. if (NoShowSum == null)
  1393. NoShowSum = "";
  1394. bool IsHJ = false;
  1395. foreach (Attr attr in selectedAttrs)
  1396. {
  1397. if (attr.MyFieldType == FieldType.RefText)
  1398. continue;
  1399. if (attr.UIContralType == UIContralType.DDL)
  1400. continue;
  1401. if (NoShowSum.IndexOf("@" + attr.Key + "@") != -1)
  1402. continue;
  1403. if (attr.Key == "OID" || attr.Key == "MID" || attr.Key.ToUpper() == "WORKID")
  1404. continue;
  1405. switch (attr.MyDataType)
  1406. {
  1407. case DataType.AppDouble:
  1408. case DataType.AppFloat:
  1409. case DataType.AppInt:
  1410. case DataType.AppMoney:
  1411. IsHJ = true;
  1412. break;
  1413. default:
  1414. break;
  1415. }
  1416. }
  1417. IsHJ = false;
  1418. //if (ens.Count > 1 )
  1419. // IsHJ = true;
  1420. //foreach (Attr attr in attrs)
  1421. //{
  1422. // if (attr.IsNum )
  1423. // {
  1424. // IsHJ = true;
  1425. // }
  1426. //}
  1427. if (IsHJ)
  1428. {
  1429. // 找出配置是不显示合计的列。
  1430. if (NoShowSum == null)
  1431. NoShowSum = "";
  1432. this.Add("<TR class='TRSum' >");
  1433. this.AddTD(this.ToE("Sum", "合计"));
  1434. foreach (Attr attr in selectedAttrs)
  1435. {
  1436. if (attr.MyFieldType == FieldType.RefText)
  1437. continue;
  1438. if (attr.UIVisible == false)
  1439. continue;
  1440. if (attr.Key == "MyNum")
  1441. continue;
  1442. if (attr.MyDataType == DataType.AppBoolean)
  1443. {
  1444. this.AddTD();
  1445. continue;
  1446. }
  1447. if (attr.UIContralType == UIContralType.DDL)
  1448. {
  1449. this.AddTD();
  1450. continue;
  1451. }
  1452. if (attr.Key == "OID" || attr.Key == "MID" || attr.Key.ToUpper() == "WORKID")
  1453. {
  1454. this.AddTD();
  1455. continue;
  1456. }
  1457. if (NoShowSum.IndexOf("@" + attr.Key + "@") != -1)
  1458. {
  1459. /*不需要显示它他们的合计。*/
  1460. this.AddTD();
  1461. continue;
  1462. }
  1463. switch (attr.MyDataType)
  1464. {
  1465. case DataType.AppDouble:
  1466. this.AddTDNum(ens.GetSumDecimalByKey(attr.Key));
  1467. break;
  1468. case DataType.AppFloat:
  1469. this.AddTDNum(ens.GetSumDecimalByKey(attr.Key));
  1470. break;
  1471. case DataType.AppInt:
  1472. this.AddTDNum(ens.GetSumDecimalByKey(attr.Key));
  1473. break;
  1474. case DataType.AppMoney:
  1475. this.AddTDJE(ens.GetSumDecimalByKey(attr.Key));
  1476. break;
  1477. default:
  1478. this.AddTD();
  1479. break;
  1480. }
  1481. }
  1482. this.AddTREnd();
  1483. }
  1484. #endregion
  1485. this.AddTableEnd();
  1486. }
  1487. /// <summary>
  1488. /// DataPanelDtl
  1489. /// </summary>
  1490. /// <param name="ens">要bind ens</param>
  1491. /// <param name="ctrlId">webmenu id </param>
  1492. /// <param name="groupkey">groupkey</param>
  1493. // public void DataPanelDtl(Entities ens, string ctrlId, string groupkey)
  1494. public void DataPanelDtl(Entities ens, string ctrlId, string groupkey)
  1495. {
  1496. if (groupkey == "None")
  1497. {
  1498. this.DataPanelDtl(ens, ctrlId);
  1499. return;
  1500. }
  1501. BP.Sys.Xml.PanelEnss cfgs = new BP.Sys.Xml.PanelEnss();
  1502. cfgs.RetrieveBy(BP.Sys.Xml.PanelEnsAttr.For, ens.ToString());
  1503. // string cfgurl = "";
  1504. this.Controls.Clear();
  1505. Entity myen = ens.GetNewEntity;
  1506. string pk = myen.PK;
  1507. string clName = myen.ToString();
  1508. Attrs attrs = myen.EnMap.Attrs;
  1509. Attrs selectedAttrs = myen.EnMap.GetChoseAttrs(ens);
  1510. Attr groupAttr = myen.EnMap.GetAttrByKey(groupkey);
  1511. if (groupAttr.MyFieldType == FieldType.Enum
  1512. || groupAttr.MyFieldType == FieldType.PKEnum)
  1513. {
  1514. SysEnums ses = new SysEnums(groupAttr.Key);
  1515. this.AddTable();
  1516. this.AddTR();
  1517. int num = 0;
  1518. foreach (Attr attrT in selectedAttrs)
  1519. {
  1520. if (attrT.UIVisible == false || attrT.Key == groupAttr.Key)
  1521. continue;
  1522. this.AddTDTitle(attrT.Desc);
  1523. num++;
  1524. }
  1525. this.AddTREnd();
  1526. foreach (SysEnum se in ses)
  1527. {
  1528. int gval = se.IntKey;
  1529. int i = 0;
  1530. foreach (Entity en in ens)
  1531. {
  1532. if (en.GetValIntByKey(groupAttr.Key) != gval)
  1533. continue;
  1534. i++;
  1535. }
  1536. if (i == 0)
  1537. continue;
  1538. this.AddTR();
  1539. this.Add("<TD colspan=" + num + " class='Bar' >&nbsp;" + se.Lab + "&nbsp;(共" + i + "项)</TD>");
  1540. this.AddTREnd();
  1541. foreach (Entity en in ens)
  1542. {
  1543. if (en.GetValIntByKey(groupAttr.Key) != gval)
  1544. continue;
  1545. #region 处理 keys
  1546. string style = WebUser.Style;
  1547. string url = this.GenerEnUrl(en, attrs);
  1548. #endregion
  1549. this.AddTRTXHand(" ondblclick=\"WinOpen('UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "')\" onmousedown=\"OnDGMousedown('" + this.Page.Request.ApplicationPath + "','" + ctrlId + "', '" + clName + "', '" + url + "')\" ");
  1550. foreach (Attr attr in selectedAttrs)
  1551. {
  1552. if (attr.UIVisible == false || attr.Key == groupAttr.Key)
  1553. continue;
  1554. // this.DataPanelDtlAdd(en, attr, cfgs, url);
  1555. }
  1556. this.AddTREnd();
  1557. }
  1558. }
  1559. this.AddTableEnd();
  1560. }
  1561. else
  1562. {
  1563. Entities ensG = DA.ClassFactory.GetEns(groupAttr.UIBindKey);
  1564. ensG.RetrieveAll();
  1565. this.AddTable(); //("<TABLE class='Table' id='tb1' >");
  1566. this.AddTR();
  1567. int num = 0;
  1568. foreach (Attr attrT in selectedAttrs)
  1569. {
  1570. if (attrT.UIVisible == false || attrT.Key == groupAttr.Key)
  1571. continue;
  1572. this.AddTDTitle(attrT.Desc);
  1573. num++;
  1574. }
  1575. this.AddTREnd();
  1576. foreach (Entity enG in ensG)
  1577. {
  1578. string gval = enG.GetValStringByKey(groupAttr.UIRefKeyValue);
  1579. int i = 0;
  1580. foreach (Entity en in ens)
  1581. {
  1582. if (en.GetValStringByKey(groupAttr.Key) != gval)
  1583. continue;
  1584. i++;
  1585. }
  1586. if (i == 0)
  1587. continue;
  1588. this.Add("<TR ><TD colspan=" + num + " class='Bar' >" + groupAttr.Desc + ":" + enG.GetValByKey(groupAttr.UIRefKeyText) + "&nbsp;(共" + i + "项)</TD></TR>");
  1589. foreach (Entity en in ens)
  1590. {
  1591. if (en.GetValStringByKey(groupAttr.Key) != gval)
  1592. continue;
  1593. #region 处理 keys
  1594. string style = WebUser.Style;
  1595. string url = this.GenerEnUrl(en, attrs);
  1596. #endregion
  1597. this.AddTRTXHand(" ondblclick=\"WinOpen( 'UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "')\" onmousedown=\"OnDGMousedown('" + this.Page.Request.ApplicationPath + "','" + ctrlId + "', '" + clName + "', '" + url + "')\" ");
  1598. foreach (Attr attr in selectedAttrs)
  1599. {
  1600. if (attr.UIVisible == false || attr.Key == groupAttr.Key)
  1601. continue;
  1602. // this.DataPanelDtlAdd(en, attr, cfgs, url);
  1603. }
  1604. this.AddTREnd();
  1605. }
  1606. }
  1607. this.AddTableEnd(); //("</TABLE>");
  1608. }
  1609. }
  1610. /// <summary>
  1611. /// DataPanelDtl
  1612. /// </summary>
  1613. /// <param name="ens">要bind ens</param>
  1614. /// <param name="ctrlId">webmenu id </param>
  1615. /// <param name="groupkey">groupkey</param>
  1616. // public void DataPanelDtl(Entities ens, string ctrlId, string groupkey, string groupkey2)
  1617. public void DataPanelDtl(Entities ens, string ctrlId, string groupkey, string groupkey2)
  1618. {
  1619. if (groupkey2 == "None" || groupkey == groupkey2)
  1620. {
  1621. this.DataPanelDtl(ens, ctrlId, groupkey);
  1622. return;
  1623. }
  1624. Entities ensG2 = new Emps();
  1625. this.Controls.Clear();
  1626. Entity myen = ens.GetNewEntity;
  1627. string pk = myen.PK;
  1628. string clName = myen.ToString();
  1629. Attrs attrs = myen.EnMap.Attrs;
  1630. Attr groupAttr = myen.EnMap.GetAttrByKey(groupkey);
  1631. Attr groupAttr2 = myen.EnMap.GetAttrByKey(groupkey2);
  1632. BP.Sys.Xml.PanelEnss cfgs = new BP.Sys.Xml.PanelEnss();
  1633. cfgs.RetrieveBy(BP.Sys.Xml.PanelEnsAttr.For, ens.ToString());
  1634. // string cfgurl = "";
  1635. #region 增加标题
  1636. this.AddTable();
  1637. this.AddTR();
  1638. int num = 0;
  1639. foreach (Attr attrT in myen.EnMap.Attrs)
  1640. {
  1641. if (attrT.UIVisible == false || attrT.Key == groupAttr.Key || attrT.Key == groupAttr2.Key)
  1642. continue;
  1643. this.AddTDTitle(attrT.Desc);
  1644. num++;
  1645. }
  1646. this.AddTREnd();
  1647. #endregion
  1648. if (groupAttr.MyFieldType == FieldType.Enum || groupAttr.MyFieldType == FieldType.PKEnum)
  1649. {
  1650. /* 如果第一个分组是枚举类型。*/
  1651. SysEnums ses = new SysEnums(groupAttr.Key);
  1652. if (groupAttr2.MyFieldType == FieldType.Enum || groupAttr2.MyFieldType == FieldType.PKEnum)
  1653. {
  1654. /* 条件1 与条件2 都是枚举类型 */
  1655. SysEnums ses2 = new SysEnums(groupAttr2.Key);
  1656. foreach (SysEnum se in ses)
  1657. {
  1658. string gval = se.IntKey.ToString();
  1659. int i = 0;
  1660. foreach (Entity en in ens)
  1661. {
  1662. if (en.GetValStringByKey(groupAttr.Key) != gval)
  1663. continue;
  1664. i++;
  1665. }
  1666. if (i == 0)
  1667. continue;
  1668. this.Add("<TR ><TD colspan=" + num + " class='Bar' >" + groupAttr.Desc + ":" + se.Lab + "&nbsp;(共" + i + "项)</TD></TR>");
  1669. // 开始便利2分组。
  1670. foreach (SysEnum se2 in ses2)
  1671. {
  1672. string gval2 = se2.IntKey.ToString(); //.GetValStringByKey(groupAttr2.UIRefKeyValue);
  1673. i = 0;
  1674. foreach (Entity en in ens)
  1675. {
  1676. if (en.GetValStringByKey(groupAttr.Key) != gval || en.GetValStringByKey(groupAttr2.Key) != gval2)
  1677. continue;
  1678. i++;
  1679. }
  1680. if (i == 0)
  1681. continue;
  1682. this.Add("<TR><TD colspan=" + num + " class='Bar' >&nbsp;&nbsp;" + groupAttr2.Desc + ":" + se2.Lab + "&nbsp;(共" + i + "项)</TD></TR>");
  1683. foreach (Entity en in ens)
  1684. {
  1685. if (en.GetValStringByKey(groupAttr.Key) != gval || en.GetValStringByKey(groupAttr2.Key) != gval2)
  1686. continue;
  1687. string style = WebUser.Style;
  1688. string url = this.GenerEnUrl(en, attrs);
  1689. this.Add("<TR class='TR' ondblclick=\"WinOpen( 'UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "')\" onmousedown=\"OnDGMousedown('" + this.Page.Request.ApplicationPath + "','" + ctrlId + "', '" + clName + "', '" + url + "')\" onmouseover='TROver(this);OnDGMousedown('" + this.Page.Request.ApplicationPath + "','" + ctrlId + "', '" + clName + "', '" + url + "');' onmouseout='TROut(this)' >");
  1690. foreach (Attr attr in attrs)
  1691. {
  1692. if (attr.UIVisible == false || attr.Key == groupAttr2.Key || attr.Key == groupAttr.Key)
  1693. continue;
  1694. //this.DataPanelDtlAdd(en, attr, cfgs, url);
  1695. }
  1696. this.AddTREnd();
  1697. }
  1698. }
  1699. }
  1700. }
  1701. else /* 分组第一个条件是枚举,第二个条件是entities. */
  1702. {
  1703. ensG2 = DA.ClassFactory.GetEns(groupAttr2.UIBindKey);
  1704. ensG2.RetrieveAll();
  1705. foreach (SysEnum se in ses)
  1706. {
  1707. string gval = se.IntKey.ToString();
  1708. int i = 0;
  1709. foreach (Entity en in ens)
  1710. {
  1711. if (en.GetValStringByKey(groupAttr.Key) != gval)
  1712. continue;
  1713. i++;
  1714. }
  1715. if (i == 0)
  1716. continue;
  1717. this.Add("<TR ><TD colspan=" + num + " class='Bar' >" + groupAttr.Desc + ":" + se.Lab + "&nbsp;(共" + i + "项)</TD></TR>");
  1718. // 开始便利2分组。
  1719. foreach (Entity enG2 in ensG2)
  1720. {
  1721. string gval2 = enG2.GetValStringByKey(groupAttr2.UIRefKeyValue);
  1722. i = 0;
  1723. foreach (Entity en in ens)
  1724. {
  1725. if (en.GetValStringByKey(groupAttr.Key) != gval || en.GetValStringByKey(groupAttr2.Key) != gval2)
  1726. continue;
  1727. i++;
  1728. }
  1729. if (i == 0)
  1730. continue;
  1731. this.Add("<TR><TD colspan=" + num + " class='Bar' >&nbsp;&nbsp;" + groupAttr2.Desc + ":" + enG2.GetValByKey(groupAttr2.UIRefKeyText) + "&nbsp;(共" + i + "项)</TD></TR>");
  1732. foreach (Entity en in ens)
  1733. {
  1734. if (en.GetValStringByKey(groupAttr.Key) != gval || en.GetValStringByKey(groupAttr2.Key) != gval2)
  1735. continue;
  1736. string style = WebUser.Style;
  1737. string url = this.GenerEnUrl(en, attrs);
  1738. this.Add("<TR class='TR' ondblclick=\"WinOpen( 'UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "')\" onmouseover=\"TROver(this,'" + this.Page.Request.ApplicationPath + "','" + ctrlId + "', '" + clName + "', '" + url + "');\" onmouseout='TROut(this)' >");
  1739. foreach (Attr attr in attrs)
  1740. {
  1741. if (attr.UIVisible == false || attr.Key == groupAttr2.Key || attr.Key == groupAttr.Key)
  1742. continue;
  1743. //this.DataPanelDtlAdd(en, attr, cfgs, url);
  1744. }
  1745. this.AddTREnd();
  1746. }
  1747. }
  1748. }
  1749. this.AddTableEnd();
  1750. return;
  1751. }
  1752. } /* 结束判断第一级标题是枚举类型的情况。 */
  1753. Entities ensG = DA.ClassFactory.GetEns(groupAttr.UIBindKey);
  1754. ensG.RetrieveAll();
  1755. if (groupAttr2.MyFieldType == FieldType.Enum || groupAttr2.MyFieldType == FieldType.PKEnum)
  1756. {
  1757. /*如果 2 级别 是枚举类型*/
  1758. SysEnums ses = new SysEnums(groupAttr2.Key);
  1759. foreach (Entity enG in ensG)
  1760. {
  1761. string gval = enG.GetValStringByKey(groupAttr.UIRefKeyValue);
  1762. int i = 0;
  1763. foreach (Entity en in ens)
  1764. {
  1765. if (en.GetValStringByKey(groupAttr.Key) != gval)
  1766. continue;
  1767. i++;
  1768. }
  1769. if (i == 0)
  1770. continue;
  1771. this.Add("<TR ><TD colspan=" + num + " class='Bar' >" + groupAttr.Desc + ":" + enG.GetValByKey(groupAttr.UIRefKeyText) + "&nbsp;(共" + i + "项)</TD></TR>");
  1772. // 开始便利2分组。
  1773. foreach (SysEnum se in ses)
  1774. {
  1775. string gval2 = se.IntKey.ToString(); //.GetValStringByKey(groupAttr2.UIRefKeyValue);
  1776. i = 0;
  1777. foreach (Entity en in ens)
  1778. {
  1779. if (en.GetValStringByKey(groupAttr.Key) != gval || en.GetValStringByKey(groupAttr2.Key) != gval2)
  1780. continue;
  1781. i++;
  1782. }
  1783. if (i == 0)
  1784. continue;
  1785. this.Add("<TR><TD colspan=" + num + " class='Bar' >&nbsp;&nbsp;" + groupAttr2.Desc + ":" + se.Lab + "&nbsp;(共" + i + "项)</TD></TR>");
  1786. foreach (Entity en in ens)
  1787. {
  1788. if (en.GetValStringByKey(groupAttr.Key) != gval || en.GetValStringByKey(groupAttr2.Key) != gval2)
  1789. continue;
  1790. string style = WebUser.Style;
  1791. string url = this.GenerEnUrl(en, attrs);
  1792. this.Add("<TR class='TR' ondblclick=\"WinOpen( 'UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "')\" onmouseover=\"TROver(this,'" + this.Page.Request.ApplicationPath + "','" + ctrlId + "', '" + clName + "', '" + url + "')\" onmouseout='TROut(this)' >");
  1793. foreach (Attr attr in attrs)
  1794. {
  1795. if (attr.UIVisible == false || attr.Key == groupAttr2.Key || attr.Key == groupAttr.Key)
  1796. continue;
  1797. //this.DataPanelDtlAdd(en, attr, cfgs, url);
  1798. }
  1799. this.AddTREnd();
  1800. }
  1801. }
  1802. }
  1803. return;
  1804. }
  1805. ensG2 = DA.ClassFactory.GetEns(groupAttr2.UIBindKey);
  1806. ensG2.RetrieveAll();
  1807. foreach (Entity enG in ensG)
  1808. {
  1809. string gval = enG.GetValStringByKey(groupAttr.UIRefKeyValue);
  1810. int i = 0;
  1811. foreach (Entity en in ens)
  1812. {
  1813. if (en.GetValStringByKey(groupAttr.Key) != gval)
  1814. continue;
  1815. i++;
  1816. }
  1817. if (i == 0)
  1818. continue;
  1819. this.Add("<TR ><TD colspan=" + num + " class='Bar' >" + groupAttr.Desc + ":" + enG.GetValByKey(groupAttr.UIRefKeyText) + "&nbsp;(共" + i + "项)</TD></TR>");
  1820. // 开始便利2分组。
  1821. foreach (Entity enG2 in ensG2)
  1822. {
  1823. string gval2 = enG2.GetValStringByKey(groupAttr2.UIRefKeyValue);
  1824. i = 0;
  1825. foreach (Entity en in ens)
  1826. {
  1827. if (en.GetValStringByKey(groupAttr.Key) != gval)
  1828. continue;
  1829. if (en.GetValStringByKey(groupAttr2.Key) != gval2)
  1830. continue;
  1831. i++;
  1832. }
  1833. if (i == 0)
  1834. continue;
  1835. this.Add("<TR><TD colspan=" + num + " class='Bar' >&nbsp;&nbsp;" + groupAttr2.Desc + ":" + enG2.GetValByKey(groupAttr2.UIRefKeyText) + "&nbsp;(共" + i + "项)</TD></TR>");
  1836. foreach (Entity en in ens)
  1837. {
  1838. if (en.GetValStringByKey(groupAttr.Key) != gval || en.GetValStringByKey(groupAttr2.Key) != gval2)
  1839. continue;
  1840. string style = WebUser.Style;
  1841. string url = this.GenerEnUrl(en, attrs);
  1842. this.Add("<TR class='TR' ondblclick=\"WinOpen( 'UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + url + "')\" onmouseover=\"TROver(this,'" + this.Page.Request.ApplicationPath + "','" + ctrlId + "', '" + clName + "', '" + url + "')\" onmouseout='TROut(this)' >");
  1843. foreach (Attr attr in attrs)
  1844. {
  1845. if (attr.UIVisible == false || attr.Key == groupAttr2.Key || attr.Key == groupAttr.Key)
  1846. continue;
  1847. // this.DataPanelDtlAdd(en, attr, cfgs, url);
  1848. }
  1849. this.AddTREnd();
  1850. }
  1851. }
  1852. }
  1853. this.AddTableEnd(); //("</TABLE>");
  1854. }
  1855. private string GenerEnUrl(Entity en, Attrs attrs)
  1856. {
  1857. string url = "";
  1858. foreach (Attr attr in attrs)
  1859. {
  1860. switch (attr.UIContralType)
  1861. {
  1862. case UIContralType.TB:
  1863. if (attr.IsPK)
  1864. url += "&" + attr.Key + "=" + en.GetValStringByKey(attr.Key);
  1865. break;
  1866. case UIContralType.DDL:
  1867. url += "&" + attr.Key + "=" + en.GetValStringByKey(attr.Key);
  1868. break;
  1869. }
  1870. }
  1871. return url;
  1872. }
  1873. private void DataPanelDtlAdd(Entity en, Attr attr, BP.Sys.Xml.PanelEnss cfgs, string url,string cardUrl, string focusField)
  1874. {
  1875. string cfgurl = "";
  1876. if (attr.UIContralType == UIContralType.DDL)
  1877. {
  1878. this.AddTD(en.GetValRefTextByKey(attr.Key));
  1879. return;
  1880. }
  1881. if (attr.UIHeight != 0)
  1882. {
  1883. this.AddTDDoc("...", "...");
  1884. return;
  1885. }
  1886. string str = en.GetValStrByKey(attr.Key);
  1887. if (focusField == attr.Key)
  1888. str = "<a href=" + cardUrl + ">" + str + "</a>";
  1889. switch (attr.MyDataType)
  1890. {
  1891. case DataType.AppDate:
  1892. case DataType.AppDateTime:
  1893. if (str == "" || str == null)
  1894. str = "&nbsp;";
  1895. this.AddTD(str);
  1896. break;
  1897. case DataType.AppString:
  1898. if (str == "" || str == null)
  1899. str = "&nbsp;";
  1900. if (attr.UIHeight != 0)
  1901. {
  1902. this.AddTDDoc(str, str);
  1903. }
  1904. else
  1905. {
  1906. if (attr.Key.IndexOf("ail") == -1)
  1907. this.AddTD(str);
  1908. else
  1909. this.AddTD("<a href=\"javascript:mailto:" + str + "\"' >" + str + "</a>");
  1910. }
  1911. break;
  1912. case DataType.AppBoolean:
  1913. if (str == "1")
  1914. this.AddTD("是");
  1915. else
  1916. this.AddTD("否");
  1917. break;
  1918. case DataType.AppFloat:
  1919. case DataType.AppInt:
  1920. case DataType.AppRate:
  1921. case DataType.AppDouble:
  1922. foreach (BP.Sys.Xml.PanelEns pe in cfgs)
  1923. {
  1924. if (pe.Attr == attr.Key)
  1925. {
  1926. cfgurl = pe.URL;
  1927. Attrs attrs = en.EnMap.Attrs;
  1928. foreach (Attr attr1 in attrs)
  1929. cfgurl = cfgurl.Replace("@" + attr1.Key, en.GetValStringByKey(attr1.Key));
  1930. break;
  1931. }
  1932. }
  1933. if (cfgurl == "")
  1934. {
  1935. this.AddTDNum(str);
  1936. }
  1937. else
  1938. {
  1939. cfgurl = cfgurl.Replace("@Keys", url);
  1940. this.AddTDNum("<a href=\"javascript:WinOpen('" + cfgurl + "','dtl1');\" >" + str + "</a>");
  1941. }
  1942. break;
  1943. case DataType.AppMoney:
  1944. cfgurl = "";
  1945. foreach (BP.Sys.Xml.PanelEns pe in cfgs)
  1946. {
  1947. if (pe.Attr == attr.Key)
  1948. {
  1949. cfgurl = pe.URL;
  1950. Attrs attrs = en.EnMap.Attrs;
  1951. foreach (Attr attr2 in attrs)
  1952. cfgurl = cfgurl.Replace("@" + attr2.Key, en.GetValStringByKey(attr2.Key));
  1953. break;
  1954. }
  1955. }
  1956. if (cfgurl == "")
  1957. {
  1958. this.AddTDNum(decimal.Parse(str).ToString("0.00"));
  1959. }
  1960. else
  1961. {
  1962. cfgurl = cfgurl.Replace("@Keys", url);
  1963. this.AddTDNum("<a href=\"javascript:WinOpen('" + cfgurl + "','dtl1');\" >" + decimal.Parse(str).ToString("0.00") + "</a>");
  1964. }
  1965. break;
  1966. default:
  1967. throw new Exception("no this case ...");
  1968. }
  1969. }
  1970. // public void UIEn1ToMGroupKey(Entities ens, string showVal, string showText, Entities selectedEns, string selecteVal, string groupKey)
  1971. public void UIEn1ToMGroupKey(Entities ens, string showVal, string showText, Entities selectedEns, string selecteVal, string groupKey)
  1972. {
  1973. this.EnableViewState = true;
  1974. this.Controls.Clear();
  1975. this.AddTable(); // ("<TABLE class='Table' cellSpacing='1' cellPadding='1' border='1'>");
  1976. Attr attr = ens.GetNewEntity.EnMap.GetAttrByKey(groupKey);
  1977. if (attr.MyFieldType == FieldType.Enum || attr.MyFieldType == FieldType.PKEnum) // 检查是否是 enum 类型。
  1978. {
  1979. BP.Sys.SysEnums eens = new BP.Sys.SysEnums(attr.Key);
  1980. foreach (SysEnum se in eens)
  1981. {
  1982. this.Add("<TR>");
  1983. this.Add("<TD class='GroupTitle' colspan=3 >");
  1984. CheckBox cb1 = new System.Web.UI.WebControls.CheckBox();
  1985. cb1.Text = se.Lab;
  1986. cb1.ID = "CB_SE_" + se.IntKey;
  1987. this.Add(cb1);
  1988. this.Add("</TD>");
  1989. this.AddTREnd();
  1990. int i = 0;
  1991. bool is1 = false;
  1992. string ctlIDs = "";
  1993. foreach (Entity en in ens)
  1994. {
  1995. if (en.GetValIntByKey(attr.Key) != se.IntKey)
  1996. continue;
  1997. i++;
  1998. if (i == 4)
  1999. i = 1;
  2000. if (i == 1)
  2001. is1 = this.AddTR(is1);
  2002. //this.Add("<TR>");
  2003. CheckBox cb = new CheckBox();
  2004. cb.ID = "CB_" + en.GetValStringByKey(showVal);
  2005. ctlIDs += cb.ID + ",";
  2006. cb.Text = en.GetValStringByKey(showText);
  2007. cb.AccessKey = se.IntKey.ToString();
  2008. this.AddTD(cb);
  2009. if (i == 3)
  2010. this.AddTREnd();
  2011. }
  2012. cb1.Attributes["onclick"] = "SetSelected(this,'" + ctlIDs + "')";
  2013. // add blank
  2014. switch (i)
  2015. {
  2016. case 1:
  2017. this.Add("<TD>&nbsp;</TD>");
  2018. this.Add("<TD>&nbsp;</TD>");
  2019. this.AddTREnd();
  2020. break;
  2021. case 2:
  2022. this.Add("<TD>&nbsp;</TD>");
  2023. this.AddTREnd();
  2024. break;
  2025. default:
  2026. break;
  2027. }
  2028. }
  2029. }
  2030. else
  2031. {
  2032. Entities groupEns = ClassFactory.GetEns(attr.UIBindKey);
  2033. groupEns.RetrieveAll();
  2034. foreach (Entity group in groupEns)
  2035. {
  2036. this.Add("<TR>");
  2037. this.Add("<TD class='GroupTitle' colspan=3>");
  2038. CheckBox cb1 = new System.Web.UI.WebControls.CheckBox();
  2039. cb1.Text = group.GetValStrByKey(attr.UIRefKeyText);
  2040. cb1.ID = "CB_EN_" + group.GetValStrByKey(attr.UIRefKeyValue);
  2041. // cb1.Attributes["onclick"] = "SetSelected(this,'" + group.GetValStringByKey(attr.UIRefKeyValue) + "')";
  2042. this.Add(cb1);
  2043. this.Add("</TD>");
  2044. this.AddTREnd();
  2045. string ctlIDs = "";
  2046. int i = 0;
  2047. string gVal = group.GetValStrByKey(attr.UIRefKeyValue);
  2048. foreach (Entity en in ens)
  2049. {
  2050. if (en.GetValStrByKey(attr.Key) != gVal)
  2051. continue;
  2052. i++;
  2053. if (i == 4)
  2054. i = 1;
  2055. if (i == 1)
  2056. this.Add("<TR>");
  2057. CheckBox cb = new CheckBox();
  2058. cb.ID = "CB_" + en.GetValStrByKey(showVal);
  2059. cb.Text = en.GetValStrByKey(showText);
  2060. this.AddTD(cb);
  2061. ctlIDs += cb.ID + ",";
  2062. if (i == 3)
  2063. this.AddTREnd();
  2064. }
  2065. // add blank
  2066. switch (i)
  2067. {
  2068. case 1:
  2069. this.Add("<TD>&nbsp;</TD>");
  2070. this.Add("<TD>&nbsp;</TD>");
  2071. this.AddTREnd();
  2072. break;
  2073. case 2:
  2074. this.Add("<TD>&nbsp;</TD>");
  2075. this.AddTREnd();
  2076. break;
  2077. default:
  2078. break;
  2079. }
  2080. cb1.Attributes["onclick"] = "SetSelected(this,'" + ctlIDs + "')";
  2081. }
  2082. }
  2083. // 设置选择的 ens .
  2084. foreach (Entity en in selectedEns)
  2085. {
  2086. string key = en.GetValStringByKey(selecteVal);
  2087. CheckBox bp = (CheckBox)this.FindControl("CB_" + key);
  2088. if (bp == null)
  2089. continue;
  2090. bp.Checked = true;
  2091. }
  2092. }
  2093. // public void UIEn1ToMGroupKey_Line(Entities ens, string showVal, string showText, Entities selectedEns, string selecteVal, string groupKey)
  2094. public void UIEn1ToMGroupKey_Line(Entities ens, string showVal, string showText, Entities selectedEns, string selecteVal, string groupKey)
  2095. {
  2096. this.EnableViewState = true;
  2097. this.Controls.Clear();
  2098. this.Add("<TABLE class='Table' cellSpacing='1' cellPadding='1' border='1' width='80%' >");
  2099. Attr attr = ens.GetNewEntity.EnMap.GetAttrByKey(groupKey);
  2100. if (attr.MyFieldType == FieldType.Enum || attr.MyFieldType == FieldType.PKEnum) // 检查是否是 enum 类型。
  2101. {
  2102. BP.Sys.SysEnums eens = new BP.Sys.SysEnums(attr.Key);
  2103. foreach (SysEnum se in eens)
  2104. {
  2105. this.Add("<TR>");
  2106. this.Add("<TD class='GroupTitle' >" + se.Lab + "</TD>");
  2107. this.AddTREnd();
  2108. foreach (Entity en in ens)
  2109. {
  2110. if (en.GetValIntByKey(attr.Key) != se.IntKey)
  2111. continue;
  2112. this.AddTR();
  2113. CheckBox cb = new CheckBox();
  2114. cb.ID = "CB_" + en.GetValStrByKey(showVal);
  2115. cb.Text = en.GetValStrByKey(showText);
  2116. this.AddTD(cb);
  2117. this.AddTREnd();
  2118. }
  2119. }
  2120. }
  2121. else
  2122. {
  2123. Entities groupEns = ClassFactory.GetEns(attr.UIBindKey);
  2124. groupEns.RetrieveAll();
  2125. foreach (Entity group in groupEns)
  2126. {
  2127. this.Add("<TR>");
  2128. this.Add("<TD class='GroupTitle' >" + group.GetValStringByKey(attr.UIRefKeyText) + "</TD>");
  2129. this.AddTREnd();
  2130. foreach (Entity en in ens)
  2131. {
  2132. if (en.GetValStringByKey(attr.Key) != group.GetValStringByKey(attr.UIRefKeyValue))
  2133. continue;
  2134. this.Add("<TR>");
  2135. CheckBox cb = new CheckBox();
  2136. cb.ID = "CB_" + en.GetValStringByKey(showVal);
  2137. cb.Text = en.GetValStringByKey(showText);
  2138. this.Add("<TD >");
  2139. this.Add(cb);
  2140. this.Add("</TD>");
  2141. this.AddTREnd();
  2142. }
  2143. }
  2144. }
  2145. // 设置选择的 ens .
  2146. foreach (Entity en in selectedEns)
  2147. {
  2148. string key = en.GetValStringByKey(selecteVal);
  2149. CheckBox bp = (CheckBox)this.FindControl("CB_" + key);
  2150. if (bp == null)
  2151. continue;
  2152. bp.Checked = true;
  2153. }
  2154. }
  2155. /// <summary>
  2156. ///
  2157. /// </summary>
  2158. /// <param name="ens"></param>
  2159. /// <param name="groupKey"></param>
  2160. // public void UIEn1ToM(Entities ens, string showVal, string showText, Entities selectedEns, string selecteVal)
  2161. public void UIEn1ToM(Entities ens, string showVal, string showText, Entities selectedEns, string selecteVal)
  2162. {
  2163. this.Controls.Clear();
  2164. this.AddTable(); //("<TABLE class='Table' cellSpacing='1' cellPadding='1' border='1' >");
  2165. int i = 0;
  2166. bool is1 = false;
  2167. foreach (Entity en in ens)
  2168. {
  2169. i++;
  2170. if (i == 4)
  2171. i = 1;
  2172. if (i == 1)
  2173. {
  2174. is1 = this.AddTR(is1);
  2175. }
  2176. CheckBox cb = new CheckBox();
  2177. cb.ID = "CB_" + en.GetValStringByKey(showVal);
  2178. cb.Text = en.GetValStringByKey(showText);
  2179. this.AddTD(cb);
  2180. if (i == 3)
  2181. this.AddTREnd();
  2182. }
  2183. switch (i)
  2184. {
  2185. case 1:
  2186. this.AddTD();
  2187. this.AddTD();//"<TD>&nbsp;</TD>");
  2188. this.AddTREnd();//("</TR>");
  2189. break;
  2190. case 2:
  2191. this.AddTD();
  2192. this.AddTREnd();
  2193. break;
  2194. default:
  2195. break;
  2196. }
  2197. this.AddTableEnd();
  2198. // 设置选择的 ens .
  2199. foreach (Entity en in selectedEns)
  2200. {
  2201. string key = en.GetValStringByKey(selecteVal);
  2202. try
  2203. {
  2204. CheckBox bp = (CheckBox)this.FindControl("CB_" + key);
  2205. bp.Checked = true;
  2206. }
  2207. catch
  2208. {
  2209. }
  2210. }
  2211. }
  2212. // public void UIEn1ToM_OneLine(Entities ens, string showVal, string showText, Entities selectedEns, string selecteVal)
  2213. public void UIEn1ToM_OneLine(Entities ens, string showVal, string showText, Entities selectedEns, string selecteVal)
  2214. {
  2215. this.Controls.Clear();
  2216. this.Add("<table border=0 width='500px'>");
  2217. bool is1 = false;
  2218. foreach (Entity en in ens)
  2219. {
  2220. is1 = this.AddTR(is1); //("<TR>");
  2221. CheckBox cb = new CheckBox();
  2222. cb.ID = "CB_" + en.GetValStringByKey(showVal);
  2223. cb.Text = en.GetValStringByKey(showText);
  2224. this.AddTD(cb);
  2225. this.AddTREnd();
  2226. }
  2227. this.AddTableEnd();
  2228. // 设置选择的 ens .
  2229. foreach (Entity en in selectedEns)
  2230. {
  2231. string key = en.GetValStringByKey(selecteVal);
  2232. CheckBox bp = (CheckBox)this.FindControl("CB_" + key);
  2233. bp.Checked = true;
  2234. }
  2235. }
  2236. /// <summary>
  2237. /// s
  2238. /// </summary>
  2239. /// <param name="ens"></param>
  2240. /// <param name="ctrlId"></param>
  2241. /// <param name="showtext1"></param>
  2242. /// <param name="showDtl"></param>
  2243. private void DataPanelCards(Entities ens, string ctrlId, string showtext1, bool showDtl)
  2244. {
  2245. this.Controls.Clear();
  2246. this.AddTable();
  2247. int i = 0;
  2248. Entity myen = ens.GetNewEntity;
  2249. string pk = myen.PK;
  2250. string textName1 = myen.EnMap.GetAttrByKey(showtext1).Desc;
  2251. // string textName2=myen.EnMap.GetAttrByKey(showtext2).Desc;
  2252. string clName = myen.ToString();
  2253. Attrs attrs = myen.EnMap.Attrs;
  2254. foreach (Entity en in ens)
  2255. {
  2256. if (i == 0)
  2257. this.AddTREnd();
  2258. i++;
  2259. #region 处理keys
  2260. string style = WebUser.Style;
  2261. string url = "";
  2262. foreach (Attr attr in attrs)
  2263. {
  2264. switch (attr.UIContralType)
  2265. {
  2266. case UIContralType.TB:
  2267. if (attr.IsPK)
  2268. url += "&" + attr.Key + "=" + en.GetValStringByKey(attr.Key);
  2269. break;
  2270. case UIContralType.DDL:
  2271. url += "&" + attr.Key + "=" + en.GetValStringByKey(attr.Key);
  2272. break;
  2273. }
  2274. }
  2275. #endregion
  2276. string context = "";
  2277. if (showDtl)
  2278. {
  2279. context = "<TABLE class='TableCard' >";
  2280. foreach (Attr attr in attrs)
  2281. {
  2282. if (attr.Key == showtext1)
  2283. continue;
  2284. switch (attr.MyFieldType)
  2285. {
  2286. case FieldType.Normal:
  2287. if (attr.UIVisible == true)
  2288. {
  2289. if (en.GetValStringByKey(attr.Key) == "")
  2290. continue;
  2291. context += "<TR><TD nowrap class='TDLeft' >" + attr.Desc + "</TD><TD class='RightTD' >" + en.GetValStringByKey(attr.Key) + "</TD></TR>";
  2292. }
  2293. break;
  2294. case FieldType.RefText:
  2295. if (en.GetValStringByKey(attr.Key) == "")
  2296. continue;
  2297. context += "<TR><TD nowrap class='TDLeft' >" + attr.Desc.Replace("名称", "") + "</TD><TD class='RightTD' >" + en.GetValStringByKey(attr.Key) + "</TD></TR>";
  2298. //context+="<TR><TD nowrap >"+attr.Desc.Replace("名称","")+"</TD><TD nowrap >"+en.GetValStringByKey( attr.Key )+"</TD></TR>";
  2299. break;
  2300. }
  2301. }
  2302. context += "</TABLE>";
  2303. }
  2304. string img = "<img src='" + en.EnMap.Icon + "'/>";
  2305. if (i == 3)
  2306. {
  2307. i = 0;
  2308. this.Add("<TD valign=top ondblclick=\"WinOpen( 'UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + "')\" onmousedown=\"OnDGMousedown('" + this.Page.Request.ApplicationPath + "','" + ctrlId + "', '" + clName + "', '" + url + "')\" >" + img + "&nbsp;<b>" + en.GetValStringByKey(showtext1) + "</b>" + context + "</TD>");
  2309. this.AddTREnd();
  2310. }
  2311. else
  2312. {
  2313. this.Add("<TD class='TD' valign=top ondblclick=\"WinOpen( 'UIEn.aspx?EnsName=" + ens.ToString() + "&PK=" + en.GetValByKey(pk) + "')\" onmousedown=\"OnDGMousedown('" + this.Page.Request.ApplicationPath + "','" + ctrlId + "', '" + clName + "', '" + url + "')\" >" + img + "&nbsp;<b>" + en.GetValStringByKey(showtext1) + "</b>" + context + "</TD>");
  2314. }
  2315. }
  2316. switch (i)
  2317. {
  2318. case 1:
  2319. this.Add("<TD class='TD' >&nbsp;</TD>");
  2320. this.Add("<TD >&nbsp;</TD>");
  2321. this.AddTREnd();
  2322. break;
  2323. case 2:
  2324. this.Add("<TD >&nbsp;</TD>");
  2325. this.AddTREnd();
  2326. break;
  2327. }
  2328. this.Add("</TABLE>");
  2329. }
  2330. /// <summary>
  2331. /// 查看文件
  2332. /// </summary>
  2333. /// <param name="en"></param>
  2334. // public void FilesView(string enName, string pk)
  2335. public void FilesView(string enName, string pk)
  2336. {
  2337. this.Controls.Clear();
  2338. SysFileManagers ens = new SysFileManagers(enName, pk);
  2339. this.Add("<TABLE BORDER=1>");
  2340. this.Add("<TR>");
  2341. this.Add("<TD>编号</TD>");
  2342. this.Add("<TD>文件名称</TD>");
  2343. this.Add("<TD>上传人</TD>");
  2344. this.Add("<TD>上传时间</TD>");
  2345. this.Add("<TD>大小</TD>");
  2346. this.Add("<TD>操作</TD>");
  2347. this.AddTREnd();
  2348. foreach (SysFileManager file in ens)
  2349. {
  2350. this.Add("<TR>");
  2351. this.Add("<TD>" + file.OID + "</TD>");
  2352. this.Add("<TD><img src='" + this.Request.ApplicationPath + "/Images/FileType/" + file.MyFileExt.Replace(".", "") + ".gif' border=0 /><a href='" + this.Request.ApplicationPath + file.MyFilePath + "' target='_blank' >" + file.MyFileName + file.MyFileExt + "</a></TD>");
  2353. this.Add("<TD>" + file.RecText + "</TD>");
  2354. this.Add("<TD>" + file.RDT + "</TD>");
  2355. this.Add("<TD>" + file.MyFileSize + "</TD>");
  2356. if (file.Rec == WebUser.No)
  2357. {
  2358. this.Add("<TD><a href=\"javascript:DoAction('FileManager.aspx?OID=" + file.OID + "&EnsName=" + enName + "&PK=" + pk + "','将要删除 《" + file.MyFileName + "》')\" >删除</a></TD>");
  2359. }
  2360. else
  2361. {
  2362. this.Add("<TD>无</TD>");
  2363. }
  2364. this.AddTREnd();
  2365. }
  2366. this.Add("</TABLE>");
  2367. }
  2368. protected void Page_Load(object sender, System.EventArgs e)
  2369. {
  2370. // 在此处放置用户代码以初始化页面
  2371. }
  2372. #region Web 窗体设计器生成的代码
  2373. override protected void OnInit(EventArgs e)
  2374. {
  2375. //
  2376. // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
  2377. //
  2378. InitializeComponent();
  2379. base.OnInit(e);
  2380. }
  2381. /// <summary>
  2382. /// 设计器支持所需的方法 - 不要使用代码编辑器
  2383. /// 修改此方法的内容。
  2384. /// </summary>
  2385. private void InitializeComponent()
  2386. {
  2387. }
  2388. #endregion
  2389. }
  2390. }