RptProductionVelocity.cs 127 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.SA06;
  10. using Core.Mes.Client.Comm.Server;
  11. using Core.Mes.Client.Comm.Control;
  12. using Core.Mes.Client.Comm.Tool;
  13. //using Infragistics.Win.UltraWinGrid;
  14. using Infragistics.Win.UltraWinTree;
  15. using Infragistics.Win.UltraWinChart;
  16. using CoreFS.CA06;
  17. using System.Net;
  18. using Infragistics.UltraChart.Shared.Styles;
  19. using Infragistics.UltraChart.Resources.Appearance;
  20. using Infragistics.UltraChart.Core.Layers;
  21. using System.Collections;
  22. namespace Core.StlMes.Client.BuyBillet
  23. {
  24. public partial class RptProductionVelocity : FrmBase
  25. {
  26. private string[] columnchartpoint, piechartpoint, columnchartpoint_qj;
  27. private bool isnew = false, isnew_qj = false;
  28. private DataTable kfdataTable, dtqry1, kfdataTable_qj;
  29. private int days;
  30. private Dictionary<string, Color> sclsdrcorlorsdictionary = new Dictionary<string, Color>();
  31. private Dictionary<string, Color> mycorlorsdictionary = new Dictionary<string, Color>();
  32. private Dictionary<string, string> mynamedictionary = new Dictionary<string, string>();
  33. private int myLineThickness = 3;
  34. public RptProductionVelocity()
  35. {
  36. InitializeData();
  37. InitializeComponent();
  38. }
  39. private void RptProductionVelocity_Load(object sender, EventArgs e)
  40. {
  41. this.rptdate.Value = DateTime.Today;
  42. this.todate.Value = DateTime.Today;
  43. this.fromdate.Value = DateTime.Today.AddYears(-1);
  44. sclskf_month.Value = DateTime.Today;
  45. if (DateTime.Today.Day == 1)
  46. {
  47. scls_fromdate.Value = DateTime.Today.AddDays(-1);
  48. }
  49. else
  50. {
  51. scls_fromdate.Value = DateTime.Today.AddDays(-DateTime.Today.Day + 1);
  52. }
  53. this.scls_todate.Value = DateTime.Today;
  54. //getchart();
  55. //getpiechart();
  56. //kfdata = ServerHelper.GetData("com.steering.rpt.scls.SCLS.getSCLS_KF", new object[] {}, this.ob);
  57. }
  58. public override void ToolBar_Click(object sender, string ToolbarKey)
  59. {
  60. base.ToolBar_Click(sender, ToolbarKey);
  61. switch (ToolbarKey)
  62. {
  63. case "Query":
  64. if (ultraTabControl1.ActiveTab.Key == "scls")
  65. {
  66. getscls();
  67. }
  68. else if (ultraTabControl1.ActiveTab.Key == "scls_qj")
  69. {
  70. //getcharttest();
  71. getscls_qj();
  72. }
  73. else if (ultraTabControl1.ActiveTab.Key == "scls_kf")
  74. {
  75. getscls_kf();
  76. }
  77. else if (ultraTabControl1.ActiveTab.Key == "sczq")
  78. {
  79. getsczq();
  80. }
  81. else if (ultraTabControl1.ActiveTab.Key == "htzq")
  82. {
  83. gethtzq();
  84. }
  85. break;
  86. case "Export":
  87. Export();
  88. break;
  89. case "Close":
  90. this.Close();
  91. break;
  92. }
  93. }
  94. private void InitializeData()
  95. {
  96. mycorlorsdictionary.Add("DC", Color.Aqua);
  97. mycorlorsdictionary.Add("QX", Color.Blue);
  98. mycorlorsdictionary.Add("DSP", Color.Yellow);
  99. mycorlorsdictionary.Add("DPD", Color.Gold);
  100. mycorlorsdictionary.Add("LXWT", Color.Fuchsia);
  101. mycorlorsdictionary.Add("LXFX", Color.Red);
  102. mycorlorsdictionary.Add("FP", Color.Chocolate);
  103. mycorlorsdictionary.Add("PJ", Color.Green);
  104. mynamedictionary.Add("DC", "待产");
  105. mynamedictionary.Add("QX", "清线");
  106. mynamedictionary.Add("DSP", "待判(未送判)");
  107. mynamedictionary.Add("DPD", "待判(未判定)");
  108. mynamedictionary.Add("LXWT", "离线(未委托)");
  109. mynamedictionary.Add("LXFX", "离线(未返线)");
  110. mynamedictionary.Add("FP", "废品");
  111. mynamedictionary.Add("PJ", "平均");
  112. sclsdrcorlorsdictionary.Add("1", Color.YellowGreen);
  113. sclsdrcorlorsdictionary.Add("2", Color.DodgerBlue);
  114. sclsdrcorlorsdictionary.Add("3", Color.LightYellow);
  115. sclsdrcorlorsdictionary.Add("4", Color.Orange);
  116. sclsdrcorlorsdictionary.Add("5", Color.Red);
  117. }
  118. private void getcharttest()
  119. {
  120. UltraChart_scls_qj.Visible = true;
  121. DataTable dt = new DataTable();
  122. dt.Columns.Add("Date", typeof(string));
  123. dt.Columns.Add("2009-08-03", typeof(double));
  124. dt.Columns.Add("2009-08-04", typeof(double));
  125. dt.Columns.Add("2009-08-05", typeof(double));
  126. dt.Columns.Add("2009-08-06", typeof(double));
  127. dt.Columns.Add("2009-08-07", typeof(double));
  128. // dt.Columns.Add("Rating", typeof(double));
  129. dt.Rows.Add(new object[] { "待产", 100, 80, 90, 70, 117 });
  130. dt.Rows.Add(new object[] { "清线", 0, 40, 50, 100, 60 });
  131. /* dt.Rows.Add(new object[] { "2009-08-04"});
  132. dt.Rows.Add(new object[] { "2009-08-05"});
  133. dt.Rows.Add(new object[] { "2009-08-06"});
  134. dt.Rows.Add(new object[] { "2009-08-07"});*/
  135. /*
  136. dt.Rows.Add(new object[] { "2009-08-03", 119, 2 });
  137. dt.Rows.Add(new object[] { "2009-08-04", 118, 3 });
  138. dt.Rows.Add(new object[] { "2009-08-05", 117, 2 });
  139. dt.Rows.Add(new object[] { "2009-08-06", 119, 2 });
  140. dt.Rows.Add(new object[] { "2009-08-07", 117, 3 });*/
  141. UltraChart_scls_qj.ChartType = ChartType.LineChart; ;
  142. UltraChart_scls_qj.Data.DataSource = dt;
  143. UltraChart_scls_qj.Data.IncludeColumn(0, false);
  144. UltraChart_scls_qj.Axis.X.Labels.Orientation = TextOrientation.Custom;
  145. UltraChart_scls_qj.Axis.X.Labels.OrientationAngle = 80;
  146. UltraChart_scls_qj.Axis.X.Labels.VerticalAlign = StringAlignment.Far;
  147. UltraChart_scls_qj.Axis.X2.Visible = false;
  148. UltraChart_scls_qj.Data.DataBind();
  149. }
  150. private void mytest()
  151. {
  152. UltraChart_scls_qj.Visible = true;
  153. UltraChart_scls_qj.ChartType = ChartType.Composite;
  154. NumericSeries stackSeries1 = new NumericSeries();
  155. stackSeries1.Label = "Stack One";
  156. stackSeries1.Points.Add(new NumericDataPoint(1.0, "A", false));
  157. stackSeries1.Points.Add(new NumericDataPoint(2.0, "B", false));
  158. stackSeries1.Points.Add(new NumericDataPoint(3.0, "C", false));
  159. NumericSeries stackSeries2 = new NumericSeries();
  160. stackSeries2.Label = "Stack Two";
  161. stackSeries2.Points.Add(new NumericDataPoint(4.0, "D", false));
  162. stackSeries2.Points.Add(new NumericDataPoint(5.0, "E", false));
  163. stackSeries2.Points.Add(new NumericDataPoint(6.0, "F", false));
  164. NumericSeries lineSeries1 = new NumericSeries();
  165. lineSeries1.Points.Add(new NumericDataPoint(7.0, "G", false));
  166. lineSeries1.Points.Add(new NumericDataPoint(8.0, "H", false));
  167. lineSeries1.Points.Add(new NumericDataPoint(9.0, "I", false));
  168. NumericSeries lineSeries2 = new NumericSeries();
  169. lineSeries2.Points.Add(new NumericDataPoint(8.0, "J", false));
  170. lineSeries2.Points.Add(new NumericDataPoint(7.0, "K", false));
  171. lineSeries2.Points.Add(new NumericDataPoint(6.0, "L", false));
  172. ChartArea area = new ChartArea();
  173. AxisItem xAxisForStackBar = new AxisItem();
  174. xAxisForStackBar.OrientationType = AxisNumber.X_Axis;
  175. xAxisForStackBar.DataType = AxisDataType.Numeric;
  176. xAxisForStackBar.Extent = 10;
  177. xAxisForStackBar.Labels.ItemFormatString = "<DATA_VALUE:0.0>";
  178. xAxisForStackBar.TickmarkStyle = AxisTickStyle.Smart;
  179. AxisItem yAxisForStackBar = new AxisItem();
  180. yAxisForStackBar.OrientationType = AxisNumber.Y_Axis;
  181. yAxisForStackBar.DataType = AxisDataType.String;
  182. yAxisForStackBar.SetLabelAxisType = SetLabelAxisType.GroupBySeries;
  183. yAxisForStackBar.Labels.SeriesLabels.FormatString = "<SERIES_LABEL>";
  184. AxisItem xAxisForLine = new AxisItem();
  185. xAxisForLine.OrientationType = AxisNumber.X_Axis;
  186. xAxisForLine.DataType = AxisDataType.String;
  187. xAxisForLine.SetLabelAxisType = SetLabelAxisType.ContinuousData;
  188. xAxisForLine.Labels.ItemFormatString = "<ITEM_LABEL>";
  189. AxisItem yAxisForLine = new AxisItem();
  190. yAxisForLine.OrientationType = AxisNumber.Y_Axis;
  191. yAxisForLine.DataType = AxisDataType.Numeric;
  192. yAxisForLine.Extent = 10;
  193. yAxisForLine.Labels.ItemFormatString = "<DATA_VALUE:0.0>";
  194. yAxisForLine.TickmarkStyle = AxisTickStyle.Smart;
  195. area.Axes.Add(xAxisForStackBar);
  196. area.Axes.Add(yAxisForStackBar);
  197. area.Axes.Add(xAxisForLine);
  198. area.Axes.Add(yAxisForLine);
  199. ChartLayerAppearance stackBarLayer = new ChartLayerAppearance();
  200. stackBarLayer.ChartType = ChartType.StackBarChart;
  201. stackBarLayer.Series.Add(stackSeries1);
  202. stackBarLayer.Series.Add(stackSeries2);
  203. stackBarLayer.ChartArea = area;
  204. stackBarLayer.AxisX = xAxisForStackBar;
  205. stackBarLayer.AxisY = yAxisForStackBar;
  206. ChartLayerAppearance lineLayer = new ChartLayerAppearance();
  207. lineLayer.ChartType = ChartType.LineChart;
  208. lineLayer.Series.Add(lineSeries1);
  209. lineLayer.Series.Add(lineSeries2);
  210. lineLayer.ChartArea = area;
  211. lineLayer.AxisX = xAxisForLine;
  212. lineLayer.AxisY = yAxisForLine;
  213. UltraChart_scls_qj.CompositeChart.ChartAreas.Add(area);
  214. UltraChart_scls_qj.CompositeChart.ChartLayers.Add(stackBarLayer);
  215. UltraChart_scls_qj.CompositeChart.ChartLayers.Add(lineLayer);
  216. }
  217. private void Export()
  218. {
  219. if (ultraTabControl1.ActiveTab.Key == "scls")
  220. {
  221. string title = "生产流速——";
  222. if (rB_dc.Checked)
  223. {
  224. title += rB_dc.Text;
  225. }
  226. else if (rB_qx.Checked)
  227. {
  228. title += rB_qx.Text;
  229. }
  230. else if (rB_dpsp.Checked)
  231. {
  232. title += rB_dpsp.Text;
  233. }
  234. else if (rB_dppd.Checked)
  235. {
  236. title += rB_dppd.Text;
  237. }
  238. else if (rB_lxwt.Checked)
  239. {
  240. title += rB_lxwt.Text;
  241. }
  242. else if (rB_lxfx.Checked)
  243. {
  244. title += rB_lxfx.Text;
  245. }
  246. else if (rB_fp.Checked)
  247. {
  248. title += rB_fp.Text;
  249. }
  250. GridHelper.ulGridToExcel(ultraGrid_scls, title);
  251. }
  252. else if (ultraTabControl1.ActiveTab.Key == "scls_kf")
  253. {
  254. string title = "生产流速——";
  255. title += "扣分表";
  256. GridHelper.ulGridToExcel(ultraGrid_scls_kf, title);
  257. }
  258. else if (ultraTabControl1.ActiveTab.Key == "sczq" && ultraTabControl2.ActiveTab.Key == "tab_pz")
  259. {
  260. GridHelper.ulGridToExcel(ultraGrid_pzwl, "生产周期(品种)");
  261. }
  262. else if (ultraTabControl1.ActiveTab.Key == "sczq" && ultraTabControl2.ActiveTab.Key == "tab_wl")
  263. {
  264. GridHelper.ulGridToExcel(ultraGrid_pzwl, "生产周期(物料)");
  265. }
  266. else if (ultraTabControl1.ActiveTab.Key == "sczq" && ultraTabControl2.ActiveTab.Key == "tab_pzwl")
  267. {
  268. GridHelper.ulGridToExcel(ultraGrid_pzwl, "生产周期(品种+物料)");
  269. }
  270. else if (ultraTabControl1.ActiveTab.Key == "htzq")
  271. {
  272. GridHelper.ulGridToExcel(ultraGrid_htzq, ultraTabControl1.ActiveTab.Text);
  273. }
  274. else
  275. {
  276. MessageBox.Show("没有要导出的数据!");
  277. }
  278. }
  279. private void getsczq()
  280. {
  281. WaitingForm2 wf = new WaitingForm2("正在加载数据,请稍候....");
  282. try
  283. {
  284. string mydate1 = ((DateTime)this.fromdate.Value).ToString("yyyy-MM-dd");
  285. string mydate2 = ((DateTime)this.todate.Value).ToString("yyyy-MM-dd");
  286. if (ultraTabControl2.ActiveTab.Key == "tab_pz")
  287. {
  288. if (dataTable3.Rows.Count > 0)
  289. dataTable3.Rows.Clear();
  290. /*ultraGrid_pzwl.Visible = false;
  291. ultraGrid_wl.Visible = false;
  292. ultraGrid_pz.Dock = DockStyle.Fill;
  293. ultraGrid_pz.Visible = true;*/
  294. DataTable dtqry1 = ServerHelper.GetData("com.steering.rpt.scls.SCLS.getSCLS_SCLS_PZ", new object[] { mydate1, mydate2 }, this.ob);
  295. GridHelper.CopyDataToDatatable(ref dtqry1, ref dataTable3, true);
  296. RefreshSetting(ultraGrid_pz, ((DateTime)this.rptdate.Value).ToString("yyyy年M月d日"));
  297. }
  298. else if (ultraTabControl2.ActiveTab.Key == "tab_wl")
  299. {
  300. if (dataTable4.Rows.Count > 0)
  301. dataTable4.Rows.Clear();
  302. /*ultraGrid_pz.Visible = false;
  303. ultraGrid_pzwl.Visible = false;
  304. ultraGrid_wl.Dock = DockStyle.Fill;
  305. ultraGrid_wl.Visible = true;*/
  306. DataTable dtqry2 = ServerHelper.GetData("com.steering.rpt.scls.SCLS.getSCLS_SCLS_WL", new object[] { mydate1, mydate2 }, this.ob);
  307. GridHelper.CopyDataToDatatable(ref dtqry2, ref this.dataTable4, true);
  308. RefreshSetting(ultraGrid_wl, ((DateTime)this.rptdate.Value).ToString("yyyy年M月d日"));
  309. }
  310. else if (ultraTabControl2.ActiveTab.Key == "tab_pzwl")
  311. {
  312. if (dataTable2.Rows.Count > 0)
  313. dataTable2.Rows.Clear();
  314. if (dataTable1.Rows.Count > 0)
  315. dataTable1.Rows.Clear();
  316. /*ultraGrid_pz.Visible = false;
  317. ultraGrid_wl.Visible = false;
  318. ultraGrid_pzwl.Dock = DockStyle.Fill;
  319. ultraGrid_pzwl.Visible = true;*/
  320. DataTable dtqry1 = ServerHelper.GetData("com.steering.rpt.scls.SCLS.getSCLS_SCLS_PZ", new object[] { mydate1, mydate2 }, this.ob);
  321. DataTable dtqry2 = ServerHelper.GetData("com.steering.rpt.scls.SCLS.getSCLS_SCLS_WL", new object[] { mydate1, mydate2 }, this.ob);
  322. GridHelper.CopyDataToDatatable(ref dtqry1, ref this.dataTable1, true);
  323. GridHelper.CopyDataToDatatable(ref dtqry2, ref this.dataTable2, true);
  324. RefreshSetting(ultraGrid_pzwl, ((DateTime)this.rptdate.Value).ToString("yyyy年M月d日"));
  325. }
  326. wf.Close();
  327. }
  328. catch (Exception e)
  329. {
  330. MessageBox.Show(e.Message);
  331. }
  332. finally
  333. {
  334. wf.Close();
  335. }
  336. }
  337. public static void RefreshSetting(Infragistics.Win.UltraWinGrid.UltraGrid ultraGrid, string mydate)
  338. {
  339. ultraGrid.DataBind();
  340. foreach (Infragistics.Win.UltraWinGrid.UltraGridBand band in ultraGrid.DisplayLayout.Bands)
  341. {
  342. //band.Header.Caption = "生产周期";
  343. foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn column in band.Columns)
  344. {
  345. if (column.Key != "material_no" && column.Key != "material_name")
  346. column.PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand);
  347. }
  348. if (band.Key == "Table2" || band.Key == "Relation1")
  349. {
  350. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in band.GetRowEnumerator(Infragistics.Win.UltraWinGrid.GridRowType.DataRow))
  351. {
  352. if (row.Cells["material_no"].Text != "")
  353. {
  354. row.Cells["material_no"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Button;
  355. row.Cells["material_no"].ButtonAppearance.Cursor = Cursors.Hand;
  356. row.Cells["material_no"].ToolTipText = "点击查看炉数据!";
  357. }
  358. }
  359. }
  360. }
  361. ultraGrid.Refresh();
  362. }
  363. private void getscls_kf()
  364. {
  365. string mydate1 = ((DateTime)this.sclskf_month.Value).ToString("yyyy-MM-") + "01";
  366. days = (DateTime.DaysInMonth(((DateTime)this.sclskf_month.Value).Year, ((DateTime)this.sclskf_month.Value).Month));
  367. string mydate2 = ((DateTime)this.sclskf_month.Value).ToString("yyyy-MM-") + Convert.ToString(100 + days).Substring(1, 2);
  368. WaitingForm2 wf = new WaitingForm2("正在加载数据,请稍候....");
  369. try
  370. {
  371. if (dataTable6.Rows.Count > 0)
  372. dataTable6.Rows.Clear();
  373. if (dataTable5.Rows.Count > 0)
  374. dataTable5.Rows.Clear();
  375. string mymethodid = "com.steering.rpt.scls.SCLS.getSCLS_TotalKF";
  376. DataTable dtqry1 = new DataTable();
  377. dtqry1 = ServerHelper.GetData(mymethodid, new object[] { mydate1, mydate2 }, this.ob);
  378. DataTable dtqry = dtqry1.Clone();
  379. dtqry.Columns["kf"].DataType = typeof(decimal);
  380. dtqry.Columns["qz"].DataType = typeof(decimal);
  381. dtqry.Columns["kfqz"].DataType = typeof(decimal);
  382. foreach (DataRow dr in dtqry1.Rows)
  383. {
  384. dtqry.ImportRow(dr);
  385. }
  386. DataTable dtqrytotalkf = dataTable5.Clone();
  387. DataView dvtotalkf = dtqry.DefaultView;
  388. dvtotalkf.Sort = "area_code";
  389. DataTable dttotal = dvtotalkf.ToTable(true, "area");//注:其中ToTable()的第一个参数为是否DISTINCT
  390. DataTable dtqrydetailkf = dataTable6.Clone();
  391. DataView dvdetail = dtqry.DefaultView;
  392. dvdetail.Sort = "area_code,dept,processcode,pline_name";
  393. DataTable dtdetail = dvdetail.ToTable(true, "area", "dept", "processcode", "pline_name");//注:其中ToTable()的第一个参数为是否DISTINCT
  394. if (dttotal.Rows.Count == 0)
  395. {
  396. MessageBox.Show("没有查到数据!");
  397. }
  398. else
  399. {
  400. DataView dvcreatetime = dtqry.DefaultView;
  401. dvcreatetime.Sort = "createdate,area,dept,processcode,pline_name";
  402. foreach (DataRow dr in dttotal.Rows)
  403. {
  404. DataRow myrow = dtqrytotalkf.NewRow();
  405. myrow["area"] = dr["area"];
  406. dvcreatetime.RowFilter = "area='" + dr["area"].ToString() + "'";
  407. DataTable dt = dvcreatetime.ToTable();
  408. foreach (DataColumn col in dtqrytotalkf.Columns)
  409. {
  410. if (col.Caption.Contains("日"))
  411. {
  412. string selectstr = "createdate='" + ((DateTime)this.sclskf_month.Value).ToString("yyyy-MM-") + col.ColumnName + "'";
  413. if (!(dt.Compute("sum(kfqz)", selectstr) is System.DBNull))
  414. {
  415. decimal kfqz = (decimal)dt.Compute("sum(kfqz)", selectstr);
  416. decimal kf = (decimal)dt.Compute("sum(kf)", selectstr);
  417. if (kf > 0)
  418. {
  419. myrow[col.ColumnName] = Math.Round(kfqz / kf, 1);
  420. }
  421. }
  422. }
  423. else if (col.Caption.Contains("平均"))
  424. {
  425. string selectstr = "1=1";
  426. if (!(dt.Compute("sum(kfqz)", selectstr) is System.DBNull))
  427. {
  428. decimal kfqz = (decimal)dt.Compute("sum(kfqz)", selectstr);
  429. decimal kf = (decimal)dt.Compute("sum(kf)", selectstr);
  430. if (kf > 0)
  431. {
  432. myrow[col.ColumnName] = Math.Round(kfqz / kf, 1);
  433. }
  434. }
  435. }
  436. }
  437. dtqrytotalkf.Rows.Add(myrow);
  438. }
  439. foreach (DataRow dr in dtdetail.Rows)
  440. {
  441. DataRow myrow = dtqrydetailkf.NewRow();
  442. myrow["area"] = dr["area"];
  443. myrow["dept"] = dr["dept"];
  444. myrow["processcode"] = dr["processcode"];
  445. myrow["pline_name"] = dr["pline_name"];
  446. myrow["dept_processcode"] = dr["area"].ToString() + dr["dept"].ToString() + dr["processcode"].ToString();
  447. dvcreatetime.RowFilter = "area='" + dr["area"].ToString() + "' and pline_name='" + dr["pline_name"] + "'";
  448. DataTable dt = dvcreatetime.ToTable();
  449. foreach (DataColumn col in dtqrydetailkf.Columns)
  450. {
  451. if (col.Caption.Contains("日"))
  452. {
  453. string selectstr = "createdate='" + ((DateTime)this.sclskf_month.Value).ToString("yyyy-MM-") + col.ColumnName + "'";
  454. if (!(dt.Compute("sum(kfqz)", selectstr) is System.DBNull))
  455. {
  456. decimal kfqz = (decimal)dt.Compute("sum(kfqz)", selectstr);
  457. decimal kf = (decimal)dt.Compute("sum(kf)", selectstr);
  458. if (kf > 0)
  459. {
  460. myrow[col.ColumnName] = Math.Round(kfqz / kf, 1);
  461. }
  462. }
  463. }
  464. else if (col.Caption.Contains("平均"))
  465. {
  466. string selectstr = "1=1";
  467. if (!(dt.Compute("sum(kfqz)", selectstr) is System.DBNull))
  468. {
  469. decimal kfqz = (decimal)dt.Compute("sum(kfqz)", selectstr);
  470. decimal kf = (decimal)dt.Compute("sum(kf)", selectstr);
  471. if (kf > 0)
  472. {
  473. myrow[col.ColumnName] = Math.Round(kfqz / kf, 1);
  474. }
  475. }
  476. }
  477. }
  478. dtqrydetailkf.Rows.Add(myrow);
  479. }
  480. summarykf(dtqrydetailkf);
  481. }
  482. GridHelper.CopyDataToDatatable(ref dtqrytotalkf, ref this.dataTable5, true);
  483. GridHelper.CopyDataToDatatable(ref dtqrydetailkf, ref this.dataTable6, true);
  484. setgridcolunm_kf(ultraGrid_scls_kf);
  485. wf.Close();
  486. }
  487. catch (Exception e)
  488. {
  489. MessageBox.Show(e.Message);
  490. }
  491. finally
  492. {
  493. wf.Close();
  494. }
  495. }
  496. private void summarykf(DataTable dtqry)
  497. {
  498. string area = dtqry.Rows[0]["area"].ToString();
  499. string dept = dtqry.Rows[0]["dept"].ToString();
  500. string processcode = dtqry.Rows[0]["processcode"].ToString();
  501. string pline = dtqry.Rows[0]["pline_name"].ToString();
  502. int row_count = dtqry.Rows.Count;
  503. int pline_count = 0, processcode_count = 0;
  504. for (int row_index = 0; row_index < row_count; row_index++)
  505. {
  506. DataRow dr = dtqry.Rows[row_index];
  507. //dr["dept_processcode"] = dr["area"].ToString() + dr["dept"].ToString() + dr["processcode"].ToString();
  508. if (area + dept != dr["area"].ToString() + dr["dept"].ToString())
  509. {
  510. if (processcode_count != pline_count && pline_count > 1)
  511. {
  512. addsummry(dtqry, area, area + dept + processcode, dept, processcode, "小计", row_index);
  513. row_index++;
  514. row_count++;
  515. }
  516. if (processcode_count > 1)
  517. {
  518. addsummry(dtqry, area, area + dept + processcode, dept, "合计", "", row_index);
  519. row_index++;
  520. row_count++;
  521. }
  522. pline_count = 0;
  523. processcode_count = 0;
  524. }
  525. else if (area + dept == dr["area"].ToString() + dr["dept"].ToString() && processcode != dr["processcode"].ToString())
  526. {
  527. if (pline_count > 1)
  528. {
  529. addsummry(dtqry, area, area + dept + processcode, dept, processcode, "小计", row_index);
  530. row_index++;
  531. row_count++;
  532. }
  533. pline_count = 0;
  534. }
  535. area = dtqry.Rows[row_index]["area"].ToString();
  536. dept = dtqry.Rows[row_index]["dept"].ToString();
  537. processcode = dtqry.Rows[row_index]["processcode"].ToString();
  538. pline = dtqry.Rows[row_index]["pline_name"].ToString();
  539. pline_count++;
  540. processcode_count++;
  541. }
  542. if (pline_count > 1)
  543. {
  544. addsummry(dtqry, area, area + dept + processcode, dept, processcode, "小计", -1);
  545. }
  546. if (processcode_count > 1)
  547. {
  548. addsummry(dtqry, area, area + dept + processcode, dept, "合计", "", -1);
  549. }
  550. }
  551. private void addsummry(DataTable dt, string area, string dept_processcode, string dept, string processcode, string pline_name, int row_index)
  552. {
  553. DataRow myrow = dt.NewRow();
  554. myrow["area"] = area;
  555. myrow["dept_processcode"] = area + dept + processcode;
  556. myrow["dept"] = dept;
  557. myrow["processcode"] = processcode;
  558. myrow["pline_name"] = pline_name;
  559. foreach (DataColumn col in dt.Columns)
  560. {
  561. string selectstr = "";
  562. if (pline_name == "小计")
  563. selectstr = "dept_processcode='" + dept_processcode + "' and pline_name<>'小计' and pline_name<>''";
  564. else if (processcode == "合计")
  565. selectstr = "area='" + area + "' and dept='" + dept + "' and pline_name<>'小计' and pline_name<>''";
  566. if (col.Caption.Contains("日") || col.Caption.Contains("平均"))
  567. {
  568. string sql = "avg([" + col.ColumnName + "])";
  569. if (!(dt.Compute(sql, selectstr) is System.DBNull))
  570. {
  571. decimal pjz = (decimal)dt.Compute(sql, selectstr);
  572. if (pjz > 0)
  573. {
  574. myrow[col.ColumnName] = Math.Round(pjz, 1);
  575. }
  576. }
  577. }
  578. }
  579. if (row_index == -1)
  580. dt.Rows.Add(myrow);
  581. else
  582. dt.Rows.InsertAt(myrow, row_index);
  583. }
  584. private void setgridcolunm_kf(Infragistics.Win.UltraWinGrid.UltraGrid ultraGrid)
  585. {
  586. ultraGrid.DisplayLayout.Bands[0].Groups[0].Header.Caption = ((DateTime)this.sclskf_month.Value).ToString("yyyy") + "年" + Convert.ToInt32(((DateTime)this.sclskf_month.Value).ToString("MM")).ToString() + "月扣分";
  587. foreach (Infragistics.Win.UltraWinGrid.UltraGridBand band in ultraGrid.DisplayLayout.Bands)
  588. {
  589. foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn col in band.Columns)
  590. {
  591. if (col.Header.Caption.Contains("日") && Convert.ToInt32(col.Key) > days)
  592. {
  593. col.Hidden = true;
  594. }
  595. col.Header.Appearance.TextHAlign = Infragistics.Win.HAlign.Center;
  596. if (col.Header.Caption.Contains("日") || col.Header.Caption.Contains("平均"))
  597. {
  598. col.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
  599. }
  600. col.PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand);
  601. }
  602. if (band.Index == 1)
  603. {
  604. CustomMergedCellEvaluator merge = new CustomMergedCellEvaluator("dept_processcode");
  605. band.Columns["processcode"].MergedCellEvaluator = merge;
  606. }
  607. int i = 0;
  608. decimal min = 0, max = 0;
  609. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in band.GetRowEnumerator(Infragistics.Win.UltraWinGrid.GridRowType.DataRow))
  610. {
  611. if (band.Index == 1 && row.Cells["pline_name"].Text == "小计")
  612. {
  613. row.Cells["pline_name"].Appearance.BackColor = Color.LightYellow;
  614. for (int j = 3; j < band.Columns.Count; j++)
  615. {
  616. row.Cells[i].Appearance.BackColor = Color.LemonChiffon;
  617. }
  618. }
  619. else if (band.Index == 1 && row.Cells["processcode"].Text == "合计")
  620. {
  621. row.Cells["processcode"].Appearance.BackColor = Color.LemonChiffon; ;
  622. row.Cells["pline_name"].Appearance.BackColor = Color.LemonChiffon; ;
  623. for (int j = 3; j < band.Columns.Count; j++)
  624. {
  625. row.Cells[i].Appearance.BackColor = Color.LightYellow; ;
  626. }
  627. }
  628. else
  629. {
  630. foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn col in band.Columns)
  631. {
  632. if (col.Header.Caption.Contains("日") && row.Cells[col].Text != "")
  633. {
  634. decimal myvalue = Convert.ToDecimal(row.Cells[col].Text);
  635. if (myvalue > max)
  636. {
  637. max = myvalue;
  638. }
  639. if (myvalue < min || min == 0)
  640. {
  641. min = myvalue;
  642. }
  643. }
  644. }
  645. }
  646. }
  647. if (min < max)
  648. {
  649. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in band.GetRowEnumerator(Infragistics.Win.UltraWinGrid.GridRowType.DataRow))
  650. {
  651. foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn col in band.Columns)
  652. {
  653. if (col.Header.Caption.Contains("日") && row.Cells[col].Text == max.ToString())
  654. {
  655. row.Cells[col].Appearance.ForeColor = Color.Red;
  656. row.Cells[col].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
  657. row.Cells[col].Appearance.BackColor = Color.LightGoldenrodYellow;
  658. }
  659. else if (col.Header.Caption.Contains("日") && row.Cells[col].Text == min.ToString())
  660. {
  661. row.Cells[col].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
  662. row.Cells[col].Appearance.BackColor = Color.PaleGreen;
  663. }
  664. }
  665. }
  666. }
  667. }
  668. //ultraGrid.Refresh();
  669. }
  670. private void getscls()
  671. {
  672. WaitingForm2 wf = new WaitingForm2("正在加载数据,请稍候....");
  673. try
  674. {
  675. string mydate = ((DateTime)this.rptdate.Value).ToString("yyyy-MM-dd");
  676. string mymethodid = "", sign = "";
  677. DataTable dtqry = new DataTable();
  678. if (rB_dc.Checked)
  679. {
  680. mymethodid = "com.steering.rpt.scls.SCLS.getSCLS_DC";
  681. sign = "DC";
  682. isnew = true;
  683. }
  684. else if (rB_qx.Checked)
  685. {
  686. mymethodid = "com.steering.rpt.scls.SCLS.getSCLS_QX";
  687. sign = "QX";
  688. isnew = true;
  689. }
  690. else if (rB_dpsp.Checked)
  691. {
  692. mymethodid = "com.steering.rpt.scls.SCLS.getSCLS_DPSP";
  693. sign = "DPSP";
  694. isnew = true;
  695. }
  696. else if (rB_dppd.Checked)
  697. {
  698. mymethodid = "com.steering.rpt.scls.SCLS.getSCLS_DPPD";
  699. sign = "DPPD";
  700. isnew = true;
  701. }
  702. else if (rB_lxwt.Checked)
  703. {
  704. mymethodid = "com.steering.rpt.scls.SCLS.getSCLS_LXWT";
  705. sign = "LXWT";
  706. isnew = true;
  707. }
  708. else if (rB_lxfx.Checked)
  709. {
  710. mymethodid = "com.steering.rpt.scls.SCLS.getSCLS_LXFX";
  711. sign = "LXFX";
  712. isnew = true;
  713. }
  714. else if (rB_fp.Checked)
  715. {
  716. mymethodid = "com.steering.rpt.scls.SCLS.getSCLS_FP";
  717. sign = "FP";
  718. isnew = true;
  719. }
  720. if (mymethodid != "")
  721. {
  722. dtqry = ServerHelper.GetData(mymethodid, new object[] { mydate }, this.ob);
  723. wf.Close();
  724. DataTable dtqry1 = dtqry.Clone();
  725. dtqry1.Columns["kf"].DataType = typeof(decimal);
  726. dtqry1.Columns["qz"].DataType = typeof(decimal);
  727. if (dtqry1.Columns.IndexOf("dc_hours") >= 0)
  728. dtqry1.Columns["dc_hours"].DataType = typeof(decimal);
  729. if (dtqry1.Columns.IndexOf("dc_days") >= 0)
  730. dtqry1.Columns["dc_days"].DataType = typeof(decimal);
  731. if (dtqry1.Columns.IndexOf("PLN_OUTSINGLE_NUM") >= 0)
  732. dtqry1.Columns["PLN_OUTSINGLE_NUM"].DataType = typeof(decimal);
  733. if (dtqry1.Columns.IndexOf("PLN_OUTSINGLE_W") >= 0)
  734. dtqry1.Columns["PLN_OUTSINGLE_W"].DataType = typeof(decimal);
  735. foreach (DataRow dr in dtqry.Rows)
  736. {
  737. dtqry1.ImportRow(dr);
  738. }
  739. if (dtqry1.Rows.Count > 0)
  740. {
  741. UltraColumnChart_scls.Visible = true;
  742. UltraPieChart_scls.Visible = true;
  743. ultraGrid_scls.DataSource = dtqry1;
  744. setgridcolunmName(ultraGrid_scls, sign);
  745. //RefreshAndAutoSize(ultraGrid_scls);
  746. DataTable dtqry2 = dtqry1.Copy();
  747. DataView dv = dtqry2.DefaultView;
  748. dv.RowFilter = "kf>0";
  749. dtqry2 = dv.ToTable();
  750. getproccestree(ultraTree_scls, dtqry2);
  751. setchartpoints(dtqry2);
  752. //getcolumnchart_scls("大工序", UltraColumnChart_scls, dtqry, "DGX");
  753. //getpiechart_scls(UltraColumnChart_scls.Series[0].Label, UltraPieChart_scls, dtqry, "DGX");
  754. getcolumnchart_scls(ultraTree_scls.Nodes[0].Text, UltraColumnChart_scls, dtqry2, "DGX");
  755. getpiechart_scls(ultraTree_scls.Nodes[0].Nodes[0].Text, UltraPieChart_scls, dtqry2, "DGX");
  756. ultraTree_scls.Nodes[0].Selected = true;
  757. isnew = false;
  758. }
  759. else
  760. {
  761. ultraTree_scls.Nodes.Clear();
  762. ultraGrid_scls.DataSource = null;
  763. UltraColumnChart_scls.Visible = false;
  764. UltraPieChart_scls.Visible = false;
  765. this.alert("没有数据!");
  766. }
  767. }
  768. }
  769. catch (Exception e)
  770. {
  771. MessageBox.Show(e.Message);
  772. }
  773. finally
  774. {
  775. wf.Close();
  776. }
  777. }
  778. private void getscls_qj()
  779. {
  780. WaitingForm2 wf = new WaitingForm2("正在加载数据,请稍候....");
  781. try
  782. {
  783. string mydate1 = ((DateTime)this.scls_fromdate.Value).ToString("yyyy-MM-dd");
  784. string mydate2 = ((DateTime)this.scls_todate.Value).ToString("yyyy-MM-dd");
  785. string mymethodid = "com.steering.rpt.scls.SCLS.getSCLS_TotalKF";
  786. DataTable dtqry = new DataTable();
  787. dtqry = ServerHelper.GetData(mymethodid, new object[] { mydate1, mydate2 }, this.ob);
  788. string mysql = "";
  789. if (cB_dcqj.Checked == false)
  790. mysql += mysql == "" ? "sign<>'DC'" : " and sign<>'DC'";
  791. if (cB_qxqj.Checked == false)
  792. mysql += mysql == "" ? "sign<>'QX'" : " and sign<>'QX'";
  793. if (cB_dpspqj.Checked == false)
  794. mysql += mysql == "" ? "sign<>'DSP'" : " and sign<>'DSP'";
  795. if (cB_dppdqj.Checked == false)
  796. mysql += mysql == "" ? "sign<>'DPD'" : " and sign<>'DPD'";
  797. if (cB_lxwtqj.Checked == false)
  798. mysql += mysql == "" ? "sign<>'LXWT'" : " and sign<>'LXWT'";
  799. if (cB_lxfxqj.Checked == false)
  800. mysql += mysql == "" ? "sign<>'LXFX'" : " and sign<>'LXFX'";
  801. if (cB_fpqj.Checked == false)
  802. mysql += mysql == "" ? "sign<>'FP'" : " and sign<>'FP'";
  803. DataView dv = dtqry.DefaultView;
  804. dv.RowFilter = mysql;
  805. dtqry = dv.ToTable();
  806. dtqry1 = new DataTable();
  807. dtqry1 = dtqry.Clone();
  808. dtqry1.Columns["kf"].DataType = System.Type.GetType("System.Int32");
  809. DataView dvdetail = dtqry.DefaultView;
  810. dvdetail.Sort = "createdate,processcode,dept,pline_name";
  811. foreach (DataRow dr in dtqry.Rows)
  812. {
  813. dtqry1.ImportRow(dr);
  814. }
  815. DataView dvtree = dtqry.DefaultView;
  816. dvtree.Sort = "processcode,dept,pline_name";
  817. DataTable dttree = dvtree.ToTable(true, "processcode", "dept", "dept_code", "pline_code", "pline_name");//注:其中ToTable()的第一个参数为是否DISTINCT
  818. if (dtqry1.Rows.Count > 0)
  819. {
  820. getproccestree(ultraTree_scls_qj, dttree, "qj");
  821. wf.Close();
  822. isnew_qj = true;
  823. ultraTree_scls_qj.Nodes[0].Selected = true;
  824. UltraChart_scls_qj.Visible = true;
  825. getlinechart_scls_qj(UltraChart_scls_qj, dtqry1, "DGX");
  826. isnew_qj = false;
  827. }
  828. else
  829. {
  830. ultraTree_scls_qj.Nodes.Clear();
  831. UltraChart_scls_qj.Visible = false;
  832. this.alert("没有数据!");
  833. }
  834. }
  835. catch (Exception e)
  836. {
  837. MessageBox.Show(e.Message);
  838. }
  839. finally
  840. {
  841. wf.Close();
  842. }
  843. }
  844. private void setchartpoints(DataTable myData)
  845. {
  846. DataTable copyData = myData.Copy();
  847. DataView dataView = copyData.DefaultView;
  848. //kfdataTable.Rows.Clear();
  849. dataView.Sort = "kf";
  850. kfdataTable = dataView.ToTable(true, "kf");
  851. piechartpoint = new String[kfdataTable.Rows.Count];
  852. columnchartpoint = new String[kfdataTable.Rows.Count];
  853. int i = 0;
  854. foreach (DataRow myrow in kfdataTable.Rows)
  855. {
  856. string selectstr = "kf=" + myrow["kf"].ToString();
  857. if (rB_dc.Checked)
  858. {
  859. piechartpoint[i] = (myData.Select(selectstr).Length == 0 ? "" : myData.Select(selectstr)[0]["kfsm"].ToString().Replace("流速-待产,", ""));
  860. }
  861. else if (rB_qx.Checked)
  862. {
  863. piechartpoint[i] = (myData.Select(selectstr).Length == 0 ? "" : myData.Select(selectstr)[0]["kfsm"].ToString().Replace("流速-清线,", ""));
  864. }
  865. else if (rB_dpsp.Checked)
  866. {
  867. piechartpoint[i] = (myData.Select(selectstr).Length == 0 ? "" : myData.Select(selectstr)[0]["kfsm"].ToString().Replace("流速-待判-送判,", ""));
  868. }
  869. else if (rB_dppd.Checked)
  870. {
  871. piechartpoint[i] = (myData.Select(selectstr).Length == 0 ? "" : myData.Select(selectstr)[0]["kfsm"].ToString().Replace("流速-送判-判定,", ""));
  872. }
  873. else if (rB_lxwt.Checked)
  874. {
  875. piechartpoint[i] = (myData.Select(selectstr).Length == 0 ? "" : myData.Select(selectstr)[0]["kfsm"].ToString().Replace("流速-离线-委托,", ""));
  876. }
  877. else if (rB_lxfx.Checked)
  878. {
  879. piechartpoint[i] = (myData.Select(selectstr).Length == 0 ? "" : myData.Select(selectstr)[0]["kfsm"].ToString().Replace("流速-离线-返线(仅除锈),", "").Replace("流速-离线-返线,", ""));
  880. }
  881. else if (rB_fp.Checked)
  882. {
  883. piechartpoint[i] = (myData.Select(selectstr).Length == 0 ? "" : myData.Select(selectstr)[0]["kfsm"].ToString().Replace("流速-废品,", ""));
  884. }
  885. columnchartpoint[i] = piechartpoint[i];//.Replace("不扣分", "").Replace("扣1分", "").Replace("扣2分", "");
  886. i++;
  887. }
  888. }
  889. private void getcolumnchart_scls(string title, UltraChart mychart, DataTable myData, string sign)
  890. {
  891. string myselectstr = "";
  892. // 在此处放置用户代码以初始化页面
  893. //step1:Change the ChartType property to "Composite."
  894. mychart.ChartType = ChartType.Composite;
  895. mychart.TitleTop.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold);
  896. mychart.TitleTop.Text = title;
  897. if (rB_dc.Checked)
  898. mychart.TitleBottom.Text = rB_dc.Text + "扣分炉数";
  899. else if (rB_qx.Checked)
  900. mychart.TitleBottom.Text = rB_qx.Text + "扣分炉数";
  901. else if (rB_dpsp.Checked)
  902. mychart.TitleBottom.Text = rB_dpsp.Text + "扣分炉数";
  903. else if (rB_dppd.Checked)
  904. mychart.TitleBottom.Text = rB_dppd.Text + "扣分炉数";
  905. else if (rB_lxwt.Checked)
  906. mychart.TitleBottom.Text = rB_lxwt.Text + "扣分炉数";
  907. else if (rB_lxfx.Checked)
  908. mychart.TitleBottom.Text = rB_lxfx.Text + "扣分炉数";
  909. else if (rB_fp.Checked)
  910. mychart.TitleBottom.Text = rB_fp.Text + "扣分炉数";
  911. //step2:Add a ChartArea to the ChartAreas collection.
  912. ChartArea myChartArea = new ChartArea();
  913. myChartArea.BoundsMeasureType = MeasureType.Percentage;
  914. myChartArea.Bounds = new Rectangle(0, 10, 100, 80);
  915. myChartArea.Border.Thickness = 0;
  916. mychart.CompositeChart.ChartAreas.Add(myChartArea);
  917. //step3:Add some Axes to the ChartArea.
  918. AxisItem axisX = new AxisItem();
  919. axisX.OrientationType = AxisNumber.X_Axis;
  920. axisX.DataType = AxisDataType.String;
  921. axisX.SetLabelAxisType = SetLabelAxisType.GroupBySeries;
  922. axisX.Labels.ItemFormatString = "<ITEM_LABEL>";
  923. axisX.Labels.Visible = false;
  924. axisX.Labels.Orientation = TextOrientation.VerticalLeftFacing;
  925. AxisItem axisY = new AxisItem();
  926. axisY.OrientationType = AxisNumber.Y_Axis;
  927. axisY.DataType = AxisDataType.Numeric;
  928. axisY.Labels.ItemFormatString = "<DATA_VALUE:0.#>";
  929. axisY.Labels.SeriesLabels.VerticalAlign = System.Drawing.StringAlignment.Near;
  930. //axisY.Labels.VerticalAlign = System.Drawing.StringAlignment.Near;
  931. /*AisItem axisY1 = new AxisItem();
  932. axisY1.OrientationType = AxisNumber.Y2_Axis;
  933. axisY1.DataType = AxisDataType.Numeric;
  934. axisY1.TickmarkStyle = AxisTickStyle.Percentage;
  935. axisY1.TickmarkPercentage = 10;
  936. axisY1.Labels.ItemFormatString = "<DATA_VALUE:#>";
  937. axisY1.Labels.SeriesLabels.VerticalAlign = System.Drawing.StringAlignment.Near;
  938. */
  939. myChartArea.Axes.Add(axisX);
  940. myChartArea.Axes.Add(axisY);
  941. //ChartArea.Axes.Add(axisY1);
  942. //step4:Add some data series to the Series collection.
  943. string series_Label = "", selectstr, Point_value;
  944. DataView mydataview = myData.DefaultView;
  945. if (sign == "DGX")
  946. {
  947. series_Label = getprocess(myData.Rows[0]["processcode"].ToString());
  948. myselectstr = "processcode='" + myData.Rows[0]["processcode"].ToString() + "'";
  949. }
  950. else if (sign == "GX-BM")
  951. {
  952. mydataview.RowFilter = "processcode='" + ultraTree_scls.ActiveNode.Key + "'";
  953. mydataview.Sort = "processcode,dept_code";
  954. myData = mydataview.ToTable();
  955. series_Label = myData.Rows[0]["dept"].ToString();
  956. myselectstr = "dept_code='" + myData.Rows[0]["dept_code"].ToString() + "'";
  957. }
  958. else if (sign == "BM-CX")
  959. {
  960. mydataview.RowFilter = "processcode+dept_code='" + ultraTree_scls.ActiveNode.Key + "'";
  961. mydataview.Sort = "processcode,dept_code,pline_code";
  962. myData = mydataview.ToTable();
  963. series_Label = myData.Rows[0]["pline_name"].ToString();
  964. myselectstr = "pline_code='" + myData.Rows[0]["pline_code"].ToString() + "'";
  965. }
  966. NumericSeries series = new NumericSeries();
  967. series.Points.Clear();
  968. int i = 0;
  969. Color[] mycorlors = new Color[kfdataTable.Rows.Count];
  970. foreach (DataRow mykfrow in kfdataTable.Rows)
  971. {
  972. mycorlors[i] = sclsdrcorlorsdictionary[mykfrow["kf"].ToString()];
  973. if (columnchartpoint[i] != "")
  974. {
  975. selectstr = myselectstr + " and kf=" + mykfrow["kf"].ToString();
  976. Point_value = myData.Compute("count(kf)", selectstr).ToString();
  977. if (Point_value == "")
  978. Point_value = "0";
  979. series.Points.Add(new NumericDataPoint(Convert.ToDouble(Point_value), columnchartpoint[i], false));
  980. }
  981. i++;
  982. }
  983. series.Label = series_Label;
  984. mychart.Data.MinValue = 0;
  985. mychart.CompositeChart.Series.Add(series);
  986. //step5:Add a chart layer.
  987. ChartLayerAppearance myColumnLayer = new ChartLayerAppearance();
  988. myColumnLayer.ChartType = ChartType.ColumnChart;
  989. myColumnLayer.ChartArea = myChartArea;
  990. myColumnLayer.AxisX = axisX;
  991. myColumnLayer.AxisY = axisY;
  992. // myColumnLayer.AxisY2 = axisY1;
  993. myColumnLayer.Series.Clear();
  994. myColumnLayer.Series.Add(series);
  995. foreach (DataRow myrow in myData.Rows)
  996. {
  997. if (sign == "DGX")
  998. {
  999. series_Label = getprocess(myrow["processcode"].ToString());
  1000. }
  1001. else if (sign == "GX-BM")
  1002. {
  1003. series_Label = myrow["dept"].ToString();
  1004. }
  1005. else if (sign == "BM-CX")
  1006. {
  1007. series_Label = myrow["pline_name"].ToString();
  1008. }
  1009. if (series.Label != series_Label)
  1010. {
  1011. series = new NumericSeries();
  1012. series.Label = series_Label;
  1013. if (sign == "DGX")
  1014. {
  1015. myselectstr = "processcode='" + myrow["processcode"].ToString() + "'";
  1016. }
  1017. else if (sign == "GX-BM")
  1018. {
  1019. myselectstr = "dept_code='" + myrow["dept_code"].ToString() + "'";
  1020. }
  1021. else if (sign == "BM-CX")
  1022. {
  1023. myselectstr = "pline_code='" + myrow["pline_code"].ToString() + "'";
  1024. }
  1025. i = 0;
  1026. foreach (DataRow mykfrow in kfdataTable.Rows)
  1027. {
  1028. if (columnchartpoint[i] != "")
  1029. {
  1030. selectstr = myselectstr + " and kf=" + mykfrow["kf"].ToString();
  1031. Point_value = myData.Compute("count(kf)", selectstr).ToString();
  1032. if (Point_value == "")
  1033. Point_value = "0";
  1034. series.Points.Add(new NumericDataPoint(Convert.ToDouble(Point_value), columnchartpoint[i], false));
  1035. }
  1036. i++;
  1037. }
  1038. mychart.CompositeChart.Series.Add(series);
  1039. myColumnLayer.Series.Add(series);
  1040. }
  1041. }
  1042. if (myColumnLayer.Series.Count > 4)
  1043. {
  1044. myColumnLayer.AxisX.Labels.SeriesLabels.Orientation = TextOrientation.Custom;//.VerticalLeftFacing;
  1045. myColumnLayer.AxisX.Labels.SeriesLabels.OrientationAngle = 250;
  1046. myColumnLayer.AxisX.Labels.SeriesLabels.Flip = true;
  1047. }
  1048. mychart.CompositeChart.ChartLayers.Clear();
  1049. mychart.ColorModel.ModelStyle = ColorModels.CustomLinear;
  1050. mychart.ColorModel.CustomPalette = mycorlors;
  1051. mychart.CompositeChart.ChartLayers.Add(myColumnLayer);
  1052. //step6:Add a legend to the chart.
  1053. //CompositeLegend myLegend = new CompositeLegend();
  1054. //CompositeLegend a = new CompositeLegend();
  1055. Infragistics.UltraChart.Resources.Appearance.CompositeLegend myLegend = new Infragistics.UltraChart.Resources.Appearance.CompositeLegend();
  1056. //Infragistics.UltraChart.Resources.Appearance.CompositeLegendAppearance
  1057. myLegend.ChartLayers.Add(myColumnLayer);
  1058. myLegend.Bounds = new Rectangle(20, 90, 60, 8);
  1059. myLegend.BoundsMeasureType = MeasureType.Percentage;
  1060. myLegend.PE.ElementType = PaintElementType.Gradient;
  1061. myLegend.PE.FillGradientStyle = GradientStyle.ForwardDiagonal;
  1062. //myLegend.PE.Fill = Color.CornflowerBlue;
  1063. myLegend.PE.Fill = Color.FloralWhite;
  1064. myLegend.PE.FillStopColor = Color.Transparent;
  1065. myLegend.Border.CornerRadius = 10;
  1066. myLegend.Border.Thickness = 0;
  1067. mychart.CompositeChart.Legends.Clear();
  1068. mychart.CompositeChart.Legends.Add(myLegend);
  1069. }
  1070. private void getlinechart_scls_qj(UltraChart mychart, DataTable myData, string sign)
  1071. {
  1072. mychart.TitleBottom.Text = ((DateTime)this.scls_fromdate.Value).ToString("yyyy-MM-dd") + " - " + ((DateTime)this.scls_todate.Value).ToString("yyyy-MM-dd") + "区间生产流速扣分图";
  1073. DataView mydataview = myData.DefaultView;
  1074. if (sign == "DGX")
  1075. {
  1076. mydataview.RowFilter = "processcode='" + ultraTree_scls_qj.ActiveNode.Key + "'";
  1077. mydataview.Sort = "createdate";
  1078. myData = mydataview.ToTable();
  1079. mychart.TitleTop.Text = getprocess(myData.Rows[0]["processcode"].ToString());
  1080. }
  1081. else if (sign == "GX-BM")
  1082. {
  1083. mydataview.RowFilter = "processcode+dept_code='" + ultraTree_scls_qj.ActiveNode.Key + "'";
  1084. mydataview.Sort = "createdate";
  1085. myData = mydataview.ToTable();
  1086. mychart.TitleTop.Text = getprocess(myData.Rows[0]["processcode"].ToString()) + ":" + myData.Rows[0]["dept"];
  1087. }
  1088. else if (sign == "BM-CX")
  1089. {
  1090. mydataview.RowFilter = "pline_code='" + ultraTree_scls_qj.ActiveNode.Key + "'";
  1091. mydataview.Sort = "createdate";
  1092. myData = mydataview.ToTable();
  1093. mychart.TitleTop.Text = getprocess(myData.Rows[0]["processcode"].ToString()) + " - " + myData.Rows[0]["dept"] + ":" + myData.Rows[0]["pline_name"].ToString();
  1094. }
  1095. DataView dvls = myData.DefaultView;
  1096. dvls.Sort = "signxh";
  1097. DataTable dtls = dvls.ToTable(true, "sign");//注:其中ToTable()的第一个参数为是否DISTINCT
  1098. dtls.Columns["sign"].MaxLength = 50;
  1099. DataView dvdate = myData.DefaultView;
  1100. dvdate.Sort = "createdate";
  1101. DataTable dtdate = dvls.ToTable(true, "createdate");//注:其中ToTable()的第一个参数为是否DISTINCT
  1102. foreach (DataRow daterow in dtdate.Rows)
  1103. {
  1104. dtls.Columns.Add(daterow["createdate"].ToString(), typeof(decimal));
  1105. }
  1106. Color[] mycorlors = new Color[dtls.Rows.Count + 1];
  1107. int i_color = 0;
  1108. foreach (DataRow myrow in dtls.Rows)
  1109. {
  1110. mycorlors[i_color] = mycorlorsdictionary[myrow["sign"].ToString()];
  1111. i_color++;
  1112. string selectstr = "sign='" + myrow["sign"].ToString() + "'";
  1113. foreach (DataRow daterow in dtdate.Rows)
  1114. {
  1115. string myselectstr = " and createdate='" + daterow["createdate"].ToString() + "'";
  1116. string value = myData.Compute("sum(kf)", selectstr + myselectstr).ToString();
  1117. myrow[daterow["createdate"].ToString()] = value != "" ? Convert.ToDecimal(value) : 0;
  1118. }
  1119. myrow["sign"] = mynamedictionary[myrow["sign"].ToString()];
  1120. }
  1121. if (i_color > 1)
  1122. {
  1123. mycorlors[i_color] = mycorlorsdictionary["PJ"]; ;
  1124. DataRow mynewrow = dtls.NewRow();
  1125. mynewrow["sign"] = mynamedictionary["PJ"];
  1126. foreach (DataRow daterow in dtdate.Rows)
  1127. {
  1128. string value = dtls.Compute("avg([" + daterow["createdate"].ToString() + "])", "").ToString();
  1129. mynewrow[daterow["createdate"].ToString()] = value != "" ? Math.Round(Convert.ToDecimal(value), 0) : 0;
  1130. }
  1131. dtls.Rows.Add(mynewrow);
  1132. }
  1133. if (rB_line.Checked)
  1134. {
  1135. mychart.ChartType = ChartType.LineChart;
  1136. mychart.LineChart.Thickness = 2;
  1137. }
  1138. else if (rB_Radar.Checked)
  1139. {
  1140. mychart.ChartType = ChartType.RadarChart;
  1141. mychart.RadarChart.LineThickness = myLineThickness;
  1142. }
  1143. //mychart.Axis.Y.LogBase= 10;
  1144. mychart.Axis.Y.LogZero = -50;
  1145. mychart.Data.DataSource = dtls;
  1146. UltraChart_scls_qj.Data.IncludeColumn(0, false);
  1147. UltraChart_scls_qj.Data.MinValue = 0;
  1148. UltraChart_scls_qj.Data.UseMinMax = true;
  1149. UltraChart_scls_qj.Data.ZeroAligned = true;
  1150. /*foreach (ChartTextAppearance mylinetext in UltraChart_scls_qj.LineChart.ChartText)
  1151. {
  1152. mylinetext.ItemFormatString = "<ITEM_LABEL>";
  1153. mylinetext.Visible = true;
  1154. }*/
  1155. UltraChart_scls_qj.ColorModel.ModelStyle = ColorModels.CustomLinear;
  1156. UltraChart_scls_qj.ColorModel.CustomPalette = mycorlors;
  1157. mychart.Axis.X.Labels.Orientation = TextOrientation.Custom;
  1158. mychart.Axis.X.Labels.OrientationAngle = 80;
  1159. mychart.Axis.X.Labels.VerticalAlign = StringAlignment.Far;
  1160. //mychart.Axis.X.Labels.Flip = false;
  1161. mychart.Data.DataBind();
  1162. }
  1163. private void getpiechart_scls(string title, UltraChart mychart, DataTable myData, string sign)
  1164. {
  1165. //创建绘图区域
  1166. ChartArea myChartArea = new ChartArea();
  1167. myChartArea.BoundsMeasureType = MeasureType.Percentage;
  1168. myChartArea.Bounds = new Rectangle(0, 0, 100, 80);
  1169. myChartArea.Border.Thickness = 0;
  1170. //表明ChartArea绘图区域占整个UltraChart的比例:宽100%,高80%,位置呢从左顶点(0,0)起
  1171. //创建X轴线
  1172. AxisItem xAxis = new AxisItem();
  1173. xAxis.axisNumber = AxisNumber.X_Axis;
  1174. xAxis.Labels.Visible = false;
  1175. xAxis.Labels.Orientation = TextOrientation.VerticalLeftFacing;
  1176. xAxis.DataType = AxisDataType.String;
  1177. xAxis.SetLabelAxisType = SetLabelAxisType.GroupBySeries;
  1178. xAxis.Labels.ItemFormatString = "<ITEM_LABEL>";
  1179. xAxis.Extent = 10;
  1180. //此处Extent决定着X轴线偏离绘图区域边界的大小,恰当设置轴线的Extent值可以调整图表区域的大小
  1181. //控件默认数据绑定
  1182. //Infragistics.UltraChart.Resources.Util.DemoSetup(UltraChart2);
  1183. //Infragistics的UltraChart为其每个图表类型定制了完美的数据,这可以从其图表向导里看到。
  1184. //我们并没有指定图表的数据,但是我们所设置好图表属性后,生成的图表默认就绑定了些数据,
  1185. //这就是控件所定制而来。
  1186. //图表轴向间距:可以按百分比控制设置
  1187. string selectstr = "";
  1188. if (sign == "DGX")
  1189. {
  1190. selectstr = "processcode='" + title.Substring(0, 1) + "'";
  1191. }
  1192. else if (sign == "GX-BM")
  1193. {
  1194. selectstr = "processcode='" + UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) + "' and dept='" + title + "'";
  1195. }
  1196. else if (sign == "BM-CX")
  1197. {
  1198. selectstr = "pline_name='" + title + "'";
  1199. }
  1200. selectstr += " and kf>0";
  1201. NumericSeries series = new NumericSeries();
  1202. double total = Convert.ToDouble(myData.Compute("count(kf)",selectstr ).ToString() == "" ? "0" : myData.Compute("count(kf)", selectstr).ToString());
  1203. int i = 0,j=0;
  1204. Color[] mycorlors = new Color[kfdataTable.Rows.Count];
  1205. foreach (DataRow mykfrow in kfdataTable.Rows)
  1206. {
  1207. mycorlors[i] = sclsdrcorlorsdictionary[mykfrow["kf"].ToString()];
  1208. if (columnchartpoint[i] != "")
  1209. {
  1210. double P_value = 0,P_valuep = 0;
  1211. String Point_value = myData.Compute("count(kf)", selectstr + " and kf=" + mykfrow["kf"].ToString()).ToString();
  1212. if (Point_value == "")
  1213. Point_value = "0";
  1214. else
  1215. {
  1216. P_valuep = Math.Round(Convert.ToDouble(Point_value) / total * 100, 2);
  1217. P_value = Convert.ToDouble(Point_value);
  1218. }
  1219. NumericDataPoint datapoint = new NumericDataPoint(P_value, piechartpoint[i] + "(共:" + Point_value + "炉次,占:" + P_valuep.ToString() + "%)", false);
  1220. //datapoint.Label = Point_value + "(" + P_value.ToString() + ")";
  1221. series.Points.Add(datapoint);
  1222. }
  1223. i++;
  1224. }
  1225. mychart.CompositeChart.Series.Clear();
  1226. mychart.CompositeChart.Series.Add(series);
  1227. //step5:Add a chart layer.
  1228. /*ChartLayerAppearance mypieLayer = new ChartLayerAppearance();
  1229. mypieLayer.ChartType = ChartType.PieChart;
  1230. mypieLayer.ChartArea = myChartArea;
  1231. mypieLayer.Series.Add(series);*/
  1232. mychart.TitleTop.Text = title;
  1233. if (rB_dc.Checked)
  1234. mychart.TitleBottom.Text = rB_dc.Text;
  1235. else if (rB_qx.Checked)
  1236. mychart.TitleBottom.Text = rB_qx.Text;
  1237. else if (rB_dpsp.Checked)
  1238. mychart.TitleBottom.Text = rB_dpsp.Text;
  1239. else if (rB_dppd.Checked)
  1240. mychart.TitleBottom.Text = rB_dppd.Text;
  1241. else if (rB_lxwt.Checked)
  1242. mychart.TitleBottom.Text = rB_lxwt.Text;
  1243. else if (rB_lxfx.Checked)
  1244. mychart.TitleBottom.Text = rB_lxfx.Text;
  1245. else if (rB_fp.Checked)
  1246. mychart.TitleBottom.Text = rB_fp.Text;
  1247. mychart.Axis.Y.TickmarkStyle = AxisTickStyle.Percentage;
  1248. mychart.Axis.Y.TickmarkPercentage = 10;
  1249. //图表轴向间距:可以按照指定数据间隔设置
  1250. mychart.Axis.Y.TickmarkStyle = AxisTickStyle.DataInterval;
  1251. mychart.Axis.Y.TickmarkInterval = 15;
  1252. //设置图表轴向标签倾角
  1253. mychart.Axis.X.Labels.Orientation = Infragistics.UltraChart.Shared.Styles.TextOrientation.Custom;
  1254. mychart.Axis.X.Labels.OrientationAngle = 240;
  1255. mychart.Axis.X.Labels.Flip = true;
  1256. //在饼图上显示提示信息来代替显示数据百分比值
  1257. mychart.PieChart.Labels.Format = Infragistics.UltraChart.Shared.Styles.PieLabelFormat.ItemLabel;
  1258. mychart.PieChart.Labels.FormatString = "<ITEM_LABEL>";
  1259. mychart.CompositeChart.ChartAreas.Clear();
  1260. mychart.ColorModel.ModelStyle = ColorModels.CustomLinear;
  1261. mychart.ColorModel.CustomPalette = mycorlors;
  1262. mychart.CompositeChart.ChartAreas.Add(myChartArea);
  1263. Infragistics.UltraChart.Resources.Appearance.CompositeLegend myLegend = new Infragistics.UltraChart.Resources.Appearance.CompositeLegend();
  1264. //Infragistics.UltraChart.Resources.Appearance.CompositeLegendAppearance
  1265. //myLegend.ChartLayers.Add(mypieLayer);
  1266. myLegend.Bounds = new Rectangle(2, 90, 36, 6);
  1267. myLegend.BoundsMeasureType = MeasureType.Percentage;
  1268. myLegend.PE.ElementType = PaintElementType.Gradient;
  1269. myLegend.PE.FillGradientStyle = GradientStyle.ForwardDiagonal;
  1270. myLegend.PE.Fill = Color.CornflowerBlue;
  1271. myLegend.PE.FillStopColor = Color.Transparent;
  1272. myLegend.Border.CornerRadius = 10;
  1273. myLegend.Border.Thickness = 0;
  1274. mychart.CompositeChart.Legends.Add(myLegend);
  1275. }
  1276. private DataTable getprocesssum(DataTable dt)
  1277. {
  1278. DataTable dtResult = new DataTable();
  1279. dtResult.Columns.Add("processcode", Type.GetType("System.String"));
  1280. dtResult.Columns.Add("kf", Type.GetType("System.String"));
  1281. dtResult.Columns.Add("kfsm", Type.GetType("System.String"));
  1282. DataTable dtName = dt.DefaultView.ToTable(true, "processcode", "kf");
  1283. for (int i = 0; i < dtName.Rows.Count; i++)
  1284. {
  1285. DataRow[] rows = dt.Select("processcode='" + dtName.Rows[i][0] + "' and kf=" + dtName.Rows[i][1] + "");
  1286. //temp用来存储筛选出来的数据
  1287. DataTable temp = dtResult.Clone();
  1288. foreach (DataRow row in rows)
  1289. {
  1290. temp.Rows.Add(row.ItemArray);
  1291. }
  1292. DataRow dr = dtResult.NewRow();
  1293. dr["processcode"] = dtName.Rows[i]["processcode"].ToString();
  1294. dr["kf"] = temp.Compute("sum(kf)", "");
  1295. dr["kfsm"] = temp.Compute("max(kfsm)", "");
  1296. dtResult.Rows.Add(dr);
  1297. }
  1298. return dtResult;
  1299. }
  1300. /// <summary>
  1301. /// 刷新Grid数据并根据数据调整Grid列宽
  1302. /// </summary>
  1303. /// <param name="ultraGrid">需要处理的Grid</param>
  1304. public static void RefreshAndAutoSize(Infragistics.Win.UltraWinGrid.UltraGrid ultraGrid)
  1305. {
  1306. try
  1307. {
  1308. ultraGrid.DataBind();
  1309. foreach (Infragistics.Win.UltraWinGrid.UltraGridBand band in ultraGrid.DisplayLayout.Bands)
  1310. {
  1311. foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn column in band.Columns)
  1312. {
  1313. column.PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand);
  1314. }
  1315. }
  1316. ultraGrid.Refresh();
  1317. }
  1318. catch { }
  1319. }
  1320. private string getprocess(string processcode)
  1321. {
  1322. switch (processcode)
  1323. {
  1324. case "A":
  1325. return processcode + "-炼钢";
  1326. case "B":
  1327. return processcode + "-铸造";
  1328. case "D":
  1329. return processcode + "-轧管";
  1330. case "E":
  1331. return processcode + "-镦拔扩";
  1332. case "F":
  1333. return processcode + "-热处理";
  1334. case "G":
  1335. return processcode + "-加工";
  1336. default:
  1337. return "";
  1338. }
  1339. }
  1340. private void getproccestree(UltraTree myultraTree, DataTable mytable, String sign = "")
  1341. {
  1342. myultraTree.Nodes.Clear();
  1343. myultraTree.NodeConnectorColor = System.Drawing.SystemColors.ControlDark;
  1344. UltraTreeNode treeNode, processNode, deptNode, plineNode;
  1345. string processkey, deptkey, plinekey;
  1346. if (mytable.Rows.Count > 0)
  1347. {
  1348. treeNode = new UltraTreeNode();
  1349. if (sign == "")
  1350. {
  1351. treeNode.Key = "1";
  1352. treeNode.Text = "大工序";
  1353. AddTreeNode(myultraTree, treeNode, null);
  1354. }
  1355. processkey = mytable.Rows[0]["processcode"].ToString();
  1356. deptkey = mytable.Rows[0]["processcode"].ToString() + mytable.Rows[0]["dept_code"].ToString();
  1357. plinekey = mytable.Rows[0]["pline_code"].ToString();
  1358. processNode = new UltraTreeNode();
  1359. processNode.Key = processkey;
  1360. processNode.Text = getprocess(processkey);
  1361. if (sign == "")
  1362. {
  1363. AddTreeNode(myultraTree, processNode, treeNode);
  1364. }
  1365. else
  1366. {
  1367. AddTreeNode(myultraTree, processNode, null);
  1368. }
  1369. deptNode = new UltraTreeNode();
  1370. deptNode.Key = deptkey;
  1371. deptNode.Text = mytable.Rows[0]["dept"].ToString();
  1372. AddTreeNode(myultraTree, deptNode, processNode);
  1373. plineNode = new UltraTreeNode();
  1374. plineNode.Key = plinekey;
  1375. plineNode.Text = mytable.Rows[0]["pline_name"].ToString();
  1376. AddTreeNode(myultraTree, plineNode, deptNode);
  1377. foreach (DataRow myrow in mytable.Rows)
  1378. {
  1379. processkey = myrow["processcode"].ToString();
  1380. deptkey = myrow["processcode"].ToString() + myrow["dept_code"].ToString();
  1381. plinekey = myrow["pline_code"].ToString();
  1382. if (plineNode.Key != plinekey && deptNode.Key == deptkey && processNode.Key == processkey)
  1383. {
  1384. plineNode = new UltraTreeNode();
  1385. plineNode.Key = myrow["pline_code"].ToString();
  1386. plineNode.Text = myrow["pline_name"].ToString();
  1387. AddTreeNode(myultraTree, plineNode, deptNode);
  1388. }
  1389. if (deptNode.Key != deptkey && processNode.Key == processkey)
  1390. {
  1391. deptNode = new UltraTreeNode();
  1392. deptNode.Key = myrow["processcode"].ToString() + myrow["dept_code"].ToString();
  1393. deptNode.Text = myrow["dept"].ToString();
  1394. AddTreeNode(myultraTree, deptNode, processNode);
  1395. plineNode = new UltraTreeNode();
  1396. plineNode.Key = myrow["pline_code"].ToString();
  1397. plineNode.Text = myrow["pline_name"].ToString();
  1398. AddTreeNode(myultraTree, plineNode, deptNode);
  1399. }
  1400. if (processNode.Key != processkey)
  1401. {
  1402. processNode = new UltraTreeNode();
  1403. processNode.Key = myrow["processcode"].ToString();
  1404. processNode.Text = getprocess(processNode.Key);
  1405. if (sign == "")
  1406. {
  1407. AddTreeNode(myultraTree, processNode, treeNode);
  1408. }
  1409. else
  1410. {
  1411. AddTreeNode(myultraTree, processNode, null);
  1412. }
  1413. deptNode = new UltraTreeNode();
  1414. deptNode.Key = myrow["processcode"].ToString() + myrow["dept_code"].ToString();
  1415. deptNode.Text = myrow["dept"].ToString();
  1416. AddTreeNode(myultraTree, deptNode, processNode);
  1417. plineNode = new UltraTreeNode();
  1418. plineNode.Key = myrow["pline_code"].ToString();
  1419. plineNode.Text = myrow["pline_name"].ToString();
  1420. AddTreeNode(myultraTree, plineNode, deptNode);
  1421. }
  1422. }
  1423. }
  1424. }
  1425. private void getchart()
  1426. {
  1427. // 在此处放置用户代码以初始化页面
  1428. //step1:Change the ChartType property to "Composite."
  1429. UltraColumnChart_scls.Visible = true;
  1430. this.UltraColumnChart_scls.ChartType = ChartType.Composite;
  1431. //step2:Add a ChartArea to the ChartAreas collection.
  1432. ChartArea myChartArea = new ChartArea();
  1433. this.UltraColumnChart_scls.CompositeChart.ChartAreas.Add(myChartArea);
  1434. //step3:Add some Axes to the ChartArea.
  1435. AxisItem axisX = new AxisItem();
  1436. axisX.OrientationType = AxisNumber.X_Axis;
  1437. axisX.DataType = AxisDataType.String;
  1438. axisX.SetLabelAxisType = SetLabelAxisType.GroupBySeries;
  1439. axisX.Labels.ItemFormatString = "<ITEM_LABEL>";
  1440. axisX.Labels.Orientation = TextOrientation.VerticalLeftFacing;
  1441. AxisItem axisY = new AxisItem();
  1442. axisY.OrientationType = AxisNumber.Y_Axis;
  1443. axisY.DataType = AxisDataType.Numeric;
  1444. axisY.Labels.ItemFormatString = "<DATA_VALUE:0.#>";
  1445. myChartArea.Axes.Add(axisX); myChartArea.Axes.Add(axisY);
  1446. //step4:Add some data series to the Series collection.
  1447. NumericSeries seriesA = GetNumericSeriesBound();
  1448. NumericSeries seriesB = GetNumericSeriesUnBound();
  1449. this.UltraColumnChart_scls.CompositeChart.Series.Add(seriesA);
  1450. this.UltraColumnChart_scls.CompositeChart.Series.Add(seriesB);
  1451. //step5:Add a chart layer.
  1452. ChartLayerAppearance myColumnLayer = new ChartLayerAppearance();
  1453. myColumnLayer.ChartType = ChartType.StackColumnChart;//.ColumnChart;
  1454. myColumnLayer.ChartArea = myChartArea;
  1455. myColumnLayer.AxisX = axisX;
  1456. myColumnLayer.AxisY = axisY;
  1457. myColumnLayer.Series.Add(seriesA);
  1458. myColumnLayer.Series.Add(seriesB);
  1459. this.UltraColumnChart_scls.CompositeChart.ChartLayers.Add(myColumnLayer);
  1460. //step6:Add a legend to the chart.
  1461. //CompositeLegend myLegend = new CompositeLegend();
  1462. //CompositeLegend a = new CompositeLegend();
  1463. Infragistics.UltraChart.Resources.Appearance.CompositeLegend myLegend = new Infragistics.UltraChart.Resources.Appearance.CompositeLegend();
  1464. //Infragistics.UltraChart.Resources.Appearance.CompositeLegendAppearance myLegend = new CompositeLegendAppearance();
  1465. myLegend.ChartLayers.Add(myColumnLayer);
  1466. myLegend.Bounds = new Rectangle(0, 75, 20, 25);
  1467. myLegend.BoundsMeasureType = MeasureType.Percentage;
  1468. myLegend.PE.ElementType = PaintElementType.Gradient;
  1469. myLegend.PE.FillGradientStyle = GradientStyle.ForwardDiagonal;
  1470. myLegend.PE.Fill = Color.CornflowerBlue;
  1471. myLegend.PE.FillStopColor = Color.Transparent;
  1472. myLegend.Border.CornerRadius = 10;
  1473. myLegend.Border.Thickness = 0;
  1474. this.UltraColumnChart_scls.CompositeChart.Legends.Add(myLegend);
  1475. }
  1476. private DataTable GetData()
  1477. {
  1478. DataTable table = new DataTable();
  1479. table.Columns.Add("Label Column", Type.GetType("System.String"));
  1480. table.Columns.Add("Value Column", Type.GetType("System.Double"));
  1481. table.Columns.Add("Another Value Column", Type.GetType("System.Double"));
  1482. table.Rows.Add(new object[] { "Point A", 1.0, 3.0 });
  1483. table.Rows.Add(new object[] { "Point B", 2.0, 2.0 });
  1484. table.Rows.Add(new object[] { "Point C", 3.0, 1.0 });
  1485. table.Rows.Add(new object[] { "Point D", 4.0, 2.0 });
  1486. table.Rows.Add(new object[] { "Point E", 5.0, 3.0 });
  1487. return table;
  1488. }
  1489. /// <summary> /// 绑定数据,数据库 /// </summary>
  1490. private NumericSeries GetNumericSeriesBound()
  1491. {
  1492. NumericSeries series = new NumericSeries();
  1493. series.Label = "Series A";
  1494. DataTable table = GetData();
  1495. series.Data.DataSource = table;
  1496. series.Data.LabelColumn = "Label Column";
  1497. series.Data.ValueColumn = "Value Column";
  1498. return series;
  1499. }
  1500. /// <summary> /// 绑定数据 /// </summary>
  1501. private NumericSeries GetNumericSeriesUnBound()
  1502. {
  1503. NumericSeries series = new NumericSeries();
  1504. series.Label = "Series B";
  1505. series.Points.Add(new NumericDataPoint(5.0, "Point A", false));
  1506. series.Points.Add(new NumericDataPoint(4.0, "Point B", false));
  1507. series.Points.Add(new NumericDataPoint(3.0, "Point C", false));
  1508. series.Points.Add(new NumericDataPoint(2.0, "Point D", false));
  1509. series.Points.Add(new NumericDataPoint(1.0, "Point E", false));
  1510. return series;
  1511. }
  1512. private void getpiechart()
  1513. {
  1514. UltraPieChart_scls.Visible = true;
  1515. //创建绘图区域
  1516. ChartArea myChartArea = new ChartArea();
  1517. myChartArea.BoundsMeasureType = MeasureType.Percentage;
  1518. myChartArea.Bounds = new Rectangle(0, 0, 100, 80);
  1519. myChartArea.Border.Thickness = 0;
  1520. //表明ChartArea绘图区域占整个UltraChart的比例:宽100%,高80%,位置呢从左顶点(0,0)起
  1521. //创建X轴线
  1522. AxisItem xAxis = new AxisItem();
  1523. xAxis.axisNumber = AxisNumber.X_Axis;
  1524. xAxis.Labels.Orientation = TextOrientation.VerticalLeftFacing;
  1525. xAxis.DataType = AxisDataType.String;
  1526. xAxis.SetLabelAxisType = SetLabelAxisType.GroupBySeries;
  1527. xAxis.Labels.ItemFormatString = "<ITEM_LABEL>";
  1528. xAxis.Extent = 10;
  1529. //此处Extent决定着X轴线偏离绘图区域边界的大小,恰当设置轴线的Extent值可以调整图表区域的大小
  1530. //控件默认数据绑定
  1531. //Infragistics.UltraChart.Resources.Util.DemoSetup(UltraChart2);
  1532. //Infragistics的UltraChart为其每个图表类型定制了完美的数据,这可以从其图表向导里看到。
  1533. //我们并没有指定图表的数据,但是我们所设置好图表属性后,生成的图表默认就绑定了些数据,
  1534. //这就是控件所定制而来。
  1535. //图表轴向间距:可以按百分比控制设置
  1536. NumericSeries series = new NumericSeries();
  1537. /*series.Points.Add(new NumericDataPoint(10, "扣2分", false));
  1538. series.Points.Add(new NumericDataPoint(20, "扣1分", false));
  1539. series.Points.Add(new NumericDataPoint(70, "正常", false));*/
  1540. double total = 62 + 41 + 188;
  1541. series.Points.Add(new NumericDataPoint(62 / total * 100, "扣2分", false));
  1542. series.Points.Add(new NumericDataPoint(41 / total * 100, "扣1分", false));
  1543. series.Points.Add(new NumericDataPoint(188 / total * 100, "正常", false));
  1544. //series.Points.Add(new NumericDataPoint(10, "Up", false));
  1545. //series.Points.Add(new NumericDataPoint(15, "Warning", false));
  1546. //series.Points.Add(new NumericDataPoint(20, "Critical", false));
  1547. //series.Points.Add(new NumericDataPoint(24, "Down", false));
  1548. //series.Points.Add(new NumericDataPoint(15, "Unknown", false));
  1549. //series.Points.Add(new NumericDataPoint(1, "Unreachable", false));
  1550. UltraPieChart_scls.CompositeChart.Series.Add(series);
  1551. /*series = new NumericSeries();
  1552. total = 77 + 55 + 208;
  1553. series.Points.Add(new NumericDataPoint(77 / total * 100, "扣2分", false));
  1554. series.Points.Add(new NumericDataPoint(55 / total * 100, "扣1分", false));
  1555. series.Points.Add(new NumericDataPoint(208 / total * 100, "正常", false));
  1556. UltraPieChart_dc.CompositeChart.Series.Add(series);*/
  1557. UltraPieChart_scls.TitleTop.Text = "轧管";
  1558. UltraPieChart_scls.Axis.Y.Labels.Visible = false;
  1559. UltraPieChart_scls.Axis.Y.TickmarkStyle = AxisTickStyle.Percentage;
  1560. UltraPieChart_scls.Axis.Y.TickmarkPercentage = 10;
  1561. //图表轴向间距:可以按照指定数据间隔设置
  1562. UltraPieChart_scls.Axis.Y.TickmarkStyle = AxisTickStyle.DataInterval;
  1563. UltraPieChart_scls.Axis.Y.TickmarkInterval = 15;
  1564. //设置图表轴向标签倾角
  1565. UltraPieChart_scls.Axis.X.Labels.Orientation = Infragistics.UltraChart.Shared.Styles.TextOrientation.Custom;
  1566. UltraPieChart_scls.Axis.X.Labels.OrientationAngle = 240;
  1567. UltraPieChart_scls.Axis.X.Labels.Flip = true;
  1568. //在饼图上显示提示信息来代替显示数据百分比值
  1569. UltraPieChart_scls.PieChart.Labels.Format = Infragistics.UltraChart.Shared.Styles.PieLabelFormat.ItemLabel;
  1570. UltraPieChart_scls.PieChart.Labels.FormatString = "<ITEM_LABEL>";
  1571. UltraPieChart_scls.PieChart.Labels.Visible = false;
  1572. UltraPieChart_scls.CompositeChart.ChartAreas.Add(myChartArea);
  1573. Infragistics.UltraChart.Resources.Appearance.CompositeLegend myLegend = new Infragistics.UltraChart.Resources.Appearance.CompositeLegend();
  1574. myLegend.Bounds = new Rectangle(0, 75, 20, 25);
  1575. myLegend.BoundsMeasureType = MeasureType.Percentage;
  1576. myLegend.PE.ElementType = PaintElementType.Gradient;
  1577. myLegend.PE.FillGradientStyle = GradientStyle.ForwardDiagonal;
  1578. myLegend.PE.Fill = Color.CornflowerBlue;
  1579. myLegend.PE.FillStopColor = Color.Transparent;
  1580. myLegend.Border.CornerRadius = 10;
  1581. myLegend.Border.Thickness = 0;
  1582. this.UltraPieChart_scls.CompositeChart.Legends.Add(myLegend);
  1583. }
  1584. private void AddTreeNode(UltraTree myUltraTree, UltraTreeNode node, UltraTreeNode parentnode)
  1585. {
  1586. if (parentnode != null)
  1587. {
  1588. parentnode.Nodes.Add(node);
  1589. }
  1590. else
  1591. {
  1592. myUltraTree.Nodes.Add(node);
  1593. }
  1594. }
  1595. private void setgridcolunmName(Infragistics.Win.UltraWinGrid.UltraGrid ultraGrid, String sign)
  1596. {
  1597. Dictionary<string, string> gridcolunmnames = new Dictionary<string, string>();
  1598. if (sign == "DC")
  1599. {
  1600. gridcolunmnames.Add("PROCESSCODE", "大工序");
  1601. gridcolunmnames.Add("AREA", "区域");
  1602. gridcolunmnames.Add("AREA_CODE", "区域代码");
  1603. gridcolunmnames.Add("DEPT", "部门");
  1604. gridcolunmnames.Add("DEPT_CODE", "部门代码");
  1605. gridcolunmnames.Add("PLINE_NAME", "产线名称");
  1606. gridcolunmnames.Add("PLINE_CODE", "产线代码");
  1607. gridcolunmnames.Add("HEAT_PLAN_NO", "本工序炉计划ID");
  1608. gridcolunmnames.Add("JUDGE_STOVE_NO", "判定炉号");
  1609. gridcolunmnames.Add("CREATE_TIME", "炉计划创建时间");
  1610. gridcolunmnames.Add("BJ_TIME", "比较时间");
  1611. gridcolunmnames.Add("DC_HOURS", "待产小时数");
  1612. gridcolunmnames.Add("DC_DAYS", "待产天数");
  1613. gridcolunmnames.Add("KF", "扣分");
  1614. gridcolunmnames.Add("KFSM", "扣分说明");
  1615. gridcolunmnames.Add("PLANSTATUS", "计划状态");
  1616. gridcolunmnames.Add("ORDERNO", "合同号");
  1617. gridcolunmnames.Add("CREATETIME", "创建时间");
  1618. gridcolunmnames.Add("SPEC_NAME", "规格");
  1619. gridcolunmnames.Add("STEELNAME", "钢级");
  1620. gridcolunmnames.Add("PRODUCNAME", "品种");
  1621. gridcolunmnames.Add("MODEL_DESC", "扣型");
  1622. gridcolunmnames.Add("PLN_OUTSINGLE_NUM", "支数");
  1623. gridcolunmnames.Add("PLN_OUTSINGLE_W", "重量");
  1624. gridcolunmnames.Add("QZ", "权重");
  1625. gridcolunmnames.Add("cl_status".ToUpper(), "已处理否");
  1626. }
  1627. else if (sign == "QX")
  1628. {
  1629. gridcolunmnames.Add("PROCESSCODE", "大工序");
  1630. gridcolunmnames.Add("AREA", "区域");
  1631. gridcolunmnames.Add("AREA_CODE", "区域代码");
  1632. gridcolunmnames.Add("DEPT", "部门");
  1633. gridcolunmnames.Add("DEPT_CODE", "部门代码");
  1634. gridcolunmnames.Add("PLINE_NAME", "产线名称");
  1635. gridcolunmnames.Add("PLINE_CODE", "产线代码");
  1636. gridcolunmnames.Add("HEAT_PLAN_NO", "本工序炉计划ID");
  1637. gridcolunmnames.Add("JUDGE_STOVE_NO", "判定炉号");
  1638. gridcolunmnames.Add("feed_heat_no".ToUpper(), "上料炉号");
  1639. gridcolunmnames.Add("feed_time".ToUpper(), "上料时间");
  1640. gridcolunmnames.Add("FX_time".ToUpper(), "返线时间");
  1641. gridcolunmnames.Add("BJ_TIME", "比较时间");
  1642. gridcolunmnames.Add("DC_HOURS", "在线小时数");
  1643. gridcolunmnames.Add("DC_DAYS", "在线天数");
  1644. gridcolunmnames.Add("KF", "扣分");
  1645. gridcolunmnames.Add("KFSM", "扣分说明");
  1646. gridcolunmnames.Add("ORDERNO", "合同号");
  1647. gridcolunmnames.Add("nowork_times_days".ToUpper(), "某天非工作小时");
  1648. gridcolunmnames.Add("nowork_times_days_desc".ToUpper(), "某天非工作小时说明");
  1649. gridcolunmnames.Add("nowork_times".ToUpper(), "每天非工作小时说明");
  1650. gridcolunmnames.Add("nowork_times_desc".ToUpper(), "每天非工作小时说明");
  1651. gridcolunmnames.Add("nowork_days".ToUpper(), "非工作日天数");
  1652. gridcolunmnames.Add("nowork_days_desc".ToUpper(), "非工作日说明");
  1653. gridcolunmnames.Add("CREATETIME", "创建时间");
  1654. gridcolunmnames.Add("QZ", "权重");
  1655. gridcolunmnames.Add("cl_status".ToUpper(), "已处理否");
  1656. }
  1657. else if (sign == "DPSP")
  1658. {
  1659. gridcolunmnames.Add("PROCESSCODE", "大工序");
  1660. gridcolunmnames.Add("AREA", "区域");
  1661. gridcolunmnames.Add("AREA_CODE", "区域代码");
  1662. gridcolunmnames.Add("DEPT", "部门");
  1663. gridcolunmnames.Add("DEPT_CODE", "部门代码");
  1664. gridcolunmnames.Add("PLINE_NAME", "产线名称");
  1665. gridcolunmnames.Add("PLINE_CODE", "产线代码");
  1666. gridcolunmnames.Add("HEAT_PLAN_NO", "本工序炉计划ID");
  1667. gridcolunmnames.Add("JUDGE_STOVE_NO", "判定炉号");
  1668. gridcolunmnames.Add("batch_no".ToUpper(), "批号");
  1669. gridcolunmnames.Add("in_time".ToUpper(), "入库时间");
  1670. gridcolunmnames.Add("sp_time".ToUpper(), "送判时间");
  1671. gridcolunmnames.Add("BJ_TIME", "比较时间");
  1672. gridcolunmnames.Add("DC_HOURS", "待送判小时数");
  1673. gridcolunmnames.Add("DC_DAYS", "待送判天数");
  1674. gridcolunmnames.Add("KF", "扣分");
  1675. gridcolunmnames.Add("KFSM", "扣分说明");
  1676. gridcolunmnames.Add("ORDERNO", "合同号");
  1677. gridcolunmnames.Add("CREATETIME", "创建时间");
  1678. gridcolunmnames.Add("QZ", "权重");
  1679. gridcolunmnames.Add("cl_status".ToUpper(), "已处理否");
  1680. }
  1681. else if (sign == "DPPD")
  1682. {
  1683. gridcolunmnames.Add("PROCESSCODE", "大工序");
  1684. gridcolunmnames.Add("AREA", "区域");
  1685. gridcolunmnames.Add("AREA_CODE", "区域代码");
  1686. gridcolunmnames.Add("DEPT", "部门");
  1687. gridcolunmnames.Add("DEPT_CODE", "部门代码");
  1688. gridcolunmnames.Add("PLINE_NAME", "产线名称");
  1689. gridcolunmnames.Add("PLINE_CODE", "产线代码");
  1690. gridcolunmnames.Add("HEAT_PLAN_NO", "本工序炉计划ID");
  1691. gridcolunmnames.Add("JUDGE_STOVE_NO", "判定炉号");
  1692. gridcolunmnames.Add("batch_no".ToUpper(), "批号");
  1693. gridcolunmnames.Add("sp_time".ToUpper(), "送判时间");
  1694. gridcolunmnames.Add("pd_time".ToUpper(), "判定时间");
  1695. gridcolunmnames.Add("BJ_TIME", "比较时间");
  1696. gridcolunmnames.Add("DC_HOURS", "待判定小时数");
  1697. gridcolunmnames.Add("DC_DAYS", "待判定天数");
  1698. gridcolunmnames.Add("KF", "扣分");
  1699. gridcolunmnames.Add("KFSM", "扣分说明");
  1700. gridcolunmnames.Add("ORDERNO", "合同号");
  1701. gridcolunmnames.Add("CREATETIME", "创建时间");
  1702. gridcolunmnames.Add("QZ", "权重");
  1703. gridcolunmnames.Add("cl_status".ToUpper(), "已处理否");
  1704. }
  1705. else if (sign == "LXWT")
  1706. {
  1707. gridcolunmnames.Add("PROCESSCODE", "大工序");
  1708. gridcolunmnames.Add("AREA", "区域");
  1709. gridcolunmnames.Add("AREA_CODE", "区域代码");
  1710. gridcolunmnames.Add("DEPT", "部门");
  1711. gridcolunmnames.Add("DEPT_CODE", "部门代码");
  1712. gridcolunmnames.Add("PLINE_NAME", "产线名称");
  1713. gridcolunmnames.Add("PLINE_CODE", "产线代码");
  1714. gridcolunmnames.Add("HEAT_PLAN_NO", "本工序炉计划ID");
  1715. gridcolunmnames.Add("JUDGE_STOVE_NO", "判定炉号");
  1716. gridcolunmnames.Add("batch_no".ToUpper(), "批号");
  1717. gridcolunmnames.Add("offline_time".ToUpper(), "离线时间");
  1718. gridcolunmnames.Add("BJ_TIME", "比较时间");
  1719. gridcolunmnames.Add("DC_HOURS", "待委托小时数");
  1720. gridcolunmnames.Add("DC_DAYS", "待委托天数");
  1721. gridcolunmnames.Add("KF", "扣分");
  1722. gridcolunmnames.Add("KFSM", "扣分说明");
  1723. gridcolunmnames.Add("ORDERNO", "合同号");
  1724. gridcolunmnames.Add("CREATETIME", "创建时间");
  1725. gridcolunmnames.Add("QZ", "权重");
  1726. gridcolunmnames.Add("cl_status".ToUpper(), "已处理否");
  1727. }
  1728. else if (sign == "LXFX")
  1729. {
  1730. gridcolunmnames.Add("PROCESSCODE", "大工序");
  1731. gridcolunmnames.Add("AREA", "区域");
  1732. gridcolunmnames.Add("AREA_CODE", "区域代码");
  1733. gridcolunmnames.Add("DEPT", "部门");
  1734. gridcolunmnames.Add("DEPT_CODE", "部门代码");
  1735. gridcolunmnames.Add("PLINE_NAME", "产线名称");
  1736. gridcolunmnames.Add("PLINE_CODE", "产线代码");
  1737. gridcolunmnames.Add("HEAT_PLAN_NO", "本工序炉计划ID");
  1738. gridcolunmnames.Add("JUDGE_STOVE_NO", "判定炉号");
  1739. gridcolunmnames.Add("batch_no".ToUpper(), "批号");
  1740. gridcolunmnames.Add("wg_time".ToUpper(), "委托完工时间");
  1741. gridcolunmnames.Add("BJ_TIME", "比较时间");
  1742. gridcolunmnames.Add("DC_HOURS", "待上线小时数");
  1743. gridcolunmnames.Add("DC_DAYS", "待上线天数");
  1744. gridcolunmnames.Add("KF", "扣分");
  1745. gridcolunmnames.Add("KFSM", "扣分说明");
  1746. gridcolunmnames.Add("ORDERNO", "合同号");
  1747. gridcolunmnames.Add("CREATETIME", "创建时间");
  1748. gridcolunmnames.Add("QZ", "权重");
  1749. gridcolunmnames.Add("cl_status".ToUpper(), "已处理否");
  1750. }
  1751. else if (sign == "FP")
  1752. {
  1753. gridcolunmnames.Add("PROCESSCODE", "大工序");
  1754. gridcolunmnames.Add("AREA", "区域");
  1755. gridcolunmnames.Add("AREA_CODE", "区域代码");
  1756. gridcolunmnames.Add("DEPT", "部门");
  1757. gridcolunmnames.Add("DEPT_CODE", "部门代码");
  1758. gridcolunmnames.Add("PLINE_NAME", "产线名称");
  1759. gridcolunmnames.Add("PLINE_CODE", "产线代码");
  1760. gridcolunmnames.Add("HEAT_PLAN_NO", "本工序炉计划ID");
  1761. gridcolunmnames.Add("JUDGE_STOVE_NO", "判定炉号");
  1762. gridcolunmnames.Add("batch_no".ToUpper(), "批号");
  1763. gridcolunmnames.Add("in_time".ToUpper(), "废品入库时间");
  1764. gridcolunmnames.Add("BJ_TIME", "比较时间");
  1765. gridcolunmnames.Add("DC_HOURS", "待返废小时数");
  1766. gridcolunmnames.Add("DC_DAYS", "待返废天数");
  1767. gridcolunmnames.Add("KF", "扣分");
  1768. gridcolunmnames.Add("KFSM", "扣分说明");
  1769. gridcolunmnames.Add("ORDERNO", "合同号");
  1770. gridcolunmnames.Add("CREATETIME", "创建时间");
  1771. gridcolunmnames.Add("QZ", "权重");
  1772. gridcolunmnames.Add("cl_status".ToUpper(), "已处理否");
  1773. }
  1774. else if (sign == "SCZQ_PZ")
  1775. {
  1776. gridcolunmnames.Add("produccode", "品种代码");
  1777. gridcolunmnames.Add("producname", "品种名称");
  1778. gridcolunmnames.Add("minwhole_backlog", "最短全工序流程码");
  1779. gridcolunmnames.Add("maxwhole_backlog", "最长全工序流程码");
  1780. gridcolunmnames.Add("countmaterial_no", "记录数");
  1781. gridcolunmnames.Add("minworkhours", "最短生产周期");
  1782. gridcolunmnames.Add("maxworkhours", "最长生产周期");
  1783. gridcolunmnames.Add("avgworkhours", "平均生产周期");
  1784. gridcolunmnames.Add("STDDEVworkhours", "生产周期标准差");
  1785. gridcolunmnames.Add("STDDEV_SAMPworkhours", "生产周期样本标准差");
  1786. gridcolunmnames.Add("VAR_POPworkhours", "生产周期方差");
  1787. gridcolunmnames.Add("VAR_SAMPworkhours", "生产周期样本方差");
  1788. }
  1789. else if (sign == "SCZQ_WL")
  1790. {
  1791. gridcolunmnames.Add("produccode", "品种代码");
  1792. gridcolunmnames.Add("producname", "品种名称");
  1793. gridcolunmnames.Add("material_no", "物料码");
  1794. gridcolunmnames.Add("material_name", "物料名");
  1795. gridcolunmnames.Add("minwhole_backlog", "最短全工序流程码");
  1796. gridcolunmnames.Add("maxwhole_backlog", "最长全工序流程码");
  1797. gridcolunmnames.Add("countmaterial_no", "记录数");
  1798. gridcolunmnames.Add("minworkhours", "最短生产周期");
  1799. gridcolunmnames.Add("maxworkhours", "最长生产周期");
  1800. gridcolunmnames.Add("avgworkhours", "平均生产周期");
  1801. gridcolunmnames.Add("STDDEVworkhours", "生产周期标准差");
  1802. gridcolunmnames.Add("STDDEV_SAMPworkhours", "生产周期样本标准差");
  1803. gridcolunmnames.Add("VAR_POPworkhours", "生产周期方差");
  1804. gridcolunmnames.Add("VAR_SAMPworkhours", "生产周期样本方差");
  1805. }
  1806. ultraGrid.DataBind();
  1807. ultraGrid.DisplayLayout.Bands[0].Header.Appearance.TextHAlign = Infragistics.Win.HAlign.Center;
  1808. ultraGrid.DisplayLayout.Bands[0].Header.Appearance.FontData.Name = "宋体";
  1809. ultraGrid.DisplayLayout.Bands[0].Header.Appearance.FontData.SizeInPoints = 18;
  1810. if (rB_dc.Checked)
  1811. {
  1812. ultraGrid.DisplayLayout.Bands[0].Header.Caption = rB_dc.Text;
  1813. }
  1814. else if (rB_qx.Checked)
  1815. {
  1816. ultraGrid.DisplayLayout.Bands[0].Header.Caption = rB_qx.Text;
  1817. }
  1818. else if (rB_dpsp.Checked)
  1819. {
  1820. ultraGrid.DisplayLayout.Bands[0].Header.Caption = rB_dpsp.Text;
  1821. }
  1822. else if (rB_dppd.Checked)
  1823. {
  1824. ultraGrid.DisplayLayout.Bands[0].Header.Caption = rB_dppd.Text;
  1825. }
  1826. else if (rB_lxwt.Checked)
  1827. {
  1828. ultraGrid.DisplayLayout.Bands[0].Header.Caption = rB_lxwt.Text;
  1829. }
  1830. else if (rB_lxfx.Checked)
  1831. {
  1832. ultraGrid.DisplayLayout.Bands[0].Header.Caption = rB_lxfx.Text;
  1833. }
  1834. else if (rB_fp.Checked)
  1835. {
  1836. ultraGrid.DisplayLayout.Bands[0].Header.Caption = rB_fp.Text;
  1837. }
  1838. if (gridcolunmnames != null && (sign == "DC" || sign == "QX" || sign == "DPSP" || sign == "DPPD"
  1839. || sign == "LXWT" || sign == "LXFX" || sign == "FP" || sign == "SCZQ_PZ" || sign == "SCZQ_WL"))
  1840. {
  1841. ultraGrid.DisplayLayout.UseFixedHeaders = true;
  1842. foreach (Infragistics.Win.UltraWinGrid.UltraGridBand band in ultraGrid.DisplayLayout.Bands)
  1843. {
  1844. foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn column in band.Columns)
  1845. {
  1846. column.Header.Caption = gridcolunmnames[column.Key].ToString();
  1847. if (column.Key == "AREA_CODE" || column.Key == "DEPT_CODE" || column.Key == "PLINE_CODE")
  1848. {
  1849. column.Hidden = true;
  1850. }
  1851. if (column.Key == "JUDGE_STOVE_NO")
  1852. {
  1853. for (int i = column.Index; i >= 0; i--)
  1854. {
  1855. band.Columns[i].Header.Fixed = true;
  1856. }
  1857. }
  1858. column.PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand);
  1859. }
  1860. }
  1861. }
  1862. ultraGrid.Refresh();
  1863. }
  1864. private void ultraTree_scls_AfterSelect(object sender, SelectEventArgs e)
  1865. {
  1866. if (ultraTree_scls.ActiveNode != null && isnew == false)
  1867. {
  1868. DataTable dtqry2 = ((DataTable)ultraGrid_scls.DataSource).Copy();
  1869. DataView dv = dtqry2.DefaultView;
  1870. dv.RowFilter = "kf>0";
  1871. dtqry2 = dv.ToTable();
  1872. UltraTreeNode mynode = ultraTree_scls.ActiveNode;
  1873. string columncharttitle = mynode.Text, piecharttitle = "";
  1874. if (rB_dc.Checked)
  1875. {
  1876. columncharttitle += "(" + rB_dc.Text + ")";
  1877. piecharttitle = rB_dc.Text;
  1878. }
  1879. else if (rB_qx.Checked)
  1880. {
  1881. columncharttitle += "(" + rB_qx.Text + ")";
  1882. piecharttitle = rB_qx.Text;
  1883. }
  1884. else if (rB_dpsp.Checked)
  1885. {
  1886. columncharttitle += "(" + rB_dpsp.Text + ")";
  1887. piecharttitle = rB_dpsp.Text;
  1888. }
  1889. else if (rB_dppd.Checked)
  1890. {
  1891. columncharttitle += "(" + rB_dppd.Text + ")";
  1892. piecharttitle = rB_dppd.Text;
  1893. }
  1894. else if (rB_lxwt.Checked)
  1895. {
  1896. columncharttitle += "(" + rB_lxwt.Text + ")";
  1897. piecharttitle = rB_lxwt.Text;
  1898. }
  1899. else if (rB_lxfx.Checked)
  1900. {
  1901. columncharttitle += "(" + rB_lxfx.Text + ")";
  1902. piecharttitle = rB_lxfx.Text;
  1903. }
  1904. else if (rB_fp.Checked)
  1905. {
  1906. columncharttitle += "(" + rB_fp.Text + ")";
  1907. piecharttitle = rB_fp.Text;
  1908. }
  1909. if ((UltraColumnChart_scls.TitleTop.Text.ToString() != mynode.Text || UltraColumnChart_scls.TitleBottom.Text.ToString() != piecharttitle) && mynode.Key == "1")
  1910. {
  1911. getcolumnchart_scls(mynode.Text, UltraColumnChart_scls, dtqry2, "DGX");
  1912. getpiechart_scls(mynode.Nodes[0].Text, UltraPieChart_scls, dtqry2, "DGX");
  1913. }
  1914. else if ((UltraColumnChart_scls.TitleTop.Text.ToString() != mynode.Text || UltraColumnChart_scls.TitleBottom.Text.ToString() != piecharttitle)
  1915. && (mynode.Key == "A" || mynode.Key == "B" || mynode.Key == "D"
  1916. || mynode.Key == "E" || mynode.Key == "F" || mynode.Key == "G"))
  1917. {
  1918. getcolumnchart_scls(mynode.Text.ToString(), UltraColumnChart_scls, dtqry2, "GX-BM");
  1919. getpiechart_scls(mynode.Nodes[0].Text, UltraPieChart_scls, dtqry2, "GX-BM");
  1920. }
  1921. else if ((UltraColumnChart_scls.TitleTop.Text.ToString() != mynode.Text || UltraColumnChart_scls.TitleBottom.Text.ToString() != piecharttitle)
  1922. && (mynode.Key.Substring(0, 1) == "A" || mynode.Key.Substring(0, 1) == "B"
  1923. || mynode.Key.Substring(0, 1) == "D" || mynode.Key.Substring(0, 1) == "E"
  1924. || mynode.Key.Substring(0, 1) == "F" || mynode.Key.Substring(0, 1) == "G"))
  1925. {
  1926. getcolumnchart_scls(mynode.Parent.Text + ":" + mynode.Text.ToString(), UltraColumnChart_scls, dtqry2, "BM-CX");
  1927. getpiechart_scls(mynode.Nodes[0].Text, UltraPieChart_scls, dtqry2, "BM-CX");
  1928. }
  1929. }
  1930. }
  1931. private void UltraColumnChart_scls_DataItemOver(object sender, Infragistics.UltraChart.Shared.Events.ChartDataEventArgs e)
  1932. {
  1933. if (e.RowLabel != UltraPieChart_scls.TitleTop.Text)
  1934. {
  1935. UltraTreeNode mynode = ultraTree_scls.ActiveNode;
  1936. DataTable dtqry = ((DataTable)ultraGrid_scls.DataSource).Copy();
  1937. //e.RowLabel
  1938. //getcolumnchart_dc(ultraTree_dc.ActiveNode.ToString(), UltraColumnChart_dc, dtqry, "");
  1939. if (UltraColumnChart_scls.TitleTop.Text == "大工序")
  1940. {
  1941. getpiechart_scls(e.RowLabel, UltraPieChart_scls, dtqry, "DGX");
  1942. }
  1943. else if (UltraColumnChart_scls.TitleTop.Text == mynode.Text && (UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "A" || UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "B"
  1944. || UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "D" || UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "E"
  1945. || UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "F" || UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "G"))
  1946. {
  1947. getpiechart_scls(e.RowLabel, UltraPieChart_scls, dtqry, "GX-BM");
  1948. }
  1949. else if (UltraColumnChart_scls.TitleTop.Text != mynode.Text && (UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "A" || UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "B"
  1950. || UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "D" || UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "E"
  1951. || UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "F" || UltraColumnChart_scls.TitleTop.Text.Substring(0, 1) == "G"))
  1952. {
  1953. getpiechart_scls(e.RowLabel, UltraPieChart_scls, dtqry, "BM-CX");
  1954. }
  1955. }
  1956. }
  1957. private void UltraColumnChart_scls_ChartDataClicked(object sender, Infragistics.UltraChart.Shared.Events.ChartDataEventArgs e)
  1958. {
  1959. UltraTreeNode mynode = ultraTree_scls.ActiveNode;
  1960. if (ultraTree_scls.ActiveNode.Text == "大工序" || ultraTree_scls.ActiveNode.Text.Substring(0, 2) == "A-"
  1961. || ultraTree_scls.ActiveNode.Text.Substring(0, 2) == "B-" || ultraTree_scls.ActiveNode.Text.Substring(0, 2) == "D-"
  1962. || ultraTree_scls.ActiveNode.Text.Substring(0, 2) == "E-" || ultraTree_scls.ActiveNode.Text.Substring(0, 2) == "F-"
  1963. || ultraTree_scls.ActiveNode.Text.Substring(0, 2) == "G-" || ultraTree_scls.ActiveNode.Parent.Text.Substring(0, 2) == "A-"
  1964. || ultraTree_scls.ActiveNode.Parent.Text.Substring(0, 2) == "B-" || ultraTree_scls.ActiveNode.Parent.Text.Substring(0, 2) == "D-"
  1965. || ultraTree_scls.ActiveNode.Parent.Text.Substring(0, 2) == "E-" || ultraTree_scls.ActiveNode.Parent.Text.Substring(0, 2) == "F-"
  1966. || ultraTree_scls.ActiveNode.Parent.Text.Substring(0, 2) == "G-")
  1967. {
  1968. foreach (UltraTreeNode childnode in mynode.Nodes)
  1969. {
  1970. if (childnode.Text == e.RowLabel)
  1971. {
  1972. ultraTree_scls.ActiveNode = childnode;
  1973. childnode.Selected = true;
  1974. break;
  1975. }
  1976. }
  1977. }
  1978. }
  1979. private void getdata(bool isgetdate)
  1980. {
  1981. if (isgetdate)
  1982. {
  1983. getscls();
  1984. }
  1985. }
  1986. private void rB_dc_CheckedChanged(object sender, EventArgs e)
  1987. {
  1988. getdata(rB_dc.Checked);
  1989. }
  1990. private void rB_qx_CheckedChanged(object sender, EventArgs e)
  1991. {
  1992. getdata(rB_qx.Checked);
  1993. }
  1994. private void rB_dpsp_CheckedChanged(object sender, EventArgs e)
  1995. {
  1996. getdata(rB_dpsp.Checked);
  1997. }
  1998. private void rB_dppd_CheckedChanged(object sender, EventArgs e)
  1999. {
  2000. getdata(rB_dppd.Checked);
  2001. }
  2002. private void rB_lxwt_CheckedChanged(object sender, EventArgs e)
  2003. {
  2004. getdata(rB_lxwt.Checked);
  2005. }
  2006. private void rB_lxfx_CheckedChanged(object sender, EventArgs e)
  2007. {
  2008. getdata(rB_lxfx.Checked);
  2009. }
  2010. private void rB_fp_CheckedChanged(object sender, EventArgs e)
  2011. {
  2012. getdata(rB_fp.Checked);
  2013. }
  2014. private void ultraTree_scls_qj_AfterSelect(object sender, SelectEventArgs e)
  2015. {
  2016. if (ultraTree_scls_qj.ActiveNode != null && isnew_qj == false)
  2017. {
  2018. UltraTreeNode mynode = ultraTree_scls_qj.ActiveNode;
  2019. if (UltraChart_scls_qj.TitleTop.Text.ToString() != mynode.Text)
  2020. {
  2021. if (mynode.Key.Length == 1)
  2022. getlinechart_scls_qj(UltraChart_scls_qj, dtqry1, "DGX");
  2023. else if (mynode.Parent.Key.Length == 1)
  2024. getlinechart_scls_qj(UltraChart_scls_qj, dtqry1, "GX-BM");
  2025. else
  2026. getlinechart_scls_qj(UltraChart_scls_qj, dtqry1, "BM-CX");
  2027. }
  2028. }
  2029. }
  2030. private void ultraGrid_wl_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  2031. {
  2032. if (e.Cell.Column.Key == "material_no")
  2033. {
  2034. string mydate1 = ((DateTime)this.fromdate.Value).ToString("yyyy-MM-dd");
  2035. string mydate2 = ((DateTime)this.todate.Value).ToString("yyyy-MM-dd");
  2036. DataTable mytable = ServerHelper.GetData("com.steering.rpt.scls.SCLS.getSCLS_SCLS_L", new object[] { mydate1, mydate2, e.Cell.Text }, this.ob);
  2037. if (mytable.Rows.Count > 0)
  2038. {
  2039. RptProduction_detail mypopup = new RptProduction_detail(mytable, "品名:" + e.Cell.Row.Cells["producname"].Text + ",物料:" + e.Cell.Row.Cells["material_name"].Text, "流程码");
  2040. mypopup.ShowDialog();
  2041. }
  2042. }
  2043. }
  2044. private void ultraGrid_pzwl_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  2045. {
  2046. if (e.Cell.Column.Key == "material_no")
  2047. {
  2048. string mydate1 = ((DateTime)this.fromdate.Value).ToString("yyyy-MM-dd");
  2049. string mydate2 = ((DateTime)this.todate.Value).ToString("yyyy-MM-dd");
  2050. DataTable mytable = ServerHelper.GetData("com.steering.rpt.scls.SCLS.getSCLS_SCLS_L", new object[] { mydate1, mydate2, e.Cell.Text }, this.ob);
  2051. if (mytable.Rows.Count > 0)
  2052. {
  2053. RptProduction_detail mypopup = new RptProduction_detail(mytable, "品名:" + e.Cell.Row.Cells["producname"].Text + ",物料:" + e.Cell.Row.Cells["material_name"].Text, "流程码");
  2054. mypopup.ShowDialog();
  2055. }
  2056. }
  2057. }
  2058. public class CustomMergedCellEvaluator : Infragistics.Win.UltraWinGrid.IMergedCellEvaluator
  2059. {
  2060. private string primaryKey;
  2061. ///
  2062. /// 获取或设置合并列的主键列的绑定名称
  2063. ///
  2064. public string PrimaryKey
  2065. {
  2066. get { return primaryKey; }
  2067. set { primaryKey = value; }
  2068. }
  2069. ///
  2070. /// CustomMergedCellEvaluator 的构造函数
  2071. ///
  2072. /// 主键列的绑定名称
  2073. public CustomMergedCellEvaluator(string primaryKey)
  2074. {
  2075. this.primaryKey = primaryKey;
  2076. }
  2077. #region IMergedCellEvaluator 成员
  2078. public bool ShouldCellsBeMerged(Infragistics.Win.UltraWinGrid.UltraGridRow row1, Infragistics.Win.UltraWinGrid.UltraGridRow row2, Infragistics.Win.UltraWinGrid.UltraGridColumn column)
  2079. {
  2080. //确认逻辑:如果是主键列,自动合并,否则通过联合主键来合并
  2081. if (column.MergedCellStyle == Infragistics.Win.UltraWinGrid.MergedCellStyle.Always)
  2082. {
  2083. if (string.IsNullOrEmpty(this.primaryKey))
  2084. {
  2085. return row1.GetCellText(column) == row2.GetCellText(column);
  2086. }
  2087. if ((row1.GetCellValue(row1.Cells[this.primaryKey].Column).ToString() == row2.GetCellValue(row1.Cells[this.primaryKey].Column).ToString()) && (row1.GetCellText(column) == row2.GetCellText(column)))
  2088. {
  2089. return true;
  2090. }
  2091. }
  2092. return false;
  2093. }
  2094. #endregion
  2095. }
  2096. private void getcolumnchart_scls_qj(UltraChart mychart, DataTable myData, string sign)
  2097. {
  2098. string myselectstr = "";
  2099. // 在此处放置用户代码以初始化页面
  2100. //step1:Change the ChartType property to "Composite."
  2101. mychart.ChartType = ChartType.Composite;
  2102. mychart.TitleTop.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold);
  2103. /*if (rB_dc_qj.Checked)
  2104. mychart.TitleBottom.Text = rB_dc_qj.Text;
  2105. else if (rB_qx_qj.Checked)
  2106. mychart.TitleBottom.Text = rB_qx_qj.Text;
  2107. else if (rB_dpsp_qj.Checked)
  2108. mychart.TitleBottom.Text = rB_dpsp_qj.Text;
  2109. else if (rB_dppd_qj.Checked)
  2110. mychart.TitleBottom.Text = rB_dppd_qj.Text;
  2111. else if (rB_lxwt_qj.Checked)
  2112. mychart.TitleBottom.Text = rB_lxwt_qj.Text;
  2113. else if (rB_lxfx_qj.Checked)
  2114. mychart.TitleBottom.Text = rB_lxfx_qj.Text;
  2115. else if (rB_fp_qj.Checked)
  2116. mychart.TitleBottom.Text = rB_fp_qj.Text;*/
  2117. //step2:Add a ChartArea to the ChartAreas collection.
  2118. ChartArea myChartArea = new ChartArea();
  2119. myChartArea.BoundsMeasureType = MeasureType.Percentage;
  2120. myChartArea.Bounds = new Rectangle(0, 10, 100, 80);
  2121. myChartArea.Border.Thickness = 0;
  2122. mychart.CompositeChart.ChartAreas.Add(myChartArea);
  2123. //step3:Add some Axes to the ChartArea.
  2124. AxisItem axisX = new AxisItem();
  2125. axisX.OrientationType = AxisNumber.X_Axis;
  2126. axisX.DataType = AxisDataType.String;
  2127. axisX.StripLines.Interval = 15;
  2128. axisX.TickmarkStyle = AxisTickStyle.Smart;
  2129. //axisX.Margin.ResetFar();
  2130. axisX.SetLabelAxisType = SetLabelAxisType.GroupBySeries;
  2131. axisX.Labels.ItemFormatString = "<ITEM_LABEL>";
  2132. axisX.Labels.Orientation = TextOrientation.VerticalLeftFacing;
  2133. axisX.Labels.OrientationAngle = 80;
  2134. axisX.Labels.Visible = false;
  2135. axisX.Labels.SeriesLabels.Orientation = TextOrientation.Custom;//.VerticalLeftFacing;
  2136. axisX.Labels.SeriesLabels.OrientationAngle = 250;
  2137. axisX.Labels.SeriesLabels.Flip = true;
  2138. /*axisX.LineThickness = 1;
  2139. axisX.MajorGridLines.AlphaLevel = ((byte)(255));
  2140. axisX.MajorGridLines.Color = System.Drawing.Color.Gainsboro;
  2141. axisX.MajorGridLines.DrawStyle = Infragistics.UltraChart.Shared.Styles.LineDrawStyle.Dot;
  2142. axisX.MajorGridLines.Thickness = 1;
  2143. axisX.MajorGridLines.Visible = true;*/
  2144. AxisItem axisY = new AxisItem();
  2145. axisY.OrientationType = AxisNumber.Y_Axis;
  2146. axisY.DataType = AxisDataType.Numeric;
  2147. axisY.Labels.ItemFormatString = "<DATA_VALUE:0.#>";
  2148. axisY.Labels.SeriesLabels.VerticalAlign = System.Drawing.StringAlignment.Near;
  2149. //axisY.Labels.VerticalAlign = System.Drawing.StringAlignment.Near;
  2150. AxisItem axisY1 = new AxisItem();
  2151. axisY1.OrientationType = AxisNumber.Y2_Axis;
  2152. axisY1.DataType = AxisDataType.Numeric;
  2153. axisY1.TickmarkStyle = AxisTickStyle.Percentage;
  2154. axisY1.TickmarkPercentage = 10;
  2155. axisY1.Labels.ItemFormatString = "<DATA_VALUE:0.#>";
  2156. axisY1.Labels.SeriesLabels.VerticalAlign = System.Drawing.StringAlignment.Near;
  2157. myChartArea.Axes.Add(axisX);
  2158. myChartArea.Axes.Add(axisY);
  2159. myChartArea.Axes.Add(axisY1);
  2160. //step4:Add some data series to the Series collection.
  2161. string series_Label = "", selectstr, Point_value;
  2162. DataView mydataview = myData.DefaultView;
  2163. if (sign == "DGX")
  2164. {
  2165. mydataview.RowFilter = "processcode='" + ultraTree_scls_qj.ActiveNode.Key + "'";
  2166. mydataview.Sort = "createtime";
  2167. myData = mydataview.ToTable();
  2168. mychart.TitleTop.Text = getprocess(myData.Rows[0]["processcode"].ToString());
  2169. series_Label = myData.Rows[0]["createtime"].ToString().Substring(0, 10);
  2170. }
  2171. else if (sign == "GX-BM")
  2172. {
  2173. mydataview.RowFilter = "processcode+dept_code='" + ultraTree_scls_qj.ActiveNode.Key + "'";
  2174. mydataview.Sort = "createtime";
  2175. myData = mydataview.ToTable();
  2176. mychart.TitleTop.Text = getprocess(myData.Rows[0]["processcode"].ToString()) + ":" + myData.Rows[0]["dept"];
  2177. series_Label = myData.Rows[0]["createtime"].ToString().Substring(0, 10);
  2178. }
  2179. else if (sign == "BM-CX")
  2180. {
  2181. mydataview.RowFilter = "pline_code='" + ultraTree_scls_qj.ActiveNode.Key + "'";
  2182. mydataview.Sort = "createtime";
  2183. myData = mydataview.ToTable();
  2184. mychart.TitleTop.Text = getprocess(myData.Rows[0]["processcode"].ToString()) + " - " + myData.Rows[0]["dept"] + ":" + myData.Rows[0]["pline_name"].ToString();
  2185. series_Label = myData.Rows[0]["createtime"].ToString().Substring(0, 10);
  2186. }
  2187. myselectstr = " createtime like '" + series_Label + "%'";
  2188. NumericSeries series = new NumericSeries();
  2189. NumericSeries lineSeries = new NumericSeries();
  2190. series.Points.Clear();
  2191. string myLabel = series_Label;
  2192. int i = 0, hj = 0;
  2193. foreach (DataRow mykfrow in kfdataTable_qj.Rows)
  2194. {
  2195. if (columnchartpoint_qj[i] != "")
  2196. {
  2197. selectstr = myselectstr + " and kf=" + mykfrow["kf"].ToString();
  2198. Point_value = myData.Compute("count(kf)", selectstr).ToString();
  2199. if (Point_value == "")
  2200. Point_value = "0";
  2201. series.Points.Add(new NumericDataPoint(Convert.ToDouble(Point_value), columnchartpoint_qj[i], false));
  2202. lineSeries.Points.Add(new NumericDataPoint(Convert.ToDouble(Point_value), columnchartpoint_qj[i], false));
  2203. }
  2204. i++;
  2205. }
  2206. series.Label = series_Label;
  2207. mychart.Data.MinValue = 0;
  2208. //mychart.CompositeChart.Series.Add(series);
  2209. //step5:Add a chart layer.
  2210. ChartLayerAppearance myColumnLayer = new ChartLayerAppearance();
  2211. myColumnLayer.ChartType = ChartType.StackColumnChart;//.ColumnChart;
  2212. myColumnLayer.ChartArea = myChartArea;
  2213. myColumnLayer.AxisX = axisX;
  2214. myColumnLayer.AxisY = axisY;
  2215. myColumnLayer.AxisY2 = axisY1;
  2216. myColumnLayer.Series.Clear();
  2217. myColumnLayer.Series.Add(series);
  2218. ChartLayerAppearance lineLayer = new ChartLayerAppearance();
  2219. lineLayer.ChartType = ChartType.LineChart;
  2220. lineLayer.AxisX = axisX;
  2221. lineLayer.AxisY = axisY;
  2222. lineLayer.AxisY2 = axisY1;
  2223. lineLayer.ChartArea = myChartArea;
  2224. lineLayer.Series.Clear();
  2225. lineLayer.Series.Add(lineSeries);
  2226. foreach (DataRow myrow in myData.Rows)
  2227. {
  2228. /*series = new NumericSeries();
  2229. series.Points.Add(new NumericDataPoint(Convert.ToDouble(0), "", false));
  2230. series.Points.Add(new NumericDataPoint(Convert.ToDouble(0), "", false));
  2231. series.Label = "";
  2232. mychart.CompositeChart.Series.Add(series);
  2233. myColumnLayer.Series.Add(series);)*/
  2234. series_Label = myrow["createtime"].ToString().Substring(0, 10);
  2235. if (myLabel != series_Label)
  2236. {
  2237. series = new NumericSeries();
  2238. lineSeries = new NumericSeries();
  2239. myLabel = series_Label;
  2240. series.Label = series_Label;
  2241. myselectstr = myselectstr = " createtime like '" + series_Label + "%'";
  2242. i = 0;
  2243. foreach (DataRow mykfrow in kfdataTable_qj.Rows)
  2244. {
  2245. if (columnchartpoint_qj[i] != "")
  2246. {
  2247. selectstr = myselectstr + " and kf=" + mykfrow["kf"].ToString();
  2248. Point_value = myData.Compute("count(kf)", selectstr).ToString();
  2249. if (Point_value == "")
  2250. Point_value = "0";
  2251. series.Points.Add(new NumericDataPoint(Convert.ToDouble(Point_value), columnchartpoint_qj[i], false));
  2252. lineSeries.Points.Add(new NumericDataPoint(Convert.ToDouble(Point_value), columnchartpoint_qj[i], false));
  2253. }
  2254. i++;
  2255. }
  2256. //mychart.CompositeChart.Series.Add(series);
  2257. myColumnLayer.Series.Add(series);
  2258. lineLayer.Series.Add(lineSeries);
  2259. }
  2260. }
  2261. mychart.CompositeChart.ChartLayers.Clear();
  2262. mychart.CompositeChart.ChartLayers.Add(myColumnLayer);
  2263. mychart.CompositeChart.ChartLayers.Add(lineLayer);
  2264. //step6:Add a legend to the chart.
  2265. //CompositeLegend myLegend = new CompositeLegend();
  2266. //CompositeLegend a = new CompositeLegend();
  2267. Infragistics.UltraChart.Resources.Appearance.CompositeLegend myLegend = new Infragistics.UltraChart.Resources.Appearance.CompositeLegend();
  2268. myLegend.ChartLayers.Add(myColumnLayer);
  2269. myLegend.Bounds = new Rectangle(2, 90, 10, 9);
  2270. myLegend.BoundsMeasureType = MeasureType.Percentage;
  2271. myLegend.PE.ElementType = PaintElementType.Gradient;
  2272. myLegend.PE.FillGradientStyle = GradientStyle.ForwardDiagonal;
  2273. myLegend.PE.Fill = Color.CornflowerBlue;
  2274. myLegend.PE.FillStopColor = Color.Transparent;
  2275. myLegend.Border.CornerRadius = 10;
  2276. myLegend.Border.Thickness = 0;
  2277. mychart.CompositeChart.Legends.Clear();
  2278. mychart.CompositeChart.Legends.Add(myLegend);
  2279. }
  2280. private void getsclsline(bool isgetdate)
  2281. {
  2282. if (isgetdate)
  2283. {
  2284. if (ultraTree_scls_qj.ActiveNode != null)
  2285. {
  2286. UltraTreeNode mynode = ultraTree_scls_qj.ActiveNode;
  2287. if (mynode.Key.Length == 1)
  2288. getlinechart_scls_qj(UltraChart_scls_qj, dtqry1, "DGX");
  2289. else if (mynode.Parent.Key.Length == 1)
  2290. getlinechart_scls_qj(UltraChart_scls_qj, dtqry1, "GX-BM");
  2291. else
  2292. getlinechart_scls_qj(UltraChart_scls_qj, dtqry1, "BM-CX");
  2293. }
  2294. else
  2295. getscls_qj();
  2296. }
  2297. }
  2298. private void rB_line_CheckedChanged(object sender, EventArgs e)
  2299. {
  2300. getsclsline(rB_line.Checked);
  2301. }
  2302. private void rB_Radar_CheckedChanged(object sender, EventArgs e)
  2303. {
  2304. getsclsline(rB_Radar.Checked);
  2305. }
  2306. private void setcB()
  2307. {
  2308. int i = 0,j=0;
  2309. CheckBox[] mycB=new CheckBox[7];
  2310. if (!cB_dcqj.Checked)
  2311. i++;
  2312. else
  2313. {
  2314. mycB[j]=cB_dcqj;
  2315. j++;
  2316. }
  2317. if (!cB_qxqj.Checked)
  2318. i++;
  2319. else
  2320. {
  2321. mycB[j]=cB_qxqj;
  2322. j++;
  2323. }
  2324. if (!cB_dpspqj.Checked)
  2325. i++;
  2326. else
  2327. {
  2328. mycB[j]=cB_dpspqj;
  2329. j++;
  2330. }
  2331. if (!cB_dppdqj.Checked)
  2332. i++;
  2333. else
  2334. {
  2335. mycB[j]=cB_dppdqj;
  2336. j++;
  2337. }
  2338. if (!cB_lxwtqj.Checked)
  2339. i++;
  2340. else
  2341. {
  2342. mycB[j]=cB_lxwtqj;
  2343. j++;
  2344. }
  2345. if (!cB_lxfxqj.Checked)
  2346. i++;
  2347. else
  2348. {
  2349. mycB[j]=cB_lxfxqj;
  2350. j++;
  2351. }
  2352. if (!cB_fpqj.Checked)
  2353. i++;
  2354. else
  2355. {
  2356. mycB[j]=cB_fpqj;
  2357. j++;
  2358. }
  2359. if (i == 6)
  2360. mycB[0].Enabled = false;
  2361. else if (i == 5)
  2362. {
  2363. foreach (CheckBox cb in mycB)
  2364. {
  2365. if (cb!=null && cb.Enabled == false)
  2366. cb.Enabled = true;
  2367. }
  2368. }
  2369. }
  2370. private void cB_dcqj_CheckedChanged(object sender, EventArgs e)
  2371. {
  2372. setcB();
  2373. }
  2374. private void cB_qxqj_CheckedChanged(object sender, EventArgs e)
  2375. {
  2376. setcB();
  2377. }
  2378. private void cB_dpspqj_CheckedChanged(object sender, EventArgs e)
  2379. {
  2380. setcB();
  2381. }
  2382. private void cB_dppdqj_CheckedChanged(object sender, EventArgs e)
  2383. {
  2384. setcB();
  2385. }
  2386. private void cB_lxwtqj_CheckedChanged(object sender, EventArgs e)
  2387. {
  2388. setcB();
  2389. }
  2390. private void cB_lxfxqj_CheckedChanged(object sender, EventArgs e)
  2391. {
  2392. setcB();
  2393. }
  2394. private void cB_fpqj_CheckedChanged(object sender, EventArgs e)
  2395. {
  2396. setcB();
  2397. }
  2398. private void getupdatescls()
  2399. {
  2400. WaitingForm2 wf = new WaitingForm2("正在更新最新数据,请稍候....");
  2401. try
  2402. {
  2403. string mydate = ((DateTime)this.rptdate.Value).ToString("yyyy-MM-dd");
  2404. string mymethodid = "", sign = "";
  2405. DataTable dtqry = new DataTable();
  2406. if (rB_dc.Checked)
  2407. {
  2408. mymethodid = "com.steering.rpt.scls.SCLS.getUpdateDC";
  2409. sign = "DC";
  2410. }
  2411. else if (rB_qx.Checked)
  2412. {
  2413. mymethodid = "com.steering.rpt.scls.SCLS.getUpdateQX";
  2414. sign = "QX";
  2415. }
  2416. else if (rB_dpsp.Checked)
  2417. {
  2418. mymethodid = "com.steering.rpt.scls.SCLS.getUpdateDPSP";
  2419. sign = "DPSP";
  2420. }
  2421. else if (rB_dppd.Checked)
  2422. {
  2423. mymethodid = "com.steering.rpt.scls.SCLS.getUpdateDPPD";
  2424. sign = "DPPD";
  2425. }
  2426. else if (rB_lxwt.Checked)
  2427. {
  2428. mymethodid = "com.steering.rpt.scls.SCLS.getUpdateLXWT";
  2429. sign = "LXWT";
  2430. }
  2431. else if (rB_lxfx.Checked)
  2432. {
  2433. mymethodid = "com.steering.rpt.scls.SCLS.getUpdateLXFX";
  2434. sign = "LXFX";
  2435. }
  2436. else if (rB_fp.Checked)
  2437. {
  2438. mymethodid = "com.steering.rpt.scls.SCLS.getUpdateFP";
  2439. sign = "FP";
  2440. }
  2441. if (mymethodid != "")
  2442. {
  2443. dtqry = ServerHelper.GetData(mymethodid, new object[] { mydate }, this.ob);
  2444. wf.Close();
  2445. DataTable dtqry1 = dtqry.Clone();
  2446. dtqry1.Columns["kf"].DataType = typeof(decimal);
  2447. dtqry1.Columns["qz"].DataType = typeof(decimal);
  2448. if (dtqry1.Columns.IndexOf("dc_hours") >= 0)
  2449. dtqry1.Columns["dc_hours"].DataType = typeof(decimal);
  2450. if (dtqry1.Columns.IndexOf("dc_days") >= 0)
  2451. dtqry1.Columns["dc_days"].DataType = typeof(decimal);
  2452. if (dtqry1.Columns.IndexOf("PLN_OUTSINGLE_NUM") >= 0)
  2453. dtqry1.Columns["PLN_OUTSINGLE_NUM"].DataType = typeof(decimal);
  2454. if (dtqry1.Columns.IndexOf("PLN_OUTSINGLE_W") >= 0)
  2455. dtqry1.Columns["PLN_OUTSINGLE_W"].DataType = typeof(decimal);
  2456. foreach (DataRow dr in dtqry.Rows)
  2457. {
  2458. dtqry1.ImportRow(dr);
  2459. }
  2460. ultraGrid_scls.DataSource = dtqry1;
  2461. setgridcolunmName(ultraGrid_scls, sign);
  2462. }
  2463. }
  2464. catch (Exception e)
  2465. {
  2466. wf.Close();
  2467. MessageBox.Show(e.Message);
  2468. }
  2469. finally
  2470. {
  2471. }
  2472. }
  2473. private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
  2474. {
  2475. if (e.ClickedItem.Text == "更新最新数据" && ((DateTime)this.rptdate.Value).ToString("yyyy-MM-dd") == DateTime.Today.ToString("yyyy-MM-dd"))
  2476. getupdatescls();
  2477. }
  2478. private void gethtzq()
  2479. {
  2480. WaitingForm2 wf = new WaitingForm2("正在加载数据,请稍候....");
  2481. try
  2482. {
  2483. DataTable dtqry1 = ServerHelper.GetData("com.steering.rpt.scls.SCLS.getHTZQ", new object[] { overdate.Value.ToString() }, this.ob);
  2484. DataTable dtqry2 = dtqry1.Clone();
  2485. foreach (DataColumn dc in dtqry2.Columns)
  2486. {
  2487. if (dc.ColumnName.IndexOf("支") >= 0 || dc.ColumnName.IndexOf("重量") >= 0 || dc.ColumnName.IndexOf("吨") >= 0 || dc.ColumnName.IndexOf("天") >= 0)
  2488. {
  2489. dc.DataType = typeof(decimal);
  2490. }
  2491. }
  2492. foreach (DataRow dr in dtqry1.Rows)
  2493. {
  2494. dtqry2.ImportRow(dr);
  2495. }
  2496. ultraGrid_htzq.DataSource = dtqry2;
  2497. foreach (Infragistics.Win.UltraWinGrid.UltraGridBand band in ultraGrid_htzq.DisplayLayout.Bands)
  2498. {
  2499. foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn column in band.Columns)
  2500. {
  2501. if (column.Key.IndexOf("支") >= 0 || column.Key.IndexOf("吨") >= 0 || column.Key.IndexOf("重量") >= 0 || column.Key.IndexOf("天") >= 0)
  2502. {
  2503. column.CellAppearance.TextHAlign=Infragistics.Win.HAlign.Right;
  2504. }
  2505. column.PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand);
  2506. }
  2507. }
  2508. //setgridcolunmName(ultraGrid_htzq, "htzq");
  2509. wf.Close();
  2510. }
  2511. catch (Exception e)
  2512. {
  2513. MessageBox.Show(e.Message);
  2514. }
  2515. finally
  2516. {
  2517. wf.Close();
  2518. }
  2519. }
  2520. }
  2521. }