123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using SmartCoalApplication.Base.AutoMeasure;
- using SmartCoalApplication.Core;
- using System.Xml;
- using SmartCoalApplication.Annotation.Enum;
- using SmartCoalApplication.Base.MeasureModel;
- using SmartCoalApplication.Base.CommTool;
- using System.IO;
- using System.Text.RegularExpressions;
- using SmartCoalApplication.Resources;
- using Resources;
- using SmartCoalApplication.Core.DbOpreate.DbModel;
- using System.Reflection;
- using Microsoft.CSharp;
- using System.CodeDom.Compiler;
- namespace SmartCoalApplication.MeasureProcedure
- {
- internal partial class MeasureSetUp : PdnBaseForm
- {
- /// <summary>
- /// 設置點擊結點,根目錄名稱,點擊目錄的層數
- /// </summary>
- public TreeNode clickNode = new TreeNode();
- public string rootName = "";
- public int level = 0;//節點的層數
- private List<Label> labels = new List<Label>();//插入公式label
- private List<Button> buttons = new List<Button>();//插入公式刪除按鈕
- // 创建委托
- public delegate void TransferDataDelegate(List<MeasureMaintenanceFormula> list);
- // 声明一个事件(本质是一个委托)
- public event TransferDataDelegate TransferEvent;
- /// <summary>
- /// 公式相关
- /// </summary>
- private Dictionary<string, List<MeasureMaintenanceFormulaParameters>> fourmulaParametersList = new Dictionary<string, List<MeasureMaintenanceFormulaParameters>>();
- /// <summary>
- /// 新增编辑公式相关
- /// </summary>
- private List<MeasureMaintenanceFormula> everyFourmulaList = new List<MeasureMaintenanceFormula>();
- /// <summary>
- /// 树状结构数据
- /// </summary>
- protected MeasureMaintenanceTreeData measureMaintenanceTreeData;
- private string selectedId;
- private MeasureMaintenanceTreeSpecificData selectedData;
- private TreeNode selectedTreeNode;
- private string fileName;
- private AppWorkspace appWorkspace;
- private List<string> lineIDList = new List<string>();
- /// <summary>
- /// 公式符号
- /// </summary>
- private string[] symbolArray = new string[] { "+", "-", "*", "/" };
- private List<MeasureMaintenanceFormulaParameters> parametersList = new List<MeasureMaintenanceFormulaParameters>();
- private bool isChoose = true;
- private bool isRect = true;
- private bool isThreash = true;
- public MeasureSetUp(string name,List<MeasureMaintenanceFormula> list,AppWorkspace appWorkspace)
- {
- InitializeComponent();
- InitializeComponent2();
- this.label3.Visible = false;
- this.comboBox1.Visible = false;
- this.Icon = PdnInfo.AppIcon;
- this.appWorkspace = appWorkspace;
- #region [读取树状结构]
- #region [读取基础结构树]
- string basicFilePath;
- if (Program.instance.configModel.Language == 1)
- {
- basicFilePath = Application.StartupPath + "\\Config\\" + Program.instance.SettingPrefix + "\\basicTreeDataSimple.xml";
- }
- else
- {
- basicFilePath = Application.StartupPath + "\\Config\\" + Program.instance.SettingPrefix + "\\basicTreeDataTraditional.xml";
- }
- MeasureMaintenanceTreeData basicMeasureMaintenanceTreeData = XmlSerializeHelper.DESerializer<MeasureMaintenanceTreeData>(FileOperationHelper.ReadStringFromFile(basicFilePath, FileMode.Open));
- #endregion
- string filePath = Application.StartupPath + "\\Config\\" + Program.instance.SettingPrefix + "\\MeasureMaintenanceType\\";
- if (!Directory.Exists(filePath))
- {
- Directory.CreateDirectory(filePath);
- }
- fileName = name;
- filePath = $"{filePath}{fileName}.xml";
- if (!System.IO.File.Exists(filePath))
- {
- measureMaintenanceTreeData = XmlSerializeHelper.DESerializer<MeasureMaintenanceTreeData>(FileOperationHelper.ReadStringFromFile(basicFilePath, FileMode.Open));
- #region
- //int id = 100000;
- //foreach (var item in measureMaintenanceTreeData.MeasureMaintenanceTreeDataList) {
-
- // foreach (var item2 in item.MeasureMaintenanceTreeSpecificSonDataList) {
- // item2.MeasureMaintenanceTreeSpecificDataId = id.ToString();
- // int sonId = id + 1;
- // foreach (var item3 in item2.MeasureMaintenanceTreeSpecificFormulaDataList)
- // {
- // item3.FormulaParameterParentId = id.ToString();
- // item3.FormulaParametersId = sonId.ToString();
- // sonId++;
- // if (item2.MeasureMaintenanceTreeSpecificFormulaDataList.IndexOf(item3) == item2.MeasureMaintenanceTreeSpecificFormulaDataList.Count - 1) {
- // id = sonId;
- // }
- // }
- // }
- //}
- //WriteXml();
- #endregion
- }
- else
- {
- measureMaintenanceTreeData = XmlSerializeHelper.DESerializer<MeasureMaintenanceTreeData>(FileOperationHelper.ReadStringFromFile(filePath, FileMode.Open));
- foreach (var item in measureMaintenanceTreeData.MeasureMaintenanceTreeDataList)
- {
- MeasureMaintenanceTreeSpecificData data;
- this.appWorkspace.RecursionGetData(item.MeasureMaintenanceTreeSpecificDataId, basicMeasureMaintenanceTreeData.MeasureMaintenanceTreeDataList,out data);
- if (data != null)
- {
- item.MeasureMaintenanceTreeSpecificName = data.MeasureMaintenanceTreeSpecificName;
- }
- foreach (var item2 in item.MeasureMaintenanceTreeSpecificSonDataList)
- {
- MeasureMaintenanceTreeSpecificData data2;
- this.appWorkspace.RecursionGetData(item2.MeasureMaintenanceTreeSpecificDataId, basicMeasureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out data2);
- if (data2 != null)
- {
- item2.MeasureMaintenanceTreeSpecificName = data2.MeasureMaintenanceTreeSpecificName;
- item2.MeasureMaintenanceTreeSpecificFormulaDataList.Clear();
- item2.MeasureMaintenanceTreeSpecificFormulaDataList.AddRange(data2.MeasureMaintenanceTreeSpecificFormulaDataList);
- }
- }
- }
- }
- #region [判断加密狗]
- if (Program.useSenseShield)
- {
- var shieldValue = Program.shieldValue;
- List<MeasureMaintenanceTreeSpecificData> needRemove = new List<MeasureMaintenanceTreeSpecificData>();
- foreach (var item in measureMaintenanceTreeData.MeasureMaintenanceTreeDataList)
- {
- uint fatherId = Convert.ToUInt32(item.MeasureMaintenanceTreeSpecificDataId);
- if (shieldValue.ContainsKey(fatherId))
- {
- foreach (var item2 in item.MeasureMaintenanceTreeSpecificSonDataList)
- {
- uint id = Convert.ToUInt32(item2.MeasureMaintenanceTreeSpecificDataId);
- if (shieldValue.ContainsKey(id))
- {
- if (!shieldValue[id])
- {
- needRemove.Add(item2);
- }
- }
- else
- {
- needRemove.Add(item2);
- }
- }
- }
- else
- {
- needRemove.Add(item);
- }
- }
- foreach (var item in needRemove)
- {
- var delete = measureMaintenanceTreeData.MeasureMaintenanceTreeDataList.Where(m => m.MeasureMaintenanceTreeSpecificDataId.Equals(item.MeasureMaintenanceTreeSpecificDataId)).FirstOrDefault();
- if (delete == null)
- {
- foreach (var item2 in measureMaintenanceTreeData.MeasureMaintenanceTreeDataList)
- {
- if (item2.MeasureMaintenanceTreeSpecificSonDataList.Contains(item))
- {
- item2.MeasureMaintenanceTreeSpecificSonDataList.Remove(item);
- }
- }
- }
- else
- {
- measureMaintenanceTreeData.MeasureMaintenanceTreeDataList.Remove(delete);
- }
- }
- }
- #endregion
- #endregion
- this.treeViewSort.ItemHeight = 18;
- this.treeViewSort.HideSelection = false;//失去焦点后不隐藏选中节点
- //自已绘制
- this.treeViewSort.DrawNode += new DrawTreeNodeEventHandler(treeViewSort_DrawNode);
- everyFourmulaList.AddRange(list);
- foreach (var item in measureMaintenanceTreeData.MeasureMaintenanceTreeDataList)
- {
- if (item.MeasureMaintenanceTreeSpecificDataId == "9")
- {
- foreach (var item2 in item.MeasureMaintenanceTreeSpecificSonDataList)
- {
- isChoose = item2.MeasureMaintenanceTreeSpecificIsCon;
- }
- }
- else if (item.MeasureMaintenanceTreeSpecificDataId == "10")
- {
- foreach (var item2 in item.MeasureMaintenanceTreeSpecificSonDataList)
- {
- if (item2.MeasureMaintenanceTreeSpecificDataId == "100300")
- isRect = item2.MeasureMaintenanceTreeSpecificIsRect;
- }
- }
- else if (true && item.MeasureMaintenanceTreeSpecificDataId == "7")
- {
- foreach (var item2 in item.MeasureMaintenanceTreeSpecificSonDataList)
- {
- if (item2.MeasureMaintenanceTreeSpecificDataId == "100176")
- isThreash = item2.MeasureMaintenanceTreeSpecificIsThreash;
- }
- }
- }
- #region [标尺相关信息]
- List<mic_rulers> ruleList = Program.instance.mic_rulersAll;
- comboBox2.DataSource = ruleList;
- comboBox2.DisplayMember = "ruler_name";
- comboBox2.SelectedIndex = -1;
- #endregion
- }
- private void InitializeComponent2()
- {
- this.Text = PdnResources.GetString("NewTestProcedureSetting");
- this.rootAdd.Text = PdnResources.GetString("NewAdd");
- this.groupBox1.Text = PdnResources.GetString("NewOperation");
- this.buttonCancel.Text = PdnResources.GetString("NewCancel");
- this.buttonDetermine.Text = PdnResources.GetString("NewConfirm");
- this.groupBox2.Text = PdnResources.GetString("NewcCassification");
- this.groupBox3.Text = PdnResources.GetString("NewMeasureLineSetting");
- this.buttonDelete.Text = PdnResources.GetString("NewDelete");
- this.buttonInsert.Text = PdnResources.GetString("NewInsert");
- this.label2.Text = PdnResources.GetString("NewFormula") + ":";
- this.label4.Text = PdnResources.GetString("MeasureSetUp.label4") + ":";
- this.label1.Text = PdnResources.GetString("NewAlias") + ":";
- this.groupBox4.Text = PdnResources.GetString("NewMeasuringLine");
- this.groupBox5.Text = PdnResources.GetString("NewFormulaSymbol");
- this.button3.Text = PdnResources.GetString("NewAverageValue");
- this.button2.Text = PdnResources.GetString("NewMinimumValue");
- this.button1.Text = PdnResources.GetString("NewMaximum");
- this.toolStripMenuEdit1.Text = PdnResources.GetString("NewEdit");
- this.toolStripMenuDelete1.Text = PdnResources.GetString("NewDelete");
- }
- private void treeViewSort_DrawNode(object sender, DrawTreeNodeEventArgs e)
- {
- e.DrawDefault = true; //使用默认颜色,只需要在TreeView失去焦点时选中节点仍然突显
- return;
- }
- /// <summary>
- /// 窗口加載,初始化
- /// </summary>
- private void MeasureSetUp_Load(object sender, EventArgs e)
- {
- //初始化鏈接節點
- RootNodeInitialize();
- //為根節點鏈接新增選項
- //為檢驗項目鏈接編輯選項
- ContextmenuInitialize();
- }
- /// <summary>
- /// 末級分類右鍵新增
- /// </summary>
- private void rootAdd_Click(object sender, EventArgs e)
- {
- //調用委托
- //子窗体Form2
- InspectionItemMaintenance form2 = new InspectionItemMaintenance(null,"","",">",">","xinzeng");
- //调用子窗体中的委托,将方法给委托
- form2.TransferEvent += frm_TransEvent;
- form2.ShowDialog();
- }
- //方法的具体实现
- private void frm_TransEvent(string jianyanxiangmuName, string guige1,string guige2, string cmpre1, string cmpre2,bool isEdit)
- {
- if (isEdit)
- {
- EditJianyanxiangmu(jianyanxiangmuName, guige1, guige2, cmpre1, cmpre2);
- }
- else {
- Addjianyanxiangmu(jianyanxiangmuName, guige1, guige2, cmpre1, cmpre2);
- }
- }
- /// <summary>
- /// 節點初始化
- /// </summary>
- private void RootNodeInitialize()
- {
- treeViewSort.Nodes.Clear();
- foreach (var item in measureMaintenanceTreeData.MeasureMaintenanceTreeDataList)
- {
- TreeNode treeNode = new TreeNode();
- treeNode.Name = item.MeasureMaintenanceTreeSpecificDataId;
- treeNode.Text = item.MeasureMaintenanceTreeSpecificName;
- List<TreeNode> treeNodes;
- RecursionTreeData(item, out treeNodes);
- treeNode.Nodes.AddRange(treeNodes.ToArray());
- treeViewSort.Nodes.Add(treeNode);
- }
- }
- private void RecursionGetFourmulaData(string id , out List<MeasureMaintenanceFormulaParameters> data)
- {
- MeasureMaintenanceTreeSpecificData thisData;
- this.appWorkspace.RecursionGetData(id, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out thisData);
- this.fourmulaParametersList.TryGetValue(id, out data);
- if (thisData != null)
- {
- if (data == null || data.Count == 0)
- {
- RecursionGetFourmulaData(thisData.MeasureMaintenanceTreeSpecificDataParentId, out data);
- }
- }
- }
- /// <summary>
- /// 递归查询树状结构
- /// </summary>
- /// <param name="data"></param>
- /// <param name="treeNodes"></param>
- private void RecursionTreeData(MeasureMaintenanceTreeSpecificData data, out List<TreeNode> treeNodes)
- {
- treeNodes = new List<TreeNode>();
- if (data.MeasureMaintenanceTreeSpecificSonDataList == null || data.MeasureMaintenanceTreeSpecificSonDataList.Count == 0) {
- return;
- }
- foreach (var item in data.MeasureMaintenanceTreeSpecificSonDataList)
- {
- TreeNode treeNode = new TreeNode();
- treeNode.Name = item.MeasureMaintenanceTreeSpecificDataId;
- treeNode.Text = item.MeasureMaintenanceTreeSpecificName;
-
- if (item.MeasureMaintenanceTreeSpecificSonDataList != null && item.MeasureMaintenanceTreeSpecificSonDataList.Count > 0) {
-
- List<TreeNode> newtreeNodes;
- RecursionTreeData(item, out newtreeNodes);
- treeNode.Nodes.AddRange(newtreeNodes.ToArray());
- }
- treeNodes.Add(treeNode);
- if (item.MeasureMaintenanceTreeSpecificFormulaDataList != null && item.MeasureMaintenanceTreeSpecificFormulaDataList.Count > 0) {
- if (this.fourmulaParametersList.ContainsKey(item.MeasureMaintenanceTreeSpecificDataId))
- {
- this.fourmulaParametersList[item.MeasureMaintenanceTreeSpecificDataId] = item.MeasureMaintenanceTreeSpecificFormulaDataList;
- }
- else {
- this.fourmulaParametersList.Add(item.MeasureMaintenanceTreeSpecificDataId, item.MeasureMaintenanceTreeSpecificFormulaDataList);
- }
- }
- }
- }
- /// <summary>
- /// 连接menuScrip,右键菜单
- /// </summary>
- private void ContextmenuInitialize()
- {
- //為根節點鏈接新增選項
- //為檢驗項目鏈接編輯選項
- int nodesCount = treeViewSort.Nodes.Count;
- for (int i = 0; i < nodesCount; i++)
- {
- int erjiNodesCount = treeViewSort.Nodes[i].Nodes.Count;
- for (int j = 0; j < erjiNodesCount; j++)
- {
- treeViewSort.Nodes[i].Nodes[j].ContextMenuStrip = contextRootAdd;
- int jianyanNodesCount = treeViewSort.Nodes[i].Nodes[j].Nodes.Count;
- for (int k = 0; k < jianyanNodesCount; k++)
- {
- treeViewSort.Nodes[i].Nodes[j].Nodes[k].ContextMenuStrip = contextMenuEdit;
- }
- }
- }
- }
- /// <summary>
- /// 获取最大父级ID
- /// </summary>
- /// <param name="id"></param>
- /// <param name="data"></param>
- private void RecursionGetFatherData(string id, out MeasureMaintenanceTreeSpecificData data)
- {
- this.appWorkspace.RecursionGetData(id, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out data);
- if (data != null)
- {
- if (data.MeasureMaintenanceTreeSpecificLevel != 1)
- {
- RecursionGetFatherData(data.MeasureMaintenanceTreeSpecificDataParentId, out data);
- }
- }
- }
- /// <summary>
- /// 獲取點擊時的節點與層數,和根節點名稱
- /// 點擊末級分類時,列表顯示預設測量綫
- /// 點擊測量綫別名時,顯示別名與公式
- /// </summary>
- private void treeViewSort_MouseDown(object sender, TreeNodeMouseClickEventArgs e)
- {
- listCeliangxian.DataSource = null;
- this.treeViewSort.SelectedNode = e.Node;
- var id = e.Node.Name;
- textzbieMing.Text = string.Empty;
- textBox1.Text = string.Empty;
- if (e.Node.Level == 3)
- {
- var chooseData = everyFourmulaList.Where(m => m.FormulaId.Equals(e.Node.Name)).FirstOrDefault();
- if (chooseData != null)
- {
- textzbieMing.Text = chooseData.FormulaName;
- textBox1.Text = chooseData.FormulaExpression;
- }
- }
- MeasureMaintenanceTreeSpecificData fatherData;
- RecursionGetFatherData(id, out fatherData);
- MeasureMaintenanceTreeSpecificData data;
- this.appWorkspace.RecursionGetData(id, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out data);
- this.selectedData = data;
- if (data.MeasureMaintenanceTreeSpecificLevel == 2)
- {
- this.comboBox2.Visible = true;
- this.label4.Visible = true;
- this.textzbieMing.ReadOnly = true;
- this.textBox1.ReadOnly = true;
- this.buttonInsert.Text = "保存";
- List<mic_rulers> ruleList = Program.instance.mic_rulersAll;
- if (data.ruleMessage != null) {
- var rule = ruleList.Where(m => m.id == Convert.ToInt32(data.ruleMessage.ruleId)).FirstOrDefault();
- if (rule != null)
- {
- var index = ruleList.IndexOf(rule);
- comboBox2.SelectedIndex = index;
- }
- else {
- comboBox2.SelectedIndex = -1;
- }
- }
- else
- {
- comboBox2.SelectedIndex = -1;
- }
- }
- else
- {
- this.comboBox2.Visible = false;
- this.label4.Visible = false;
- this.textzbieMing.ReadOnly = false;
- this.textBox1.ReadOnly = false;
- this.buttonInsert.Text = "插入";
- }
- if (fatherData.MeasureMaintenanceTreeSpecificDataId == "9")
- {
- if (data.MeasureMaintenanceTreeSpecificLevel == 2)
- {
- this.label3.Text = "導電布:";
- this.comboBox1.Items.Clear();
- this.comboBox1.Items.AddRange(new object[] {"是", "否"});
- this.label3.Visible = true;
- this.comboBox1.Visible = true;
- if (this.isChoose)
- {
- this.comboBox1.SelectedIndex = 0;
- }
- else
- {
- this.comboBox1.SelectedIndex = 1;
- }
- }
- else {
- this.label3.Visible = false;
- this.comboBox1.Visible = false;
- }
- }
- else if (fatherData.MeasureMaintenanceTreeSpecificDataId == "10" && data.MeasureMaintenanceTreeSpecificDataId == "100300")
- {
- if (data.MeasureMaintenanceTreeSpecificLevel == 2)
- {
- this.label3.Text = "范围补偿:";
- this.comboBox1.Items.Clear();
- this.comboBox1.Items.AddRange(new object[] { "是", "否" });
- this.label3.Visible = true;
- this.comboBox1.Visible = true;
- if (this.isRect)
- {
- this.comboBox1.SelectedIndex = 0;
- }
- else
- {
- this.comboBox1.SelectedIndex = 1;
- }
- }
- else
- {
- this.label3.Visible = false;
- this.comboBox1.Visible = false;
- }
- }
- else if (true && fatherData.MeasureMaintenanceTreeSpecificDataId == "7" && data.MeasureMaintenanceTreeSpecificDataId == "100176")
- {
- if (data.MeasureMaintenanceTreeSpecificLevel == 2)
- {
- this.label3.Text = "二值处理:";
- this.comboBox1.Items.Clear();
- this.comboBox1.Items.AddRange(new object[] { "是", "否" });
- this.label3.Visible = true;
- this.comboBox1.Visible = true;
- if (this.isThreash)
- {
- this.comboBox1.SelectedIndex = 0;
- }
- else
- {
- this.comboBox1.SelectedIndex = 1;
- }
- }
- else
- {
- this.label3.Visible = false;
- this.comboBox1.Visible = false;
- }
- }
- else if (fatherData.MeasureMaintenanceTreeSpecificDataId == "1" || fatherData.MeasureMaintenanceTreeSpecificDataId == "2")
- {
- if (data.MeasureMaintenanceTreeSpecificLevel == 2)
- {
- this.label3.Text = "孔銅位置:";
- this.comboBox1.Items.Clear();
- this.comboBox1.Items.AddRange(new object[] { "上", "下" });
- this.label3.Visible = true;
- this.comboBox1.Visible = true;
- this.comboBox1.SelectedIndex = data.MeasureMaintenanceTreeSpecificIsPos ? 0 : 1;
- }
- else {
- this.label3.Visible = false;
- this.comboBox1.Visible = false;
- }
- }
- else
- {
- this.label3.Visible = false;
- this.comboBox1.Visible = false;
- }
- parametersList = new List<MeasureMaintenanceFormulaParameters>();
- RecursionGetFourmulaData(id, out parametersList);
- if (parametersList == null) {
- parametersList = new List<MeasureMaintenanceFormulaParameters>();
- }
- listCeliangxian.DataSource = parametersList;
- listCeliangxian.DisplayMember = "FormulaParameterShowName";
- this.selectedId = id;
- this.selectedTreeNode = e.Node;
- var fourmula = everyFourmulaList.Where(m => m.FormulaId == data.MeasureMaintenanceTreeSpecificDataId).FirstOrDefault();
- if (fourmula != null)
- {
- textzbieMing.Text = fourmula.FormulaName;
- textBox1.Text = fourmula.FormulaExpression;
- }
- }
- /// <summary>
- /// 新增檢驗項目
- /// </summary>
- private void Addjianyanxiangmu(string jianyanxiangmuName, string guige1, string guige2, string cmpre1, string cmpre2)
- {
- MeasureMaintenanceTreeSpecificData data = new MeasureMaintenanceTreeSpecificData();
- string id = Guid.NewGuid().ToString();
- data.MeasureMaintenanceTreeSpecificDataId = id;
- data.MeasureMaintenanceTreeSpecificDataParentId = this.selectedData.MeasureMaintenanceTreeSpecificDataId;
- try
- {
- double a = Convert.ToDouble(guige1);
- }
- catch (Exception)
- {
- guige1 = string.Empty;
- }
- try
- {
- double b = Convert.ToDouble(guige2);
- }
- catch (Exception)
- {
- guige2 = string.Empty;
- }
- data.MeasureMaintenanceTreeSpecificIntervalList = new List<string>() { guige1, guige2 };
- data.MeasureMaintenanceTreeSpecificIntervalCompareList = new List<string>() { cmpre1, cmpre2 };
- data.MeasureMaintenanceTreeSpecificLevel = 3;
- data.MeasureMaintenanceTreeSpecificName = jianyanxiangmuName;
- data.MeasureMaintenanceTreeSpecificSonDataList = new List<MeasureMaintenanceTreeSpecificData>();
- MeasureMaintenanceTreeSpecificData fatherData;
- this.appWorkspace.RecursionGetData(data.MeasureMaintenanceTreeSpecificDataParentId, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out fatherData);
- if (fatherData != null) {
- fatherData.MeasureMaintenanceTreeSpecificSonDataList.Add(data);
- }
- this.treeViewSort.Focus();
- TreeNode treeNode = new TreeNode();
- treeNode.Name = data.MeasureMaintenanceTreeSpecificDataId;
- treeNode.Text = data.MeasureMaintenanceTreeSpecificName;
- treeNode.ContextMenuStrip = contextMenuEdit;
- this.selectedTreeNode.Nodes.Add(treeNode);
- this.selectedTreeNode.Expand();
- this.treeViewSort.SelectedNode = treeNode;
- this.selectedId = id;
- this.selectedTreeNode = treeNode;
- this.label3.Visible = false;
- this.comboBox1.Visible = false;
- this.comboBox2.Visible = false;
- this.label4.Visible = false;
- this.textzbieMing.ReadOnly = false;
- this.textBox1.ReadOnly = false;
- this.buttonInsert.Text = "插入";
- }
- /// <summary>
- /// 修改檢驗項目
- /// </summary>
-
- private void EditJianyanxiangmu(string jianyanxiangmuName, string guige1, string guige2, string cmpre1, string cmpre2)
- {
- this.selectedTreeNode.Text = jianyanxiangmuName;
- MeasureMaintenanceTreeSpecificData data;
- this.appWorkspace.RecursionGetData(this.selectedData.MeasureMaintenanceTreeSpecificDataId, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out data);
- if (data != null)
- {
- data.MeasureMaintenanceTreeSpecificName = jianyanxiangmuName;
- if (data.MeasureMaintenanceTreeSpecificIntervalList == null)
- {
- data.MeasureMaintenanceTreeSpecificIntervalList = new List<string>();
- data.MeasureMaintenanceTreeSpecificIntervalCompareList = new List<string>();
- }
- try
- {
- double a = Convert.ToDouble(guige1);
- }
- catch (Exception)
- {
- guige1 = string.Empty;
- }
- try
- {
- double b = Convert.ToDouble(guige2);
- }
- catch (Exception)
- {
- guige2 = string.Empty;
- }
- data.MeasureMaintenanceTreeSpecificIntervalList = new List<string>() { guige1, guige2 };
- data.MeasureMaintenanceTreeSpecificIntervalCompareList = new List<string>() { cmpre1, cmpre2 };
-
- var list1 = everyFourmulaList.Where(m => m.FormulaParentId.Equals(data.MeasureMaintenanceTreeSpecificDataId)).ToList();
- for (int i = 0; i < list1.Count; i++)
- {
- list1[i].TestItems = jianyanxiangmuName;
- //list1[i].Specification = data.MeasureMaintenanceTreeSpecificIntervalList.Count == 2 ? $"{data.MeasureMaintenanceTreeSpecificIntervalList[0]}{data.MeasureMaintenanceTreeSpecificIntervalCompareList[0]}X{data.MeasureMaintenanceTreeSpecificIntervalCompareList[1]}{data.MeasureMaintenanceTreeSpecificIntervalList[1]}" : "-";
- if (string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[0]) && !string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[1]))
- {
- list1[i].Specification = $"X{data.MeasureMaintenanceTreeSpecificIntervalCompareList[1]}{data.MeasureMaintenanceTreeSpecificIntervalList[1]}";
- }
- else if (string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[0]) && string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[1]))
- {
- list1[i].Specification = $"-";
- }
- else if (string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[1]) && !string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[0]))
- {
- list1[i].Specification = $"{data.MeasureMaintenanceTreeSpecificIntervalList[0]}{data.MeasureMaintenanceTreeSpecificIntervalCompareList[0]}X";
- }
- else
- {
- list1[i].Specification = data.MeasureMaintenanceTreeSpecificIntervalList.Count == 2 ? $"{data.MeasureMaintenanceTreeSpecificIntervalList[0]}{data.MeasureMaintenanceTreeSpecificIntervalCompareList[0]}X{data.MeasureMaintenanceTreeSpecificIntervalCompareList[1]}{data.MeasureMaintenanceTreeSpecificIntervalList[1]}" : "-";
- }
- }
- }
- }
- /// <summary>
- /// 獲取規格
- /// </summary>
- private void GetGuige(out string guige1,out string guige2, out string compare1, out string compare2)
- {
- MeasureMaintenanceTreeSpecificData data;
- this.appWorkspace.RecursionGetData(this.selectedData.MeasureMaintenanceTreeSpecificDataId, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out data);
- if (data != null)
- {
- if (data.MeasureMaintenanceTreeSpecificIntervalList != null && data.MeasureMaintenanceTreeSpecificIntervalList.Count == 2)
- {
- guige1 = data.MeasureMaintenanceTreeSpecificIntervalList[0];
- guige2 = data.MeasureMaintenanceTreeSpecificIntervalList[1];
- try
- {
- compare1 = data.MeasureMaintenanceTreeSpecificIntervalCompareList[0];
- compare2 = data.MeasureMaintenanceTreeSpecificIntervalCompareList[1];
- }
- catch (Exception ex)
- {
- data.MeasureMaintenanceTreeSpecificIntervalCompareList.Add(">");
- data.MeasureMaintenanceTreeSpecificIntervalCompareList.Add(">");
- compare1 = ">";
- compare2 = ">";
- }
- }
- else
- {
- guige1 = string.Empty;
- guige2 = string.Empty;
- compare1 = ">";
- compare2 = ">";
- }
- }
- else {
- guige1 = string.Empty;
- guige2 = string.Empty;
- compare1 = ">";
- compare2 = ">";
- }
- }
- /// <summary>
- /// 檢測項目右側編輯
- /// </summary>
- private void toolStripMenuEdit1_Click(object sender, EventArgs e)
- {
- string guige1, guige2, compare1, compare2;
- GetGuige(out guige1, out guige2, out compare1, out compare2);
- //調用委托
- //子窗体Form2
- InspectionItemMaintenance form2 = new InspectionItemMaintenance(this.selectedTreeNode.Text, guige1, guige2,compare1,compare2, "bianji");
- //调用子窗体中的委托,将方法给委托
- form2.TransferEvent += frm_TransEvent;
- form2.ShowDialog();
- }
- /// <summary>
- /// 插入按钮 新增或者修改測量綫
- /// </summary>
- private void buttonInsert_Click(object sender, EventArgs e)
- {
- if (this.treeViewSort.SelectedNode == null)
- {
- return;
- }
- if (this.treeViewSort.SelectedNode.Level == 1)
- {
- string id = this.treeViewSort.SelectedNode.Name;
- MeasureMaintenanceTreeSpecificData thisdata;
- this.appWorkspace.RecursionGetData(id, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out thisdata);
- if (this.comboBox2.SelectedIndex != -1)
- {
- if (thisdata.ruleMessage == null)
- {
- thisdata.ruleMessage = new RuleMessage();
- }
- thisdata.ruleMessage.ruleId = Program.instance.mic_rulersAll[comboBox2.SelectedIndex].id.ToString();
- thisdata.ruleMessage.ruleName = Program.instance.mic_rulersAll[comboBox2.SelectedIndex].ruler_name;
- thisdata.ruleMessage.pixelLength = Program.instance.mic_rulersAll[comboBox2.SelectedIndex].pixel_length;
- thisdata.ruleMessage.physicalLength = Program.instance.mic_rulersAll[comboBox2.SelectedIndex].physical_length;
- thisdata.ruleMessage.rulerUnits = Program.instance.mic_rulersAll[comboBox2.SelectedIndex].ruler_units;
- }
- if (this.comboBox1.Visible)
- {
- if (thisdata.MeasureMaintenanceTreeSpecificDataParentId == "1" || thisdata.MeasureMaintenanceTreeSpecificDataParentId == "2")
- {
- thisdata.MeasureMaintenanceTreeSpecificIsPos = this.comboBox1.SelectedIndex == 0 ? true : false;
- }
- else {
- this.isChoose = this.comboBox1.SelectedIndex == 0 ? true : false;
- this.isRect = this.comboBox1.SelectedIndex == 0 ? true : false;
- this.isThreash = this.comboBox1.SelectedIndex == 0 ? true : false;
- thisdata.MeasureMaintenanceTreeSpecificIsCon = this.comboBox1.SelectedIndex == 0 ? true : false;
- thisdata.MeasureMaintenanceTreeSpecificIsRect = this.comboBox1.SelectedIndex == 0 ? true : false;
- thisdata.MeasureMaintenanceTreeSpecificIsThreash = this.comboBox1.SelectedIndex == 0 ? true : false;
- }
- }
- return;
- }
- if (this.treeViewSort.SelectedNode == null || (this.treeViewSort.SelectedNode.Level < 2)) {
- return;
- }
- if (string.IsNullOrEmpty(textzbieMing.Text))
- {
- MessageBox.Show(PdnResources.GetString("NewPleaseEnterAlias") + "!");
- return;
- }
- this.lineIDList.Clear();
- this.treeViewSort.Focus();
- int level = this.treeViewSort.SelectedNode.Level;
- string fatherId;
- if (level == 2)
- {
- fatherId = this.treeViewSort.SelectedNode.Name;
- }
- else
- {
- fatherId = this.treeViewSort.SelectedNode.Parent.Name;
- }
- //校验公式合法性
- if (!checkFormulaLegitimate(fatherId))
- {
- MessageBox.Show(PdnResources.GetString("NewLllegalFormula") + "!");
- return;
- }
- MeasureMaintenanceTreeSpecificData data;
- this.appWorkspace.RecursionGetData(fatherId, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out data);
- MeasureMaintenanceTreeSpecificData fatherData;
- this.appWorkspace.RecursionGetData(data.MeasureMaintenanceTreeSpecificDataParentId, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out fatherData);
- MeasureMaintenanceTreeSpecificData grandFatherData;
- this.appWorkspace.RecursionGetData(fatherData.MeasureMaintenanceTreeSpecificDataParentId, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out grandFatherData);
- switch (level) {
- case 2:
- var treeNode = new TreeNode();
- treeNode.Text = textzbieMing.Text;
- treeNode.Name = Guid.NewGuid().ToString();
- this.treeViewSort.SelectedNode.Nodes.Add(treeNode);
- this.treeViewSort.SelectedNode.Expand();
- this.treeViewSort.SelectedNode = treeNode;
- MeasureMaintenanceFormula measureMaintenanceFormula = new MeasureMaintenanceFormula();
- measureMaintenanceFormula.FormulaId = treeNode.Name;
- measureMaintenanceFormula.FormulaName = treeNode.Text;
- measureMaintenanceFormula.TestItems = data.MeasureMaintenanceTreeSpecificName;
- measureMaintenanceFormula.HoleType = fatherData.MeasureMaintenanceTreeSpecificName;
- measureMaintenanceFormula.HoleTypeId = fatherData.MeasureMaintenanceTreeSpecificDataId;
- measureMaintenanceFormula.FatherHoleTypeId = grandFatherData.MeasureMaintenanceTreeSpecificDataId;
- if (data.MeasureMaintenanceTreeSpecificIntervalList.Count == 2)
- {
- if (string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[0]) && !string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[1]))
- {
- measureMaintenanceFormula.Specification = $"X{data.MeasureMaintenanceTreeSpecificIntervalCompareList[1]}{data.MeasureMaintenanceTreeSpecificIntervalList[1]}";
- }
- else if (string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[1]) && string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[0]))
- {
- measureMaintenanceFormula.Specification = "-";
- }
- else if (string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[1]) && !string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[0]))
- {
- measureMaintenanceFormula.Specification = $"{data.MeasureMaintenanceTreeSpecificIntervalList[0]}{data.MeasureMaintenanceTreeSpecificIntervalCompareList[0]}X";
- }
- else
- {
- measureMaintenanceFormula.Specification = $"{data.MeasureMaintenanceTreeSpecificIntervalList[0]}{data.MeasureMaintenanceTreeSpecificIntervalCompareList[0]}X{data.MeasureMaintenanceTreeSpecificIntervalCompareList[1]}{data.MeasureMaintenanceTreeSpecificIntervalList[1]}";
- }
- }
- else {
- measureMaintenanceFormula.Specification = "-";
- }
- measureMaintenanceFormula.FormulaParentId = fatherId;
- measureMaintenanceFormula.FormulaExpression = this.textBox1.Text;
- measureMaintenanceFormula.FormulaExpressionLineID.AddRange(lineIDList);
- if (grandFatherData.MeasureMaintenanceTreeSpecificDataId == "9") {
- measureMaintenanceFormula.isConductiveCloth = isChoose;
- }
- if (grandFatherData.MeasureMaintenanceTreeSpecificDataId == "10")
- {
- measureMaintenanceFormula.isFanweibuchang = isRect;
- }
- if (true && grandFatherData.MeasureMaintenanceTreeSpecificDataId == "7")
- {
- measureMaintenanceFormula.isErzhichuli = isThreash;
- }
- everyFourmulaList.Add(measureMaintenanceFormula);
- MeasureMaintenanceTreeSpecificData measureMaintenance = new MeasureMaintenanceTreeSpecificData();
- measureMaintenance.MeasureMaintenanceTreeSpecificDataId = treeNode.Name;
- measureMaintenance.MeasureMaintenanceTreeSpecificDataParentId = fatherId;
- measureMaintenance.MeasureMaintenanceTreeSpecificLevel = 4;
- measureMaintenance.MeasureMaintenanceTreeSpecificName = treeNode.Text;
- data.MeasureMaintenanceTreeSpecificSonDataList.Add(measureMaintenance);
- break;
- case 3:
- this.treeViewSort.SelectedNode.Text = this.textzbieMing.Text;
- var id = this.treeViewSort.SelectedNode.Name;
- #region [先删除]
- var chooseFData = everyFourmulaList.Where(m => m.FormulaId.Equals(id)).FirstOrDefault();
- var chooseIndex = everyFourmulaList.IndexOf(chooseFData);
- if (chooseFData != null)
- {
- everyFourmulaList.Remove(chooseFData);
- }
- if (data != null)
- {
- var chooseData = data.MeasureMaintenanceTreeSpecificSonDataList.Where(m => m.MeasureMaintenanceTreeSpecificDataId.Equals(id)).FirstOrDefault();
- if (chooseData != null)
- {
- data.MeasureMaintenanceTreeSpecificSonDataList.Remove(chooseData);
- }
- }
- #endregion
- #region [再添加]
- MeasureMaintenanceFormula newmeasureMaintenanceFormula = new MeasureMaintenanceFormula();
- newmeasureMaintenanceFormula.FormulaId = this.treeViewSort.SelectedNode.Name;
- newmeasureMaintenanceFormula.FormulaName = this.treeViewSort.SelectedNode.Text;
- newmeasureMaintenanceFormula.TestItems = data.MeasureMaintenanceTreeSpecificName;
- newmeasureMaintenanceFormula.HoleType = fatherData.MeasureMaintenanceTreeSpecificName;
- newmeasureMaintenanceFormula.HoleTypeId = fatherData.MeasureMaintenanceTreeSpecificDataId;
- newmeasureMaintenanceFormula.FatherHoleTypeId = grandFatherData.MeasureMaintenanceTreeSpecificDataId;
- //newmeasureMaintenanceFormula.Specification = data.MeasureMaintenanceTreeSpecificIntervalList.Count == 2 ? $"{data.MeasureMaintenanceTreeSpecificIntervalList[0]}{data.MeasureMaintenanceTreeSpecificIntervalCompareList[0]}X{data.MeasureMaintenanceTreeSpecificIntervalCompareList[1]}{data.MeasureMaintenanceTreeSpecificIntervalList[1]}" : "-";
- if (data.MeasureMaintenanceTreeSpecificIntervalList.Count == 2)
- {
- if (string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[0]) && !string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[1]))
- {
- newmeasureMaintenanceFormula.Specification = $"X{data.MeasureMaintenanceTreeSpecificIntervalCompareList[1]}{data.MeasureMaintenanceTreeSpecificIntervalList[1]}";
- }
- else if (string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[1]) && string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[0]))
- {
- newmeasureMaintenanceFormula.Specification = "-";
- }
- else if (string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[1]) && !string.IsNullOrEmpty(data.MeasureMaintenanceTreeSpecificIntervalList[0]))
- {
- newmeasureMaintenanceFormula.Specification = $"{data.MeasureMaintenanceTreeSpecificIntervalList[0]}{data.MeasureMaintenanceTreeSpecificIntervalCompareList[0]}X";
- }
- else
- {
- newmeasureMaintenanceFormula.Specification = $"{data.MeasureMaintenanceTreeSpecificIntervalList[0]}{data.MeasureMaintenanceTreeSpecificIntervalCompareList[0]}X{data.MeasureMaintenanceTreeSpecificIntervalCompareList[1]}{data.MeasureMaintenanceTreeSpecificIntervalList[1]}";
- }
- }
- else {
- newmeasureMaintenanceFormula.Specification = "-";
- }
- newmeasureMaintenanceFormula.FormulaParentId = fatherId;
- newmeasureMaintenanceFormula.FormulaExpression = this.textBox1.Text;
- newmeasureMaintenanceFormula.FormulaExpressionLineID.AddRange(lineIDList);
- if (grandFatherData.MeasureMaintenanceTreeSpecificDataId == "9")
- {
- newmeasureMaintenanceFormula.isConductiveCloth = comboBox1.SelectedIndex == 0 ? true : false;
- }
- else if (grandFatherData.MeasureMaintenanceTreeSpecificDataId == "10")
- {
- newmeasureMaintenanceFormula.isFanweibuchang = comboBox1.SelectedIndex == 0 ? true : false;
- }
- else if (true && grandFatherData.MeasureMaintenanceTreeSpecificDataId == "7")
- {
- newmeasureMaintenanceFormula.isErzhichuli = comboBox1.SelectedIndex == 0 ? true : false;
- }
- everyFourmulaList.Insert(chooseIndex, newmeasureMaintenanceFormula);
- MeasureMaintenanceTreeSpecificData newmeasureMaintenance = new MeasureMaintenanceTreeSpecificData();
- newmeasureMaintenance.MeasureMaintenanceTreeSpecificDataId = this.treeViewSort.SelectedNode.Name;
- newmeasureMaintenance.MeasureMaintenanceTreeSpecificDataParentId = fatherId;
- newmeasureMaintenance.MeasureMaintenanceTreeSpecificLevel = 4;
- newmeasureMaintenance.MeasureMaintenanceTreeSpecificName = this.treeViewSort.SelectedNode.Text;
- data.MeasureMaintenanceTreeSpecificSonDataList.Add(newmeasureMaintenance);
- #endregion
- break;
- }
- }
- //輸入公式
- public List<string> gongshiText = new List<string>();
- private void listCeliangxian_MouseDown(object sender, MouseEventArgs e)
- {
- var treeNode = this.treeViewSort.SelectedNode;
- if (treeNode.Level != 3 && treeNode.Level != 2) {
- return;
- }
- string id;
- switch (treeNode.Level)
- {
- case 2:
- id = treeNode.Parent.Name;
- break;
- case 3:
- id = treeNode.Parent.Parent.Name;
- break;
- default:
- id = string.Empty;
- break;
- }
- int selectedIndex = listCeliangxian.SelectedIndex;
- List<MeasureMaintenanceFormulaParameters> list;
- this.fourmulaParametersList.TryGetValue(id, out list);
- string name;
- try
- {
- name = list[selectedIndex].FormulaParameterAliasName;
- gongshiText.Add(name);
- AddLabelButton();
- }
- catch (Exception ex)
- {
- return;
- }
- }
- private void buttonJIa_Click(object sender, EventArgs e)
- {
- gongshiText.Add(EnumHelper.GetEnumDesc(FormulaSymbolType.Plus));
- AddLabelButton();
- }
- //减号
- private void buttonJian_Click(object sender, EventArgs e)
- {
- gongshiText.Add(EnumHelper.GetEnumDesc(FormulaSymbolType.Less));
- AddLabelButton();
- }
- //乘号
- private void buttonCheng_Click(object sender, EventArgs e)
- {
- gongshiText.Add(EnumHelper.GetEnumDesc(FormulaSymbolType.Multiply));
- AddLabelButton();
- }
- //除号
- private void buttonChu_Click(object sender, EventArgs e)
- {
- gongshiText.Add(EnumHelper.GetEnumDesc(FormulaSymbolType.Division));
- AddLabelButton();
- }
- //左括号
- private void buttonZuokuohao_Click(object sender, EventArgs e)
- {
- gongshiText.Add(EnumHelper.GetEnumDesc(FormulaSymbolType.LeftParenthesis));
- AddLabelButton();
- }
- //右括号
- private void buttonYoukuohao_Click(object sender, EventArgs e)
- {
- gongshiText.Add(EnumHelper.GetEnumDesc(FormulaSymbolType.RightParenthesis));
- AddLabelButton();
- }
- /// <summary>
- /// 刪除檢驗項目
- /// </summary>
- private void toolStripMenuDelete1_Click(object sender, EventArgs e)
- {
- if (this.treeViewSort.SelectedNode != null && this.treeViewSort.SelectedNode.Level > 1)
- {
- var treeNode = this.treeViewSort.SelectedNode;
- everyFourmulaList.RemoveAll(m => m.FormulaParentId.Equals(treeNode.Name));
- MeasureMaintenanceTreeSpecificData data;
- this.appWorkspace.RecursionGetData(treeNode.Name, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out data);
- if (data != null)
- {
- MeasureMaintenanceTreeSpecificData grandFatherData;
- this.appWorkspace.RecursionGetData(data.MeasureMaintenanceTreeSpecificDataParentId, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out grandFatherData);
- if (grandFatherData != null) {
- grandFatherData.MeasureMaintenanceTreeSpecificSonDataList.Remove(data);
- }
- }
- this.treeViewSort.SelectedNode.Remove();
- }
- }
- /// <summary>
- /// 刪除測量綫
- /// </summary>
- private void buttonDelete_Click(object sender, EventArgs e)
- {
- if (this.treeViewSort.SelectedNode == null || this.treeViewSort.SelectedNode.Level != 3)
- {
- return;
- }
- var id = this.treeViewSort.SelectedNode.Name;
- var fatherId = this.treeViewSort.SelectedNode.Parent.Name;
- var chooseFData = everyFourmulaList.Where(m => m.FormulaId.Equals(id)).FirstOrDefault();
- if (chooseFData != null)
- {
- everyFourmulaList.Remove(chooseFData);
- }
- MeasureMaintenanceTreeSpecificData data;
- this.appWorkspace.RecursionGetData(fatherId, measureMaintenanceTreeData.MeasureMaintenanceTreeDataList, out data);
- if (data != null)
- {
- var chooseData = data.MeasureMaintenanceTreeSpecificSonDataList.Where(m => m.MeasureMaintenanceTreeSpecificDataId.Equals(id)).FirstOrDefault();
- if (chooseData != null)
- {
- data.MeasureMaintenanceTreeSpecificSonDataList.Remove(chooseData);
- }
- }
- this.treeViewSort.Focus();
- var treeView = this.treeViewSort.SelectedNode.Parent;
- treeView.Nodes.Remove(this.treeViewSort.SelectedNode);
- this.treeViewSort.SelectedNode = treeView;
- }
- /// <summary>
- /// 确认按钮,保存到XML
- /// </summary>
- private void buttonDetermine_Click(object sender, EventArgs e)
- {
- for (int i = 0; i < everyFourmulaList.Count; i++) {
- if (everyFourmulaList[i].FatherHoleTypeId == "9")
- {
- everyFourmulaList[i].isConductiveCloth = isChoose;
- }
- if (everyFourmulaList[i].FatherHoleTypeId == "10")
- {
- everyFourmulaList[i].isFanweibuchang = isRect;
- }
- if (true && everyFourmulaList[i].FatherHoleTypeId == "7")
- {
- everyFourmulaList[i].isErzhichuli = isThreash;
- }
- }
- WriteXml();
- TransferEvent(everyFourmulaList);
- this.Close();
- }
- /// <summary>
- /// 写入XML
- /// </summary>
- public void WriteXml()
- {
- string filePath = Application.StartupPath + "\\Config\\" + Program.instance.SettingPrefix + "\\MeasureMaintenanceType\\" + fileName + ".xml";
- string stageModelXml = XmlSerializeHelper.XmlSerialize<MeasureMaintenanceTreeData>(measureMaintenanceTreeData);
- FileOperationHelper.WriteStringToFile(stageModelXml, filePath, FileMode.Create);
- }
- /// <summary>
- /// 取消按钮,不保存并关闭窗口
- /// </summary>
- private void buttonCancel_Click(object sender, EventArgs e)
- {
- DialogResult result = MessageBox.Show(PdnResources.GetString("NewConfirmation") + PdnResources.GetString("NewCancel") + "?", "", MessageBoxButtons.OKCancel);
- if (result == DialogResult.OK)
- {
- //ClearNodes();
- this.Close();
- }
- }
- private void AddLabelButton()
- {
- //int abc = this.textBox1.SelectionStart;
- this.textBox1.Text += gongshiText[gongshiText.Count - 1];
- //this.textBox1.SelectionStart = this.textBox1.Text.Length;
- }
- //關閉窗口時清除節點
- private void MeasureSetUp_FormClosing(object sender, FormClosingEventArgs e)
- {
- //ClearNodes();
- }
- /// <summary>
- /// 判断公式是否合法
- /// </summary>
- private bool checkFormulaLegitimate(string fatherID)
- {
- #region[原先的校验方法]
- //string formula = this.textBox1.Text;
- ////先判断括号 是不是成对出现
- //if (formula.Contains("("))
- //{
- // if (!formula.Contains(")"))
- // {
- // return false;
- // }
- // int leftBrackets = formula.Split('(').Length - 1;
- // int rightBrackets = formula.Split(')').Length - 1;
- // if (leftBrackets != rightBrackets)
- // {
- // //MessageBox.Show("公式不合法!");
- // return false;
- // }
- // //去除符号的干扰
- // formula = formula.Replace('(', ' ');
- // formula = formula.Replace(')', ' ');
- //}
- //else if (formula.Contains(")"))
- //{
- // if (!formula.Contains("("))
- // {
- // return false;
- // }
- // int leftBrackets = formula.Split('(').Length - 1;
- // int rightBrackets = formula.Split(')').Length - 1;
- // if (leftBrackets != rightBrackets)
- // {
- // //MessageBox.Show("公式不合法!");
- // return false;
- // }
- // //去除符号的干扰
- // formula = formula.Replace('(', ' ');
- // formula = formula.Replace(')', ' ');
- //}
- //if (formula.Contains("最大值") || formula.Contains("最小值") || formula.Contains("平均值"))
- //{
- // if (formula.Contains("-") || formula.Contains("*") || formula.Contains("/"))
- // {
- // return false;
- // }
- //}
- //List<string> parList = new List<string>();
- //foreach (var item in this.parametersList)
- //{
- // parList.Add(item.FormulaParameterAliasName);
- //}
- //string[] elementArray = formula.Split(symbolArray, StringSplitOptions.None);
- //foreach (var item in elementArray)
- //{
- // var datastr = item.Trim();
- // //判断是不是空的
- // if (string.IsNullOrEmpty(datastr))
- // {
- // return false;
- // }
- // //判断是不是数字
- // if (checkIsNum(datastr))
- // {
- // continue;
- // }
- // //去除最大值 最小值 平均值的干扰
- // if (datastr.Contains("最大值") || datastr.Contains("最小值") || datastr.Contains("平均值"))
- // {
- // var str = datastr.Split('\\').ToList();
- // str.RemoveAt(str.Count - 1);
- // foreach (var everyStr in str)
- // {
- // if (!parList.Contains(everyStr))
- // {
- // return false;
- // }
- // }
- // }
- // else
- // {
- // if (!parList.Contains(datastr))
- // {
- // return false;
- // }
- // }
- //}
- //foreach (var item in this.parametersList)
- //{
- // if (formula.Contains(item.FormulaParameterAliasName))
- // {
- // this.lineIDList.Add(item.FormulaParametersId);
- // }
- //}
- //return true;
- #endregion
- // 校验最大值 最小值 平均值
- string formula = this.textBox1.Text;
- string realFormula = this.textBox1.Text;
- var driver = new CodeDriver();
- List<string> parList = new List<string>();
- if (formula.Contains("最大值") || formula.Contains("最小值") || formula.Contains("平均值"))
- {
- if (formula.Contains("-") || formula.Contains("*") || formula.Contains("/"))
- {
- return false;
- }
- }
- foreach (var item in this.parametersList)
- {
- parList.Add(item.FormulaParameterAliasName);
- }
- string[] stat = new string[] { "最大值", "最小值", "平均值" };
- string[] elementArray = formula.Split(symbolArray, StringSplitOptions.None);
- foreach (var item in elementArray)
- {
- var datastr = item.Trim();
- //去除最大值 最小值 平均值的干扰
- if (datastr.Contains("最大值") || datastr.Contains("最小值") || datastr.Contains("平均值"))
- {
- var str = datastr.Split('\\').ToList();
- str.RemoveAt(str.Count - 1);
- foreach (var everyStr in str)
- {
- if (!parList.Contains(everyStr))
- {
- return false;
- }
- }
- }
-
- }
- int parentheses = 0, Bracket = 0;
- bool IsSymbol = false;
- foreach(char a in formula)
- {
- if(a == '+' || a == '-')
- {
- if (IsSymbol)
- {
- return false;
- }
- IsSymbol = true;
- }
- else
- {
- IsSymbol = false;
- }
- }
- int temp = 0, temp2 = 0;
- foreach(char a in formula)
- {
- if(a == '(')
- {
- parentheses++;
- }
- if (a == ')')
- {
- parentheses--;
- }
- if (a == '[')
- {
- Bracket++;
- }
- if (a == ']')
- {
- Bracket--;
- }
- if (Bracket < 0 || parentheses < 0)
- {
- return false;
- }
- }
- if (Bracket != 0 || parentheses != 0)
- {
- return false;
- }
- // 去除其他符号的影响校验公式的合法性
- formula = formula.Replace("[", "(");
- formula = formula.Replace("]", ")");
- formula = formula.Replace(@"\最大值", "");
- formula = formula.Replace(@"\最小值", "");
- formula = formula.Replace(@"\平均值", "");
- bool isError;
- foreach (string param in parList)
- {
- formula = formula.Replace("\\" + param, "");
- }
- foreach (string param in parList)
- {
- formula = formula.Replace(param, "param");
- }
- formula = formula.Replace("/", "-");
- driver.CompileAndRun(formula, out isError);
- if (isError)
- {
- return false;
- }
- foreach (var item in this.parametersList)
- {
- if (realFormula.Contains(item.FormulaParameterAliasName))
- {
- this.lineIDList.Add(item.FormulaParametersId);
- }
- }
- return true;
- }
- /// <summary>
- /// 判断是否是数字
- /// </summary>
- /// <param name="num"></param>
- /// <returns></returns>
- private bool checkIsNum(string num)
- {
- try
- {
- int strNum = Convert.ToInt32(num);
- return true;
- }
- catch (Exception)
- {
- return false;
- }
- }
- /// <summary>
- /// 最大值 最小值 平均值
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void button_Click(object sender, EventArgs e)
- {
- string buttonText = ((Button)sender).Text;
- this.textBox1.Text += (button4.Text + buttonText);
- }
- private void button4_Click(object sender, EventArgs e)
- {
- string buttonText = ((Button)sender).Text;
- this.textBox1.Text += buttonText;
- }
- private void txt_GotFocus(object sender, EventArgs e)
- {
- this.textBox1.Select(this.textBox1.TextLength, 0);//光标定位到文本最后
- this.textBox1.ScrollToCaret();//滚动到光标处
- }
- private void button5_Click(object sender, EventArgs e)
- {
- string buttonText = ((Button)sender).Text;
- this.textBox1.Text += buttonText;
- }
- private void buttonAbsoValLeft_Click(object sender, EventArgs e)
- {
- string buttonText = ((Button)sender).Text;
- this.textBox1.Text += buttonText;
- }
- public class CodeDriver : MarshalByRefObject
- {
-
- private string prefix =
- "using System;" +
- "public class Driver" +
- "{" +
- " public static void Run()" +
- " {" +
- "int param = 1;" +
- "int i = ";
- private string postfix =
-
-
- " }" +
- "}";
- private string semicolon = ";";
- private string print = "Console.WriteLine(i.ToString());";
- public int CompileAndRun(string input, out bool hasError)
- {
- hasError = false;
- string returnData = null;
- int IreturnData = 0;
- CompilerResults results = null;
- using (var provider = new CSharpCodeProvider())
- {
- var options = new CompilerParameters();
- options.GenerateInMemory = true;
- var sb = string.Empty;
- sb += prefix;
- sb += (input);
- sb += (semicolon);
- sb += (print);
- sb += (postfix);
- results = provider.CompileAssemblyFromSource(
- options, sb.ToString());
- }
- if (results.Errors.HasErrors)
- {
- hasError = true;
- return IreturnData;
- //var errorMessage = new StringBuilder();
- //foreach (CompilerError error in results.Errors)
- //{
- // errorMessage.AppendFormat("{0} {1}", error.Line,
- // error.ErrorText);
- //}
- //returnData = errorMessage.ToString();
- }
- else
- {
- TextWriter temp = Console.Out;
- var writer = new StringWriter();
- Console.SetOut(writer);
- Type driverType = results.CompiledAssembly.GetType("Driver");
- try
- {
- driverType.InvokeMember("Run", BindingFlags.InvokeMethod |
- BindingFlags.Static | BindingFlags.Public,
- null, null, null);
- }
- catch
- {
- hasError = true;
- return IreturnData;
- }
-
- Console.SetOut(temp);
- returnData = writer.ToString();
- IreturnData = Convert.ToInt32(returnData);
- }
- return IreturnData;
- }
- }
- }
- }
|