frmTransitLine.cs 78 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA03;
  10. using CoreFS.CA04;
  11. using CoreFS.CA06;
  12. using System.Collections;
  13. using Infragistics.Win.UltraWinGrid;
  14. using Core.Mes.Client.Comm.Server;
  15. using Core.Mes.Client.Comm.Control;
  16. using Core.Mes.Client.Comm.Tool;
  17. namespace Core.StlMes.Client.SaleOrder
  18. {
  19. public partial class frmTransitLine : FrmBase
  20. {
  21. public frmTransitLine()
  22. {
  23. InitializeComponent();
  24. }
  25. public frmTransitLine(OpeBase ob)
  26. {
  27. InitializeComponent();
  28. this.ob = ob;
  29. }
  30. /// <summary>
  31. /// 窗体加载事件
  32. /// </summary>
  33. /// <param name="sender"></param>
  34. /// <param name="e"></param>
  35. private void frmTransitLine_Load(object sender, EventArgs e)
  36. {
  37. bindType();
  38. //线路明细相关控件数据绑定。
  39. bindTypeMx();
  40. //专用线数据源绑定。
  41. bindZy();
  42. //运输方式
  43. bindYsfs();
  44. //承运单位
  45. bindCydw();
  46. //是否代办
  47. cmbIsD.SelectedIndex = 0;
  48. doQuery();
  49. }
  50. /// <summary>
  51. /// 重写基类load事件,屏蔽平台过滤功能。
  52. /// </summary>
  53. /// <param name="e"></param>
  54. protected override void OnLoad(EventArgs e)
  55. {
  56. base.OnLoad(e);
  57. ultraGridMx.DisplayLayout.Bands[0].Override.HeaderClickAction = HeaderClickAction.Select;
  58. }
  59. /// <summary>
  60. /// 承运单位
  61. /// </summary>
  62. private void bindCydw()
  63. {
  64. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetCydw", null, this.ob);
  65. //起始地数据源绑定
  66. cmbCydw.DataSource = dt;
  67. cmbCydw.DisplayMember = "BASENAME";
  68. cmbCydw.ValueMember = "BASECODE";
  69. cmbCydw.DataBind();
  70. cmbCydw.SelectedIndex = 0;
  71. }
  72. /// <summary>
  73. /// 运输方式
  74. /// </summary>
  75. private void bindYsfs()
  76. {
  77. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetYsfs", null, this.ob);
  78. cmbYsfs.DataSource = dt;
  79. cmbYsfs.DisplayMember = "BASENAME";
  80. cmbYsfs.ValueMember = "BASECODE";
  81. cmbYsfs.DataBind();
  82. cmbYsfs.SelectedIndex = 0;
  83. }
  84. /// <summary>
  85. /// 专用线数据源绑定
  86. /// </summary>
  87. private void bindZy()
  88. {
  89. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetSpclNo", null, this.ob);
  90. //起始地数据源绑定
  91. cmbZy.DataSource = dt;
  92. cmbZy.DisplayMember = "SPCL_LN_NM";
  93. cmbZy.ValueMember = "SPCL_LN_NO";
  94. cmbZy.DataBind();
  95. cmbZy.SelectedIndex = 0;
  96. }
  97. /// <summary>
  98. /// 线路明细地域类型数据源绑定。
  99. /// </summary>
  100. private void bindTypeMx()
  101. {
  102. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetType", null, this.ob);
  103. //始发地数据源绑定
  104. cmbSfmxType.DataSource = dt;
  105. cmbSfmxType.DisplayMember = "BASENAME";
  106. cmbSfmxType.ValueMember = "BASECODE";
  107. cmbSfmxType.DataBind();
  108. cmbSfmxType.SelectedIndex = 0;
  109. //终止地数据源绑定
  110. cmbZzmxType.DataSource = dt;
  111. cmbZzmxType.DisplayMember = "BASENAME";
  112. cmbZzmxType.ValueMember = "BASECODE";
  113. cmbZzmxType.DataBind();
  114. cmbZzmxType.SelectedIndex = 0;
  115. }
  116. /// <summary>
  117. /// 绑定始发地类型,他与终止地类型属于同一个数据源。
  118. /// </summary>
  119. private void bindType()
  120. {
  121. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetType", null, this.ob);
  122. //始发地数据源绑定
  123. cmbSfType.DataSource = dt;
  124. cmbSfType.DisplayMember = "BASENAME";
  125. cmbSfType.ValueMember = "BASECODE";
  126. cmbSfType.DataBind();
  127. cmbSfType.SelectedIndex = 0;
  128. //终止地数据源绑定
  129. cmbZZType.DataSource = dt;
  130. cmbZZType.DisplayMember = "BASENAME";
  131. cmbZZType.ValueMember = "BASECODE";
  132. cmbZZType.DataBind();
  133. cmbZZType.SelectedIndex = 0;
  134. }
  135. /// <summary>
  136. /// 清空查询起始地查询条件
  137. /// </summary>
  138. /// <param name="sender"></param>
  139. /// <param name="e"></param>
  140. private void chkQsd_CheckedChanged(object sender, EventArgs e)
  141. {
  142. txtQsTitle.Enabled = chkQsd.Checked;
  143. if (txtQsTitle.Enabled == false)
  144. {
  145. txtQsTitle.Text = "";
  146. }
  147. }
  148. /// <summary>
  149. /// 清空目的地查询条件
  150. /// </summary>
  151. /// <param name="sender"></param>
  152. /// <param name="e"></param>
  153. private void chkMdd_CheckedChanged(object sender, EventArgs e)
  154. {
  155. txtMdTitle.Enabled = chkMdd.Checked;
  156. if (txtMdTitle.Enabled == false)
  157. {
  158. txtMdTitle.Text = "";
  159. }
  160. }
  161. /// <summary>
  162. /// tool工具栏
  163. /// </summary>
  164. /// <param name="sender"></param>
  165. /// <param name="e"></param>
  166. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  167. {
  168. switch (e.Tool.Key)
  169. {
  170. case "doQuery":
  171. doQuery();
  172. break;
  173. case "doAdd":
  174. doAdd();
  175. break;
  176. case "doUpdate":
  177. doUpdate();
  178. break;
  179. case "doDelete":
  180. doDelete();
  181. break;
  182. case "doRecovery":
  183. doRecovery();
  184. break;
  185. case "doOk":
  186. doOk();
  187. break;
  188. case "doClose":
  189. this.Close();
  190. break;
  191. default:
  192. break;
  193. }
  194. }
  195. /// <summary>
  196. /// 委托方法
  197. /// </summary>
  198. /// <param name="ROrdLen"></param>
  199. public delegate void GetTransitLineHander(UltraGridRow xl, UltraGridRow fa, DataTable mx);
  200. public event GetTransitLineHander GetTransitLine;
  201. /// <summary>
  202. /// 确认
  203. /// </summary>
  204. private void doOk()
  205. {
  206. if (ultraGridXl.ActiveRow == null || ultraGridFa.ActiveRow == null || ultraGridMx.ActiveRow == null)
  207. {
  208. MessageBox.Show("当前运输线路不可用,请重新选择。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  209. return;
  210. }
  211. //返回2行记录和1个Table回主界面。
  212. UltraGridRow xl = ultraGridXl.ActiveRow;
  213. UltraGridRow fa = ultraGridFa.ActiveRow;
  214. GetTransitLine(xl, fa, this.dataTable3);
  215. this.Close();
  216. }
  217. /// <summary>
  218. /// 恢复
  219. /// </summary>
  220. private void doRecovery()
  221. {
  222. switch (ultraTabControl1.SelectedTab.Key)
  223. {
  224. case "0":
  225. doDelete_Main(false);
  226. break;
  227. case "1":
  228. doDelete_Mode(false);
  229. break;
  230. case "2":
  231. doDelete_ModeLine(false);
  232. break;
  233. default:
  234. break;
  235. }
  236. }
  237. /// <summary>
  238. /// 删除
  239. /// </summary>
  240. private void doDelete()
  241. {
  242. switch (ultraTabControl1.SelectedTab.Key)
  243. {
  244. case "0":
  245. doDelete_Main(true);
  246. break;
  247. case "1":
  248. doDelete_Mode(true);
  249. break;
  250. case "2":
  251. doDelete_ModeLine(true);
  252. break;
  253. default:
  254. break;
  255. }
  256. }
  257. /// <summary>
  258. /// 主线路删除
  259. /// </summary>
  260. /// <param name="p"></param>
  261. private void doDelete_Main(bool isDelete)
  262. {
  263. if (ultraGridXl.ActiveRow == null)
  264. {
  265. MessageBox.Show("请选择需要" + (isDelete ? "废除" : "恢复") + "的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  266. return;
  267. }
  268. Boolean validflagStr = Convert.ToBoolean(ultraGridXl.ActiveRow.Cells["VALIDFLAG"].Value);
  269. if (isDelete)
  270. {
  271. //无效数据不允许删除。
  272. if (!validflagStr)
  273. {
  274. MessageBox.Show("无效数据不支持废除操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  275. return;
  276. }
  277. }
  278. else
  279. {
  280. //有效数据不允许恢复
  281. if (validflagStr)
  282. {
  283. MessageBox.Show("有效数据不支持恢复操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  284. return;
  285. }
  286. }
  287. ArrayList param = new ArrayList();
  288. string transitNo = ultraGridXl.ActiveRow.Cells["TRANSIT_NO"].Value.ToString();
  289. if (isDelete)
  290. {
  291. param.Add(UserInfo.GetUserName());
  292. }
  293. else
  294. {
  295. param.Add("");
  296. }
  297. param.Add(transitNo);
  298. if (param.Count > 0 && MessageBox.Show("是否确认" + (isDelete ? "废除" : "恢复") + "选中的数据!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  299. {
  300. try
  301. {
  302. //需要先废除或恢复他全部子记录
  303. //从服务端一次性删除
  304. int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreTransitLine.doDelete_Main", new Object[] { param, isDelete }, this.ob);
  305. if (count > 0)
  306. {
  307. //吨运费计算。
  308. //UpdateTransitMny(transitNo, modeNo);
  309. doQuery();
  310. Infragistics.Win.UltraWinGrid.UltraGridRow rowD = null;
  311. for (int i = 0; i < ultraGridXl.Rows.Count; i++)
  312. {
  313. rowD = ultraGridXl.Rows[i];
  314. if (rowD.Cells["TRANSIT_NO"].Value.ToString().Equals(transitNo))
  315. {
  316. rowD.Activate();
  317. break;
  318. }
  319. }
  320. }
  321. }
  322. catch (Exception ex)
  323. {
  324. MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  325. }
  326. }
  327. }
  328. /// <summary>
  329. /// 删除方案
  330. /// </summary>
  331. /// <param name="p"></param>
  332. private void doDelete_Mode(bool isDelete)
  333. {
  334. if (ultraGridFa.ActiveRow == null)
  335. {
  336. MessageBox.Show("请选择需要" + (isDelete ? "废除" : "恢复") + "的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  337. return;
  338. }
  339. Boolean validflagStr = Convert.ToBoolean(ultraGridFa.ActiveRow.Cells["VALIDFLAG"].Value);
  340. if (isDelete)
  341. {
  342. //无效数据不允许删除。
  343. if (!validflagStr)
  344. {
  345. MessageBox.Show("无效数据不支持废除操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  346. return;
  347. }
  348. }
  349. else
  350. {
  351. //有效数据不允许恢复
  352. if (validflagStr)
  353. {
  354. MessageBox.Show("有效数据不支持恢复操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  355. return;
  356. }
  357. //方案无效的情况下,线路明细不支持恢复操作。
  358. Boolean validflagMain = Convert.ToBoolean(ultraGridXl.ActiveRow.Cells["VALIDFLAG"].Value);
  359. if (!validflagMain)
  360. {
  361. MessageBox.Show("主线路无效的情况下,方案不支持恢复操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  362. return;
  363. }
  364. }
  365. ArrayList param = new ArrayList();
  366. string transitNo = ultraGridFa.ActiveRow.Cells["TRANSIT_NO"].Value.ToString();
  367. string modeNo = ultraGridFa.ActiveRow.Cells["MODE_NO"].Value.ToString();
  368. if (isDelete)
  369. {
  370. param.Add(UserInfo.GetUserName());
  371. }
  372. else
  373. {
  374. param.Add("");
  375. }
  376. param.Add(transitNo);
  377. param.Add(modeNo);
  378. if (param.Count > 0 && MessageBox.Show("是否确认" + (isDelete ? "废除" : "恢复") + "选中的数据!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  379. {
  380. try
  381. {
  382. //需要先废除或恢复他全部子记录
  383. int countItem = ServerHelper.SetData("com.steering.pss.sale.order.CoreTransitLine.doDelete_Mode_Item", new Object[] { param, isDelete }, this.ob);
  384. if (countItem > 0)
  385. {
  386. int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreTransitLine.doDelete_Mode", new Object[] { param, isDelete }, this.ob);
  387. if (count > 0)
  388. {
  389. //吨运费计算。
  390. UpdateTransitMny(transitNo, modeNo);
  391. doQuery_Mode();
  392. Infragistics.Win.UltraWinGrid.UltraGridRow rowD = null;
  393. for (int i = 0; i < ultraGridFa.Rows.Count; i++)
  394. {
  395. rowD = ultraGridFa.Rows[i];
  396. if (rowD.Cells["MODE_NO"].Value.ToString().Equals(modeNo))
  397. {
  398. rowD.Activate();
  399. break;
  400. }
  401. }
  402. }
  403. }
  404. }
  405. catch (Exception ex)
  406. {
  407. MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  408. }
  409. }
  410. }
  411. /// <summary>
  412. /// 删除线路明细。
  413. /// </summary>
  414. private void doDelete_ModeLine(bool isDelete)
  415. {
  416. if (ultraGridMx.ActiveRow == null)
  417. {
  418. MessageBox.Show("请选择需要" + (isDelete ? "废除" : "恢复") + "的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  419. return;
  420. }
  421. Boolean validflagStr = Convert.ToBoolean(ultraGridMx.ActiveRow.Cells["VALIDFLAG"].Value);
  422. if (isDelete)
  423. {
  424. //无效数据不允许删除。
  425. if (!validflagStr)
  426. {
  427. MessageBox.Show("无效数据不支持废除操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  428. return;
  429. }
  430. }
  431. else
  432. {
  433. //有效数据不允许恢复
  434. if (validflagStr)
  435. {
  436. MessageBox.Show("有效数据不支持恢复操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  437. return;
  438. }
  439. //方案无效的情况下,线路明细不支持恢复操作。
  440. Boolean validflagMode = Convert.ToBoolean(ultraGridFa.ActiveRow.Cells["VALIDFLAG"].Value);
  441. if (!validflagMode)
  442. {
  443. MessageBox.Show("方案无效的情况下,线路明细不支持恢复操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  444. return;
  445. }
  446. }
  447. if (isDelete)
  448. {
  449. if (MessageBox.Show("废除当前线路明细,将导致当前方案不可用,是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  450. {
  451. doDelete_ModeMM(true);
  452. }
  453. }
  454. else
  455. {
  456. if (MessageBox.Show("恢复当前线路明细,将恢复当前方案,是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  457. {
  458. doDelete_ModeMM(false);
  459. }
  460. }
  461. //ArrayList param = new ArrayList();
  462. //string transitNo = ultraGridMx.ActiveRow.Cells["TRANSIT_NO"].Value.ToString();
  463. //string modeNo = ultraGridMx.ActiveRow.Cells["MODE_NO"].Value.ToString();
  464. //string indexSeq = ultraGridMx.ActiveRow.Cells["INDEX_SEQ"].Value.ToString();
  465. //if (isDelete)
  466. //{
  467. // param.Add(UserInfo.GetUserName());
  468. //}
  469. //else
  470. //{
  471. // param.Add("");
  472. //}
  473. //param.Add(transitNo);
  474. //param.Add(modeNo);
  475. //param.Add(indexSeq);
  476. //if (param.Count > 0 && MessageBox.Show("是否确认" + (isDelete ? "废除" : "恢复") + "选中的数据!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  477. //{
  478. // try
  479. // {
  480. // int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreTransitLine.doDelete_ModeLine", new Object[] { param, isDelete }, this.ob);
  481. // if (count > 0)
  482. // {
  483. // //吨运费计算。
  484. // UpdateTransitMny(transitNo, modeNo);
  485. // doQuery_ModeLine();
  486. // Infragistics.Win.UltraWinGrid.UltraGridRow rowD = null;
  487. // for (int i = 0; i < ultraGridMx.Rows.Count; i++)
  488. // {
  489. // rowD = ultraGridMx.Rows[i];
  490. // if (rowD.Cells["INDEX_SEQ"].Value.ToString().Equals(indexSeq))
  491. // {
  492. // rowD.Activate();
  493. // break;
  494. // }
  495. // }
  496. // }
  497. // }
  498. // catch (Exception ex)
  499. // {
  500. // MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  501. // }
  502. //}
  503. }
  504. /// <summary>
  505. /// 删除方案MX使用
  506. /// </summary>
  507. /// <param name="p"></param>
  508. private void doDelete_ModeMM(bool isDelete)
  509. {
  510. if (ultraGridFa.ActiveRow == null)
  511. {
  512. MessageBox.Show("请选择需要" + (isDelete ? "废除" : "恢复") + "的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  513. return;
  514. }
  515. Boolean validflagStr = Convert.ToBoolean(ultraGridFa.ActiveRow.Cells["VALIDFLAG"].Value);
  516. if (isDelete)
  517. {
  518. //无效数据不允许删除。
  519. if (!validflagStr)
  520. {
  521. MessageBox.Show("无效数据不支持废除操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  522. return;
  523. }
  524. }
  525. else
  526. {
  527. //有效数据不允许恢复
  528. if (validflagStr)
  529. {
  530. MessageBox.Show("有效数据不支持恢复操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  531. return;
  532. }
  533. //方案无效的情况下,线路明细不支持恢复操作。
  534. Boolean validflagMain = Convert.ToBoolean(ultraGridXl.ActiveRow.Cells["VALIDFLAG"].Value);
  535. if (!validflagMain)
  536. {
  537. MessageBox.Show("主线路无效的情况下,方案不支持恢复操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  538. return;
  539. }
  540. }
  541. ArrayList param = new ArrayList();
  542. string transitNo = ultraGridFa.ActiveRow.Cells["TRANSIT_NO"].Value.ToString();
  543. string modeNo = ultraGridFa.ActiveRow.Cells["MODE_NO"].Value.ToString();
  544. if (isDelete)
  545. {
  546. param.Add(UserInfo.GetUserName());
  547. }
  548. else
  549. {
  550. param.Add("");
  551. }
  552. param.Add(transitNo);
  553. param.Add(modeNo);
  554. try
  555. {
  556. //需要先废除或恢复他全部子记录
  557. int countItem = ServerHelper.SetData("com.steering.pss.sale.order.CoreTransitLine.doDelete_Mode_Item", new Object[] { param, isDelete }, this.ob);
  558. if (countItem > 0)
  559. {
  560. int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreTransitLine.doDelete_Mode", new Object[] { param, isDelete }, this.ob);
  561. if (count > 0)
  562. {
  563. //吨运费计算。
  564. UpdateTransitMny(transitNo, modeNo);
  565. doQuery_Mode();
  566. Infragistics.Win.UltraWinGrid.UltraGridRow rowD = null;
  567. for (int i = 0; i < ultraGridFa.Rows.Count; i++)
  568. {
  569. rowD = ultraGridFa.Rows[i];
  570. if (rowD.Cells["MODE_NO"].Value.ToString().Equals(modeNo))
  571. {
  572. rowD.Activate();
  573. break;
  574. }
  575. }
  576. }
  577. }
  578. }
  579. catch (Exception ex)
  580. {
  581. MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  582. }
  583. }
  584. /// <summary>
  585. /// 修改操作
  586. /// </summary>
  587. private void doUpdate()
  588. {
  589. //判断线路、方案还是线路明细。
  590. switch (ultraTabControl1.SelectedTab.Key)
  591. {
  592. case "0":
  593. doUpdate_Main();
  594. break;
  595. case "1":
  596. doUpdate_Mode();
  597. break;
  598. case "2":
  599. doUpdate_ModeLine();
  600. break;
  601. default:
  602. break;
  603. }
  604. }
  605. private static string VstartDescMx = "";
  606. private static string VterminationDescMx = "";
  607. /// <summary>
  608. /// 线路明细修改
  609. /// </summary>
  610. private void doUpdate_ModeLine()
  611. {
  612. if (ultraGridMx.ActiveRow == null)
  613. {
  614. MessageBox.Show("请选择需要修改的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  615. return;
  616. }
  617. Boolean validflagStr = Convert.ToBoolean(ultraGridMx.ActiveRow.Cells["VALIDFLAG"].Value);
  618. //无效数据不允许修改
  619. if (!validflagStr)
  620. {
  621. MessageBox.Show("无效数据不支持修改操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  622. return;
  623. }
  624. if (ValidInput_ModeLine())
  625. {
  626. string transitNo = ultraGridMx.ActiveRow.Cells["TRANSIT_NO"].Value.ToString();
  627. string modeNo = ultraGridMx.ActiveRow.Cells["MODE_NO"].Value.ToString();
  628. string indexSeq = ultraGridMx.ActiveRow.Cells["INDEX_SEQ"].Value.ToString();
  629. string startDesc = utxtSfmx.Text.Trim();
  630. string terminationDesc = utxtZzmx.Text.Trim();
  631. //始发地类别
  632. string regionNoB_Typ = cmbSfmxType.Text.ToString();
  633. //始发地REGION_NO_B
  634. string regionNoB = utxtSfmx.Text.Trim();
  635. //终止地类别
  636. string regionNoE_Typ = cmbZzmxType.Text.ToString();
  637. //终止地
  638. string regionNoE = utxtZzmx.Text.Trim();
  639. if (VstartDescMx.Equals(startDesc) && VterminationDescMx.Equals(terminationDesc))
  640. {
  641. }
  642. else
  643. {
  644. if (isRepeatModeLine(transitNo, modeNo, startDesc, terminationDesc))
  645. {
  646. MessageBox.Show("\"" + startDesc + "-" + terminationDesc + "\"运输线路已存在,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  647. return;
  648. }
  649. }
  650. //判断当前是否只有一条记录。
  651. if (dataTable3.Rows.Count > 1)
  652. {
  653. //获取最大顺序号。
  654. int maxSeq = GetMaxIndexSeq(transitNo,modeNo) - 1;
  655. string maxSeqStr = maxSeq.ToString();
  656. if ("1".Equals(indexSeq))
  657. {
  658. DataRow[] row = dataTable3.Select(" INDEX_SEQ=" + "2");
  659. string regionNoB_twoType = row[0]["REGION_NO_B_TYP"].ToString();
  660. string regionNoB_two = row[0]["REGION_NO_B"].ToString();
  661. //判断终止地是否与x+1的始发地一致。
  662. if (!regionNoE_Typ.Equals(regionNoB_twoType) || !regionNoE.Equals(regionNoB_two))
  663. {
  664. MessageBox.Show("终止地,必须与顺序号\"2\"始发地一致,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  665. return;
  666. }
  667. }
  668. else if (maxSeqStr.Equals(indexSeq))
  669. {
  670. //判断当前顺序号是否等于最大顺序号
  671. DataRow[] row = dataTable3.Select(" INDEX_SEQ=" + (maxSeq - 1).ToString());
  672. string regionNoE_twoType = row[0]["REGION_NO_E_TYP"].ToString();
  673. string regionNoE_two = row[0]["REGION_NO_E"].ToString();
  674. //判断始发地是否与上一条记录终止地完全一致。
  675. if (!regionNoB_Typ.Equals(regionNoE_twoType) || !regionNoB.Equals(regionNoE_two))
  676. {
  677. MessageBox.Show("始发地,必须与顺序号\"" + (maxSeq - 1).ToString() + "\"终止地一致,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  678. return;
  679. }
  680. }
  681. else
  682. {
  683. int sIndex = Convert.ToInt32(indexSeq);
  684. DataRow[] minrow = dataTable3.Select(" INDEX_SEQ=" + (sIndex - 1).ToString());
  685. DataRow[] manrow = dataTable3.Select(" INDEX_SEQ=" + (sIndex + 1).ToString());
  686. string regionNoE_twoType = minrow[0]["REGION_NO_E_TYP"].ToString();
  687. string regionNoE_two = minrow[0]["REGION_NO_E"].ToString();
  688. //判断始发地是否与上一条记录终止地完全一致。
  689. if (!regionNoB_Typ.Equals(regionNoE_twoType) || !regionNoB.Equals(regionNoE_two))
  690. {
  691. MessageBox.Show("始发地,必须与顺序号\"" + (sIndex - 1).ToString() + "\"终止地一致,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  692. return;
  693. }
  694. string regionNoB_twoType = manrow[0]["REGION_NO_B_TYP"].ToString();
  695. string regionNoB_two = manrow[0]["REGION_NO_B"].ToString();
  696. //判断终止地是否与下一条记录的始发地一致。
  697. if (!regionNoE_Typ.Equals(regionNoB_twoType) || !regionNoE.Equals(regionNoB_two))
  698. {
  699. MessageBox.Show("终止地,必须与顺序号\"" + (sIndex + 1).ToString() + "\"始发地一致,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  700. return;
  701. }
  702. }
  703. }
  704. //确认修改吗?
  705. if (MessageBox.Show("是否确认修改选中的数据!", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
  706. {
  707. return;
  708. }
  709. ArrayList parm = new ArrayList();
  710. //执行新增操作。
  711. //AGENCY_FL代办标识
  712. string agencyFl = cmbIsD.Value.ToString();
  713. parm.Add(agencyFl);
  714. //运输方式TRANSIT_TYP
  715. string transitTyp = cmbYsfs.Text.ToString();
  716. parm.Add(transitTyp);
  717. //始发地类型REGION_NO_B_TYP
  718. parm.Add(cmbSfmxType.Text.ToString());
  719. //始发区域
  720. parm.Add(regionNoB);
  721. //终止地类型REGION_NO_E_TYP
  722. parm.Add(cmbZzmxType.Text.ToString());
  723. //终止区域
  724. parm.Add(regionNoE);
  725. //SPCL_LN_NO专用线
  726. string spclLnNo = cmbZy.Text.ToString();
  727. parm.Add(spclLnNo);
  728. //CARRIER_UNIT承运单位
  729. string carrierUnit = cmbCydw.Text.ToString();
  730. parm.Add(carrierUnit);
  731. //RECEIVOR接货人
  732. string receivor = utxtJhr.Text.Trim();
  733. parm.Add(receivor);
  734. //TRANSIT_LN_MNY吨运费
  735. string transitLnMny = uNumericFy.Value.ToString();
  736. parm.Add(transitLnMny);
  737. //有效标识
  738. //创建人
  739. parm.Add(this.UserInfo.GetUserName());
  740. //主线路编号。
  741. parm.Add(transitNo);
  742. //方案编号
  743. parm.Add(modeNo);
  744. //顺序号
  745. parm.Add(indexSeq);
  746. CoreClientParam ccp = new CoreClientParam();
  747. ccp.ServerName = "com.steering.pss.sale.order.CoreTransitLine";
  748. ccp.MethodName = "doUpdate_ModeLine";
  749. ccp.ServerParams = new object[] { parm };
  750. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  751. if (ccp.ReturnCode == -1) return;
  752. UpdateTransitMny(transitNo, modeNo);
  753. doQuery_ModeLine();
  754. Infragistics.Win.UltraWinGrid.UltraGridRow rowT = null;
  755. for (int i = 0; i < ultraGridMx.Rows.Count; i++)
  756. {
  757. rowT = ultraGridMx.Rows[i];
  758. if (rowT.Cells["INDEX_SEQ"].Value.ToString().Equals(indexSeq))
  759. {
  760. rowT.Activate();
  761. break;
  762. }
  763. }
  764. MessageBox.Show("修改成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  765. }
  766. }
  767. /// <summary>
  768. /// 用于验证方案重复项。
  769. /// </summary>
  770. private static string VmodeDesc = "";
  771. /// <summary>
  772. /// 方案修改
  773. /// </summary>
  774. private void doUpdate_Mode()
  775. {
  776. if (ultraGridFa.ActiveRow == null)
  777. {
  778. MessageBox.Show("请选择需要修改的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  779. return;
  780. }
  781. Boolean validflagStr = Convert.ToBoolean(ultraGridFa.ActiveRow.Cells["VALIDFLAG"].Value);
  782. //无效数据不允许修改
  783. if (!validflagStr)
  784. {
  785. MessageBox.Show("无效数据不支持修改操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  786. return;
  787. }
  788. if (ValidInput_Mode())
  789. {
  790. string transitNo = ultraGridFa.ActiveRow.Cells["TRANSIT_NO"].Value.ToString();
  791. //验证方案描述是否存在。
  792. string modeDesc = utxtModeDesc.Text.Trim();
  793. if (VmodeDesc.Equals(modeDesc))
  794. {
  795. }
  796. else
  797. {
  798. if (isRepeatMode(transitNo, modeDesc))
  799. {
  800. MessageBox.Show("方案描述\"" + modeDesc + "\"已存在,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  801. return;
  802. }
  803. }
  804. //确认修改吗?
  805. if (MessageBox.Show("是否确认修改选中的数据!", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
  806. {
  807. return;
  808. }
  809. ArrayList parm = new ArrayList();
  810. //执行新增操作。
  811. //(TRANSIT_NO,MODE_NO,MODE_DESC,TRANSIT_MNY,CREATE_NAME,CREATE_TIME)
  812. //方案描述
  813. parm.Add(utxtModeDesc.Text.Trim());
  814. //吨运费
  815. //有效标识
  816. //创建人
  817. parm.Add(this.UserInfo.GetUserName());
  818. //运输线路编号TRANSIT_NO
  819. parm.Add(transitNo);
  820. //方案编号。
  821. string modeNo = ultraGridFa.ActiveRow.Cells["MODE_NO"].Value.ToString();
  822. parm.Add(modeNo);
  823. CoreClientParam ccp = new CoreClientParam();
  824. ccp.ServerName = "com.steering.pss.sale.order.CoreTransitLine";
  825. ccp.MethodName = "doUpdate_Mode";
  826. ccp.ServerParams = new object[] { parm };
  827. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  828. if (ccp.ReturnCode == -1) return;
  829. doQuery_Mode();
  830. //高亮显示新增的数据
  831. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  832. for (int i = 0; i < ultraGridFa.Rows.Count; i++)
  833. {
  834. row = ultraGridFa.Rows[i];
  835. if (row.Cells["MODE_NO"].Value.ToString().Equals(modeNo))
  836. {
  837. row.Activate();
  838. break;
  839. }
  840. }
  841. MessageBox.Show("修改成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  842. }
  843. }
  844. /// <summary>
  845. /// 用于验证主线路重复项。
  846. /// </summary>
  847. private static string VstartDesc = "";
  848. private static string VterminationDesc = "";
  849. /// <summary>
  850. /// 主线路修改操作
  851. /// </summary>
  852. private void doUpdate_Main()
  853. {
  854. if (ultraGridXl.ActiveRow == null)
  855. {
  856. MessageBox.Show("请选择需要修改的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  857. return;
  858. }
  859. Boolean validflagStr = Convert.ToBoolean(ultraGridXl.ActiveRow.Cells["VALIDFLAG"].Value);
  860. //无效数据不允许修改
  861. if (!validflagStr)
  862. {
  863. MessageBox.Show("无效数据不支持修改操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  864. return;
  865. }
  866. if (ValidInput_Main())
  867. {
  868. //验证主线路不允许重复。Start,Termination
  869. string startDesc = utxtEditSf.Text.Trim();
  870. string terminationDesc = utxtEditZz.Text.Trim();
  871. if (VstartDesc.Equals(startDesc) && VterminationDesc.Equals(terminationDesc))
  872. {
  873. }
  874. else
  875. {
  876. if (isRepeatMain(startDesc, terminationDesc))
  877. {
  878. MessageBox.Show("\"" + startDesc + "-" + terminationDesc + "\"运输线路已存在,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  879. return;
  880. }
  881. }
  882. //确认修改吗?
  883. if (MessageBox.Show("是否确认修改选中的数据!", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
  884. {
  885. return;
  886. }
  887. ArrayList parm = new ArrayList();
  888. string transit_No = ultraGridXl.ActiveRow.Cells["TRANSIT_NO"].Value.ToString();
  889. //始发地REGION_NO_B
  890. string regionNoB = utxtEditSf.Text.Trim();
  891. //终止地
  892. string regionNoE = utxtEditZz.Text.Trim();
  893. //运输线路描述TRANSIT_DESC
  894. parm.Add(regionNoB + "-" + regionNoE);
  895. //始发地类型REGION_NO_B_TYP
  896. parm.Add(cmbSfType.Text.ToString());
  897. //始发区域
  898. parm.Add(regionNoB);
  899. //终止地类型REGION_NO_E_TYP
  900. parm.Add(cmbZZType.Text.ToString());
  901. //终止区域
  902. parm.Add(regionNoE);
  903. //有效标识
  904. //修改人
  905. parm.Add(this.UserInfo.GetUserName());
  906. //依据主键id
  907. parm.Add(transit_No);
  908. CoreClientParam ccp = new CoreClientParam();
  909. ccp.ServerName = "com.steering.pss.sale.order.CoreTransitLine";
  910. ccp.MethodName = "doUpdate_Main";
  911. ccp.ServerParams = new object[] { parm };
  912. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  913. if (ccp.ReturnCode == -1) return;
  914. doQuery();
  915. //高亮显示新增的数据
  916. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  917. for (int i = 0; i < ultraGridXl.Rows.Count; i++)
  918. {
  919. row = ultraGridXl.Rows[i];
  920. if (row.Cells["TRANSIT_NO"].Value.ToString().Equals(transit_No))
  921. {
  922. row.Activate();
  923. break;
  924. }
  925. }
  926. MessageBox.Show("修改成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  927. }
  928. }
  929. /// <summary>
  930. /// 新增操作
  931. /// </summary>
  932. private void doAdd()
  933. {
  934. //判断线路、方案还是线路明细。
  935. switch (ultraTabControl1.SelectedTab.Key)
  936. {
  937. case "0":
  938. doAdd_Main();
  939. break;
  940. case "1":
  941. doAdd_Mode();
  942. break;
  943. case "2":
  944. doAdd_ModeLine();
  945. break;
  946. default:
  947. break;
  948. }
  949. }
  950. /// <summary>
  951. /// 线路明细新增。
  952. /// </summary>
  953. private void doAdd_ModeLine()
  954. {
  955. //验证非空项。
  956. if (ValidInput_ModeLine())
  957. {
  958. try
  959. {
  960. //验证线路明细不允许重复。Start,Termination
  961. string transitNo = ultraGridFa.ActiveRow.Cells["TRANSIT_NO"].Value.ToString();
  962. string modeNo = ultraGridFa.ActiveRow.Cells["MODE_NO"].Value.ToString();
  963. string modeDesc = ultraGridFa.ActiveRow.Cells["MODE_DESC"].Value.ToString();
  964. //始发地类型REGION_NO_B_TYP
  965. string regionNoB_Typ = cmbSfmxType.Text.ToString();
  966. //始发地REGION_NO_B
  967. string regionNoB = utxtSfmx.Text.Trim();
  968. //终止地类型REGION_NO_E_TYP
  969. string regionNoE_Typ = cmbZzmxType.Text.ToString();
  970. //终止地REGION_NO_E
  971. string regionNoE = utxtZzmx.Text.Trim();
  972. if (isRepeatModeLine(transitNo, modeNo, regionNoB, regionNoE))
  973. {
  974. MessageBox.Show("\"" + regionNoB + "-" + regionNoE + "\"运输线路已存在,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  975. return;
  976. }
  977. //顺序号,获取最大顺序号+1返回。
  978. int indexSeq = GetMaxIndexSeq(transitNo, modeNo);
  979. //新增时,判断顺序号,如果不为1,则9的始发地必须与9-1的终止地一致。
  980. if (indexSeq > 1)
  981. {
  982. string seqTwo = (indexSeq - 1).ToString();
  983. //获取顺序号-1的终止地类型和终止地。
  984. DataRow[] rowT = dataTable3.Select(" INDEX_SEQ=" + seqTwo);
  985. string regionNoE_twoType = rowT[0]["REGION_NO_E_TYP"].ToString();
  986. string regionNoE_two = rowT[0]["REGION_NO_E"].ToString();
  987. //判断当前始发地类型与始发地与当前顺序号-1的终止地类型与终止地是否一致。
  988. if (!regionNoB_Typ.Equals(regionNoE_twoType) || !regionNoB.Equals(regionNoE_two))
  989. {
  990. MessageBox.Show("始发地,必须与顺序号\"" + seqTwo + "\"终止地一致,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  991. return;
  992. }
  993. }
  994. ArrayList parm = new ArrayList();
  995. //执行新增操作。
  996. //主线路编号。
  997. parm.Add(transitNo);
  998. //方案编号
  999. parm.Add(modeNo);
  1000. //方案描述
  1001. parm.Add(modeDesc);
  1002. //顺序号
  1003. parm.Add(indexSeq);
  1004. //AGENCY_FL代办标识
  1005. string agencyFl = cmbIsD.Value.ToString();
  1006. parm.Add(agencyFl);
  1007. //运输方式TRANSIT_TYP
  1008. string transitTyp = cmbYsfs.Text.ToString();
  1009. parm.Add(transitTyp);
  1010. //始发地类型REGION_NO_B_TYP
  1011. parm.Add(regionNoB_Typ);
  1012. //始发
  1013. parm.Add(regionNoB);
  1014. //终止地类型REGION_NO_E_TYP
  1015. parm.Add(regionNoE_Typ);
  1016. //终止
  1017. parm.Add(regionNoE);
  1018. //SPCL_LN_NO专用线
  1019. string spclLnNo = cmbZy.Text.ToString();
  1020. parm.Add(spclLnNo);
  1021. //CARRIER_UNIT承运单位
  1022. string carrierUnit = cmbCydw.Text.ToString();
  1023. parm.Add(carrierUnit);
  1024. //RECEIVOR接货人
  1025. string receivor = utxtJhr.Text.Trim();
  1026. parm.Add(receivor);
  1027. //TRANSIT_LN_MNY吨运费
  1028. string transitLnMny = uNumericFy.Value.ToString();
  1029. parm.Add(transitLnMny);
  1030. //有效标识
  1031. //创建人
  1032. parm.Add(this.UserInfo.GetUserName());
  1033. CoreClientParam ccp = new CoreClientParam();
  1034. ccp.ServerName = "com.steering.pss.sale.order.CoreTransitLine";
  1035. ccp.MethodName = "doAdd_ModeLine";
  1036. ccp.ServerParams = new object[] { parm };
  1037. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1038. if (ccp.ReturnCode == -1) return;
  1039. //更新吨运费TRANSIT_MNY
  1040. UpdateTransitMny(transitNo, modeNo);
  1041. doQuery_ModeLine();
  1042. //高亮显示新增的数据
  1043. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  1044. for (int i = 0; i < ultraGridMx.Rows.Count; i++)
  1045. {
  1046. row = ultraGridMx.Rows[i];
  1047. if (row.Cells["INDEX_SEQ"].Value.ToString().Equals(indexSeq))
  1048. {
  1049. row.Activate();
  1050. break;
  1051. }
  1052. }
  1053. }
  1054. catch (Exception ex)
  1055. {
  1056. MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1057. }
  1058. }
  1059. }
  1060. /// <summary>
  1061. /// 更新吨运费
  1062. /// </summary>
  1063. /// <param name="transitNo"></param>
  1064. /// <param name="modeNo"></param>
  1065. private void UpdateTransitMny(string transitNo, string modeNo)
  1066. {
  1067. //先获取吨运费。
  1068. string transiMny = GetTransitMny(transitNo, modeNo);
  1069. //再更新方案表记录。
  1070. int j = 0;
  1071. j = ServerHelper.SetData("com.steering.pss.sale.order.CoreTransitLine.UpdateTransitMny", new Object[] { transiMny, transitNo, modeNo }, this.ob);
  1072. //再刷新记录,并选中修改后的行。
  1073. if (j > 0)
  1074. {
  1075. doQuery_Mode();
  1076. //高亮显示新增的数据
  1077. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  1078. for (int i = 0; i < ultraGridFa.Rows.Count; i++)
  1079. {
  1080. row = ultraGridFa.Rows[i];
  1081. if (row.Cells["MODE_NO"].Value.ToString().Equals(modeNo))
  1082. {
  1083. row.Activate();
  1084. break;
  1085. }
  1086. }
  1087. }
  1088. }
  1089. /// <summary>
  1090. /// 获取当前方案吨运费
  1091. /// </summary>
  1092. /// <param name="transitNo"></param>
  1093. /// <param name="modeNo"></param>
  1094. /// <returns></returns>
  1095. private string GetTransitMny(string transitNo, string modeNo)
  1096. {
  1097. DataTable dt = new DataTable();
  1098. dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetTransitMny", new Object[] { transitNo, modeNo }, this.ob);
  1099. string transitMny = "";
  1100. if ("".Equals(dt.Rows[0][0].ToString()))
  1101. {
  1102. transitMny = "0";
  1103. }
  1104. else
  1105. {
  1106. transitMny = dt.Rows[0][0].ToString();
  1107. }
  1108. return transitMny;
  1109. }
  1110. /// <summary>
  1111. /// 获取最大顺序号
  1112. /// </summary>
  1113. /// <returns></returns>
  1114. private int GetMaxIndexSeq(string transitNo, string modeNo)
  1115. {
  1116. DataTable dt = new DataTable();
  1117. dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetMaxIndexSeq", new Object[] { transitNo, modeNo }, this.ob);
  1118. int maxIndexSeq = 0;
  1119. if ("".Equals(dt.Rows[0][0].ToString()))
  1120. {
  1121. maxIndexSeq = 1;
  1122. }
  1123. else
  1124. {
  1125. maxIndexSeq = Convert.ToInt32(dt.Rows[0][0]) + 1;
  1126. }
  1127. return maxIndexSeq;
  1128. }
  1129. /// <summary>
  1130. /// 验证线路明细是否重复。
  1131. /// </summary>
  1132. /// <param name="transitNo"></param>
  1133. /// <param name="modeNo"></param>
  1134. /// <param name="startDesc"></param>
  1135. /// <param name="terminationDesc"></param>
  1136. /// <returns></returns>
  1137. private bool isRepeatModeLine(string transitNo, string modeNo, string startDesc, string terminationDesc)
  1138. {
  1139. DataTable dt = new DataTable();
  1140. dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.isRepeatModeLine", new Object[] { transitNo, modeNo, startDesc, terminationDesc }, this.ob);
  1141. if (dt.Rows.Count > 0)
  1142. {
  1143. return true;
  1144. }
  1145. else
  1146. {
  1147. return false;
  1148. }
  1149. }
  1150. /// <summary>
  1151. /// 验证线路明细非空项。
  1152. /// </summary>
  1153. /// <returns></returns>
  1154. private bool ValidInput_ModeLine()
  1155. {
  1156. if (string.IsNullOrEmpty(utxtSfmx.Text.Trim()))
  1157. {
  1158. MessageBox.Show("请输入始发地!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1159. return false;
  1160. }
  1161. if (string.IsNullOrEmpty(utxtZzmx.Text.Trim()))
  1162. {
  1163. MessageBox.Show("请输入终止地!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1164. return false;
  1165. }
  1166. if (string.IsNullOrEmpty(utxtJhr.Text.Trim()))
  1167. {
  1168. MessageBox.Show("请输入接货人!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1169. return false;
  1170. }
  1171. if (uNumericFy.Value == null)
  1172. {
  1173. MessageBox.Show("请输入费用!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1174. return false;
  1175. }
  1176. if (string.IsNullOrEmpty(uNumericFy.Value.ToString()))
  1177. {
  1178. MessageBox.Show("请输入费用!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1179. return false;
  1180. }
  1181. return true;
  1182. }
  1183. /// <summary>
  1184. /// 方案表新增操作。
  1185. /// </summary>
  1186. private void doAdd_Mode()
  1187. {
  1188. //验证非空项。
  1189. if (ValidInput_Mode())
  1190. {
  1191. try
  1192. {
  1193. //当前选中的主线路编号。
  1194. string transitNo = ultraGridXl.ActiveRow.Cells["TRANSIT_NO"].Value.ToString();
  1195. //验证方案描述不允许重复
  1196. string modeDesc = utxtModeDesc.Text.Trim();
  1197. if (isRepeatMode(transitNo, modeDesc))
  1198. {
  1199. MessageBox.Show("方案描述\"" + modeDesc + "\"已存在,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1200. return;
  1201. }
  1202. ArrayList parm = new ArrayList();
  1203. //自动生成编号
  1204. string autoCode = GetMaxCode_Mode(transitNo);
  1205. if ("".Equals(autoCode))
  1206. {
  1207. MessageBox.Show("编号超出限制,请与管理员联系。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1208. return;
  1209. }
  1210. //执行新增操作。
  1211. //(TRANSIT_NO,MODE_NO,MODE_DESC,TRANSIT_MNY,CREATE_NAME,CREATE_TIME)
  1212. //运输线路编号TRANSIT_NO
  1213. parm.Add(transitNo);
  1214. //方案编号。
  1215. parm.Add(autoCode);
  1216. //方案描述
  1217. parm.Add(utxtModeDesc.Text.Trim());
  1218. //吨运费
  1219. //有效标识
  1220. //创建人
  1221. parm.Add(this.UserInfo.GetUserName());
  1222. CoreClientParam ccp = new CoreClientParam();
  1223. ccp.ServerName = "com.steering.pss.sale.order.CoreTransitLine";
  1224. ccp.MethodName = "doAdd_Mode";
  1225. ccp.ServerParams = new object[] { parm };
  1226. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1227. if (ccp.ReturnCode == -1) return;
  1228. doQuery_Mode();
  1229. //高亮显示新增的数据
  1230. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  1231. for (int i = 0; i < ultraGridFa.Rows.Count; i++)
  1232. {
  1233. row = ultraGridFa.Rows[i];
  1234. if (row.Cells["MODE_NO"].Value.ToString().Equals(autoCode))
  1235. {
  1236. row.Activate();
  1237. break;
  1238. }
  1239. }
  1240. }
  1241. catch (Exception ex)
  1242. {
  1243. MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1244. }
  1245. }
  1246. }
  1247. /// <summary>
  1248. /// 方案编号自动生成。
  1249. /// </summary>
  1250. /// <param name="transitNo"></param>
  1251. /// <returns></returns>
  1252. private string GetMaxCode_Mode(string transitNo)
  1253. {
  1254. //获取当前线路下,最大方案编号。
  1255. //从数据库中获取最大编号。
  1256. DataTable dt = new DataTable();
  1257. dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetMaxCode_Mode", new Object[] { transitNo }, this.ob);
  1258. string modeNo = "";
  1259. if ("".Equals(dt.Rows[0][0].ToString()))
  1260. {
  1261. modeNo = "001";
  1262. }
  1263. else
  1264. {
  1265. modeNo = (Convert.ToInt32(dt.Rows[0][0]) + 1).ToString();
  1266. while(modeNo.Length < 3)
  1267. {
  1268. modeNo = "0" + modeNo;
  1269. }
  1270. }
  1271. return modeNo;
  1272. }
  1273. /// <summary>
  1274. /// 方案表非空项验证。
  1275. /// </summary>
  1276. /// <param name="modeDesc"></param>
  1277. /// <returns></returns>
  1278. private bool isRepeatMode(string transitNo, string modeDesc)
  1279. {
  1280. DataTable dt = new DataTable();
  1281. dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.isRepeatMode", new Object[] { transitNo,modeDesc }, this.ob);
  1282. if (dt.Rows.Count > 0)
  1283. {
  1284. return true;
  1285. }
  1286. else
  1287. {
  1288. return false;
  1289. }
  1290. }
  1291. /// <summary>
  1292. /// 方案表非空项验证。
  1293. /// </summary>
  1294. /// <returns></returns>
  1295. private bool ValidInput_Mode()
  1296. {
  1297. if (string.IsNullOrEmpty(utxtModeDesc.Text.Trim()))
  1298. {
  1299. MessageBox.Show("请输入方案描述!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1300. return false;
  1301. }
  1302. return true;
  1303. }
  1304. /// <summary>
  1305. /// 主表新增
  1306. /// </summary>
  1307. private void doAdd_Main()
  1308. {
  1309. //验证非空项。
  1310. if (ValidInput_Main())
  1311. {
  1312. try
  1313. {
  1314. //验证主线路不允许重复。Start,Termination
  1315. string startDesc = utxtEditSf.Text.Trim();
  1316. string terminationDesc = utxtEditZz.Text.Trim();
  1317. if (isRepeatMain(startDesc,terminationDesc))
  1318. {
  1319. MessageBox.Show("\"" + startDesc + "-" + terminationDesc + "\"运输线路已存在,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1320. return;
  1321. }
  1322. ArrayList parm = new ArrayList();
  1323. //自动生成编号
  1324. string autoCode = GetMaxCode_Main();
  1325. if ("".Equals(autoCode))
  1326. {
  1327. MessageBox.Show("编号超出限制,请与管理员联系。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1328. return;
  1329. }
  1330. //执行新增操作。
  1331. //始发地REGION_NO_B
  1332. string regionNoB = utxtEditSf.Text.Trim();
  1333. //终止地
  1334. string regionNoE = utxtEditZz.Text.Trim();
  1335. //运输线路编号TRANSIT_NO
  1336. string transit_No = autoCode;
  1337. parm.Add(transit_No);
  1338. //运输线路描述TRANSIT_DESC
  1339. parm.Add(regionNoB + "-" + regionNoE);
  1340. //始发地类型REGION_NO_B_TYP
  1341. parm.Add(cmbSfType.Text.ToString());
  1342. //始发区域
  1343. parm.Add(regionNoB);
  1344. //终止地类型REGION_NO_E_TYP
  1345. parm.Add(cmbZZType.Text.ToString());
  1346. //终止区域
  1347. parm.Add(regionNoE);
  1348. //有效标识
  1349. //创建人
  1350. parm.Add(this.UserInfo.GetUserName());
  1351. CoreClientParam ccp = new CoreClientParam();
  1352. ccp.ServerName = "com.steering.pss.sale.order.CoreTransitLine";
  1353. ccp.MethodName = "doAdd_Main";
  1354. ccp.ServerParams = new object[] { parm };
  1355. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1356. if (ccp.ReturnCode == -1) return;
  1357. doQuery();
  1358. //高亮显示新增的数据
  1359. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  1360. for (int i = 0; i < ultraGridXl.Rows.Count; i++)
  1361. {
  1362. row = ultraGridXl.Rows[i];
  1363. if (row.Cells["TRANSIT_NO"].Value.ToString().Equals(transit_No))
  1364. {
  1365. row.Activate();
  1366. break;
  1367. }
  1368. }
  1369. }
  1370. catch (Exception ex)
  1371. {
  1372. MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1373. }
  1374. }
  1375. }
  1376. /// <summary>
  1377. /// 主记录编号自动生成
  1378. /// </summary>
  1379. /// <returns></returns>
  1380. private string GetMaxCode_Main()
  1381. {
  1382. //110701、110702、110703 + 7位流水号
  1383. string type = cmbSfType.Value.ToString();
  1384. //从数据库中获取最大编号。
  1385. DataTable dt = new DataTable();
  1386. dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.GetMaxCode_Main", new Object[] { type }, this.ob);
  1387. string transitLineCode = "";
  1388. string lineMCode = dt.Rows[0][0].ToString();
  1389. if ("".Equals(lineMCode))
  1390. {
  1391. transitLineCode = type + "0000001";
  1392. }
  1393. else
  1394. {
  1395. transitLineCode = (Convert.ToInt64(lineMCode) + 1).ToString();
  1396. }
  1397. return transitLineCode;
  1398. }
  1399. /// <summary>
  1400. /// 验证主线路是否已经存在。
  1401. /// </summary>
  1402. /// <param name="startDesc"></param>
  1403. /// <param name="terminationDesc"></param>
  1404. /// <returns></returns>
  1405. private bool isRepeatMain(string startDesc, string terminationDesc)
  1406. {
  1407. DataTable dt = new DataTable();
  1408. dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.isRepeatMain", new Object[] { startDesc, terminationDesc }, this.ob);
  1409. if (dt.Rows.Count > 0)
  1410. {
  1411. return true;
  1412. }
  1413. else
  1414. {
  1415. return false;
  1416. }
  1417. }
  1418. /// <summary>
  1419. /// 主线路非空项验证。
  1420. /// </summary>
  1421. /// <returns></returns>
  1422. private bool ValidInput_Main()
  1423. {
  1424. if (string.IsNullOrEmpty(utxtEditSf.Text.Trim()))
  1425. {
  1426. MessageBox.Show("请输入始发地!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1427. return false;
  1428. }
  1429. if (string.IsNullOrEmpty(utxtEditZz.Text.Trim()))
  1430. {
  1431. MessageBox.Show("请输入终止地!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1432. return false;
  1433. }
  1434. return true;
  1435. }
  1436. /// <summary>
  1437. /// 查询功能,刷新主表信息即可。
  1438. /// </summary>
  1439. private void doQuery()
  1440. {
  1441. string txtQsd = txtQsTitle.Text.Trim();
  1442. string txtMdd = txtMdTitle.Text.Trim();
  1443. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.doQuery", new Object[] { txtQsd, txtMdd }, this.ob);
  1444. if (dt.Rows.Count > 0)
  1445. {
  1446. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  1447. //不同颜色区分是否有效数据
  1448. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  1449. for (int i = 0; i < ultraGridXl.Rows.Count; i++)
  1450. {
  1451. row = ultraGridXl.Rows[i];
  1452. if (!"1".Equals(row.Cells["VALIDFLAG"].Value.ToString()))
  1453. {
  1454. row.Cells["VALIDFLAG"].Value = false;
  1455. row.Appearance.ForeColor = Color.Red;
  1456. }
  1457. else
  1458. {
  1459. row.Cells["VALIDFLAG"].Value = true;
  1460. row.Appearance.ForeColor = Color.Black;
  1461. }
  1462. }
  1463. //列自适应
  1464. GridHelper.RefreshAndAutoSizeExceptRows(ultraGridXl, new UltraGridColumn[] {
  1465. });
  1466. }
  1467. else
  1468. {
  1469. GridHelper.ClearGridDataSourceData(ultraGridFa);
  1470. GridHelper.ClearGridDataSourceData(ultraGridMx);
  1471. }
  1472. }
  1473. /// <summary>
  1474. /// 按钮点击事件。
  1475. /// </summary>
  1476. /// <param name="sender"></param>
  1477. /// <param name="e"></param>
  1478. private void utxtEditSf_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  1479. {
  1480. //从数据库中获取数据源,并显示弹窗cmbSfType
  1481. if ("110702".Equals(cmbSfType.Value.ToString()))
  1482. {
  1483. //到站
  1484. frmStation frmStationName = new frmStation(ob);
  1485. frmStationName.GetStationDesc += delegate(string stationDesc)
  1486. {
  1487. utxtEditSf.Text = stationDesc;
  1488. };
  1489. frmStationName.ShowDialog();
  1490. }
  1491. else if ("110703".Equals(cmbSfType.Value.ToString()))
  1492. {
  1493. //港口码头
  1494. frmPort frmPortN = new frmPort(ob);
  1495. frmPortN.GetPortDesc += delegate(string portDesc)
  1496. {
  1497. utxtEditSf.Text = portDesc;
  1498. };
  1499. frmPortN.ShowDialog();
  1500. }
  1501. else
  1502. {
  1503. FrmOrderRegion orderRegion=new FrmOrderRegion(ob);
  1504. orderRegion.GetOrderLen += delegate(string id,string name)
  1505. {
  1506. utxtEditSf.Text = name;
  1507. orderRegion.Close();
  1508. };
  1509. orderRegion.ShowDialog();
  1510. }
  1511. }
  1512. private void utxtEditZz_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  1513. {
  1514. //从数据库中获取数据源,并显示弹窗
  1515. if ("110702".Equals(cmbZZType.Value.ToString()))
  1516. {
  1517. //到站
  1518. frmStation frmStationName = new frmStation(ob);
  1519. frmStationName.GetStationDesc += delegate(string stationDesc)
  1520. {
  1521. utxtEditZz.Text = stationDesc;
  1522. };
  1523. frmStationName.ShowDialog();
  1524. }
  1525. else if ("110703".Equals(cmbZZType.Value.ToString()))
  1526. {
  1527. //港口码头
  1528. frmPort frmPortN = new frmPort(ob);
  1529. frmPortN.GetPortDesc += delegate(string portDesc)
  1530. {
  1531. utxtEditZz.Text = portDesc;
  1532. };
  1533. frmPortN.ShowDialog();
  1534. }
  1535. else
  1536. {
  1537. FrmOrderRegion orderRegion = new FrmOrderRegion(ob);
  1538. orderRegion.GetOrderLen += delegate(string id, string name)
  1539. {
  1540. utxtEditZz.Text = name;
  1541. orderRegion.Close();
  1542. };
  1543. orderRegion.ShowDialog();
  1544. }
  1545. }
  1546. /// <summary>
  1547. /// 将主线路选中记录带入编辑区
  1548. /// </summary>
  1549. /// <param name="sender"></param>
  1550. /// <param name="e"></param>
  1551. private void ultraGridXl_AfterRowActivate(object sender, EventArgs e)
  1552. {
  1553. doQuery_Mode();
  1554. //ultraGridFa.ActiveRow = null;
  1555. ultraTabControl1.Tabs[0].Selected = true;
  1556. cmbSfType.Text = ultraGridXl.ActiveRow.Cells["region_no_b_typ"].Value.ToString();
  1557. VstartDesc = ultraGridXl.ActiveRow.Cells["region_no_b"].Value.ToString();
  1558. utxtEditSf.Text = VstartDesc;
  1559. cmbZZType.Text = ultraGridXl.ActiveRow.Cells["region_no_e_typ"].Value.ToString();
  1560. VterminationDesc = ultraGridXl.ActiveRow.Cells["region_no_e"].Value.ToString();
  1561. utxtEditZz.Text = VterminationDesc;
  1562. }
  1563. /// <summary>
  1564. /// 方案表展示。
  1565. /// </summary>
  1566. private void doQuery_Mode()
  1567. {
  1568. string transitNo = ultraGridXl.ActiveRow.Cells["TRANSIT_NO"].Value.ToString();
  1569. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.doQuery_Mode", new Object[] { transitNo }, this.ob);
  1570. if (dt.Rows.Count > 0)
  1571. {
  1572. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true);
  1573. //不同颜色区分是否有效数据
  1574. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  1575. for (int i = 0; i < ultraGridFa.Rows.Count; i++)
  1576. {
  1577. row = ultraGridFa.Rows[i];
  1578. if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("1"))
  1579. {
  1580. row.Cells["VALIDFLAG"].Value = false;
  1581. row.Appearance.ForeColor = Color.Red;
  1582. }
  1583. else
  1584. {
  1585. row.Cells["VALIDFLAG"].Value = true;
  1586. row.Appearance.ForeColor = Color.Black;
  1587. }
  1588. }
  1589. //列自适应
  1590. GridHelper.RefreshAndAutoSizeExceptRows(ultraGridFa, new UltraGridColumn[] {
  1591. });
  1592. }
  1593. else
  1594. {
  1595. this.dataTable2.Rows.Clear();
  1596. this.dataTable3.Rows.Clear();
  1597. }
  1598. }
  1599. /// <summary>
  1600. /// 方案行选中事件。
  1601. /// </summary>
  1602. /// <param name="sender"></param>
  1603. /// <param name="e"></param>
  1604. private void ultraGridFa_AfterRowActivate(object sender, EventArgs e)
  1605. {
  1606. doQuery_ModeLine();
  1607. //ultraGridMx.ActiveRow = null;
  1608. ultraTabControl1.Tabs[1].Selected = true;
  1609. utxtTransitDesc.Text = ultraGridXl.ActiveRow.Cells["TRANSIT_DESC"].Value.ToString();
  1610. VmodeDesc = ultraGridFa.ActiveRow.Cells["MODE_DESC"].Value.ToString();
  1611. utxtModeDesc.Text = VmodeDesc;
  1612. }
  1613. /// <summary>
  1614. /// 线路明细查询
  1615. /// </summary>
  1616. private void doQuery_ModeLine()
  1617. {
  1618. string transitNo = ultraGridFa.ActiveRow.Cells["TRANSIT_NO"].Value.ToString();
  1619. string modeNo = ultraGridFa.ActiveRow.Cells["MODE_NO"].Value.ToString();
  1620. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreTransitLine.doQuery_ModeLine", new Object[] { transitNo, modeNo }, this.ob);
  1621. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable3, true);
  1622. //不同颜色区分是否有效数据
  1623. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  1624. for (int i = 0; i < ultraGridMx.Rows.Count; i++)
  1625. {
  1626. row = ultraGridMx.Rows[i];
  1627. if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("1"))
  1628. {
  1629. row.Cells["VALIDFLAG"].Value = false;
  1630. row.Appearance.ForeColor = Color.Red;
  1631. }
  1632. else
  1633. {
  1634. row.Cells["VALIDFLAG"].Value = true;
  1635. row.Appearance.ForeColor = Color.Black;
  1636. }
  1637. if (!row.Cells["AGENCY_FL"].Value.ToString().Equals("1"))
  1638. {
  1639. row.Cells["AGENCY_FL"].Value = false;
  1640. }
  1641. else
  1642. {
  1643. row.Cells["AGENCY_FL"].Value = true;
  1644. }
  1645. }
  1646. //列自适应
  1647. GridHelper.RefreshAndAutoSizeExceptRows(ultraGridMx, new UltraGridColumn[] {
  1648. });
  1649. }
  1650. /// <summary>
  1651. /// 线路明细Grid单击事件。
  1652. /// </summary>
  1653. /// <param name="sender"></param>
  1654. /// <param name="e"></param>
  1655. private void ultraGridMx_AfterRowActivate(object sender, EventArgs e)
  1656. {
  1657. if (ultraGridFa.ActiveRow == null)
  1658. {
  1659. return;
  1660. }
  1661. ultraTabControl1.Tabs[2].Selected = true;
  1662. //给编辑区赋值。
  1663. labelDesc.Text = ultraGridXl.ActiveRow.Cells["TRANSIT_DESC"].Value.ToString() +","+ ultraGridFa.ActiveRow.Cells["MODE_DESC"].Value.ToString();
  1664. ////AGENCY_FL代办标识
  1665. if (Convert.ToBoolean(ultraGridMx.ActiveRow.Cells["AGENCY_FL"].Value))
  1666. {
  1667. cmbIsD.Value = "1";
  1668. }
  1669. else
  1670. {
  1671. cmbIsD.Value = "0";
  1672. }
  1673. ////运输方式TRANSIT_TYP
  1674. cmbYsfs.Text = ultraGridMx.ActiveRow.Cells["TRANSIT_TYP"].Value.ToString();
  1675. ////始发地类型REGION_NO_B_TYP
  1676. cmbSfmxType.Text = ultraGridMx.ActiveRow.Cells["REGION_NO_B_TYP"].Value.ToString();
  1677. ////始发区域
  1678. VstartDescMx = ultraGridMx.ActiveRow.Cells["REGION_NO_B"].Value.ToString();
  1679. utxtSfmx.Text = VstartDescMx;
  1680. ////终止地类型REGION_NO_E_TYP
  1681. cmbZzmxType.Text = ultraGridMx.ActiveRow.Cells["REGION_NO_E_TYP"].Value.ToString();
  1682. ////终止区域
  1683. VterminationDescMx = ultraGridMx.ActiveRow.Cells["REGION_NO_E"].Value.ToString();
  1684. utxtZzmx.Text = VterminationDescMx;
  1685. ////SPCL_LN_NO专用线
  1686. cmbZy.Text = ultraGridMx.ActiveRow.Cells["SPCL_LN_NO"].Value.ToString();
  1687. ////CARRIER_UNIT承运单位
  1688. cmbCydw.Text = ultraGridMx.ActiveRow.Cells["CARRIER_UNIT"].Value.ToString();
  1689. ////RECEIVOR接货人
  1690. utxtJhr.Text = ultraGridMx.ActiveRow.Cells["RECEIVOR"].Value.ToString();
  1691. ////TRANSIT_LN_MNY费用
  1692. uNumericFy.Value = ultraGridMx.ActiveRow.Cells["TRANSIT_LN_MNY"].Value.ToString();
  1693. }
  1694. private void utxtSfmx_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  1695. {
  1696. //从数据库中获取数据源,并显示弹窗
  1697. if ("110702".Equals(cmbSfmxType.Value.ToString()))
  1698. {
  1699. //到站
  1700. frmStation frmStationName = new frmStation(ob);
  1701. frmStationName.GetStationDesc += delegate(string stationDesc)
  1702. {
  1703. utxtSfmx.Text = stationDesc;
  1704. };
  1705. frmStationName.ShowDialog();
  1706. }
  1707. else if ("110703".Equals(cmbSfmxType.Value.ToString()))
  1708. {
  1709. //港口码头
  1710. frmPort frmPortN = new frmPort(ob);
  1711. frmPortN.GetPortDesc += delegate(string portDesc)
  1712. {
  1713. utxtSfmx.Text = portDesc;
  1714. };
  1715. frmPortN.ShowDialog();
  1716. }
  1717. else
  1718. {
  1719. FrmOrderRegion orderRegion = new FrmOrderRegion(ob);
  1720. orderRegion.GetOrderLen += delegate(string id, string name)
  1721. {
  1722. utxtSfmx.Text = name;
  1723. orderRegion.Close();
  1724. };
  1725. orderRegion.ShowDialog();
  1726. }
  1727. }
  1728. private void utxtZzmx_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  1729. {
  1730. //从数据库中获取数据源,并显示弹窗
  1731. if ("110702".Equals(cmbZzmxType.Value.ToString()))
  1732. {
  1733. //到站
  1734. frmStation frmStationName = new frmStation(ob);
  1735. frmStationName.GetStationDesc += delegate(string stationDesc)
  1736. {
  1737. utxtZzmx.Text = stationDesc;
  1738. };
  1739. frmStationName.ShowDialog();
  1740. }
  1741. else if ("110703".Equals(cmbZzmxType.Value.ToString()))
  1742. {
  1743. //港口码头
  1744. frmPort frmPortN = new frmPort(ob);
  1745. frmPortN.GetPortDesc += delegate(string portDesc)
  1746. {
  1747. utxtZzmx.Text = portDesc;
  1748. };
  1749. frmPortN.ShowDialog();
  1750. }
  1751. else
  1752. {
  1753. FrmOrderRegion orderRegion = new FrmOrderRegion(ob);
  1754. orderRegion.GetOrderLen += delegate(string id, string name)
  1755. {
  1756. utxtZzmx.Text = name;
  1757. orderRegion.Close();
  1758. };
  1759. orderRegion.ShowDialog();
  1760. }
  1761. }
  1762. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  1763. {
  1764. switch (ultraTabControl1.SelectedTab.Key)
  1765. {
  1766. case "0":
  1767. if (ultraGridXl.ActiveRow == null)
  1768. {
  1769. cmbSfType.SelectedIndex = 0;
  1770. utxtEditSf.Text = "";
  1771. cmbZZType.SelectedIndex = 0;
  1772. utxtEditZz.Text = "";
  1773. }
  1774. break;
  1775. case "1":
  1776. if (ultraGridXl.ActiveRow == null)
  1777. {
  1778. MessageBox.Show("请先输入主线路!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1779. ultraTabControl1.Tabs["0"].Selected = true;
  1780. return;
  1781. }
  1782. if (ultraGridFa.ActiveRow == null)
  1783. {
  1784. utxtTransitDesc.Text = ultraGridXl.ActiveRow.Cells["TRANSIT_DESC"].Value.ToString();
  1785. utxtModeDesc.Text = "";
  1786. }
  1787. break;
  1788. case "2":
  1789. if (ultraGridXl.ActiveRow == null)
  1790. {
  1791. MessageBox.Show("请先输入主线路!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1792. ultraTabControl1.Tabs["0"].Selected = true;
  1793. return;
  1794. }
  1795. if (ultraGridFa.ActiveRow == null)
  1796. {
  1797. MessageBox.Show("请先输入方案!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1798. ultraTabControl1.Tabs["1"].Selected = true;
  1799. return;
  1800. }
  1801. if (ultraGridMx.ActiveRow == null)
  1802. {
  1803. //给编辑区赋值。
  1804. labelDesc.Text = ultraGridXl.ActiveRow.Cells["TRANSIT_DESC"].Value.ToString() + "," + ultraGridFa.ActiveRow.Cells["MODE_DESC"].Value.ToString();
  1805. cmbIsD.Value = "1";
  1806. ////运输方式TRANSIT_TYP
  1807. cmbYsfs.SelectedIndex = 0;
  1808. ////始发地类型REGION_NO_B_TYP
  1809. cmbSfmxType.SelectedIndex = 0;
  1810. ////始发区域
  1811. utxtSfmx.Text = "";
  1812. ////终止地类型REGION_NO_E_TYP
  1813. cmbZzmxType.SelectedIndex = 0;
  1814. ////终止区域
  1815. utxtZzmx.Text = "";
  1816. ////SPCL_LN_NO专用线
  1817. cmbZy.SelectedIndex = 0;
  1818. ////CARRIER_UNIT承运单位
  1819. cmbCydw.SelectedIndex = 0;
  1820. ////RECEIVOR接货人
  1821. utxtJhr.Text = "";
  1822. ////TRANSIT_LN_MNY费用
  1823. uNumericFy.Value = null;
  1824. }
  1825. break;
  1826. default:
  1827. break;
  1828. }
  1829. }
  1830. private void cmbSfType_ValueChanged(object sender, EventArgs e)
  1831. {
  1832. utxtEditSf.Text = "";
  1833. }
  1834. private void cmbZZType_ValueChanged(object sender, EventArgs e)
  1835. {
  1836. utxtEditZz.Text = "";
  1837. }
  1838. private void cmbSfmxType_ValueChanged(object sender, EventArgs e)
  1839. {
  1840. utxtSfmx.Text = "";
  1841. }
  1842. private void cmbZzmxType_ValueChanged(object sender, EventArgs e)
  1843. {
  1844. utxtZzmx.Text = "";
  1845. }
  1846. }
  1847. }