FrmMaterialStandard.cs 156 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Server;
  3. using Core.Mes.Client.Comm.Tool;
  4. using CoreFS.CA06;
  5. using Infragistics.Win.UltraWinEditors;
  6. using Infragistics.Win.UltraWinGrid;
  7. using System;
  8. using System.Collections;
  9. using System.Collections.Generic;
  10. using System.Data;
  11. using System.Linq;
  12. using System.Windows.Forms;
  13. namespace Core.StlMes.Client.Qcm
  14. {
  15. /// <summary>
  16. /// 理化标准管理
  17. /// </summary>
  18. public partial class FrmMaterialStandard : FrmBase
  19. {
  20. private bool isPasting = false;
  21. private int _pic = 1; //理化标准索引号
  22. private string errMessage = ""; //提示信息
  23. //public int isSelect = 0;
  24. private string validflag = "";
  25. private UltraComboEditor uce = new UltraComboEditor();
  26. private UltraComboEditor cmbProBigType = new UltraComboEditor();
  27. private UltraComboEditor gradeuce = new UltraComboEditor();
  28. private UltraComboEditor steeluce = new UltraComboEditor();
  29. private string _strPic = "";
  30. public string StrPic
  31. {
  32. get { return _strPic; }
  33. set { _strPic = value; }
  34. }
  35. private string msc = "";
  36. public string Msc
  37. {
  38. get { return msc; }
  39. set { msc = value; }
  40. }
  41. //如果接箍为字符串空,会在SQL语句中新增接箍等于空的条件,所以单页面默认了个不为空的值。
  42. private string codeJg = "DefaultValue";
  43. public string CodeJg
  44. {
  45. get { return codeJg; }
  46. set { codeJg = value; }
  47. }
  48. private string stdCode = "";
  49. public string StdCode
  50. {
  51. get { return stdCode; }
  52. set { stdCode = value; }
  53. }
  54. private ArrayList steelCodes = new ArrayList();
  55. public ArrayList SteelCodes
  56. {
  57. get { return steelCodes; }
  58. set { steelCodes = value; }
  59. }
  60. private string producCode = "";
  61. public string ProducCode
  62. {
  63. get { return producCode; }
  64. set { producCode = value; }
  65. }
  66. private string steelcodeNk = "";
  67. public string SteelcodeNk
  68. {
  69. get { return steelcodeNk; }
  70. set { steelcodeNk = value; }
  71. }
  72. private string processCode = "";
  73. public string ProcessCode
  74. {
  75. get { return processCode; }
  76. set { processCode = value; }
  77. }
  78. private string acceptBid = "";
  79. public string AcceptBid
  80. {
  81. get { return acceptBid; }
  82. set { acceptBid = value; }
  83. }
  84. private string ordLnPk = "";
  85. public string OrdLnPk
  86. {
  87. get { return ordLnPk; }
  88. set { ordLnPk = value; }
  89. }
  90. private string modelCode = "";
  91. public string ModelCode
  92. {
  93. get { return modelCode; }
  94. set { modelCode = value; }
  95. }
  96. private Dictionary<string, UltraCombo> itemCodeFDic = new Dictionary<string, UltraCombo>();
  97. private Dictionary<string, UltraCombo> itemCodeWDic = new Dictionary<string, UltraCombo>();
  98. private Dictionary<string, UltraCombo> itemCodeSDic = new Dictionary<string, UltraCombo>();
  99. public FrmMaterialStandard()
  100. {
  101. IsLoadUserView = true;
  102. InitializeComponent();
  103. ExceptionHelper.RegistException();
  104. }
  105. public void PopupLoad(string customInfo, OpeBase ob)
  106. {
  107. this.CustomInfo = customInfo;
  108. this.ob = ob;
  109. FrmMaterialStandard_Load(null, null);
  110. }
  111. //合格说明索引
  112. private string noteIndex;
  113. public string NoteIndex
  114. {
  115. get { return noteIndex; }
  116. set { noteIndex = value; }
  117. }
  118. private List<string> PicCode = new List<string>(); //做过操作的PIC
  119. private Dictionary<string, UltraComboEditor> ultraphymin = null;
  120. private Dictionary<string, UltraComboEditor> ultraitem = null;
  121. /// <summary>
  122. /// 按钮
  123. /// </summary>
  124. /// <param name="sender"></param>
  125. /// <param name="ToolbarKey"></param>
  126. public override void ToolBar_Click(object sender, string ToolbarKey)
  127. {
  128. switch (ToolbarKey)
  129. {
  130. case "Query":
  131. DoQuery();
  132. break;
  133. case "Save":
  134. DoSave();
  135. break;
  136. case "Delete":
  137. {
  138. DoDeleteOrResume(true);
  139. break;
  140. }
  141. case "Resume":
  142. {
  143. DoDeleteOrResume(false);
  144. break;
  145. }
  146. case "Copy":
  147. Copy();
  148. break;
  149. case "Paste":
  150. isPasting = true;
  151. try
  152. {
  153. Paste();
  154. }
  155. finally
  156. {
  157. isPasting = false;
  158. }
  159. break;
  160. case "Refresh":
  161. doRefresh();
  162. break;
  163. case "Group":
  164. doGroup();
  165. break;
  166. case "Cancel":
  167. CancelGroup();
  168. break;
  169. case "Close":
  170. this.Close();
  171. break;
  172. case "SaveTemplate":
  173. SaveTemplate();
  174. break;
  175. }
  176. }
  177. /// <summary>
  178. /// 复制
  179. /// </summary>
  180. private void Copy()
  181. {
  182. if (ultraGrid1.ActiveRow == null)
  183. {
  184. MessageUtil.ShowWarning("请选择记录后,再进行操作!");
  185. return;
  186. }
  187. ultraGrid1.UpdateData();
  188. DataTable copyTab = dataTable1.Copy();
  189. DataTable copyTab2 = dataTable2.Copy();
  190. copyTab.Clear();
  191. copyTab2.Clear();
  192. if (ultraGrid1.ActiveRow.HasParent())
  193. {
  194. foreach (UltraGridRow row in ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows)
  195. {
  196. if (row.GetValue("CHC") != "True") continue;
  197. DataRow dr = copyTab.NewRow();
  198. CopyRowToRow(((DataRowView)row.ListObject).Row, dr);
  199. copyTab.Rows.Add(dr);
  200. }
  201. }
  202. else
  203. {
  204. foreach (UltraGridRow row in ultraGrid1.ActiveRow.ChildBands[0].Rows)
  205. {
  206. DataRow dr = copyTab.NewRow();
  207. CopyRowToRow(((DataRowView)row.ListObject).Row, dr);
  208. copyTab.Rows.Add(dr);
  209. }
  210. DataRow dr2 = copyTab2.NewRow();
  211. CopyRowToRow(((DataRowView)ultraGrid1.ActiveRow.ListObject).Row, dr2);
  212. copyTab2.Rows.Add(dr2);
  213. }
  214. DataTable[] copyTabs = new DataTable[] { copyTab, copyTab2 };
  215. Clipboard.SetData("Pic", copyTabs);
  216. }
  217. private void CopyRowToRow(DataRow srcRow, DataRow desRow)
  218. {
  219. for (int i = 0; i < srcRow.Table.Columns.Count; i++)
  220. {
  221. string columnName = srcRow.Table.Columns[i].ColumnName;
  222. desRow[columnName] = srcRow[columnName];
  223. }
  224. }
  225. /// <summary>
  226. /// 粘贴
  227. /// </summary>
  228. private void Paste()
  229. {
  230. DataTable[] copyTabs = (DataTable[])Clipboard.GetData("Pic");
  231. if (copyTabs == null)
  232. {
  233. MessageUtil.ShowWarning("没有数据,请复制后再进行操作!");
  234. return;
  235. }
  236. DataTable copyTab = copyTabs[0];
  237. DataTable copyTab2 = copyTabs[1];
  238. if (copyTab == null || copyTab.Rows.Count == 0)
  239. {
  240. MessageUtil.ShowWarning("没有数据,请复制后再进行操作!");
  241. return;
  242. }
  243. dataTable1.BeginInit();
  244. string pic = "";
  245. UltraGridRow rowParent;
  246. if (ultraGrid1.ActiveRow.HasParent())
  247. {
  248. //if (ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows.Count > 0)
  249. //{
  250. // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
  251. // return;
  252. //}
  253. pic = ultraGrid1.ActiveRow.ParentRow.GetValue("PIC");
  254. rowParent = ultraGrid1.ActiveRow.ParentRow;
  255. }
  256. else
  257. {
  258. //if (ultraGrid1.ActiveRow.ChildBands[0].Rows.Count > 0)
  259. //{
  260. // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
  261. // return;
  262. //}
  263. pic = ultraGrid1.GetActiveRowValue("PIC");
  264. rowParent = ultraGrid1.ActiveRow;
  265. }
  266. List<string> notCopyColumns = new List<string>();
  267. notCopyColumns.AddRange("CHC", "CREATE_TIME", "CREATE_NAME", "UPDATE_TIME", "UPDATE_NAME",
  268. "DELETE_TIME", "DELETE_NAME", "VALIDFLAG", "VALIDFLAGNAME", "PIC", "MSC", "STD_CODE_NK", "STD_NAME_NK", "PROCESS_DESC",
  269. "PSC_DESC", "PSC", "PRODUCNAME", "STD_NAME", "STDSTYLE", "STEELCODE", "STD_STYLE_DESC", "PRODUCCODE_NK", "PRODUCNAME_NK",
  270. "GRADECODE", "GRADENAME", "PROCESS_CDOE", "PROCESS_DESC", "STEELCODE_NK", "STEELDESC_NK");
  271. if (copyTab2.Rows.Count > 0)
  272. {
  273. DataRow drParent = ((DataRowView)rowParent.ListObject).Row;
  274. foreach (DataColumn column in dataTable2.Columns)
  275. {
  276. string columnName = column.ColumnName;
  277. if (notCopyColumns.Contains(columnName) == true) continue;
  278. drParent[columnName] = copyTab2.Rows[0][columnName];
  279. }
  280. }
  281. if (dataTable2.Select("PIC = '" + pic + "'").Length == 0) return;
  282. foreach (DataRow row in copyTab.Rows)
  283. {
  284. DataRow tempRow = dataTable1.NewRow();
  285. foreach (DataColumn column in dataTable1.Columns)
  286. {
  287. string columnName = column.ColumnName;
  288. if (notCopyColumns.Contains(columnName) == true) continue;
  289. if (!copyTab.Columns.Contains(columnName)) continue;
  290. tempRow[columnName] = row[columnName];
  291. }
  292. tempRow["PIC"] = pic;
  293. dataTable1.Rows.Add(tempRow);
  294. }
  295. dataTable1.EndInit();
  296. if (copyTab.Rows.Count > 0 && ultraGrid1.ActiveRow != null)
  297. {
  298. ultraGrid1.ActiveRow.ExpandAll();
  299. }
  300. ultraGrid1.UpdateData();
  301. }
  302. private void CancelGroup()
  303. {
  304. int ischeck = 0; //是否勾选
  305. int isselect = 0; //勾选项是否已写入数据库
  306. int isvalid = 0; //是否有效
  307. int hasindex = 0;
  308. ArrayList plist = new ArrayList();
  309. foreach (UltraGridRow row in ultraGrid1.Rows)
  310. {
  311. if (row.HasChild() && row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE")
  312. {
  313. MessageBox.Show("主表不能进行取消分组操作", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  314. return;
  315. }
  316. foreach (UltraGridRow crow in row.ChildBands[0].Rows)
  317. {
  318. ArrayList clist = new ArrayList(); //需要取消的GIC和XH
  319. if (crow.Cells["CHC"].Value.ToString().ToUpper() == "TRUE")
  320. {
  321. if (crow.Cells["VALIDFLAGNAME"].Value.ToString().Equals(""))
  322. {
  323. isselect += 1;
  324. }
  325. if (crow.Cells["VALIDFLAGNAME"].Value.ToString().Equals("无效"))
  326. {
  327. isvalid += 1;
  328. }
  329. if (crow.Cells["GROUP_SEQ"].Value.ToString().Equals(""))
  330. {
  331. hasindex += 1;
  332. }
  333. ischeck += 1;
  334. clist.Add(crow.Cells["PIC"].Value.ToString());
  335. clist.Add(crow.Cells["INDEX_SEQ"].Value.ToString());
  336. plist.Add(clist);
  337. }
  338. }
  339. }
  340. if (ischeck == 0)
  341. {
  342. MessageBox.Show("请选择你要取消分组的记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  343. return;
  344. }
  345. if (isselect > 0)
  346. {
  347. MessageBox.Show("您选择的记录中存在未保存的项,不能对其进行取消分组操作", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  348. return;
  349. }
  350. if (isvalid > 0)
  351. {
  352. MessageBox.Show("您选择的记录中存在无效数据,无法取消分组", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  353. return;
  354. }
  355. if (hasindex > 0)
  356. {
  357. MessageBox.Show("您选择的记录中存在未分组的数据,无法取消分组", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  358. return;
  359. }
  360. if (MessageBox.Show("是否确认对所选项进行取消分组?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  361. {
  362. return;
  363. }
  364. int count = ServerHelper.SetData("com.steering.pss.qcm.ComMaterial.cancleGroup", new Object[] { plist }, this.ob);
  365. if (count > 0)
  366. {
  367. MessageBox.Show("取消分组成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  368. DoQuery();
  369. ExpandRow();
  370. PicCode.Clear();
  371. }
  372. }
  373. private void CreateGridCombo()
  374. {
  375. int cout = ultraComPhyMax.Items.Count;
  376. ultraphymin = new Dictionary<string, UltraComboEditor>(cout);
  377. for (int i = 0; i < ultraComPhyMax.Items.Count; i++)
  378. {
  379. string phymaxcode = ultraComPhyMax.Items[i].DataValue.ToString();
  380. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyC", new Object[] { phymaxcode }, this.ob);
  381. UltraComboEditor cmb = new UltraComboEditor();
  382. cmb.DataSource = dt;
  383. cmb.DisplayMember = "PHY_TYPE";
  384. cmb.ValueMember = "PHY_CODE";
  385. cmb.Visible = false;
  386. cmb.DropDownListWidth = -1;
  387. ultraphymin.Add(phymaxcode, cmb);
  388. this.Controls.Add(cmb);
  389. }
  390. int count1 = ultraphymin.Count;
  391. ultraitem = new Dictionary<string, UltraComboEditor>(count1);
  392. for (int i = 0; i < count1; i++)
  393. {
  394. for (int j = 0; j < ultraphymin[ultraComPhyMax.Items[i].DataValue.ToString()].Items.Count; j++)
  395. {
  396. string phymincode = ultraphymin[ultraComPhyMax.Items[i].DataValue.ToString()].Items[j].DataValue.ToString();
  397. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhy",
  398. new Object[] { ultraComPhyMax.Items[i].DataValue.ToString(), phymincode }, this.ob);
  399. UltraComboEditor cmb = new UltraComboEditor();
  400. cmb.DataSource = dt;
  401. cmb.DisplayMember = "PHY_NAME";
  402. cmb.ValueMember = "PHY_CODE";
  403. cmb.Visible = false;
  404. cmb.DropDownListWidth = -1;
  405. ultraitem.Add(phymincode, cmb);
  406. this.Controls.Add(cmb);
  407. }
  408. }
  409. foreach (UltraComboEditor cmb in ultraitem.Values)
  410. {
  411. for (int j = 0; j < cmb.Items.Count; j++)
  412. {
  413. string phyCode = cmb.Items[j].DataValue.ToString();
  414. if (itemCodeFDic.ContainsKey(phyCode) == true) continue;
  415. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRItem", new Object[] { phyCode }, this.ob);
  416. //DataRow dr = dt.NewRow();
  417. //dr["ITEM_CODE_F"] = ",,";
  418. //dr["ITEM_CODE_W"] = ",,";
  419. //dr["ITEM_CODE_C"] = ",,";
  420. //dr["ITEM_NAME_F"] = "";
  421. //dr["ITEM_NAME_W"] = "";
  422. //dr["ITEM_NAME_C"] = "";
  423. //dt.Rows.InsertAt(dr, 0);
  424. UltraCombo cmbF = new UltraCombo();
  425. cmbF.DataSource = dt;
  426. cmbF.DisplayMember = "ITEM_NAME_F";
  427. cmbF.ValueMember = "PRIMARY_KEY";
  428. cmbF.Visible = false;
  429. cmbF.DropDownWidth = -1;
  430. cmbF.DisplayLayout.Bands[0].Columns["ITEM_CODE_F"].Hidden = true;
  431. cmbF.DisplayLayout.Bands[0].Columns["ITEM_CODE_W"].Hidden = true;
  432. cmbF.DisplayLayout.Bands[0].Columns["ITEM_CODE_C"].Hidden = true;
  433. cmbF.DisplayLayout.Bands[0].Columns["PRIMARY_KEY"].Hidden = true;
  434. cmbF.DisplayLayout.Bands[0].Columns["ITEM_NAME_F"].Header.Caption = "试验方向";
  435. cmbF.DisplayLayout.Bands[0].Columns["ITEM_NAME_W"].Header.Caption = "试验温度";
  436. cmbF.DisplayLayout.Bands[0].Columns["ITEM_NAME_C"].Header.Caption = "试验尺寸";
  437. this.Controls.Add(cmbF);
  438. itemCodeFDic.Add(phyCode, cmbF);
  439. UltraCombo cmbW = new UltraCombo();
  440. cmbW.DataSource = dt;
  441. cmbW.DisplayMember = "ITEM_NAME_W";
  442. cmbW.ValueMember = "PRIMARY_KEY";
  443. cmbW.Visible = false;
  444. cmbW.DropDownWidth = -1;
  445. cmbW.DisplayLayout.Bands[0].Columns["ITEM_CODE_F"].Hidden = true;
  446. cmbW.DisplayLayout.Bands[0].Columns["ITEM_CODE_W"].Hidden = true;
  447. cmbW.DisplayLayout.Bands[0].Columns["ITEM_CODE_C"].Hidden = true;
  448. cmbW.DisplayLayout.Bands[0].Columns["PRIMARY_KEY"].Hidden = true;
  449. cmbW.DisplayLayout.Bands[0].Columns["ITEM_NAME_F"].Header.Caption = "试验方向";
  450. cmbW.DisplayLayout.Bands[0].Columns["ITEM_NAME_W"].Header.Caption = "试验温度";
  451. cmbW.DisplayLayout.Bands[0].Columns["ITEM_NAME_C"].Header.Caption = "试验尺寸";
  452. this.Controls.Add(cmbW);
  453. itemCodeWDic.Add(phyCode, cmbW);
  454. UltraCombo cmbS = new UltraCombo();
  455. cmbS.DataSource = dt;
  456. cmbS.DisplayMember = "ITEM_NAME_C";
  457. cmbS.ValueMember = "PRIMARY_KEY";
  458. cmbS.Visible = false;
  459. cmbS.DropDownWidth = -1;
  460. cmbS.DisplayLayout.Bands[0].Columns["ITEM_CODE_F"].Hidden = true;
  461. cmbS.DisplayLayout.Bands[0].Columns["ITEM_CODE_W"].Hidden = true;
  462. cmbS.DisplayLayout.Bands[0].Columns["ITEM_CODE_C"].Hidden = true;
  463. cmbS.DisplayLayout.Bands[0].Columns["PRIMARY_KEY"].Hidden = true;
  464. cmbS.DisplayLayout.Bands[0].Columns["ITEM_NAME_F"].Header.Caption = "试验方向";
  465. cmbS.DisplayLayout.Bands[0].Columns["ITEM_NAME_W"].Header.Caption = "试验温度";
  466. cmbS.DisplayLayout.Bands[0].Columns["ITEM_NAME_C"].Header.Caption = "试验尺寸";
  467. this.Controls.Add(cmbS);
  468. itemCodeSDic.Add(phyCode, cmbS);
  469. }
  470. }
  471. }
  472. /// <summary>
  473. /// 将生成的下拉框绑定到GRID
  474. /// </summary>
  475. /// <param name="e">初始化行时使用</param>
  476. /// <param name="ugr">Grid的子表行,刷新时用</param>
  477. ///
  478. private void BandComboToGrid(InitializeRowEventArgs e, UltraGridRow ugr)
  479. {
  480. if (e != null && e.Row.HasParent())
  481. {
  482. string phycodemax = e.Row.Cells["PHY_CODE_MAX"].Value.ToString();
  483. if (ultraphymin.ContainsKey(phycodemax))
  484. {
  485. e.Row.Cells["PHY_NAME_MIN"].EditorComponent = ultraphymin[phycodemax];
  486. }
  487. else
  488. {
  489. e.Row.Cells["PHY_NAME_MIN"].EditorComponent = null;
  490. }
  491. string phycodemin = e.Row.Cells["PHY_CODE_MIN"].Value.ToString();
  492. if (ultraitem.ContainsKey(phycodemin))
  493. {
  494. e.Row.Cells["PHY_NAME"].EditorComponent = ultraitem[phycodemin];
  495. }
  496. else
  497. {
  498. e.Row.Cells["PHY_NAME"].EditorComponent = null;
  499. }
  500. if (itemCodeFDic.ContainsKey(e.Row.GetValue("PHY_CODE")))
  501. {
  502. e.Row.Cells["ITEM_CODE_F"].EditorComponent = itemCodeFDic[e.Row.GetValue("PHY_CODE")];
  503. e.Row.Cells["ITEM_CODE_F"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  504. e.Row.Cells["ITEM_CODE_W"].EditorComponent = itemCodeWDic[e.Row.GetValue("PHY_CODE")];
  505. e.Row.Cells["ITEM_CODE_S"].EditorComponent = itemCodeSDic[e.Row.GetValue("PHY_CODE")];
  506. }
  507. //e.Row.Cells["ITEM_CODE_F"].EditorComponent = itemCodeFCmb;
  508. //e.Row.Cells["ITEM_CODE_W"].EditorComponent = itemCodeWCmb;
  509. //e.Row.Cells["ITEM_CODE_S"].EditorComponent = itemCodeSCmb;
  510. }
  511. if (ugr != null && e != null)
  512. {
  513. string phycodemax = ugr.Cells["PHY_CODE_MAX"].Value.ToString();
  514. if (ultraphymin.ContainsKey(phycodemax))
  515. {
  516. ugr.Cells["PHY_NAME_MIN"].EditorComponent = ultraphymin[phycodemax];
  517. }
  518. else
  519. {
  520. ugr.Cells["PHY_NAME_MIN"].EditorComponent = null;
  521. }
  522. string phycodemin = ugr.Cells["PHY_CODE_MIN"].Value.ToString();
  523. if (ultraitem.ContainsKey(phycodemin))
  524. {
  525. ugr.Cells["PHY_NAME"].EditorComponent = ultraitem[phycodemin];
  526. }
  527. else
  528. {
  529. ugr.Cells["PHY_NAME"].EditorComponent = null;
  530. }
  531. if (itemCodeFDic.ContainsKey(ugr.GetValue("PHY_CODE")))
  532. {
  533. ugr.Cells["ITEM_CODE_F"].EditorComponent = itemCodeFDic[ugr.GetValue("PHY_CODE")];
  534. e.Row.Cells["ITEM_CODE_F"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  535. ugr.Cells["ITEM_CODE_W"].EditorComponent = itemCodeWDic[ugr.GetValue("PHY_CODE")];
  536. ugr.Cells["ITEM_CODE_S"].EditorComponent = itemCodeSDic[ugr.GetValue("PHY_CODE")];
  537. }
  538. //ugr.Cells["ITEM_CODE_F"].EditorComponent = itemCodeFCmb;
  539. //ugr.Cells["ITEM_CODE_W"].EditorComponent = itemCodeWCmb;
  540. //ugr.Cells["ITEM_CODE_S"].EditorComponent = itemCodeSCmb;
  541. }
  542. }
  543. private void doGroup()
  544. {
  545. ArrayList list = new ArrayList();
  546. int ischeck = 0; //是否勾选
  547. int isselect = 0; //勾选项是否已写入数据库
  548. int isvalid = 0; //是否有效
  549. foreach (UltraGridRow row in ultraGrid1.Rows)
  550. {
  551. if (row.HasChild() && row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE")
  552. {
  553. MessageBox.Show("主表不能进行分组操作", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  554. return;
  555. }
  556. ArrayList plist = new ArrayList(); //分为几组。
  557. foreach (UltraGridRow crow in row.ChildBands[0].Rows)
  558. {
  559. ArrayList clist = new ArrayList(); //哪些分为一组。
  560. if (crow.Cells["CHC"].Value.ToString().ToUpper() == "TRUE")
  561. {
  562. if (crow.Cells["VALIDFLAGNAME"].Value.ToString().Equals(""))
  563. {
  564. isselect += 1;
  565. }
  566. if (crow.Cells["VALIDFLAGNAME"].Value.ToString().Equals("无效"))
  567. {
  568. isvalid += 1;
  569. }
  570. ischeck += 1;
  571. clist.Add(crow.Cells["PIC"].Value.ToString());
  572. clist.Add(crow.Cells["INDEX_SEQ"].Value.ToString());
  573. plist.Add(clist);
  574. }
  575. }
  576. list.Add(plist);
  577. }
  578. if (ischeck == 0)
  579. {
  580. MessageBox.Show("请选择你要分组的记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  581. return;
  582. }
  583. if (isselect > 0)
  584. {
  585. MessageBox.Show("您选择的分组记录中存在未保存的项,请先保存后再分组", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  586. return;
  587. }
  588. if (isvalid > 0)
  589. {
  590. MessageBox.Show("您选择的分组记录中存在无效数据,无法分组", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  591. return;
  592. }
  593. if (MessageBox.Show("是否确认对所选项进行分组?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  594. {
  595. return;
  596. }
  597. CoreClientParam ccp = new CoreClientParam(); //CoreClientParam是平台用来向服务端传递存放所有相关参数信息的。
  598. ccp.ServerName = "com.steering.pss.qcm.ComMaterial"; //服务名指的是服务端的包名+类名
  599. ccp.MethodName = "doGroup"; //方法名指的是服务名指定类里的方法
  600. ccp.ServerParams = new object[] { list };//服务端方法的参数
  601. //ExecuteNonQuery主要用来执行添加、修改、删除、存储过程的操作。
  602. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  603. if (ccp.ReturnCode == -1)
  604. return;
  605. MessageBox.Show("分组成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  606. DoQuery();
  607. ExpandRow();
  608. PicCode.Clear();
  609. }
  610. /// <summary>
  611. /// 刷新
  612. /// </summary>
  613. private void doRefresh()
  614. {
  615. InitComBoEditor();
  616. //CreateGridCombo();
  617. //foreach (UltraGridRow row in ultraGrid1.Rows)
  618. //{
  619. // foreach (UltraGridRow crow in row.ChildBands[0].Rows)
  620. // {
  621. // BandComboToGrid(null, crow);
  622. // }
  623. //}
  624. }
  625. /// <summary>
  626. /// 根据参数不同,隐藏不同的字段
  627. /// </summary>
  628. private void HideColumn()
  629. {
  630. if (this.CustomInfo == "1")
  631. {
  632. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Hidden = true;
  633. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true;
  634. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true;
  635. this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true;
  636. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true;
  637. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true;
  638. ultraGrid1.DisplayLayout.Bands[0].Columns["GRADENAME"].Hidden = true;
  639. ultraGrid1.DisplayLayout.Bands[0].Columns["IMPACT_ID"].Hidden = true;
  640. ultraGrid1.DisplayLayout.Bands[1].Columns["IS_PRODUCT_CHECK"].Hidden = true;
  641. }
  642. if (this.CustomInfo == "2")
  643. {
  644. this.ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
  645. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PSC"].Hidden = true;
  646. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
  647. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
  648. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true;
  649. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
  650. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
  651. this.ultraGrid1.DisplayLayout.Bands[0].Columns["BATCH_LOCA"].Hidden = true;
  652. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Header.Caption = "内控管理编号";
  653. //this.ultraGrid1.DisplayLayout.Bands[0].Columns["UnboundColumn1"].Hidden = false;
  654. //UnboundColumn1
  655. }
  656. if (this.CustomInfo == "3")
  657. {
  658. this.ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
  659. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PSC"].Hidden = true;
  660. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
  661. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
  662. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true;
  663. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
  664. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
  665. ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true;
  666. this.ultraGrid1.DisplayLayout.Bands[0].Columns["BATCH_LOCA"].Hidden = true;
  667. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true;
  668. this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true;
  669. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true;
  670. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true;
  671. this.ultraGrid1.DisplayLayout.Bands[0].Columns["UnboundColumn1"].Hidden = true;
  672. }
  673. }
  674. /// <summary>
  675. /// 行增加事件
  676. /// </summary>
  677. /// <param name="sender"></param>
  678. /// <param name="e"></param>
  679. private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e)
  680. {
  681. this.ultraGrid1.UpdateData();
  682. string style = "X";
  683. if (this.CustomInfo == "2")
  684. style = "N";
  685. if (this.CustomInfo == "3")
  686. style = "K";
  687. UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow;
  688. if (!ugr.HasParent()) //主表自动填充主键(理化标准索引号)
  689. {
  690. string picStr = "";
  691. string pic = "";
  692. DataRow[] dr = dataTable2.Select("", "PIC DESC");
  693. if (dr.Length > 0)
  694. {
  695. pic = dr[0]["PIC"].ToString();
  696. }
  697. if (!pic.Equals(""))
  698. {
  699. int number = int.Parse(pic.Substring(4, 6));
  700. picStr = "PIC" + style + string.Format("{0:000000}", number + 1);
  701. _pic = number + 1;
  702. }
  703. else
  704. {
  705. picStr = "PIC" + style + string.Format("{0:000000}", _pic);
  706. _pic = _pic + 1;
  707. }
  708. //赋值理化索引号
  709. ugr.Cells["PIC"].Value = picStr;
  710. ugr.Cells["UnboundColumn1"].Value = "维护取样要求";
  711. ugr.Cells["BATCH_LOCA"].Value = "408502";
  712. //ugr.Cells["COUNT"].Value = "已维护项目";
  713. }
  714. else //从表自动填充主键(序号)
  715. {
  716. int indexSeq = 0;
  717. DataRow[] dr = dataTable1.Select("PIC='" + ugr.Cells["PIC"].Value.ToString() + "'", "INDEX_SEQ DESC");
  718. if (dr.Length > 0)
  719. {
  720. indexSeq = Convert.ToInt32(dr[0]["INDEX_SEQ"]);
  721. }
  722. indexSeq += 1;
  723. //赋值序号
  724. this.ultraGrid1.DisplayLayout.ActiveRow.Cells["INDEX_SEQ"].Value = indexSeq;
  725. //将增加行的是否必选项置为默认选择 和 复合元素选择项置为默认不选
  726. this.ultraGrid1.DisplayLayout.ActiveRow.Cells["ISCHECK"].Value = true;
  727. this.ultraGrid1.DisplayLayout.ActiveRow.Cells["PHY_TYPE"].Value = false;
  728. this.ultraGrid1.ActiveRow.Cells["BILLET_SAMPLE"].Value = false;
  729. e.Row.Cells["JUDGE_BASIS"].Value = "逐项值判";
  730. e.Row.Cells["ISJUDGE"].Value = true;
  731. e.Row.Cells["ISQUOTE"].Value = true;
  732. e.Row.Cells["IS_PRODUCT_CHECK"].Value = false;
  733. if (ugr.Cells["PHY_TYPE"].Value.ToString().ToUpper() == "TRUE")
  734. {
  735. ugr.Cells["PHY_FORMULA"].Activation = Activation.AllowEdit;
  736. }
  737. else
  738. {
  739. ugr.Cells["PHY_FORMULA"].Activation = Activation.ActivateOnly;
  740. }
  741. }
  742. //增加行如果没有勾选则不可编辑
  743. if (!Convert.ToBoolean(ugr.Cells["CHC"].Value))
  744. {
  745. for (int i = 0; i < ugr.Cells.Count; i++)
  746. {
  747. if (!ugr.Cells[i].Column.Key.Equals("CHC"))
  748. ugr.Cells[i].Activation = Activation.ActivateOnly;
  749. if (ugr.Cells[i].Column.Key.Equals("CHKNK"))
  750. ugr.Cells["CHKNK"].Value = "选择";
  751. }
  752. }
  753. e.Row.Update();
  754. }
  755. /// <summary>
  756. /// 登陆初始化数据
  757. /// </summary>
  758. /// <param name="sender"></param>
  759. /// <param name="e"></param>
  760. private void FrmMaterialStandard_Load(object sender, EventArgs e)
  761. {
  762. if (this.CustomInfo == "5")
  763. {
  764. this.ultraToolbarsManager1.Tools[2].SharedProps.Visible = false;
  765. }
  766. if (this.CustomInfo != "4" && this.CustomInfo != "5")
  767. InitComBoEditor();
  768. HideColumn();
  769. //CreateGridCombo();
  770. if (this.CustomInfo == "3")
  771. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME_NK"].Header.Caption = "标准名称";
  772. }
  773. private void setGrid()
  774. {
  775. ultraGrid1.UpdateData();
  776. //foreach (UltraGridRow row in ultraGrid1.Rows)
  777. //{
  778. // row.Cells["UnboundColumn1"].Value = "维护取样要求";
  779. // DataView dv = new DataView(dataTable1);
  780. // DataTable newdt = dv.ToTable(false, "PIC", "PHY_NAME_MAX", "PHY_NAME_MIN", "PHY_NAME", "ITEM_NAME_F", "ITEM_NAME_W", "ITEM_NAME_S");
  781. // DataRow[] dr = newdt.Select("PIC='" + row.Cells["PIC"].Value.ToString() + "'", "");
  782. // row.Cells["COUNT"].Value = newdt.AsEnumerable().Where(a => a["PIC"].ToString() == row.Cells["PIC"].Value.ToString()).Distinct(new DataRowComparer()).Count();
  783. // // row.Cells["COUNT"].Value = "已维护项目";
  784. //}
  785. }
  786. public void PopupRefresh()
  787. {
  788. if (CustomInfo == "1")
  789. {
  790. UltraComboEditor UceMsc = new UltraComboEditor();
  791. this.Controls.Add(UceMsc);
  792. UceMsc.Visible = false;
  793. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getMsc", new object[] { msc }, ob);
  794. QcmBaseCommon.InitDropList(UceMsc, dt, "MSC", false);
  795. ClsBaseInfo.SetComboItemHeight(UceMsc);
  796. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].EditorComponent = UceMsc;
  797. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  798. }
  799. }
  800. /// <summary>
  801. /// 初始化下拉框数据
  802. /// </summary>
  803. private void InitComBoEditor()
  804. {
  805. QcmBaseCommon.InitSignMin(ultraComSignMin);
  806. QcmBaseCommon.InitSignMax(ultraComSignMax);
  807. InitJudgeBasis();
  808. //初始化理化检验项大类
  809. ultraComPhyMax.DropDownListWidth = -1;
  810. QcmBaseCommon.InitDropUltraComEditor(ultraComPhyMax, "com.steering.pss.qcm.ComBaseQuery.geComBasePhyRStd", "PHY_TYPE", this.ob, false);
  811. //初始化结箍名称
  812. QcmBaseCommon.InitDropUltraComEditor(ultraComJG, "com.steering.pss.qcm.ComBaseQuery.getComMSCJG", "SPEC_JG_DESC", this.ob, true);
  813. //初始化限制规格
  814. QcmBaseCommon.InitDropUltraComEditor(ultraComSize, "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4003", "BASENAME", this.ob, true);
  815. //交货标准
  816. QcmBaseCommon.InitDropUltraComEditor(ultraComboDelivery, "com.steering.pss.qcm.ComBaseQuery.geComBaseInfo4060", "BASENAME", this.ob, true);
  817. //内控标准
  818. UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0];
  819. this.Controls.Add(uce);
  820. uce.Visible = false;
  821. ugb.Columns["GRADECODE"].Hidden = true;
  822. ugb.Columns["STEELCODE"].CellActivation = Activation.ActivateOnly;
  823. if (this.CustomInfo == "2")
  824. {
  825. ugb.Columns["GRADECODE"].Hidden = false;
  826. InnerChange();
  827. QcmBaseQuery.NitializeInnerStandard(uce, false, this.ob);
  828. QcmBaseQuery.BindColumn(uce, "STD_CODE_NK", ugb);
  829. }
  830. if (this.CustomInfo == "3")
  831. {
  832. QcmBaseQuery.NitializeAlphaStandard(uce, false, this.ob);
  833. QcmBaseQuery.BindColumn(uce, "STD_CODE_NK", ugb);
  834. }
  835. //产品规范码
  836. QcmBaseCommon.InitDropUltraComEditor(ultraComboPSC, "com.steering.pss.qcm.ComMaterial.getPSC", "PSC_DESC", this.ob, false);
  837. if (CustomInfo == "1")
  838. {
  839. UltraComboEditor UceMsc = new UltraComboEditor();
  840. this.Controls.Add(UceMsc);
  841. UceMsc.Visible = false;
  842. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getMsc", new object[] { msc }, ob);
  843. QcmBaseCommon.InitDropList(UceMsc, dt, "MSC", false);
  844. ClsBaseInfo.SetComboItemHeight(UceMsc);
  845. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].EditorComponent = UceMsc;
  846. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  847. ClsBaseInfo.FillComBaseInfo(ultraComboBatchLoca, "4085", ob, false);
  848. ultraGrid1.DisplayLayout.Bands[0].Columns["BATCH_LOCA"].EditorComponent = ultraComboBatchLoca;
  849. ultraGrid1.DisplayLayout.Bands[0].Columns["BATCH_LOCA"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  850. }
  851. //附加标准
  852. UltraComboEditor uceAddStdCon = new UltraComboEditor();
  853. this.Controls.Add(uceAddStdCon);
  854. uceAddStdCon.Visible = false;
  855. QcmBaseCommon.InitDropUltraComEditor(uceAddStdCon, "com.steering.pss.qcm.ComMaterial.getAddCondition", "BASENAME", this.ob, false);
  856. ultraGrid1.DisplayLayout.Bands[1].Columns["ADDSTDCON_CODE"].EditorComponent = uceAddStdCon;
  857. ultraGrid1.DisplayLayout.Bands[1].Columns["ADDSTDCON_CODE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  858. ClsBaseInfo.SetComboItemHeight(uceAddStdCon);
  859. cmbProBigType.Visible = false;
  860. this.Controls.Add(cmbProBigType);
  861. QcmBaseQuery.NitializeProductBigType(cmbProBigType, false, ob);
  862. QcmBaseQuery.BindColumn(cmbProBigType, "PRODUC_HEAD", ugb);
  863. ClsBaseInfo.SetComboItemHeight(cmbProBigType);
  864. //多标准选择分类
  865. UltraComboEditor uceMultStd = new UltraComboEditor();
  866. this.Controls.Add(uceMultStd);
  867. uceMultStd.Visible = false;
  868. QcmBaseCommon.InitDropUltraComEditor(uceMultStd, "com.steering.pss.qcm.ComMaterial.getMultStd", "BASENAME", this.ob, true);
  869. ultraGrid1.DisplayLayout.Bands[1].Columns["STD_CHOOSE"].EditorComponent = uceMultStd;
  870. ultraGrid1.DisplayLayout.Bands[1].Columns["STD_CHOOSE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  871. ClsBaseInfo.SetComboItemHeight(uceMultStd);
  872. ClsBaseInfo.SetComboItemHeight(ultraComboEditor2);
  873. //公式限制
  874. ClsBaseInfo.FillComBaseInfo(ultraComboEditor3, "4095", ob, true);
  875. }
  876. /// <summary>
  877. /// 初始化判断依据
  878. /// </summary>
  879. private void InitJudgeBasis()
  880. {
  881. DataTable dt = new DataTable();
  882. dt.Columns.Add("JUDGE_BASIS");
  883. DataRow dr1 = dt.NewRow();
  884. dr1["JUDGE_BASIS"] = "最小值";
  885. DataRow dr2 = dt.NewRow();
  886. dr2["JUDGE_BASIS"] = "最大值";
  887. DataRow dr3 = dt.NewRow();
  888. dr3["JUDGE_BASIS"] = "平均值";
  889. DataRow dr4 = dt.NewRow();
  890. dr4["JUDGE_BASIS"] = "逐项值判";
  891. dt.Rows.Add(dr1);
  892. dt.Rows.Add(dr2);
  893. dt.Rows.Add(dr3);
  894. dt.Rows.Add(dr4);
  895. ultraComJudgeBasis.DataSource = dt;
  896. ultraComJudgeBasis.DisplayMember = "JUDGE_BASIS";
  897. DataTable dt1 = new DataTable();
  898. dt1.Columns.Add("ADDCONDITION");
  899. DataRow dr5 = dt1.NewRow();
  900. dr5["ADDCONDITION"] = "符合标准时";
  901. DataRow dr6 = dt1.NewRow();
  902. dr6["ADDCONDITION"] = "不符合标准时";
  903. DataRow dr7 = dt1.NewRow();
  904. dr7["ADDCONDITION"] = " ";
  905. dt1.Rows.Add(dr5);
  906. dt1.Rows.Add(dr6);
  907. dt1.Rows.Add(dr7);
  908. ultraComboEditor1.DataSource = dt1;
  909. ultraComboEditor1.DisplayMember = "ADDCONDITION";
  910. ClsBaseInfo.SetComboItemHeight(ultraComboEditor1);
  911. }
  912. /// <summary>
  913. /// ultragrid1数据变化事件
  914. /// </summary>
  915. /// <param name="sender"></param>
  916. /// <param name="e"></param>
  917. public void ultraGrid1_CellChange(object sender, CellEventArgs e)
  918. {
  919. ultraGrid1.UpdateData();
  920. UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow;
  921. if (e.Cell.Column.Key.Equals("SPEC_JG_DESC")) //结箍
  922. {
  923. ugr.Cells["SPEC_JG"].Value = ugr.Cells["SPEC_JG_DESC"].Value.ToString();
  924. }
  925. if (e.Cell.Column.Key.Equals("SIZE_NAME2")) //规格描述一
  926. {
  927. ugr.Cells["SIZE_CODE2"].Value = ugr.Cells["SIZE_NAME2"].Value.ToString();
  928. string sizeCode2 = ugr.Cells["SIZE_CODE2"].Value.ToString();
  929. string sizeCode = ugr.Cells["SIZE_CODE"].Value.ToString();
  930. if (!sizeCode2.Equals("") && sizeCode2.Equals(sizeCode))
  931. {
  932. ugr.Cells["SIZE_CODE2"].Value = "";
  933. ugr.Cells["SIZE_NAME2"].Value = "";
  934. MessageBox.Show("限制规格描述不能相同", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  935. return;
  936. }
  937. if (string.IsNullOrEmpty(e.Cell.Text))
  938. {
  939. ugr.Cells["SIZE_MIN_SIGN2"].Value = "";
  940. ugr.Cells["SIZE_MIN2"].Value = "";
  941. ugr.Cells["SIZE_MAX_SIGN2"].Value = "";
  942. ugr.Cells["SIZE_MAX2"].Value = "";
  943. }
  944. }
  945. else if (e.Cell.Column.Key.Equals("SIZE_NAME")) //规格描述二
  946. {
  947. ugr.Cells["SIZE_CODE"].Value = ugr.Cells["SIZE_NAME"].Value.ToString();
  948. string sizeCode2 = ugr.Cells["SIZE_CODE2"].Value.ToString();
  949. string sizeCode = ugr.Cells["SIZE_CODE"].Value.ToString();
  950. if (!sizeCode.Equals("") && sizeCode.Equals(sizeCode2))
  951. {
  952. ugr.Cells["SIZE_CODE"].Value = "";
  953. ugr.Cells["SIZE_NAME"].Value = "";
  954. MessageBox.Show("限制规格描述不能相同", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  955. return;
  956. }
  957. if (string.IsNullOrEmpty(e.Cell.Text))
  958. {
  959. ugr.Cells["SIZE_MIN_SIGN"].Value = "";
  960. ugr.Cells["SIZE_MIN"].Value = "";
  961. ugr.Cells["SIZE_MAX_SIGN"].Value = "";
  962. ugr.Cells["SIZE_MAX"].Value = "";
  963. }
  964. }
  965. else if (e.Cell.Column.Key.Equals("STD_CODE_NK")) //标准下拉框选择
  966. {
  967. ugr.Cells["STD_NAME_NK"].Value = ugr.Cells["STD_CODE_NK"].Text;
  968. DataRow[] dr = ((DataTable)uce.DataSource).Select("STD_CODE='" + ugr.Cells["STD_CODE_NK"].Value + "'");
  969. if (dr.Length > 0)
  970. ugr.Cells["STDSTYLE"].Value = dr[0][2];
  971. }
  972. else if (e.Cell.Column.Key.Equals("PROCESS_DESC")) //工序下拉框选择
  973. {
  974. ugr.Cells["PROCESS_CDOE"].Value = ugr.Cells["PROCESS_DESC"].Value.ToString();
  975. }
  976. else if (e.Cell.Column.Key.Equals("PSC_DESC")) //产品规范码
  977. {
  978. string psc = ugr.Cells["PSC_DESC"].Value.ToString();
  979. string[] str = psc.Split('@');
  980. ugr.Cells["PSC"].Value = str[0];
  981. ugr.Cells["PRODUCNAME"].Value = str[1];
  982. ugr.Cells["STDSTYLE"].Value = str[2];
  983. ugr.Cells["STD_NAME"].Value = str[3];
  984. ugr.Cells["STEELNAME"].Value = str[4];
  985. ugr.Cells["STD_STYLE_DESC"].Value = str[5];
  986. }
  987. else if (e.Cell.Column.Key.Equals("MSC")) //冶金规范码
  988. {
  989. string msc = ugr.Cells["MSC"].Value.ToString();
  990. string[] str = msc.Split('@');
  991. ugr.Cells["PSC"].Value = str[1];
  992. ugr.Cells["PSC_DESC"].Value = str[2];
  993. ugr.Cells["PRODUCNAME"].Value = str[3];
  994. ugr.Cells["STDSTYLE"].Value = str[7];
  995. ugr.Cells["STD_NAME"].Value = str[4];
  996. ugr.Cells["STEELNAME"].Value = str[5];
  997. ugr.Cells["STD_STYLE_DESC"].Value = str[6];
  998. }
  999. //ISCHECK ISJUDGE ISQUOTE
  1000. //"是否判定"或"是否报出"存在的前提是"是否检验"
  1001. else if (e.Cell.Column.Key.Equals("ISCHECK"))
  1002. {
  1003. if (!Convert.ToBoolean(e.Cell.Value) && e.Cell.Row.Cells["PHY_CODE_MIN"].Value.ToString() != "C0156")
  1004. {
  1005. e.Cell.Row.Cells["ISJUDGE"].Value = false;
  1006. e.Cell.Row.Cells["ISQUOTE"].Value = false;
  1007. }
  1008. }
  1009. else if (e.Cell.Column.Key.Equals("ISJUDGE") || e.Cell.Column.Key.Equals("ISQUOTE"))
  1010. {
  1011. if (Convert.ToBoolean(e.Cell.Value) && e.Cell.Row.Cells["PHY_CODE_MIN"].Value.ToString() != "C0156")
  1012. {
  1013. e.Cell.Row.Cells["ISCHECK"].Value = true;
  1014. }
  1015. }
  1016. //输入百分比时 自动算出附加标准范围值
  1017. else if (e.Cell.Column.Key.Equals("ADDPERCENT"))
  1018. {
  1019. UltraGridRow row = ultraGrid1.ActiveRow;
  1020. string stdmin_sign = row.Cells["STDMIN_SIGN"].Value.ToString();
  1021. string stdmin = row.Cells["STDMIN"].Value.ToString();
  1022. string stdmax_sign = row.Cells["STDMAX_SIGN"].Value.ToString();
  1023. string stdmax = row.Cells["STDMAX"].Value.ToString();
  1024. if (e.Cell.Value.ToString() != "")
  1025. {
  1026. if (stdmin != "")
  1027. {
  1028. row.Cells["ADDSTD_MIN_SIGN"].Value = stdmin_sign;
  1029. double addStdMin = Convert.ToDouble(stdmin) * Convert.ToDouble(e.Cell.Value) / 100;
  1030. row.Cells["ADDSTD_MIN"].Value = Math.Round(addStdMin, 0);
  1031. }
  1032. if (stdmax != "")
  1033. {
  1034. row.Cells["ADDSTD_MAX_SIGN"].Value = stdmax_sign;
  1035. double addStdMax = Convert.ToDouble(stdmax) * Convert.ToDouble(e.Cell.Value) / 100;
  1036. row.Cells["ADDSTD_MAX"].Value = Math.Round(addStdMax, 0); ;
  1037. }
  1038. }
  1039. }
  1040. //标准下限符号改变时
  1041. else if (e.Cell.Column.Key.Equals("STDMIN_SIGN"))
  1042. {
  1043. UltraGridRow row = ultraGrid1.ActiveRow;
  1044. string percent = row.Cells["ADDPERCENT"].Value.ToString();
  1045. if (percent != "")
  1046. {
  1047. row.Cells["ADDSTD_MIN_SIGN"].Value = e.Cell.Value.ToString();
  1048. }
  1049. if (ugr.Cells["STD_CHOOSE"].Value.ToString() != "")
  1050. {
  1051. ugr.Cells["STDMIN_SIGN2"].Value = e.Cell.Value;
  1052. }
  1053. if (e.Cell.Value.ToString() == "=")
  1054. {
  1055. e.Cell.Row.Cells["STDMIN"].EditorComponent = ultraTextEditor2;
  1056. }
  1057. else
  1058. {
  1059. e.Cell.Row.Cells["STDMIN"].EditorComponent = null;
  1060. }
  1061. }
  1062. //标准下限值改变时
  1063. else if (e.Cell.Column.Key.Equals("STDMIN"))
  1064. {
  1065. UltraGridRow row = ultraGrid1.ActiveRow;
  1066. string percent = row.Cells["ADDPERCENT"].Value.ToString();
  1067. if (percent != "" && e.Cell.Value.ToString() != "" && StringUtil.IsNumber(e.Cell.Value.ToString()))
  1068. {
  1069. double addStdMin = Convert.ToDouble(e.Cell.Value.ToString()) * Convert.ToDouble(percent) / 100;
  1070. row.Cells["ADDSTD_MIN"].Value = Math.Round(addStdMin, 0);
  1071. }
  1072. }
  1073. //标准上限符号改变时
  1074. else if (e.Cell.Column.Key.Equals("STDMAX_SIGN"))
  1075. {
  1076. UltraGridRow row = ultraGrid1.ActiveRow;
  1077. string percent = row.Cells["ADDPERCENT"].Value.ToString();
  1078. if (percent != "")
  1079. {
  1080. row.Cells["ADDSTD_MAX_SIGN"].Value = e.Cell.Value.ToString();
  1081. }
  1082. if (ugr.Cells["STD_CHOOSE"].Value.ToString() != "")
  1083. {
  1084. ugr.Cells["STDMAX_SIGN2"].Value = e.Cell.Value;
  1085. }
  1086. }
  1087. //标准上限值改变时
  1088. else if (e.Cell.Column.Key.Equals("STDMAX"))
  1089. {
  1090. UltraGridRow row = ultraGrid1.ActiveRow;
  1091. string percent = row.Cells["ADDPERCENT"].Value.ToString();
  1092. if (percent != "" && e.Cell.Value.ToString() != "" && StringUtil.IsNumber(e.Cell.Value.ToString()))
  1093. {
  1094. double addStdMax = Convert.ToDouble(e.Cell.Value.ToString()) * Convert.ToDouble(percent) / 100;
  1095. row.Cells["ADDSTD_MAX"].Value = Math.Round(addStdMax, 0);
  1096. }
  1097. }
  1098. //附加标准条件为空时
  1099. else if (e.Cell.Column.Key.Equals("ADDCONDITION"))
  1100. {
  1101. UltraGridRow row = ultraGrid1.ActiveRow;
  1102. if (e.Cell.Value.ToString() == " ")
  1103. {
  1104. row.Cells["ADDSTDCON_CODE"].Value = "";
  1105. row.Cells["ADDSTD_MIN_SIGN"].Value = "";
  1106. row.Cells["ADDSTD_MIN"].Value = "";
  1107. row.Cells["ADDSTD_MAX_SIGN"].Value = "";
  1108. row.Cells["ADDSTD_MAX"].Value = "";
  1109. row.Cells["ADDPERCENT"].Value = "";
  1110. }
  1111. }
  1112. //取大/小值为空时
  1113. else if (e.Cell.Column.Key.Equals("STD_CHOOSE"))
  1114. {
  1115. UltraGridRow row = ultraGrid1.ActiveRow;
  1116. if (e.Cell.Value.ToString() == "")
  1117. {
  1118. row.Cells["STDMIN_SIGN2"].Value = "";
  1119. row.Cells["STDMIN2"].Value = "";
  1120. row.Cells["STDMAX_SIGN2"].Value = "";
  1121. row.Cells["STDMAX2"].Value = "";
  1122. }
  1123. else
  1124. {
  1125. row.Cells["STDMIN_SIGN2"].Value = row.Cells["STDMIN_SIGN"].Value;
  1126. row.Cells["STDMAX_SIGN2"].Value = row.Cells["STDMAX_SIGN"].Value;
  1127. }
  1128. }
  1129. else if (e.Cell.Column.Key.Equals("CHC")) //选择
  1130. {
  1131. if (Convert.ToBoolean(e.Cell.Value))
  1132. {
  1133. //isSelect += 1;
  1134. for (int i = 0; i < e.Cell.Row.Cells.Count; i++)
  1135. {
  1136. e.Cell.Row.Cells[i].Activation = Activation.AllowEdit;
  1137. }
  1138. if (e.Cell.Row.HasParent())
  1139. {
  1140. if (e.Cell.Row.Cells["STDMIN_SIGN"].Value.ToString() == "=")
  1141. {
  1142. e.Cell.Row.Cells["STDMIN"].EditorComponent = ultraTextEditor2;
  1143. }
  1144. if (e.Cell.Row.Cells["PHY_TYPE"].Value.ToString().ToUpper() == "TRUE")
  1145. {
  1146. e.Cell.Row.Cells["PHY_FORMULA"].Activation = Activation.AllowEdit;
  1147. }
  1148. else
  1149. {
  1150. e.Cell.Row.Cells["PHY_FORMULA"].Activation = Activation.ActivateOnly;
  1151. }
  1152. }
  1153. else
  1154. {
  1155. e.Cell.Row.Cells["PSC_DESC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown;
  1156. e.Cell.Row.Cells["PSC_DESC"].Activation = Activation.ActivateOnly;
  1157. }
  1158. }
  1159. else
  1160. {
  1161. //isSelect -= 1;
  1162. for (int i = 0; i < e.Cell.Row.Cells.Count; i++)
  1163. {
  1164. if (!e.Cell.Row.Cells[i].Column.Key.Equals("CHC"))
  1165. e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly;
  1166. }
  1167. }
  1168. }
  1169. else if (e.Cell.Column.Key.Equals("PHY_TYPE"))
  1170. {
  1171. if (e.Cell.Row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE")
  1172. {
  1173. if (e.Cell.Row.Cells["PHY_TYPE"].Value.ToString().ToUpper() == "TRUE")
  1174. {
  1175. e.Cell.Row.Cells["PHY_FORMULA"].Activation = Activation.AllowEdit;
  1176. }
  1177. else
  1178. {
  1179. e.Cell.Row.Cells["PHY_FORMULA"].Activation = Activation.ActivateOnly;
  1180. }
  1181. }
  1182. }
  1183. else if (e.Cell.Column.Key.Equals("GRADECODE"))
  1184. {
  1185. e.Cell.Row.Cells["GRADENAME"].Value = e.Cell.Text;
  1186. }
  1187. else if (e.Cell.Column.Key.Equals("STEELCODE"))
  1188. {
  1189. e.Cell.Row.Cells["STEELNAME"].Value = e.Cell.Text;
  1190. }
  1191. ultraGrid1.UpdateData();
  1192. SavePic(e);
  1193. }
  1194. private DataRow GetComMscByPk(string msc)
  1195. {
  1196. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByPk",
  1197. new object[] { msc }, ob);
  1198. return dt.Rows[0];
  1199. }
  1200. /// <summary>
  1201. /// 弹出扣型选择界面
  1202. /// </summary>
  1203. /// <param name="sender"></param>
  1204. /// <param name="e"></param>
  1205. private void ultraGrid1_ClickCellButton(object sender, CellEventArgs e)
  1206. {
  1207. if (e.Cell.Column.Key.Equals("MODEL_DESC") && Convert.ToBoolean(ultraGrid1.DisplayLayout.ActiveRow.Cells["CHC"].Value))
  1208. {
  1209. UltraGridRow row = this.ultraGrid1.DisplayLayout.ActiveRow;
  1210. FrmModel frms = new FrmModel();
  1211. frms.FrmOb = this.ob;
  1212. frms.Desc = row.Cells["MODEL_DESC"].Value.ToString();
  1213. frms.ShowDialog();
  1214. row.Cells["MODEL_CODE"].Value = frms.Code;
  1215. row.Cells["MODEL_DESC"].Value = frms.Desc;
  1216. }
  1217. if (e.Cell.Column.Key.Equals("CHKNK"))
  1218. {
  1219. _frmMaterialStd = new FrmMaterialStandard();
  1220. _frmMaterialStd.PopupLoad("5", ob);
  1221. _frmMaterialStd.UltraPanel1.Visible = false;
  1222. _frmMaterialStd.ultraToolbarsManager1.Visible = true;
  1223. _frmMaterialStd.Msc = msc;
  1224. _frmMaterialStd.StrPic = ultraGrid1.ActiveRow.GetValue("PIC");
  1225. _frmMaterialStd.CodeJg = "";
  1226. _frmMaterialStd.DoQuery2();
  1227. _frmMaterialStd.EditGrid();
  1228. if (_frmMaterialStd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  1229. {
  1230. DataRow CurRow, NewRow;
  1231. for (int i = 0; i < _frmMaterialStd.dataTable1.Rows.Count; i++)
  1232. {
  1233. CurRow = _frmMaterialStd.dataTable1.Rows[i];
  1234. NewRow = dataTable1.NewRow();
  1235. if (!_frmMaterialStd.Ids.Contains(CurRow["PIC"].ToString2()))
  1236. {
  1237. continue;
  1238. }
  1239. //赋值序号
  1240. CurRow["IS_PRODUCT_CHECK"] = "False";
  1241. for (int j = 0; j < _frmMaterialStd.dataTable1.Columns.Count; j++)
  1242. {
  1243. try
  1244. {
  1245. if (dataTable1.Columns.Contains(_frmMaterialStd.dataTable1.Columns[j].ColumnName))
  1246. {
  1247. if (_frmMaterialStd.dataTable1.Columns[j].ColumnName == "PIC")
  1248. {
  1249. NewRow[_frmMaterialStd.dataTable1.Columns[j].ColumnName] = ultraGrid1.ActiveRow.GetValue("PIC");
  1250. }
  1251. else
  1252. {
  1253. NewRow[_frmMaterialStd.dataTable1.Columns[j].ColumnName] = CurRow[j];
  1254. }
  1255. }
  1256. }
  1257. catch { }
  1258. }
  1259. dataTable1.Rows.Add(NewRow);
  1260. }
  1261. ultraGrid1.UpdateData();
  1262. }
  1263. }
  1264. if (e.Cell.Column.Key.Equals("UnboundColumn1") && e.Cell.Row.ChildBands[0].Rows.Count > 0)
  1265. {
  1266. int k = 0;
  1267. foreach (UltraGridRow child in e.Cell.Row.ChildBands[0].Rows)
  1268. {
  1269. if (child.Cells["VALIDFLAGNAME"].Value.ToString() == "")
  1270. {
  1271. k += 1;
  1272. }
  1273. }
  1274. if (k != 0)
  1275. {
  1276. MessageUtil.ShowWarning("子表存在未保存的记录,请先保存!");
  1277. return;
  1278. }
  1279. DataTable dt = new DataTable();
  1280. dt.Columns.AddRange(new DataColumn[] {
  1281. new DataColumn("PIC"),
  1282. new DataColumn("PHY_CODE_MIN"),
  1283. new DataColumn("PHY_NAME_MIN"),
  1284. new DataColumn("STD_CODE"),
  1285. new DataColumn("STD_NAME"),
  1286. new DataColumn("STEELCODE"),
  1287. new DataColumn("STEELNAME"),
  1288. new DataColumn("PRODUCCODE"),
  1289. new DataColumn("PRODUCNAME"),
  1290. new DataColumn("USE_DESC"),
  1291. new DataColumn("ITEM_CODE_F"),
  1292. new DataColumn("ITEM_NAME_F"),
  1293. new DataColumn("ITEM_CODE_C"),
  1294. new DataColumn("ITEM_NAME_C"),
  1295. new DataColumn("ITEM_CODE_W"),
  1296. new DataColumn("ITEM_NAME_W"),
  1297. new DataColumn("PSC"),
  1298. new DataColumn("DIMATER"),
  1299. new DataColumn("HEIGHT")});
  1300. string steelCode = "";
  1301. string steelName = "";
  1302. string producCode = "";
  1303. string producName = "";
  1304. string useDesc = "";
  1305. string stdCode = "";
  1306. string stdName = "";
  1307. if (msc != "")
  1308. {
  1309. DataRow comMsc = GetComMscByPk(msc);
  1310. steelCode = comMsc["STEELCODE"].ToString();
  1311. steelName = comMsc["STEELNAME"].ToString();
  1312. producCode = comMsc["PRODUCCODE"].ToString();
  1313. producName = comMsc["PRODUCNAME"].ToString();
  1314. useDesc = comMsc["USE_DESC"].ToString();
  1315. stdCode = comMsc["STD_CODE"].ToString();
  1316. stdName = comMsc["STD_NAME"].ToString();
  1317. }
  1318. string pic = e.Cell.Row.Cells["PIC"].Value.ToString();
  1319. for (int i = 0; i < e.Cell.Row.ChildBands[0].Rows.Count; i++)
  1320. {
  1321. if (e.Cell.Row.ChildBands[0].Rows[i].Cells["ISCHECK"].Value.ToString() == "False") continue;
  1322. string phyCodeMin = e.Cell.Row.ChildBands[0].Rows[i].Cells["PHY_CODE_MIN"].Value.ToString();
  1323. string phyNameMin = e.Cell.Row.ChildBands[0].Rows[i].Cells["PHY_NAME_MIN"].Value.ToString();
  1324. string itemCodeF = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_CODE_F"].Value.ToString();
  1325. string itemNameF = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_F"].Value.ToString();
  1326. string itemCodeC = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_CODE_S"].Value.ToString();
  1327. string itemNameC = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_S"].Value.ToString();
  1328. string itemCodeW = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_CODE_W"].Value.ToString();
  1329. string itemNameW = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_W"].Value.ToString();
  1330. DataRow[] dr = dt.Select("PIC='" + pic + "' AND PHY_NAME_MIN='"
  1331. + phyNameMin + "'");
  1332. dr = dt.Rows.Cast<DataRow>().Where(a => (a["PIC"].ToString() == pic &&
  1333. a["PHY_NAME_MIN"].ToString() == phyNameMin
  1334. && a["ITEM_CODE_F"].ToString() == itemCodeF
  1335. && a["ITEM_CODE_C"].ToString() == itemCodeC
  1336. && a["ITEM_CODE_W"].ToString() == itemCodeW)).ToArray();
  1337. if (dr.Length <= 0)
  1338. {
  1339. Object[] obj ={pic, phyCodeMin, phyNameMin, stdCode, stdName, steelCode, steelName,
  1340. producCode, producName, useDesc, itemCodeF, itemNameF,
  1341. itemCodeC, itemNameC, itemCodeW, itemNameW};
  1342. dt.Rows.Add(obj);
  1343. }
  1344. }
  1345. FrmPhySample fps = new FrmPhySample(ob, dt, ordLnPk, this.CustomInfo);
  1346. fps.ShowDialog();
  1347. }
  1348. if (e.Cell.Column.Key.Equals("COUNT") && e.Cell.Row.ChildBands[0].Rows.Count > 0)
  1349. {
  1350. FrmMaterialView fmv = new FrmMaterialView();
  1351. DataTable dt = new DataTable();
  1352. dt.Columns.AddRange(new DataColumn[] {
  1353. new DataColumn("PHY_NAME_MAX"),
  1354. new DataColumn("PHY_NAME_MIN"),
  1355. new DataColumn("PHY_NAME"),
  1356. new DataColumn("ITEM_NAME_F"),
  1357. new DataColumn("ITEM_NAME_W"),
  1358. new DataColumn("ITEM_NAME_S"),
  1359. });
  1360. for (int i = 0; i < e.Cell.Row.ChildBands[0].Rows.Count; i++)
  1361. {
  1362. string phynamemax = e.Cell.Row.ChildBands[0].Rows[i].Cells["PHY_NAME_MAX"].Value.ToString();
  1363. string phynamemin = e.Cell.Row.ChildBands[0].Rows[i].Cells["PHY_NAME_MIN"].Value.ToString();
  1364. string phyname = e.Cell.Row.ChildBands[0].Rows[i].Cells["PHY_NAME"].Value.ToString();
  1365. string itemnamef = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_F"].Value.ToString();
  1366. string itemnamew = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_W"].Value.ToString();
  1367. string itemnames = e.Cell.Row.ChildBands[0].Rows[i].Cells["ITEM_NAME_S"].Value.ToString();
  1368. DataRow[] dr = dt.Select("PHY_NAME_MAX='" + phynamemax + "' AND PHY_NAME_MIN='" + phynamemin + "' AND PHY_NAME='"
  1369. + phyname + "' AND ITEM_NAME_F='" + itemnamef + "' AND ITEM_NAME_W='" + itemnamew + "' AND ITEM_NAME_S='" + itemnames + "'");
  1370. if (dr.Length <= 0)
  1371. {
  1372. Object[] obj = { phynamemax, phynamemin, phyname, itemnamef, itemnamew, itemnames };
  1373. dt.Rows.Add(obj);
  1374. }
  1375. }
  1376. fmv.Dt = dt;
  1377. fmv.ShowDialog();
  1378. }
  1379. }
  1380. private DataRow GetComPscByPk(string psc)
  1381. {
  1382. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getBasePscByPk",
  1383. new object[] { psc }, ob);
  1384. if (dt.Rows.Count > 0)
  1385. {
  1386. return dt.Rows[0];
  1387. }
  1388. else
  1389. {
  1390. return null;
  1391. }
  1392. }
  1393. /// <summary>
  1394. /// 查询
  1395. /// </summary>
  1396. private void DoQuery()
  1397. {
  1398. string style = "1";
  1399. if (this.CustomInfo == "2")
  1400. {
  1401. style = "2";
  1402. }
  1403. if (this.CustomInfo == "3")
  1404. {
  1405. style = "3";
  1406. }
  1407. string pic_code = "";
  1408. if (ultraCheckEditor1.Checked)
  1409. pic_code = ultraTextEditor1.Text.Trim();
  1410. else if (_strPic != "")
  1411. {
  1412. pic_code = _strPic;
  1413. }
  1414. else
  1415. {
  1416. pic_code = "%";
  1417. }
  1418. ArrayList listParent = new ArrayList();
  1419. string codeJg2 = codeJg == "DefaultValue" ? "" : codeJg;
  1420. listParent.AddRange(validflag, stdCode, pic_code, msc, codeJg);
  1421. //主表查询
  1422. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterial",
  1423. new Object[] { listParent, style, steelCodes, producCode, steelcodeNk, processCode, modelCode }, this.ob);
  1424. dataTable1.Clear();
  1425. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true);
  1426. //从表查询
  1427. ArrayList list = new ArrayList();
  1428. list.Add(validflag);
  1429. list.Add(stdCode);
  1430. list.Add(msc);
  1431. list.Add(codeJg);
  1432. DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterialC",
  1433. new Object[] { CustomInfo, list, steelCodes, producCode, steelcodeNk, processCode, modelCode }, this.ob);
  1434. dt1 = QcmBaseCommon.FilterTable(dt, dt1, "PIC");
  1435. GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true);
  1436. //不同颜色区分是否有效数据
  1437. QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAGNAME", "无效");
  1438. setGrid();
  1439. _pic = 1;
  1440. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
  1441. foreach (UltraGridRow row in ultraGrid1.Rows)
  1442. {
  1443. row.Cells["CHKNK"].Value = "选择";
  1444. }
  1445. //isSelect = 0;
  1446. //if (validflag == "0")
  1447. //{
  1448. // foreach (UltraGridRow row in ultraGrid1.Rows)
  1449. // {
  1450. // if (row.ChildBands[0].Rows.Count > 0)
  1451. // {
  1452. // foreach (UltraGridRow crow in row.ChildBands[0].Rows)
  1453. // {
  1454. // if (!crow.Cells["VALIDFLAGNAME"].Value.ToString().Equals("有效"))
  1455. // row.ExpandAll();
  1456. // }
  1457. // }
  1458. // }
  1459. //}
  1460. ultraGrid1.UpdateData();
  1461. dataTable1.AcceptChanges();
  1462. dataTable2.AcceptChanges();
  1463. //清空复制数据
  1464. //_copyedRows.Clear();
  1465. }
  1466. public void QueryPurchaseAgreement(string stdCodeNk)
  1467. {
  1468. dataTable1.Clear();
  1469. dataTable2.Clear();
  1470. DataTable dtP = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getPurchaseAgreementPic",
  1471. new object[] { stdCodeNk }, ob);
  1472. GridHelper.CopyDataToDatatable(ref dtP, ref this.dataTable2, true);
  1473. DataTable dtC = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getPurchaseAgreementPhy",
  1474. new object[] { stdCodeNk }, ob);
  1475. GridHelper.CopyDataToDatatable(ref dtC, ref this.dataTable1, true);
  1476. QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAGNAME", "无效");
  1477. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
  1478. }
  1479. private int GetGridSelectCount()
  1480. {
  1481. foreach (UltraGridRow row in ultraGrid1.Rows)
  1482. {
  1483. if (row.Cells["CHC"].Value.ToString() == "True")
  1484. {
  1485. return 1;
  1486. }
  1487. UltraGridRow[] rows = GridHelper.GetRowsWithKey(row.ChildBands[0],
  1488. new string[] { "CHC" }, new string[] { "True" });
  1489. if (rows.Length > 0)
  1490. {
  1491. return 1;
  1492. }
  1493. }
  1494. return 0;
  1495. }
  1496. private DataRow GetComBaseStdRowByPk(string stdCode)
  1497. {
  1498. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getComBaseStdByPk",
  1499. new object[] { stdCode }, ob);
  1500. return dt.Rows[0];
  1501. }
  1502. /// <summary>
  1503. /// 保存
  1504. /// </summary>
  1505. private void DoSave()
  1506. {
  1507. ultraGrid1.UpdateData();
  1508. if (GetGridSelectCount() == 0)
  1509. {
  1510. MessageBox.Show("请选择记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1511. return;
  1512. }
  1513. string acceptBid = "1";
  1514. DataRow comBaseStdRow = null;
  1515. if (CustomInfo == "2")
  1516. {
  1517. comBaseStdRow = GetComBaseStdRowByPk(stdCode);
  1518. /*if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid()
  1519. && UserInfo.GetUserID() != "admin" && UserInfo.GetUserID() != "longjinhua")
  1520. {
  1521. MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能操作!");
  1522. return;
  1523. }*/
  1524. acceptBid = comBaseStdRow["ACCEPT_BID"].ToString();
  1525. }
  1526. ArrayList addBase = new ArrayList();
  1527. ArrayList addChild = new ArrayList();
  1528. ArrayList updateBase = new ArrayList();
  1529. ArrayList updateChild = new ArrayList();
  1530. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  1531. {
  1532. //主表操作
  1533. DataRow rowPic = null;
  1534. UltraGridRow ugr = ultraGrid1.Rows[i];
  1535. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1536. {
  1537. if (ugr.GetValue("VALIDFLAGNAME") != "")
  1538. {
  1539. rowPic = GetMscPicByPic(ugr.GetValue("PIC"));
  1540. }
  1541. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowPic != null)
  1542. {
  1543. string[] units = ClsBaseInfo.GetUnitByUserName(rowPic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  1544. /* if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  1545. {
  1546. MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
  1547. ugr.Activate();
  1548. return;
  1549. }*/
  1550. }
  1551. ArrayList list = GetBaseData(ugr);
  1552. if (list == null)
  1553. {
  1554. MessageBox.Show("记录[" + (i + 1) + "]:" + errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1555. return;
  1556. }
  1557. //根据是否存在创建人来判断是否增加或者修改
  1558. if (ugr.Cells["VALIDFLAGNAME"].Text.Equals(""))
  1559. addBase.Add(list);
  1560. else
  1561. {
  1562. if (rowPic != null && (rowPic["VALIDFLAG"].ToString() == "2" || rowPic["VALIDFLAG"].ToString() == "3"))
  1563. {
  1564. MessageUtil.ShowWarning("提交审核或已审核记录无法修改!");
  1565. return;
  1566. }
  1567. list.Add(ugr.Cells["PIC"].Text.Trim().ToString());
  1568. updateBase.Add(list);
  1569. }
  1570. }
  1571. //从表操作
  1572. if (ugr.HasChild())
  1573. {
  1574. for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++)
  1575. {
  1576. UltraGridRow ugrC = ugr.ChildBands[0].Rows[j];
  1577. if (Convert.ToBoolean(ugrC.Cells["CHC"].Value))
  1578. {
  1579. if (ugr.GetValue("VALIDFLAGNAME") != "")
  1580. {
  1581. rowPic = GetMscPicByPic(ugr.GetValue("PIC"));
  1582. }
  1583. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowPic != null)
  1584. {
  1585. string[] units = ClsBaseInfo.GetUnitByUserName(rowPic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  1586. /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  1587. {
  1588. MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
  1589. ugrC.Activate();
  1590. return;
  1591. }*/
  1592. }
  1593. if (ugr.Cells["VALIDFLAGNAME"].Value.ToString() != "" || (ugr.Cells["VALIDFLAGNAME"].Value.ToString() == "" &&
  1594. ugr.Cells["CHC"].Value.ToString().ToUpper() == "TRUE"))
  1595. {
  1596. ArrayList list = GetChildData(ugrC, rowPic);
  1597. if (list == null)
  1598. {
  1599. MessageBox.Show("记录[" + (j + 1) + "] " + errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1600. return;
  1601. }
  1602. //根据是否存在创建人来判断是否增加或者修改
  1603. if (ugrC.Cells["VALIDFLAGNAME"].Text.Equals(""))
  1604. addChild.Add(list);
  1605. else
  1606. {
  1607. list.Add(ugrC.Cells["PIC"].Text.Trim().ToString());
  1608. list.Add(ugrC.Cells["INDEX_SEQ"].Text.Trim().ToString());
  1609. updateChild.Add(list);
  1610. }
  1611. }
  1612. else
  1613. {
  1614. if (ugr.Cells["VALIDFLAGNAME"].Value.ToString() == "" && ugr.Cells["CHC"].Value.ToString().ToUpper() == "FALSE")
  1615. {
  1616. MessageBox.Show("新增的从记录必须依赖于主记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1617. return;
  1618. }
  1619. }
  1620. }
  1621. }
  1622. }
  1623. }
  1624. int count = 0;
  1625. if (addBase.Count > 0 || updateBase.Count > 0 || addChild.Count > 0 || updateChild.Count > 0)
  1626. {
  1627. if (MessageBox.Show("是否保存选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  1628. {
  1629. return;
  1630. }
  1631. count = ServerHelper.SetData("com.steering.pss.qcm.ComMaterial.saveComMaterial",
  1632. new Object[] { addBase, updateBase, addChild, updateChild, acceptBid }, this.ob);
  1633. if (count > 0)
  1634. {
  1635. MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1636. DoQuery();
  1637. ExpandRow();
  1638. PicCode.Clear();
  1639. }
  1640. }
  1641. }
  1642. /// <summary>
  1643. /// 保存模板
  1644. /// </summary>
  1645. private void SaveTemplate()
  1646. {
  1647. ArrayList addChild = new ArrayList();
  1648. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  1649. {
  1650. //主表操作
  1651. DataRow rowPic = null;
  1652. UltraGridRow ugr = ultraGrid1.Rows[i];
  1653. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1654. {
  1655. if (ugr.HasChild())
  1656. {
  1657. for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++)
  1658. {
  1659. UltraGridRow ugrC = ugr.ChildBands[0].Rows[j];
  1660. if (Convert.ToBoolean(ugrC.Cells["CHC"].Value))
  1661. {
  1662. rowPic = GetMscPicByPic(ugr.GetValue("PIC"));
  1663. ArrayList list = GetChildData(ugrC, rowPic);
  1664. if (list == null)
  1665. {
  1666. MessageBox.Show("记录[" + (j + 1) + "] " + errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1667. return;
  1668. }
  1669. addChild.Add(list);
  1670. }
  1671. }
  1672. }
  1673. }
  1674. }
  1675. if (addChild.Count > 0)
  1676. {
  1677. int count = ServerHelper.SetData("com.steering.pss.qcm.ComMaterial.SaveTemplate",
  1678. new Object[] { addChild }, this.ob);
  1679. if (count > 0)
  1680. {
  1681. MessageBox.Show("保存模板成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1682. }
  1683. }
  1684. }
  1685. /// <summary>
  1686. /// 删除模板
  1687. /// </summary>
  1688. private void DeleteTemplate()
  1689. {
  1690. List<string> ids = null;
  1691. ultraGrid1.UpdateData();
  1692. UltraGridRow ugr = ultraGrid1.Rows[0];
  1693. //从表操作
  1694. if (ugr.HasChild())
  1695. {
  1696. ids = ugr.ChildBands[0].Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))).Select(p => p.GetValue("ID")).ToList();
  1697. }
  1698. if (ids.Count > 0)
  1699. {
  1700. int count = ServerHelper.SetData("com.steering.pss.qcm.ComMaterial.DeleteTemplate",
  1701. new Object[] { ids }, this.ob);
  1702. if (count > 0)
  1703. {
  1704. DoQuery1();
  1705. MessageBox.Show("删除模板成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1706. }
  1707. }
  1708. }
  1709. /// <summary>
  1710. /// 删除或者恢复
  1711. /// </summary>
  1712. /// <param name="flag"></param>
  1713. private void DoDeleteOrResume(Boolean flag)
  1714. {
  1715. ultraGrid1.UpdateData();
  1716. if (GetGridSelectCount() == 0)
  1717. {
  1718. MessageBox.Show("请选择记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1719. return;
  1720. }
  1721. DataRow comBaseStdRow = null;
  1722. if (CustomInfo == "2")
  1723. {
  1724. comBaseStdRow = GetComBaseStdRowByPk(stdCode);
  1725. /*if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid()
  1726. && UserInfo.GetUserID() != "admin")
  1727. {
  1728. MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能" + (flag ? "作废" : "恢复") + "!");
  1729. return;
  1730. }*/
  1731. }
  1732. ArrayList listBase = new ArrayList();
  1733. ArrayList listChild = new ArrayList();
  1734. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  1735. {
  1736. UltraGridRow ugr = ultraGrid1.Rows[i];
  1737. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1738. {
  1739. if (CheckAuthority(ugr) == false)
  1740. {
  1741. MessageUtil.ShowWarning(errMessage);
  1742. return;
  1743. }
  1744. DataRow rowPic = null;
  1745. if (ugr.GetValue("VALIDFLAGNAME") != "")
  1746. {
  1747. rowPic = GetMscPicByPic(ugr.GetValue("PIC"));
  1748. }
  1749. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowPic != null)
  1750. {
  1751. string[] units = ClsBaseInfo.GetUnitByUserName(rowPic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  1752. /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  1753. {
  1754. MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
  1755. ugr.Activate();
  1756. return;
  1757. }*/
  1758. }
  1759. if (CheckDataParent(ugr, rowPic, flag) == false)
  1760. {
  1761. return;
  1762. }
  1763. ArrayList list = GeBasetUpdateData(ugr, flag);
  1764. if (list == null)
  1765. {
  1766. MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1767. return;
  1768. }
  1769. listBase.Add(list);
  1770. }
  1771. if (ugr.HasChild())
  1772. {
  1773. for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++)
  1774. {
  1775. UltraGridRow ugrC = ugr.ChildBands[0].Rows[j];
  1776. if (Convert.ToBoolean(ugrC.Cells["CHC"].Value))
  1777. {
  1778. DataRow rowPic = null;
  1779. if (ugr.GetValue("VALIDFLAGNAME") != "")
  1780. {
  1781. rowPic = GetMscPicByPic(ugr.GetValue("PIC"));
  1782. }
  1783. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowPic != null)
  1784. {
  1785. string[] units = ClsBaseInfo.GetUnitByUserName(rowPic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  1786. /* if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  1787. {
  1788. MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
  1789. ugrC.Activate();
  1790. return;
  1791. }*/
  1792. }
  1793. if (CheckAuthority(ugrC) == false)
  1794. {
  1795. MessageUtil.ShowWarning(errMessage);
  1796. return;
  1797. }
  1798. if ((ugr.Cells["VALIDFLAGNAME"].Value.ToString() != "无效" && ugr.Cells["VALIDFLAGNAME"].Value.ToString() != "")
  1799. || (ugr.Cells["VALIDFLAGNAME"].Value.ToString() == "无效" && ugr.Cells["CHC"].Value.ToString().ToUpper() == "TRUE"))
  1800. {
  1801. ArrayList list = GeBasetUpdateData(ugrC, flag);
  1802. if (list == null)
  1803. {
  1804. MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1805. return;
  1806. }
  1807. if (flag)
  1808. {
  1809. if (ugrC.ParentRow.Cells["VALIDFLAGNAME"].Value.ToString() != "录入状态"
  1810. && ugr.Cells["VALIDFLAGNAME"].Value.ToString() != ""
  1811. && ugrC.ParentRow.Cells["VALIDFLAGNAME"].Value.ToString() != "无效")
  1812. {
  1813. MessageUtil.ShowWarning("主记录为提交审核或已审核状态时,无法作废");
  1814. return;
  1815. }
  1816. }
  1817. list.Add(ugrC.Cells["INDEX_SEQ"].Value.ToString());
  1818. listChild.Add(list);
  1819. }
  1820. else
  1821. {
  1822. if (ugr.Cells["CHC"].Value.ToString().ToUpper() == "FALSE")
  1823. {
  1824. if (flag == false)
  1825. {
  1826. MessageBox.Show("主记录无效,不能单独恢复从记录,\n请先恢复主记录或主从记录一起恢复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1827. return;
  1828. }
  1829. }
  1830. }
  1831. }
  1832. }
  1833. }
  1834. }
  1835. int count = 0;
  1836. if (listBase.Count > 0 || listChild.Count > 0)
  1837. {
  1838. if (flag)
  1839. {
  1840. if (MessageBox.Show("作废选择记录,您是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  1841. {
  1842. return;
  1843. }
  1844. }
  1845. else
  1846. {
  1847. if (MessageBox.Show("恢复选择记录,您是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  1848. {
  1849. return;
  1850. }
  1851. }
  1852. count = ServerHelper.SetData("com.steering.pss.qcm.ComMaterial.deleteComMaterial", new Object[] { listBase, listChild, flag }, this.ob);
  1853. if (count > 0)
  1854. {
  1855. if (flag)
  1856. MessageBox.Show("作废成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1857. else
  1858. MessageBox.Show("恢复成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1859. DoQuery();
  1860. ExpandRow();
  1861. PicCode.Clear();
  1862. }
  1863. }
  1864. }
  1865. /// <summary>
  1866. /// 删除或者恢复项
  1867. /// </summary>
  1868. /// <param name="ugr"></param>
  1869. /// <returns></returns>
  1870. private ArrayList GeBasetUpdateData(UltraGridRow ugr, Boolean flag)
  1871. {
  1872. ArrayList list = new ArrayList();
  1873. string validFlag = "0";
  1874. string userName = UserInfo.GetUserName();
  1875. if (flag && ugr.Cells["VALIDFLAGNAME"].Text.Equals("无效"))
  1876. {
  1877. errMessage = "无效记录不能作废";
  1878. return null;
  1879. }
  1880. if (flag && (ugr.Cells["VALIDFLAGNAME"].Text.Equals("提交审核") || ugr.Cells["VALIDFLAGNAME"].Text.Equals("已审核")))
  1881. {
  1882. errMessage = "提交审核或已审核记录不能作废";
  1883. return null;
  1884. }
  1885. if (!flag)
  1886. {
  1887. if (ugr.Cells["VALIDFLAGNAME"].Text.Equals("有效"))
  1888. {
  1889. errMessage = "有效记录不能恢复";
  1890. return null;
  1891. }
  1892. validFlag = "1";
  1893. userName = "";
  1894. }
  1895. string pic = ugr.Cells["PIC"].Text.Trim().ToString();
  1896. list.Add(validFlag);
  1897. list.Add(userName);
  1898. list.Add(pic);
  1899. return list;
  1900. }
  1901. /// <summary>
  1902. /// 操作数据 保存从表
  1903. /// </summary>
  1904. /// <param name="i"></param>
  1905. /// <returns></returns>
  1906. private ArrayList GetChildData(UltraGridRow ugr, DataRow rowPic)
  1907. {
  1908. if (CheckAuthority(ugr) == false) return null;
  1909. if (rowPic != null && (rowPic["VALIDFLAG"].ToString() == "2" || rowPic["VALIDFLAG"].ToString() == "3"))
  1910. {
  1911. errMessage = "主记录为提交审核或已审核状态时,无法修改";
  1912. return null;
  1913. }
  1914. ArrayList list = new ArrayList();
  1915. string pic = ugr.Cells["PIC"].Text.Trim().ToString();
  1916. string index_seq = ugr.Cells["INDEX_SEQ"].Text.Trim().ToString();
  1917. if (pic.Equals("") || index_seq.Equals(""))
  1918. {
  1919. errMessage = "理化标准索引号与序号不能为空";
  1920. return null;
  1921. }
  1922. string phy_code_max = ugr.Cells["PHY_CODE_MAX"].Text.Trim().ToString();
  1923. string phy_name_max = ugr.Cells["PHY_NAME_MAX"].Text.Trim().ToString();
  1924. if (phy_name_max.Equals(""))
  1925. {
  1926. errMessage = "请选择检验项目";
  1927. ugr.SetCellActive("PHY_NAME_MAX");
  1928. return null;
  1929. }
  1930. string phy_code_min = ugr.Cells["PHY_CODE_MIN"].Text.Trim().ToString();
  1931. string phy_name_min = ugr.Cells["PHY_NAME_MIN"].Text.Trim().ToString();
  1932. if (phy_name_min.Equals(""))
  1933. {
  1934. errMessage = "请选择试样组";
  1935. ugr.SetCellActive("PHY_NAME_MIN");
  1936. return null;
  1937. }
  1938. string phy_code = ugr.Cells["PHY_CODE"].Text.Trim().ToString();
  1939. string phy_name = ugr.Cells["PHY_NAME"].Text.Trim().ToString();
  1940. if (phy_name.Equals(""))
  1941. {
  1942. errMessage = "请选择检验项";
  1943. ugr.SetCellActive("PHY_NAME");
  1944. return null;
  1945. }
  1946. string item_code_f = ugr.Cells["ITEM_CODE_F"].Value.ToString();
  1947. string item_name_f = ugr.Cells["ITEM_NAME_F"].Value.ToString();
  1948. string item_code_w = ugr.Cells["ITEM_CODE_W"].Value.ToString();
  1949. string item_name_w = ugr.Cells["ITEM_NAME_W"].Value.ToString();
  1950. string item_code_s = ugr.Cells["ITEM_CODE_S"].Value.ToString();
  1951. string item_name_s = ugr.Cells["ITEM_NAME_S"].Value.ToString();
  1952. string ischeck = ugr.Cells["ISCHECK"].Text.Trim().ToString();
  1953. if (Convert.ToBoolean(ischeck))
  1954. ischeck = "1";
  1955. else
  1956. ischeck = "0";
  1957. string isjuge = ugr.Cells["ISJUDGE"].Text;
  1958. if (Convert.ToBoolean(isjuge))
  1959. isjuge = "1";
  1960. else
  1961. isjuge = "0";
  1962. string isquote = ugr.Cells["ISQUOTE"].Text;
  1963. if (Convert.ToBoolean(isquote))
  1964. isquote = "1";
  1965. else
  1966. isquote = "0";
  1967. string isProductCheck = ugr.GetValue("IS_PRODUCT_CHECK");
  1968. if (isProductCheck != "" && Convert.ToBoolean(isProductCheck))
  1969. {
  1970. isProductCheck = "1";
  1971. }
  1972. else
  1973. {
  1974. isProductCheck = "0";
  1975. }
  1976. string whole_backlog = ugr.Cells["PHY_TYPE"].Text.Trim().ToString();
  1977. if (Convert.ToBoolean(whole_backlog))
  1978. whole_backlog = "1";
  1979. else
  1980. whole_backlog = "0";
  1981. string phy_formula = ugr.Cells["PHY_FORMULA"].Text.Trim().ToString();
  1982. //if (ugr.Cells["RESULT_COUNT"].Value.ToString() == "")
  1983. //{
  1984. // errMessage = "请输入报出结果条数";
  1985. // return null;
  1986. //}
  1987. string resultcount = ugr.Cells["RESULT_COUNT"].Value.ToString().Trim();
  1988. string stdmin_sign = ugr.Cells["STDMIN_SIGN"].Text.Trim();
  1989. string stdmin = ugr.Cells["STDMIN"].Value.ToString();
  1990. string stdmax_sign = ugr.Cells["STDMAX_SIGN"].Text.Trim();
  1991. string stdmax = ugr.Cells["STDMAX"].Value.ToString();
  1992. if (stdmin_sign == "=" && (stdmax_sign != "" || stdmax != ""))
  1993. {
  1994. errMessage = "标准范围下限符号为'=',不能存在上限";
  1995. return null;
  1996. }
  1997. if (ugr.Cells["ISJUDGE"].Value.ToString() == "True")
  1998. {
  1999. if (stdmin_sign.Equals("") && stdmax_sign.Equals(""))
  2000. {
  2001. errMessage = "请选择标准范围(默认)下限符号或者上限符号";
  2002. return null;
  2003. }
  2004. }
  2005. if (!stdmin_sign.Equals("") && stdmin.Equals(""))
  2006. {
  2007. errMessage = "请输入标准范围(默认)下限值";
  2008. return null;
  2009. }
  2010. if (stdmin_sign.Equals("") && !stdmin.Equals(""))
  2011. {
  2012. errMessage = "请选择标准范围(默认)下限符号";
  2013. return null;
  2014. }
  2015. if (!stdmax_sign.Equals("") && stdmax.Equals(""))
  2016. {
  2017. errMessage = "请输入标准范围(默认)上限值";
  2018. return null;
  2019. }
  2020. if (stdmax_sign.Equals("") && !stdmax.Equals(""))
  2021. {
  2022. errMessage = "已有标准范围(默认)上限值,请选择标准范围(默认)上限符号";
  2023. return null;
  2024. }
  2025. if (whole_backlog.Equals("0"))
  2026. {
  2027. if (!stdmin.Equals("") && !StringUtil.IsNumber(stdmin) && !stdmin_sign.Equals("="))
  2028. {
  2029. errMessage = "标准范围(默认)下限值由数字组成";
  2030. return null;
  2031. }
  2032. if (!stdmax.Equals("") && !StringUtil.IsNumber(stdmax))
  2033. {
  2034. errMessage = "标准范围(默认)上限值由数字组成";
  2035. return null;
  2036. }
  2037. }
  2038. else
  2039. {
  2040. if (!stdmin.Equals("") && !stdmin_sign.Equals("=") && !QcmBaseCommon.CheckCompositeFormula(stdmin))
  2041. {
  2042. errMessage = "标准范围(默认)下限值,输入公式不合法,请重新输入";
  2043. return null;
  2044. }
  2045. if (!stdmax.Equals("") && !QcmBaseCommon.CheckCompositeFormula(stdmax))
  2046. {
  2047. errMessage = "标准范围(默认)上限值,输入公式不合法,请重新输入";
  2048. return null;
  2049. }
  2050. }
  2051. if (!stdmin.Equals(""))
  2052. {
  2053. if (stdmin.StartsWith("."))
  2054. stdmin = "0" + stdmin;
  2055. }
  2056. if (!stdmax.Equals(""))
  2057. {
  2058. if (stdmax.StartsWith("."))
  2059. stdmax = "0" + stdmax;
  2060. }
  2061. if (!stdmin.Equals("") && !stdmax.Equals("")) //&& Convert.ToDouble(stdmin) > Convert.ToDouble(stdmax)
  2062. {
  2063. int i = QcmBaseInfo.CheckStdData(stdmin_sign, stdmax_sign, stdmin, stdmax);
  2064. if (i == 0)
  2065. {
  2066. errMessage = "输入的数据不完整";
  2067. return null;
  2068. }
  2069. if (i == 1)
  2070. {
  2071. errMessage = "标准范围(默认)下限值与上限值相等,上下限符号请选择<=和>=";
  2072. return null;
  2073. }
  2074. if (i == 2)
  2075. {
  2076. errMessage = "标准范围(默认)下限值不能大于上限值";
  2077. return null;
  2078. }
  2079. }
  2080. string judge_basis = ugr.Cells["JUDGE_BASIS"].Text.Trim().ToString();
  2081. if (judge_basis.Equals(""))
  2082. {
  2083. errMessage = "判断依据不能为空";
  2084. return null;
  2085. }
  2086. if (judge_basis.Equals("最小值"))
  2087. judge_basis = "A";
  2088. else if (judge_basis.Equals("最大值"))
  2089. judge_basis = "B";
  2090. else if (judge_basis.Equals("平均值"))
  2091. judge_basis = "C";
  2092. else
  2093. judge_basis = "D";
  2094. string stdmin_sign2 = ugr.Cells["STDMIN_SIGN2"].Value.ToString();
  2095. string stdmin2 = ugr.Cells["STDMIN2"].Value.ToString();
  2096. string stdmax_sign2 = ugr.Cells["STDMAX_SIGN2"].Value.ToString();
  2097. string stdmax2 = ugr.Cells["STDMAX2"].Value.ToString();
  2098. string stdchoosecode = ugr.Cells["STD_CHOOSE"].Value.ToString();
  2099. string stdchoose = ugr.Cells["STD_CHOOSE"].Text.Trim();
  2100. if (stdmin_sign2 == "=" && (stdmax_sign2 != "" || stdmax2 != ""))
  2101. {
  2102. errMessage = "标准范围(二)下限符号为'=',不能存在上限";
  2103. return null;
  2104. }
  2105. if (stdchoose != "") //取大/小值
  2106. {
  2107. if (stdmin_sign2.Equals("") && stdmax_sign2.Equals(""))
  2108. {
  2109. errMessage = "请选择标准范围(二)下限符号或者上限符号";
  2110. return null;
  2111. }
  2112. if (!stdmin_sign2.Equals("") && stdmin2.Equals(""))
  2113. {
  2114. errMessage = "请输入标准范围(二)下限值";
  2115. return null;
  2116. }
  2117. if (stdmin_sign2.Equals("") && !stdmin2.Equals(""))
  2118. {
  2119. errMessage = "标准范围(默认)不存在下限符号,则标准范围(二)下限不能存在值!";
  2120. ugr.Cells["STDMIN2"].Activate();
  2121. return null;
  2122. }
  2123. if (!stdmax_sign2.Equals("") && stdmax2.Equals(""))
  2124. {
  2125. errMessage = "请输入标准范围(二)上限值";
  2126. return null;
  2127. }
  2128. if (stdmax_sign2.Equals("") && !stdmax2.Equals(""))
  2129. {
  2130. errMessage = "标准范围(默认)不存在上限符号,则标准范围(二)上限不能存在值!";
  2131. ugr.Cells["STDMAX2"].Activate();
  2132. return null;
  2133. }
  2134. if (whole_backlog.Equals("0"))
  2135. {
  2136. if (!stdmin2.Equals("") && !StringUtil.IsNumber(stdmin2) && !stdmin_sign2.Equals("="))
  2137. {
  2138. errMessage = "标准范围(二)下限值由数字组成";
  2139. return null;
  2140. }
  2141. if (!stdmax2.Equals("") && !StringUtil.IsNumber(stdmax2))
  2142. {
  2143. errMessage = "标准范围(二)上限值由数字组成";
  2144. return null;
  2145. }
  2146. }
  2147. else
  2148. {
  2149. if (!stdmin2.Equals("") && !stdmin_sign2.Equals("=") && !StringUtil.IsNumber(stdmin2) && !QcmBaseCommon.CheckCompositeFormula(stdmin2))
  2150. {
  2151. errMessage = "标准范围(二)下限值输入公式不合法,请重新输入";
  2152. return null;
  2153. }
  2154. if (!stdmax2.Equals("") && !StringUtil.IsNumber(stdmax2) && !QcmBaseCommon.CheckCompositeFormula(stdmax2))
  2155. {
  2156. errMessage = "标准范围(二)上限值输入公式不合法,请重新输入";
  2157. return null;
  2158. }
  2159. }
  2160. if (!stdmin2.Equals(""))
  2161. {
  2162. if (stdmin2.StartsWith("."))
  2163. stdmin2 = "0" + stdmin2;
  2164. }
  2165. if (!stdmax2.Equals(""))
  2166. {
  2167. if (stdmax2.StartsWith("."))
  2168. stdmax2 = "0" + stdmax2;
  2169. }
  2170. if (!stdmin2.Equals("") && !stdmax2.Equals("")) //&& Convert.ToDouble(stdmin2) > Convert.ToDouble(stdmax2)
  2171. {
  2172. int i = QcmBaseInfo.CheckStdData(stdmin_sign2, stdmax_sign2, stdmin2, stdmax2);
  2173. if (i == 0)
  2174. {
  2175. errMessage = "输入的数据不完整";
  2176. return null;
  2177. }
  2178. if (i == 1)
  2179. {
  2180. errMessage = "标准范围(二)下限值与上限值相等,上下限符号请选择<=和>=";
  2181. return null;
  2182. }
  2183. if (i == 2)
  2184. {
  2185. errMessage = "标准范围(二)下限值不能大于上限值";
  2186. return null;
  2187. }
  2188. }
  2189. }
  2190. string deliverystate = ugr.Cells["DELIVERYSTATE"].Value.ToString();
  2191. string model_code = ugr.Cells["MODEL_CODE"].Text.Trim().ToString();
  2192. string model_desc = ugr.Cells["MODEL_DESC"].Text.Trim().ToString();
  2193. string stdmemo = ugr.Cells["STDMEMO"].Text.Trim().ToString();
  2194. string size_code2 = ugr.Cells["SIZE_CODE2"].Text.Trim().ToString();
  2195. string size_name2 = ugr.Cells["SIZE_NAME2"].Text.Trim().ToString();
  2196. string size_min_sign2 = ugr.Cells["SIZE_MIN_SIGN2"].Text.Trim().ToString();
  2197. string size_min2 = ugr.Cells["SIZE_MIN2"].Value.ToString();
  2198. string size_max_sign2 = ugr.Cells["SIZE_MAX_SIGN2"].Text.Trim().ToString();
  2199. string size_max2 = ugr.Cells["SIZE_MAX2"].Value.ToString();
  2200. string size_code = ugr.Cells["SIZE_CODE"].Text.Trim().ToString();
  2201. string size_name = ugr.Cells["SIZE_NAME"].Text.Trim().ToString();
  2202. string size_min_sign = ugr.Cells["SIZE_MIN_SIGN"].Text.Trim().ToString();
  2203. string size_min = ugr.Cells["SIZE_MIN"].Value.ToString();
  2204. string size_max_sign = ugr.Cells["SIZE_MAX_SIGN"].Text.Trim().ToString();
  2205. string size_max = ugr.Cells["SIZE_MAX"].Value.ToString();
  2206. string spec_jg = ugr.Cells["SPEC_JG"].Text.Trim().ToString();
  2207. string spec_jg_desc = ugr.Cells["SPEC_JG_DESC"].Text.Trim().ToString();
  2208. if (size_min_sign2 == "=" && (size_max_sign2 != "" || size_max2 != ""))
  2209. {
  2210. errMessage = "限制规格(一)下限符号为'=',不能存在上限";
  2211. return null;
  2212. }
  2213. if (size_min_sign == "=" && (size_max_sign != "" || size_max != ""))
  2214. {
  2215. errMessage = "限制规格(二)下限符号为'=',不能存在上限";
  2216. return null;
  2217. }
  2218. if (!spec_jg.Equals("") && !spec_jg_desc.Equals("-1"))
  2219. {
  2220. if (!size_name2.Equals("") || !size_name.Equals(""))
  2221. {
  2222. errMessage = "接箍描述与限制规格不能同时存在";
  2223. return null;
  2224. }
  2225. }
  2226. if (!size_name2.Equals(""))
  2227. {
  2228. if (size_min_sign2.Equals("") && size_max_sign2.Equals(""))
  2229. {
  2230. errMessage = "请选择限制规格(一)下限符号或者上限符号";
  2231. return null;
  2232. }
  2233. if (!size_min_sign2.Equals("") && size_min2.Equals(""))
  2234. {
  2235. errMessage = "存在限制规格(一)下限符号,下限值不能为空";
  2236. return null;
  2237. }
  2238. if (size_min_sign2.Equals("") && !size_min2.Equals(""))
  2239. {
  2240. errMessage = "存在限制规格(一)下限值,下限符号不能为空";
  2241. return null;
  2242. }
  2243. if (!size_max_sign2.Equals("") && size_max2.Equals(""))
  2244. {
  2245. errMessage = "存在限制规格(一)上限符号,上限值不能为空";
  2246. return null;
  2247. }
  2248. if (size_max_sign2.Equals("") && !size_max2.Equals(""))
  2249. {
  2250. errMessage = "存在限制规格(一)上限值,上限符号不能为空";
  2251. return null;
  2252. }
  2253. if (!size_min2.Equals("") && !StringUtil.IsNumber(size_min2) && !size_min_sign2.Equals("="))
  2254. {
  2255. errMessage = "限制规格(一)下限值由数字组成";
  2256. return null;
  2257. }
  2258. if (!size_max2.Equals("") && !StringUtil.IsNumber(size_max2))
  2259. {
  2260. errMessage = "限制规格(一)上限值由数字组成";
  2261. return null;
  2262. }
  2263. if (!size_min2.Equals("") && !size_max2.Equals("")) //&& Convert.ToDouble(size_max2) < Convert.ToDouble(size_min2)
  2264. {
  2265. int i = QcmBaseInfo.CheckStdData(size_min_sign2, size_max_sign2, size_min2, size_max2);
  2266. if (i == 0)
  2267. {
  2268. errMessage = "输入的数据不完整";
  2269. return null;
  2270. }
  2271. if (i == 1)
  2272. {
  2273. errMessage = "限制规格(一)下限值与上限值相等,上下限符号请选择<=和>=";
  2274. return null;
  2275. }
  2276. if (i == 2)
  2277. {
  2278. errMessage = "限制规格(一)下限值不能大于上限值";
  2279. return null;
  2280. }
  2281. }
  2282. }
  2283. else
  2284. {
  2285. if (size_max_sign2 != "" || size_min_sign2 != "" || size_min2 != "" || size_max2 != "")
  2286. {
  2287. errMessage = "限制规格(一)描述不存在!";
  2288. return null;
  2289. }
  2290. }
  2291. if (!size_min2.Equals(""))
  2292. {
  2293. if (size_min2.StartsWith("."))
  2294. size_min2 = "0" + size_min2;
  2295. }
  2296. if (!size_max2.Equals(""))
  2297. {
  2298. if (size_max2.StartsWith("."))
  2299. size_max2 = "0" + size_max2;
  2300. }
  2301. if (!size_name.Equals(""))
  2302. {
  2303. if (size_min_sign.Equals("") && size_max_sign.Equals(""))
  2304. {
  2305. errMessage = "限制规格(二)下限符号与上限符号必须存在一项";
  2306. return null;
  2307. }
  2308. if (!size_min_sign.Equals("") && size_min.Equals(""))
  2309. {
  2310. errMessage = "存在限制规格(二)下限符号,下限值不能为空";
  2311. return null;
  2312. }
  2313. if (size_min_sign.Equals("") && !size_min.Equals(""))
  2314. {
  2315. errMessage = "存在限制规格(二)下限值,下限符号不能为空";
  2316. return null;
  2317. }
  2318. if (!size_max_sign.Equals("") && size_max.Equals(""))
  2319. {
  2320. errMessage = "存在限制规格(二)上限符号,上限值不能为空";
  2321. return null;
  2322. }
  2323. if (size_max_sign.Equals("") && !size_max.Equals(""))
  2324. {
  2325. errMessage = "存在限制规格(二)上限值,上限符号不能为空";
  2326. return null;
  2327. }
  2328. if (!size_max.Equals("") && !StringUtil.IsNumber(size_max))
  2329. {
  2330. errMessage = "限制规格(二)上限值由数字组成";
  2331. return null;
  2332. }
  2333. if (!size_min.Equals("") && !StringUtil.IsNumber(size_min) && !size_min_sign.Equals("="))
  2334. {
  2335. errMessage = "限制规格(二)下限值由数字组成";
  2336. return null;
  2337. }
  2338. if (!size_min.Equals("") && !size_max.Equals("")) //&& Convert.ToDouble(size_max) < Convert.ToDouble(size_min)
  2339. {
  2340. int i = QcmBaseInfo.CheckStdData(size_min_sign, size_max_sign, size_min, size_max);
  2341. if (i == 0)
  2342. {
  2343. errMessage = "输入的数据不完整";
  2344. return null;
  2345. }
  2346. if (i == 1)
  2347. {
  2348. errMessage = "限制规格(二)下限值与上限值相等,上下限符号请选择<=和>=";
  2349. return null;
  2350. }
  2351. if (i == 2)
  2352. {
  2353. errMessage = "限制规格(二)下限值不能大于上限值";
  2354. return null;
  2355. }
  2356. }
  2357. }
  2358. else
  2359. {
  2360. if (size_max_sign != "" || size_min_sign != "" || size_min != "" || size_max != "")
  2361. {
  2362. errMessage = "限制规格(二)描述不存在!";
  2363. return null;
  2364. }
  2365. }
  2366. if (!size_name2.Equals("") && !size_name.Equals("") && size_name.Equals(size_name2))
  2367. {
  2368. errMessage = "限制规格(一)与限制规格(二)描述不能相同";
  2369. return null;
  2370. }
  2371. if (!size_max.Equals(""))
  2372. {
  2373. if (size_max.StartsWith("."))
  2374. size_max = "0" + size_max;
  2375. }
  2376. if (!size_min.Equals(""))
  2377. {
  2378. if (size_min.StartsWith("."))
  2379. size_min = "0" + size_min;
  2380. }
  2381. // 公式限制条件
  2382. string formula = ugr.GetText("FORMULA");
  2383. string minF = ugr.GetValue("MIN_F");
  2384. string minFSign = ugr.GetValue("MIN_F_SIGN");
  2385. string maxF = ugr.GetValue("MAX_F");
  2386. string maxFSign = ugr.GetValue("MAX_F_SIGN");
  2387. if (formula != "" || minF != "" || minFSign != ""
  2388. || maxF != "" || maxFSign != "")
  2389. {
  2390. string testFormula = formula.Replace("t", "0.01").Replace("D", "0.01");
  2391. string testFormula2 = formula.Replace("t", "10000").Replace("D", "10000");
  2392. if (formula == "")
  2393. {
  2394. errMessage = "请输入公式!";
  2395. ugr.SetCellActive("FORMULA");
  2396. return null;
  2397. }
  2398. else if (testFormula.CompileFormula() == null && testFormula2.CompileFormula() == null)
  2399. {
  2400. errMessage = "输入的公式不合法!";
  2401. ugr.SetCellActive("FORMULA");
  2402. return null;
  2403. }
  2404. else if (minF == "" && minFSign != "")
  2405. {
  2406. errMessage = "请输入公式下限值!";
  2407. ugr.SetCellActive("MIN_F");
  2408. return null;
  2409. }
  2410. else if (minF != "" && minFSign == "")
  2411. {
  2412. errMessage = "请输入公式下限符号!";
  2413. ugr.SetCellActive("MIN_F_SIGN");
  2414. return null;
  2415. }
  2416. else if (maxF == "" && maxFSign != "")
  2417. {
  2418. errMessage = "请输入公式上限值!";
  2419. ugr.SetCellActive("MAX_F");
  2420. return null;
  2421. }
  2422. else if (maxF != "" && maxFSign == "")
  2423. {
  2424. errMessage = "请输入公式上限符号!";
  2425. ugr.SetCellActive("MAX_F_SIGN");
  2426. return null;
  2427. }
  2428. else if (formula != "" && minF == "" && minFSign == ""
  2429. && maxF == "" && maxFSign == "")
  2430. {
  2431. errMessage = "请输入公式下限符号!";
  2432. ugr.SetCellActive("MIN_F_SIGN");
  2433. return null;
  2434. }
  2435. }
  2436. else if (minF != "" && maxF != "" && decimal.Parse(minF) >= decimal.Parse(maxF))
  2437. {
  2438. errMessage = "公式下限值不能大于等于公式上限值!";
  2439. ugr.SetCellActive("MIN_F");
  2440. return null;
  2441. }
  2442. string addcondition = ugr.Cells["ADDCONDITION"].Text.Trim();
  2443. string addstdcon = ugr.Cells["ADDSTDCON_CODE"].Value.ToString();
  2444. string addstd_min_sign = ugr.Cells["ADDSTD_MIN_SIGN"].Value.ToString();
  2445. string addstd_min = ugr.Cells["ADDSTD_MIN"].Value.ToString();
  2446. string addstd_max_sign = ugr.Cells["ADDSTD_MAX_SIGN"].Value.ToString();
  2447. string addstd_max = ugr.Cells["ADDSTD_MAX"].Value.ToString();
  2448. string addpercent = ugr.Cells["ADDPERCENT"].Value.ToString();
  2449. if (addcondition != "") //存在附加标准约束
  2450. {
  2451. if (addstdcon == "")
  2452. {
  2453. errMessage = "请选择附加标准项";
  2454. return null;
  2455. }
  2456. if (addstd_min_sign == "=" && (addstd_max_sign != "" || addstd_max != ""))
  2457. {
  2458. errMessage = "附加标准范围下限符号为'=',不能存在上限";
  2459. return null;
  2460. }
  2461. if (addstd_min_sign.Equals("") && addstd_max_sign.Equals(""))
  2462. {
  2463. errMessage = "请选择附加标准范围下限符号或者上限符号";
  2464. return null;
  2465. }
  2466. if (!addstd_min_sign.Equals("") && addstd_min.Equals(""))
  2467. {
  2468. errMessage = "请输入附加标准范围下限值";
  2469. return null;
  2470. }
  2471. if (addstd_min_sign.Equals("") && !addstd_min.Equals(""))
  2472. {
  2473. errMessage = "请选择附加标准范围下限符号";
  2474. return null;
  2475. }
  2476. if (!addstd_min_sign.Equals("") && addstd_min.Replace("Value", "1").CompileFormula() == null)
  2477. {
  2478. errMessage = "附加标准范围下限值,只能包含附加标准符号'Value'!";
  2479. return null;
  2480. }
  2481. if (!addstd_max_sign.Equals("") && addstd_max.Equals(""))
  2482. {
  2483. errMessage = "请输入附加标准范围上限值";
  2484. return null;
  2485. }
  2486. if (!addstd_max_sign.Equals("") && addstd_max.Replace("Value", "1").CompileFormula() == null)
  2487. {
  2488. errMessage = "附加标准范围上限值,只能包含附加标准符号'Value'!";
  2489. return null;
  2490. }
  2491. if (addstd_max_sign.Equals("") && !addstd_max.Equals(""))
  2492. {
  2493. errMessage = "已有附加标准范围上限值,请选择附加标准范围上限符号";
  2494. return null;
  2495. }
  2496. //if (!addstd_min.Equals("") && !StringUtil.IsNumber(addstd_min) && !addstd_min_sign.Equals("="))
  2497. //{
  2498. // errMessage = "附加标准范围下限值由数字组成";
  2499. // return null;
  2500. //}
  2501. //if (!addstd_max.Equals("") && !StringUtil.IsNumber(addstd_max))
  2502. //{
  2503. // errMessage = "附加标准范围上限值由数字组成";
  2504. // return null;
  2505. //}
  2506. if (!addstd_min.Equals(""))
  2507. {
  2508. if (addstd_min.StartsWith("."))
  2509. addstd_min = "0" + addstd_min;
  2510. }
  2511. if (!addstd_max.Equals(""))
  2512. {
  2513. if (addstd_max.StartsWith("."))
  2514. addstd_max = "0" + addstd_max;
  2515. }
  2516. if (!addstd_min.Equals("") && !addstd_max.Equals(""))//&& Convert.ToDouble(addstd_min) > Convert.ToDouble(addstd_max)
  2517. {
  2518. int i = QcmBaseInfo.CheckStdData(addstd_min_sign, addstd_max_sign, addstd_min, addstd_max);
  2519. if (i == 0)
  2520. {
  2521. errMessage = "输入的数据不完整";
  2522. return null;
  2523. }
  2524. if (i == 1)
  2525. {
  2526. errMessage = "附加标准范围下限值与上限值相等,上下限符号请选择<=和>=";
  2527. return null;
  2528. }
  2529. if (i == 2)
  2530. {
  2531. errMessage = "附加标准范围下限值不能大于上限值";
  2532. return null;
  2533. }
  2534. }
  2535. if (addcondition == "符合标准时")
  2536. addcondition = "1";
  2537. else
  2538. addcondition = "0";
  2539. }
  2540. string userName = UserInfo.GetUserName();
  2541. list.Add(pic);
  2542. list.Add(Convert.ToInt32(index_seq));
  2543. list.Add(phy_code_max);
  2544. list.Add(phy_name_max);
  2545. list.Add(phy_code_min);
  2546. list.Add(phy_name_min);
  2547. list.Add(phy_code);
  2548. list.Add(phy_name);
  2549. list.Add(item_code_f);
  2550. list.Add(item_name_f);
  2551. list.Add(item_code_w);
  2552. list.Add(item_name_w);
  2553. list.Add(item_code_s);
  2554. list.Add(item_name_s);
  2555. list.Add(ischeck);
  2556. list.Add(isjuge);
  2557. list.Add(isquote);
  2558. list.Add(whole_backlog);
  2559. list.Add(phy_formula);
  2560. list.Add(stdmin_sign);
  2561. list.Add(stdmin);
  2562. list.Add(stdmax_sign);
  2563. list.Add(stdmax);
  2564. list.Add(judge_basis);
  2565. list.Add(deliverystate);
  2566. list.Add(model_code);
  2567. list.Add(model_desc);
  2568. list.Add(stdmemo);
  2569. list.Add(size_code2);
  2570. list.Add(size_name2);
  2571. list.Add(size_min_sign2);
  2572. list.Add(size_min2);
  2573. list.Add(size_max_sign2);
  2574. list.Add(size_max2);
  2575. list.Add(size_code);
  2576. list.Add(size_name);
  2577. list.Add(size_min_sign);
  2578. list.Add(size_min);
  2579. list.Add(size_max_sign);
  2580. list.Add(size_max);
  2581. list.Add(spec_jg);
  2582. list.Add(spec_jg_desc);
  2583. list.Add(userName);
  2584. list.Add(resultcount);
  2585. list.Add(addcondition);
  2586. list.Add(addstdcon);
  2587. list.Add(addstd_min_sign);
  2588. list.Add(addstd_min);
  2589. list.Add(addstd_max_sign);
  2590. list.Add(addstd_max);
  2591. list.Add(addpercent);
  2592. list.Add(stdmin_sign2);
  2593. list.Add(stdmin2);
  2594. list.Add(stdmax_sign2);
  2595. list.Add(stdmax2);
  2596. list.Add(stdchoosecode);
  2597. list.Add(ugr.Cells["GUID"].Value.ToString());
  2598. list.Add((ugr.GetValue("BILLET_SAMPLE") == "True" ? "1" : "0"));
  2599. list.Add(ugr.GetValue("GROUP_SEQ"));
  2600. list.Add(formula);
  2601. list.Add(minF);
  2602. list.Add(minFSign);
  2603. list.Add(maxF);
  2604. list.Add(maxFSign);
  2605. list.Add(isProductCheck);
  2606. return list;
  2607. }
  2608. private DataTable GetMscTabByMsc(string msc)
  2609. {
  2610. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByMsc",
  2611. new object[] { msc }, ob);
  2612. return dt;
  2613. }
  2614. private string GetMscByPic(string pic)
  2615. {
  2616. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComPicByPic",
  2617. new object[] { pic }, ob);
  2618. if (dt.Rows.Count > 0)
  2619. {
  2620. return dt.Rows[0]["MSC"].ToString();
  2621. }
  2622. return "";
  2623. }
  2624. private DataRow GetMscPicByPic(string pic)
  2625. {
  2626. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComPicByPic",
  2627. new object[] { pic }, ob);
  2628. if (dt.Rows.Count == 0)
  2629. {
  2630. return null;
  2631. }
  2632. else
  2633. {
  2634. return dt.Rows[0];
  2635. }
  2636. }
  2637. private bool CheckAuthority(UltraGridRow row)
  2638. {
  2639. if (CustomInfo == "1")
  2640. {
  2641. string mscOld;
  2642. if (row.GetValue("VALIDFLAGNAME") != "")
  2643. {
  2644. mscOld = GetMscByPic(row.GetValue("PIC"));
  2645. }
  2646. else
  2647. {
  2648. mscOld = row.HasParent() ? row.ParentRow.GetValue("MSC") : row.GetValue("MSC");
  2649. }
  2650. DataTable dtMsc = GetMscTabByMsc(mscOld);
  2651. //if (dtMsc.Rows[0]["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  2652. //{
  2653. // errMessage = "该条记录对应的冶金规范是[" + dtMsc.Rows[0]["UNIT_DESC"].ToString() + "]科室维护的,您没有权限!";
  2654. // row.Activate();
  2655. // return false;
  2656. //}
  2657. }
  2658. return true;
  2659. }
  2660. /// <summary>
  2661. /// 操作数据 主表保存
  2662. /// </summary>
  2663. /// <param name="ugr">ultraGrid行</param>
  2664. /// <returns></returns>
  2665. private ArrayList GetBaseData(UltraGridRow ugr)
  2666. {
  2667. ArrayList list = new ArrayList();
  2668. string pic = ugr.Cells["PIC"].Value.ToString();
  2669. string psc = "";
  2670. if (ugr.Cells["PSC"].Text != null)
  2671. psc = ugr.Cells["PSC"].Text.ToString();
  2672. string stdstyle = ugr.Cells["STDSTYLE"].Value.ToString();
  2673. if (stdstyle.Equals("内控"))
  2674. {
  2675. stdstyle = "N";
  2676. }
  2677. else if (stdstyle.Equals("订货标准"))
  2678. stdstyle = "G";
  2679. else if (stdstyle.Equals("协议标准"))
  2680. stdstyle = "X";
  2681. else if (stdstyle.ToUpper().Equals("ALPHA"))
  2682. stdstyle = "K";
  2683. else
  2684. stdstyle = "";
  2685. if (stdstyle.Equals(""))
  2686. {
  2687. errMessage = "标准类型不能为空,请重新选择产品规范码或者内控标准名称";
  2688. return null;
  2689. }
  2690. if (CheckAuthority(ugr) == false) return null;
  2691. string msc = ugr.Cells["MSC"].Text;
  2692. string std_code_nk = ugr.Cells["STD_CODE_NK"].Value.ToString();
  2693. string std_name_nk = ugr.Cells["STD_NAME_NK"].Value.ToString();
  2694. string process_code = ugr.Cells["PROCESS_CDOE"].Value.ToString();
  2695. string process_desc = ugr.Cells["PROCESS_DESC"].Text.ToString();
  2696. string memo = ugr.Cells["MEMO"].Value.ToString();
  2697. string userName = UserInfo.GetUserName();
  2698. string modelcode = ugr.Cells["MODEL_CODE"].Value.ToString();
  2699. string modeldesc = ugr.Cells["MODEL_DESC"].Value.ToString();
  2700. string producHead = ugr.GetValue("PRODUC_HEAD");
  2701. string batchLoca = ugr.GetValue("BATCH_LOCA");
  2702. string steelcodeNk = ugr.GetValue("STEELCODE_NK");
  2703. string steelnameNk = ugr.GetValue("STEELNAME_NK");
  2704. string modelCodeNk = ugr.GetValue("MODEL_CODE_NK");
  2705. string modelDescNk = ugr.GetValue("MODEL_DESC_NK");
  2706. string produccode = ugr.GetValue("PRODUCCODE_NK");
  2707. string producname = ugr.GetValue("PRODUCNAME_NK");
  2708. if (!psc.Equals(""))
  2709. {
  2710. if (!std_name_nk.Equals("") || !process_desc.Equals(""))
  2711. {
  2712. errMessage = "存在产品规范码,不能选择内控标准名称和适用工序";
  2713. return null;
  2714. }
  2715. }
  2716. if (!std_name_nk.Equals("") || !process_desc.Equals(""))
  2717. {
  2718. if (!psc.Equals(""))
  2719. {
  2720. errMessage = "存在内控标准名称或者适用工序,不能选择产品规范码";
  2721. return null;
  2722. }
  2723. }
  2724. String steelCode = ugr.Cells["STEELCODE"].Value == null ? "" : ugr.Cells["STEELCODE"].Value.ToString();
  2725. String steeeName = ugr.Cells["STEELNAME"].Text;
  2726. String gradeCode = ugr.Cells["GRADECODE"].Value == null ? "" : ugr.Cells["GRADECODE"].Value.ToString();
  2727. String gradeName = ugr.Cells["GRADENAME"].Text;
  2728. string impactId = ugr.Cells["IMPACT_ID"].Value.ToString();
  2729. string stretchPlan = ugr.Cells["STRETCH_PLAN"].Value.ToString();
  2730. //if (CustomInfo == "2" && gradeCode == "")
  2731. //{
  2732. // if (ugr.GetValue("CHC") == "True" && ugr.Cells["GRADECODE"].Column.CellActivation == Activation.AllowEdit)
  2733. // {
  2734. // errMessage = "请选择钢种!";
  2735. // return null;
  2736. // }
  2737. //}
  2738. //if (CustomInfo == "2" && produccode == "")
  2739. //{
  2740. // errMessage = "请选择品名!";
  2741. // return null;
  2742. //}
  2743. list.Add(pic);
  2744. list.Add(psc);
  2745. list.Add(stdstyle);
  2746. list.Add(std_code_nk);
  2747. list.Add(std_name_nk);
  2748. list.Add(process_code);
  2749. list.Add(process_desc);
  2750. list.Add(userName);
  2751. list.Add(memo);
  2752. list.Add(msc);
  2753. list.Add(modelcode);
  2754. list.Add(modeldesc);
  2755. list.Add(producHead);
  2756. list.Add(codeJg == "DefaultValue" ? "" : codeJg);
  2757. list.Add(steelCode);
  2758. list.Add(steeeName);
  2759. list.Add(gradeCode);
  2760. list.Add(gradeName);
  2761. list.Add(batchLoca);
  2762. list.Add(steelcodeNk);
  2763. list.Add(steelnameNk);
  2764. list.Add(modelCodeNk);
  2765. list.Add(modelDescNk);
  2766. list.Add(produccode);
  2767. list.Add(producname);
  2768. list.Add(impactId);
  2769. list.Add(stretchPlan);
  2770. return list;
  2771. }
  2772. private bool CheckDataParent(UltraGridRow ugr, DataRow rowPic, bool flag)
  2773. {
  2774. if (!flag)
  2775. {
  2776. if (ugr.GetValue("CHC") == "True" && ugr.Cells["GRADECODE"].Column.CellActivation == Activation.AllowEdit
  2777. && rowPic != null && rowPic["GRADECODE"].ToString() == "")
  2778. {
  2779. MessageUtil.ShowWarning("请选择钢种并保存后,再恢复记录!");
  2780. return false;
  2781. }
  2782. }
  2783. return true;
  2784. }
  2785. /// <summary>
  2786. /// 点击PIC列 弹出对应的取样码的关联界面
  2787. /// </summary>
  2788. /// <param name="sender"></param>
  2789. /// <param name="e"></param>
  2790. private void SavePic(CellEventArgs e)
  2791. {
  2792. if (e.Cell.Row.HasParent())
  2793. {
  2794. if (e.Cell.Row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE"
  2795. && !PicCode.Contains(e.Cell.Row.Cells["PIC"].Value.ToString()))
  2796. {
  2797. PicCode.Add(e.Cell.Row.Cells["PIC"].Value.ToString());
  2798. }
  2799. else if (e.Cell.Row.Cells["CHC"].Value.ToString().ToUpper() != "TRUE"
  2800. && PicCode.Contains(e.Cell.Row.Cells["PIC"].Value.ToString()))
  2801. {
  2802. PicCode.Remove(e.Cell.Row.Cells["PIC"].Value.ToString()); //取消按钮 则取消保存的理化标准码
  2803. }
  2804. }
  2805. else if (e.Cell.Row.ChildBands[0].Rows.Count > 0)
  2806. {
  2807. if (e.Cell.Row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE"
  2808. && !PicCode.Contains(e.Cell.Row.Cells["PIC"].Value.ToString()))
  2809. {
  2810. PicCode.Add(e.Cell.Row.Cells["PIC"].Value.ToString());
  2811. }
  2812. }
  2813. }
  2814. private void ExpandRow()
  2815. {
  2816. foreach (UltraGridRow row in ultraGrid1.Rows)
  2817. {
  2818. if (PicCode.Contains(row.Cells["PIC"].Value.ToString()))
  2819. {
  2820. row.ExpandAll();
  2821. row.Activate();
  2822. }
  2823. }
  2824. }
  2825. private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
  2826. {
  2827. //BandComboToGrid(e,null);
  2828. if (isPasting)
  2829. {
  2830. e.Row.SetValue("CHC", "True");
  2831. }
  2832. e.Row.Cells["UnboundColumn1"].Value = "维护";
  2833. }
  2834. private void ultraCheckEditor1_CheckedChanged(object sender, EventArgs e)
  2835. {
  2836. if (ultraCheckEditor1.Checked)
  2837. {
  2838. ultraTextEditor1.ReadOnly = false;
  2839. }
  2840. else
  2841. {
  2842. ultraTextEditor1.ReadOnly = true;
  2843. }
  2844. }
  2845. private void ultraCheckEditor2_CheckedChanged(object sender, EventArgs e)
  2846. {
  2847. if (ultraCheckEditor2.Checked)
  2848. {
  2849. validflag = "0";
  2850. }
  2851. else
  2852. {
  2853. validflag = "1";
  2854. }
  2855. }
  2856. private void ultraTextEditor2_EditorButtonClick(object sender, EditorButtonEventArgs e)
  2857. {
  2858. UltraGridRow ugr = ultraGrid1.ActiveRow;
  2859. if (ugr == null)
  2860. return;
  2861. if (ugr.Cells["PHY_NAME"].Text == "")
  2862. {
  2863. MessageUtil.ShowWarning("请先选择检验项!");
  2864. return;
  2865. }
  2866. FrmComMscPhyStdNote fpn = new FrmComMscPhyStdNote();
  2867. fpn.Pic = ugr.Cells["PIC"].Value.ToString();
  2868. fpn.Index = ugr.Cells["INDEX_SEQ"].Value.ToString();
  2869. fpn.NewOb = this.ob;
  2870. fpn.PhyCode = ugr.Cells["PHY_CODE"].Text;
  2871. fpn.PhyName = ugr.Cells["PHY_NAME"].Text;
  2872. fpn.StdMin = ugr.Cells["STDMIN"].Value.ToString();
  2873. fpn.StdGuid = ugr.Cells["GUID"].Value.ToString();
  2874. fpn.ShowDialog();
  2875. this.NoteIndex = fpn.NoteIndex;
  2876. if (NoteIndex != null)
  2877. ugr.Cells["STDMIN"].Value = NoteIndex;
  2878. ugr.Cells["GUID"].Value = fpn.StdGuid;
  2879. }
  2880. private void DoQuery1()
  2881. {
  2882. //主表查询
  2883. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterialTemplate",
  2884. new Object[] { StrPic }, this.ob);
  2885. dataTable1.Clear();
  2886. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true);
  2887. //从表查询
  2888. DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterialTemplateC",
  2889. new Object[] { StrPic, UserInfo.GetUserName() }, this.ob);
  2890. dt1 = QcmBaseCommon.FilterTable(dt, dt1, "PIC");
  2891. GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true);
  2892. //不同颜色区分是否有效数据
  2893. QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAGNAME", "无效");
  2894. setGrid();
  2895. _pic = 1;
  2896. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
  2897. ultraGrid1.UpdateData();
  2898. dataTable1.AcceptChanges();
  2899. dataTable2.AcceptChanges();
  2900. }
  2901. private void DoQuery2()
  2902. {
  2903. //主表查询
  2904. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterialNK",
  2905. new Object[] { msc }, this.ob);
  2906. dataTable1.Clear();
  2907. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true);
  2908. //从表查询
  2909. DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.ComMaterial.getComMaterialNKC",
  2910. new Object[] { msc }, this.ob);
  2911. dt1 = QcmBaseCommon.FilterTable(dt, dt1, "PIC");
  2912. GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true);
  2913. //不同颜色区分是否有效数据
  2914. QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAGNAME", "无效");
  2915. setGrid();
  2916. _pic = 1;
  2917. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
  2918. ultraGrid1.UpdateData();
  2919. dataTable1.AcceptChanges();
  2920. dataTable2.AcceptChanges();
  2921. }
  2922. /// <summary>
  2923. /// 2015/07/15
  2924. /// </summary>
  2925. private void InnerChange()
  2926. {
  2927. //QcmBaseQuery.NitializeGrade(gradeuce, true, this.ob);
  2928. //this.Controls.Add(gradeuce);
  2929. //gradeuce.Visible = false;
  2930. QcmBaseQuery.NitializeSteel(steeluce, true, this.ob);
  2931. this.Controls.Add(steeluce);
  2932. steeluce.Visible = false;
  2933. UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0];
  2934. QcmBaseQuery.BindColumn(steeluce, "STEELCODE", ugb);
  2935. //QcmBaseQuery.BindColumn(gradeuce, "GRADECODE", ugb);
  2936. ultraGrid1.DisplayLayout.Bands[1].Columns["UnboundColumn2"].Header.Caption = "内控标准";
  2937. ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].CellActivation = Activation.ActivateOnly;
  2938. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].CellActivation = Activation.ActivateOnly;
  2939. ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"].Hidden = true;
  2940. }
  2941. private void EditGrid()
  2942. {
  2943. GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "CHC");
  2944. GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[1], "CHC");
  2945. ultraTextEditor3.ButtonsLeft["template"].Visible = false;
  2946. ultraTextEditor3.ButtonsRight[0].Visible = false;
  2947. }
  2948. FrmMaterialStandard _frmMaterialStd = null;
  2949. private void ultraTextEditor3_EditorButtonClick(object sender, EditorButtonEventArgs e)
  2950. {
  2951. if (e.Button.Key == "template")
  2952. {
  2953. _frmMaterialStd = new FrmMaterialStandard();
  2954. _frmMaterialStd.PopupLoad("4", ob);
  2955. _frmMaterialStd.UltraPanel1.Visible = false;
  2956. _frmMaterialStd.ultraToolbarsManager1.Visible = true;
  2957. _frmMaterialStd.Msc = msc;
  2958. _frmMaterialStd.StrPic = ultraGrid1.ActiveRow.GetValue("PIC");
  2959. _frmMaterialStd.CodeJg = "";
  2960. _frmMaterialStd.DoQuery1();
  2961. _frmMaterialStd.EditGrid();
  2962. if (_frmMaterialStd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  2963. {
  2964. DataRow CurRow, NewRow;
  2965. for (int i = 0; i < _frmMaterialStd.dataTable1.Rows.Count; i++)
  2966. {
  2967. CurRow = _frmMaterialStd.dataTable1.Rows[i];
  2968. NewRow = dataTable1.NewRow();
  2969. if (!_frmMaterialStd.Ids.Contains(CurRow["ID"].ToString2()))
  2970. {
  2971. continue;
  2972. }
  2973. int indexSeq = 0;
  2974. DataRow[] dr = dataTable1.Select("PIC='" + ultraGrid1.ActiveRow.GetValue("PIC") + "'", "INDEX_SEQ DESC");
  2975. if (dr.Length > 0)
  2976. {
  2977. indexSeq = Convert.ToInt32(dr[0]["INDEX_SEQ"]);
  2978. }
  2979. indexSeq += 1;
  2980. //赋值序号
  2981. CurRow["INDEX_SEQ"] = indexSeq;
  2982. CurRow["ID"] = "";
  2983. CurRow["IS_PRODUCT_CHECK"] = "False";
  2984. for (int j = 0; j < _frmMaterialStd.dataTable1.Columns.Count; j++)
  2985. {
  2986. try
  2987. {
  2988. if (dataTable1.Columns.Contains(_frmMaterialStd.dataTable1.Columns[j].ColumnName))
  2989. {
  2990. NewRow[_frmMaterialStd.dataTable1.Columns[j].ColumnName] = CurRow[j];
  2991. }
  2992. }
  2993. catch { }
  2994. }
  2995. dataTable1.Rows.Add(NewRow);
  2996. }
  2997. // GridHelper.CopyDataToDatatable(ref _frmMaterialStd.dataTable1, ref this.dataTable1, true);
  2998. ultraGrid1.UpdateData();
  2999. }
  3000. }
  3001. else
  3002. {
  3003. if (ultraGrid1.ActiveCell.Column.Key == "PROCESS_DESC")
  3004. {
  3005. string processCodes = ultraGrid1.ActiveRow.GetValue("PROCESS_CDOE");
  3006. ChoiceProcessPopup choiceProcessPopup = new ChoiceProcessPopup(processCodes, this.ob);
  3007. if (choiceProcessPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3008. {
  3009. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessByStdCode",
  3010. new object[] { this.stdCode }, ob);
  3011. string stdProcessCodes = dt.Rows[0]["PROCESS_CODE"].ToString();
  3012. string[] processCodesAry = choiceProcessPopup.ProcessCodes.Split(',');
  3013. for (int i = 0; i < processCodesAry.Length; i++)
  3014. {
  3015. if (!stdProcessCodes.Contains(processCodesAry[i].Trim()))
  3016. {
  3017. DataTable dtBaseProcess = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessDescByCode",
  3018. new object[] { processCodesAry[i].Trim() }, ob);
  3019. string processDesc = dtBaseProcess.Rows[0]["PROCESS_DESC"].ToString();
  3020. MessageUtil.ShowWarning("该标准下不包含工序" + processDesc + ", 不能选择!");
  3021. return;
  3022. }
  3023. }
  3024. ultraGrid1.ActiveRow.SetValue("PROCESS_CDOE", choiceProcessPopup.ProcessCodes);
  3025. ultraGrid1.ActiveRow.SetValue("PROCESS_DESC", choiceProcessPopup.ProcessDescs);
  3026. }
  3027. }
  3028. else if (ultraGrid1.ActiveCell.Column.Key == "STEELNAME_NK")
  3029. {
  3030. FrmRepSteel frmSteel = new FrmRepSteel();
  3031. frmSteel.Ob1 = this.ob;
  3032. frmSteel.Code = ultraGrid1.ActiveRow.GetValue("STEELCODE_NK");
  3033. if (frmSteel.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3034. {
  3035. ultraGrid1.ActiveRow.SetValue("STEELCODE_NK", frmSteel.Code);
  3036. ultraGrid1.ActiveRow.SetValue("STEELNAME_NK", frmSteel.Desc);
  3037. }
  3038. }
  3039. else if (ultraGrid1.ActiveCell.Column.Key == "MODEL_DESC_NK")
  3040. {
  3041. FrmModel frmModel = new FrmModel();
  3042. frmModel.FrmOb = this.ob;
  3043. frmModel.Code = ultraGrid1.ActiveRow.GetValue("MODEL_CODE_NK");
  3044. frmModel.Desc = ultraGrid1.ActiveCell.Value.ToString();
  3045. if (frmModel.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3046. {
  3047. ultraGrid1.ActiveRow.SetValue("MODEL_CODE_NK", frmModel.Code);
  3048. ultraGrid1.ActiveRow.SetValue("MODEL_DESC_NK", frmModel.Desc);
  3049. }
  3050. }
  3051. else if (ultraGrid1.ActiveCell.Column.Key == "PRODUCNAME_NK")
  3052. {
  3053. PopupProductName popupProductName = new PopupProductName(
  3054. ultraGrid1.ActiveRow.GetValue("PRODUCCODE_NK"), this.ob);
  3055. if (popupProductName.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3056. {
  3057. ultraGrid1.ActiveRow.SetValue("PRODUCCODE_NK", popupProductName.ProductCodes);
  3058. ultraGrid1.ActiveRow.SetValue("PRODUCNAME_NK", popupProductName.ProductNames);
  3059. }
  3060. }
  3061. else if (ultraGrid1.ActiveCell.Column.Key == "PHY_NAME_MAX")
  3062. {
  3063. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRStd", null, ob);
  3064. dt.Columns["PHY_TYPE"].Caption = "检验大项";
  3065. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_TYPE", "PHY_CODE");
  3066. baseInfoPopup.Text = "检验大项";
  3067. baseInfoPopup.LabelTextBox1.Caption = "检验大项";
  3068. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3069. {
  3070. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3071. a => a.GetValue("PHY_CODE") == ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX"));
  3072. if (rows.Count() > 0)
  3073. {
  3074. rows.First().Activate();
  3075. }
  3076. });
  3077. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3078. {
  3079. ultraGrid1.ActiveRow.SetValue("PHY_NAME_MAX", baseInfoPopup.ChoicedRow.GetValue("PHY_TYPE"));
  3080. ultraGrid1.ActiveRow.SetValue("PHY_CODE_MAX", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE"));
  3081. ultraGrid1.ActiveRow.SetValue("PHY_NAME_MIN", "");
  3082. ultraGrid1.ActiveRow.SetValue("PHY_CODE_MIN", "");
  3083. ultraGrid1.ActiveRow.SetValue("PHY_NAME", "");
  3084. ultraGrid1.ActiveRow.SetValue("PHY_CODE", "");
  3085. ultraGrid1.ActiveRow.SetValue("ITEM_NAME_F", "");
  3086. ultraGrid1.ActiveRow.SetValue("ITEM_CODE_F", "");
  3087. ultraGrid1.ActiveRow.SetValue("ITEM_NAME_W", "");
  3088. ultraGrid1.ActiveRow.SetValue("ITEM_CODE_W", "");
  3089. ultraGrid1.ActiveRow.SetValue("ITEM_NAME_S", "");
  3090. ultraGrid1.ActiveRow.SetValue("ITEM_CODE_S", "");
  3091. }
  3092. }
  3093. else if (ultraGrid1.ActiveCell.Column.Key == "PHY_NAME_MIN")
  3094. {
  3095. string phyCodeMax = ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX");
  3096. if (phyCodeMax == "")
  3097. {
  3098. MessageUtil.ShowWarning("请选检验大项!");
  3099. return;
  3100. }
  3101. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyC", new object[] { phyCodeMax }, ob);
  3102. dt.Columns["PHY_TYPE"].Caption = "试样组";
  3103. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_TYPE", "PHY_CODE");
  3104. baseInfoPopup.Text = "试样组";
  3105. baseInfoPopup.LabelTextBox1.Caption = "试样组";
  3106. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3107. {
  3108. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3109. a => a.GetValue("PHY_CODE") == ultraGrid1.ActiveRow.GetValue("PHY_CODE_MIN"));
  3110. if (rows.Count() > 0)
  3111. {
  3112. rows.First().Activate();
  3113. }
  3114. });
  3115. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3116. {
  3117. ultraGrid1.ActiveRow.SetValue("PHY_NAME_MIN", baseInfoPopup.ChoicedRow.GetValue("PHY_TYPE"));
  3118. ultraGrid1.ActiveRow.SetValue("PHY_CODE_MIN", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE"));
  3119. ultraGrid1.ActiveRow.SetValue("PHY_NAME", "");
  3120. ultraGrid1.ActiveRow.SetValue("PHY_CODE", "");
  3121. ultraGrid1.ActiveRow.SetValue("ITEM_NAME_F", "");
  3122. ultraGrid1.ActiveRow.SetValue("ITEM_CODE_F", "");
  3123. ultraGrid1.ActiveRow.SetValue("ITEM_NAME_S", "");
  3124. ultraGrid1.ActiveRow.SetValue("ITEM_CODE_S", "");
  3125. ultraGrid1.ActiveRow.SetValue("ITEM_NAME_W", "");
  3126. ultraGrid1.ActiveRow.SetValue("ITEM_CODE_W", "");
  3127. }
  3128. }
  3129. else if (ultraGrid1.ActiveCell.Column.Key == "PHY_NAME")
  3130. {
  3131. string phyCodeMax = ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX");
  3132. string phyCodeMin = ultraGrid1.ActiveRow.GetValue("PHY_CODE_MIN");
  3133. if (phyCodeMax == "")
  3134. {
  3135. MessageUtil.ShowWarning("请选择检验大项");
  3136. ultraGrid1.ActiveRow.Cells["PHY_NAME_MAX"].Activate();
  3137. return;
  3138. }
  3139. else if (phyCodeMin == "")
  3140. {
  3141. MessageUtil.ShowWarning("请选择试样组");
  3142. ultraGrid1.ActiveRow.Cells["PHY_NAME_MIN"].Activate();
  3143. return;
  3144. }
  3145. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhy", new object[] { phyCodeMax, phyCodeMin }, ob);
  3146. dt.Columns["PHY_NAME"].Caption = "检验项";
  3147. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_NAME", "PHY_CODE");
  3148. baseInfoPopup.Text = "检验项";
  3149. baseInfoPopup.LabelTextBox1.Caption = "检验项";
  3150. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3151. {
  3152. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3153. a => a.GetValue("PHY_CODE") == ultraGrid1.ActiveRow.GetValue("PHY_CODE"));
  3154. if (rows.Count() > 0)
  3155. {
  3156. rows.First().Activate();
  3157. }
  3158. });
  3159. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3160. {
  3161. ultraGrid1.ActiveRow.SetValue("PHY_NAME", baseInfoPopup.ChoicedRow.GetValue("PHY_NAME"));
  3162. ultraGrid1.ActiveRow.SetValue("PHY_CODE", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE"));
  3163. ultraGrid1.ActiveRow.SetValue("ITEM_NAME_W", "");
  3164. ultraGrid1.ActiveRow.SetValue("ITEM_CODE_W", "");
  3165. }
  3166. if (baseInfoPopup.ChoicedRow.GetValue("PHY_CODE") == "P0618" || baseInfoPopup.ChoicedRow.GetValue("PHY_CODE") == "P0619")
  3167. {
  3168. ultraGrid1.ActiveRow.SetValue("STDMIN_SIGN", "=");
  3169. ultraGrid1.ActiveRow.SetValue("STDMIN", "否");
  3170. }
  3171. }
  3172. else if (ultraGrid1.ActiveCell.Column.Key == "ITEM_NAME_F")
  3173. {
  3174. string phyTypeC = ultraGrid1.ActiveRow.GetValue("PHY_CODE_MIN");
  3175. if (phyTypeC == "")
  3176. {
  3177. MessageUtil.ShowWarning("请选择试样组");
  3178. ultraGrid1.ActiveRow.Cells["PHY_NAME_MIN"].Activate();
  3179. return;
  3180. }
  3181. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRItem",
  3182. new object[] { phyTypeC }, ob);
  3183. dt.Columns["ITEM_NAME_F"].Caption = "试验方向";
  3184. dt.Columns["ITEM_NAME_C"].Caption = "试验尺寸";
  3185. if (ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX") == "R0001")
  3186. {
  3187. dt.DefaultView.RowFilter = "ITEM_CODE_F IS NOT NULL";
  3188. }
  3189. if (ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX") == "R0002")
  3190. {
  3191. dt.DefaultView.RowFilter = "ITEM_CODE_C IS NOT NULL AND ITEM_CODE_F IS NOT NULL";
  3192. }
  3193. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "ITEM_NAME_F", "ITEM_CODE_F", "ITEM_CODE_C");
  3194. baseInfoPopup.Text = "试验选择";
  3195. baseInfoPopup.LabelTextBox1.Caption = "试验方向";
  3196. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3197. {
  3198. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3199. a => a.GetValue("ITEM_CODE_F") == ultraGrid1.ActiveRow.GetValue("ITEM_CODE_F")
  3200. && a.GetValue("ITEM_CODE_C") == ultraGrid1.ActiveRow.GetValue("ITEM_CODE_S"));
  3201. if (rows.Count() > 0)
  3202. {
  3203. rows.First().Activate();
  3204. }
  3205. });
  3206. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3207. {
  3208. ultraGrid1.ActiveRow.SetValue("ITEM_NAME_F", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_F"));
  3209. ultraGrid1.ActiveRow.SetValue("ITEM_CODE_F", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_F"));
  3210. ultraGrid1.ActiveRow.SetValue("ITEM_NAME_S", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_C"));
  3211. ultraGrid1.ActiveRow.SetValue("ITEM_CODE_S", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_C"));
  3212. }
  3213. }
  3214. else if (ultraGrid1.ActiveCell.Column.Key == "ITEM_NAME_W")
  3215. {
  3216. string phyCode = ultraGrid1.ActiveRow.GetValue("PHY_CODE");
  3217. if (phyCode == "")
  3218. {
  3219. MessageUtil.ShowWarning("请选择检验项");
  3220. ultraGrid1.ActiveRow.Cells["PHY_NAME"].Activate();
  3221. return;
  3222. }
  3223. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRPos",
  3224. new object[] { phyCode }, ob);
  3225. dt.Columns["ITEM_NAME_W"].Caption = "试验温度";
  3226. if (ultraGrid1.ActiveRow.GetValue("PHY_CODE_MAX") == "R0001")
  3227. {
  3228. dt.DefaultView.RowFilter = "ITEM_CODE_W IS NOT NULL";
  3229. }
  3230. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "ITEM_NAME_W", "ITEM_CODE_W");
  3231. baseInfoPopup.Text = "试验选择";
  3232. baseInfoPopup.LabelTextBox1.Caption = "试验温度";
  3233. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3234. {
  3235. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3236. a => a.GetValue("ITEM_CODE_W") == ultraGrid1.ActiveRow.GetValue("ITEM_CODE_W"));
  3237. if (rows.Count() > 0)
  3238. {
  3239. rows.First().Activate();
  3240. }
  3241. });
  3242. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3243. {
  3244. ultraGrid1.ActiveRow.SetValue("ITEM_NAME_W", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_W"));
  3245. ultraGrid1.ActiveRow.SetValue("ITEM_CODE_W", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_W"));
  3246. }
  3247. }
  3248. }
  3249. }
  3250. private void ultraTextEditor4_EditorButtonClick(object sender, EditorButtonEventArgs e)
  3251. {
  3252. if (ultraGrid1.ActiveCell.Column.Key == "GRADENAME")
  3253. {
  3254. string gradeCodes = ultraGrid1.ActiveRow.GetValue("GRADENAME");
  3255. FrmGradeChoice frmGradeChoice = new FrmGradeChoice(gradeCodes, ob);
  3256. if (frmGradeChoice.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3257. {
  3258. ultraGrid1.ActiveRow.SetValue("GRADECODE", frmGradeChoice.GradeCodes);
  3259. ultraGrid1.ActiveRow.SetValue("GRADENAME", frmGradeChoice.GradeNames);
  3260. }
  3261. }
  3262. else if (ultraGrid1.ActiveCell.Column.Key == "IMPACT_ID")
  3263. {
  3264. ComBaseImpactFrm impactFrm = new ComBaseImpactFrm(ultraGrid1.ActiveCell.Value.ToString(), ob);
  3265. if (impactFrm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3266. {
  3267. ultraGrid1.ActiveCell.Value = impactFrm.Id;
  3268. }
  3269. }
  3270. }
  3271. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  3272. {
  3273. switch (e.Tool.Key)
  3274. {
  3275. case "查询":
  3276. if (this.CustomInfo.Equals("5"))
  3277. {
  3278. DoQuery2();
  3279. }else {
  3280. DoQuery1();
  3281. }
  3282. break;
  3283. case "确认选择":
  3284. if (this.CustomInfo.Equals("5"))
  3285. {
  3286. Choice1();
  3287. }
  3288. else
  3289. {
  3290. Choice();
  3291. }
  3292. break;
  3293. case "删除":
  3294. DeleteTemplate();
  3295. break;
  3296. }
  3297. }
  3298. private DataRow[] rows;
  3299. public DataRow[] Rows
  3300. {
  3301. get { return rows; }
  3302. set { rows = value; }
  3303. }
  3304. List<string> ids;
  3305. public List<string> Ids
  3306. {
  3307. get { return ids; }
  3308. set { ids = value; }
  3309. }
  3310. private void Choice()
  3311. {
  3312. ultraGrid1.UpdateData();
  3313. UltraGridRow ugr = ultraGrid1.Rows[0];
  3314. //从表操作
  3315. if (ugr.HasChild())
  3316. {
  3317. Ids = ugr.ChildBands[0].Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))).Select(p => p.GetValue("ID")).ToList();
  3318. Rows = dataTable1.Select("ID IN ('" + string.Join("','", Ids) + "')");
  3319. }
  3320. this.DialogResult = System.Windows.Forms.DialogResult.OK;
  3321. }
  3322. private void Choice1()
  3323. {
  3324. ultraGrid1.UpdateData();
  3325. int count = ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))).Count();
  3326. if(count > 1){
  3327. MessageUtil.ShowTips("请选择一条数据!");
  3328. return;
  3329. }
  3330. foreach (UltraGridRow ugr in ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))))
  3331. {
  3332. //从表操作
  3333. if (ugr.HasChild())
  3334. {
  3335. Ids = ugr.ChildBands[0].Rows.Select(p => p.GetValue("PIC")).ToList();
  3336. Rows = dataTable1.Select("PIC IN ('" + string.Join("','", Ids) + "')");
  3337. }
  3338. }
  3339. this.DialogResult = System.Windows.Forms.DialogResult.OK;
  3340. }
  3341. private void ultraGrid1_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
  3342. {
  3343. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow ugr in this.ultraGrid1.Selected.Rows)
  3344. {
  3345. ugr.Cells["CHC"].Value = true;
  3346. Activation activation = Activation.ActivateOnly;
  3347. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  3348. {
  3349. activation = Activation.AllowEdit;
  3350. //isSelect += 1;
  3351. }
  3352. //else
  3353. //isSelect -= 1;
  3354. CellsCollection cells = ugr.Cells;
  3355. for (int i = 0; i < cells.Count; i++)
  3356. {
  3357. if (!cells[i].Column.Key.Equals("CHC"))
  3358. {
  3359. ugr.Cells[i].Activation = activation;
  3360. }
  3361. }
  3362. }
  3363. }
  3364. }
  3365. }