Exemple #1
0
        //----------------------------------------------------------------------------------------
        private void replaceSelectedElements(int gostToolNumber)
        {
            int count = listEspStandardParameters.SelectedItems.Count;

            for (int j = 0; j < count; j++)
            {
                // Надо записать имя выбранного паремтра
                ToolParameter newParameter = new ToolParameter();
                string[]      arrParams    = new string[4];
                arrParams[0] = listEspStandardParameters.SelectedItems[0].SubItems[0].Text;
                arrParams[1] = listEspStandardParameters.SelectedItems[0].SubItems[1].Text;
                arrParams[2] = StringResource.xmlParamStandartType;
                arrParams[3] = listEspStandardParameters.SelectedItems[0].SubItems[2].Text;

                if (!String.Equals(arrParams[0], ""))
                {
                    // Добавить в список на форме для карты наладки
                    ListViewItem newItem = new ListViewItem(arrParams);
                    listEspGostParams.Items.Add(newItem);

                    // Удалить из списка стандартный парметров
                    listEspStandardParameters.SelectedItems[0].Remove();

                    newParameter.Capture = arrParams[0];
                    newParameter.Name    = arrParams[1];
                    newParameter.Type    = arrParams[2];
                    newParameter.CLCode  = int.Parse(arrParams[3]);

                    AdditionalToolParameters.gostToolsArray[gostToolNumber].addParameter(newParameter);
                }
            }
        }
 public ToolParametersList(ToolParametersList priveousParameters)
 {
     for (int i = 0; i < priveousParameters.parameters.Count; i++)
     {
         ToolParameter newToolParameter = new ToolParameter(priveousParameters.parameters[i]);
         parameters.Add(newToolParameter);
     }
 }
 public ToolParameter(ToolParameter toolParameter)
 {
     Name    = toolParameter.Name;
     Capture = toolParameter.Capture;
     Value   = toolParameter.Value;
     CLCode  = toolParameter.CLCode;
     Type    = toolParameter.Type;
     ID      = toolParameter.ID;
 }
        // создание файла параметров
        static void createPatternParameterFile(GostTool[] toolsArray, string path)
        {
            //создание документа
            XmlDocument XmlDoc = new XmlDocument();

            /*<?xml version="1.0" encoding="utf-8" ?> */
            //создание объявления (декларации) документа
            XmlDeclaration XmlDec = XmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);

            //добавляем в документ
            XmlDoc.AppendChild(XmlDec);

            XmlComment Comment0 = XmlDoc.CreateComment("Параметры для карты наладки"); //комментарий уровня root

            XmlDoc.AppendChild(Comment0);                                              //добавляем в документ

            /*<ToolType name="abc"></ToolType>*/
            XmlElement root = XmlDoc.CreateElement("EspritReportParameters"); //создание корневого элемента

            XmlDoc.AppendChild(root);                                         //добавляем в документ

            // Запись инструмента и параметров в файл
            for (int i = 0; i < toolsArray.Length; i++)
            {
                // Создание инструмента
                XmlElement ElementTools = XmlDoc.CreateElement(StringResource.xmlElementName); //создание корневого элемента
                ElementTools.SetAttribute(StringResource.xmlToolName, toolsArray[i].toolName); //создание атрибута
                ElementTools.SetAttribute(StringResource.xmlToolID, toolsArray[i].toolID.ToString());
                root.AppendChild(ElementTools);
                // Запись параметров
                for (int j = 0; j < toolsArray[i].parameters.Count(); j++)
                {
                    ToolParameter toolParam = toolsArray[i].parameters.getParameter(j);

                    XmlElement elementParameter = XmlDoc.CreateElement(StringResource.xmlParameterXMLName);
                    elementParameter.SetAttribute(StringResource.xmlParameterName, toolParam.Name);
                    elementParameter.SetAttribute(StringResource.xmlParameterClCode, toolParam.CLCode.ToString());
                    elementParameter.SetAttribute(StringResource.xmlParameterType, toolParam.Type);
                    elementParameter.SetAttribute(StringResource.xmlParameterCapture, toolParam.Capture);
                    ElementTools.AppendChild(elementParameter);
                }
            }
            Connect.logger.Info("Создание файла параметров в папку " + path + StringResource.xmlPathPattrenFileName);
            XmlDoc.Save(path + StringResource.xmlPathPattrenFileName); //сохраняем в документ
        }
        private void fillToolParameter(ToolParameter gostToolParam)
        {
            incNumber();
            if (!mainSheet)
            {    // форма 4а
                excelWSheet.Range["A" + currentRow.ToString(), "B" + currentRow.ToString()].Value2 = getFormatedNumber();
                excelWSheet.Range["C" + currentRow.ToString(), "F" + currentRow.ToString()].Value2 = "-";

                excelWSheet.Range["I" + currentRow.ToString(), "S" + currentRow.ToString()].Value2  = gostToolParam.Capture;
                excelWSheet.Range["T" + currentRow.ToString(), "AA" + currentRow.ToString()].Value2 = gostToolParam.Value;
            }
            else
            {   // форма 4
                excelWSheet.Range["A" + currentRow.ToString(), "A" + currentRow.ToString()].Value2 = getFormatedNumber();
                excelWSheet.Range["B" + currentRow.ToString(), "D" + currentRow.ToString()].Value2 = "-";

                excelWSheet.Range["G" + currentRow.ToString(), "Q" + currentRow.ToString()].Value2  = gostToolParam.Capture;
                excelWSheet.Range["R" + currentRow.ToString(), "AA" + currentRow.ToString()].Value2 = gostToolParam.Value;
            }
        }
        // Записываем значение параметра из документа в структуру
        public bool addParametersValue(Tool newRepotTool, bool loadUserParams)
        {
            bool result = true;
            DatabaseInterface knowledgeBase = new DatabaseInterface();

            if (dataBaseToolID == "" && loadUserParams)
            {
                Connect.logger.Info("Получение ID инструмента в БД");
                string cuttingToolID = knowledgeBase.getCuttingToolID(toolDocumentID);
                dataBaseToolID = cuttingToolID;

                if (dataBaseToolID == null)
                {
                    result = false;
                }
            }

            for (int i = 0; i < parameters.Count(); i++)
            {
                ToolParameter currentToolParameter = parameters.getParameter(i);
                // Загрузить значения стандартных параметров
                if (String.Equals(parameters.getParameter(i).Type, StringResource.xmlParamStandartType))
                {
                    Technology reportTechTool = (Technology)newRepotTool;
                    Parameter  curParam       = reportTechTool[parameters.getParameter(i).Name];
                    currentToolParameter.Value = Convert.ToString(curParam.Value);
                }
                // Загрузить значение пользовательских параметров из базы данных
                if (String.Equals(currentToolParameter.Type, StringResource.xmlParamUserType))
                {
                    // TODO: Чтение парметров из БД, заполнение значения
                    if (dataBaseToolID != null && loadUserParams)
                    {
                        currentToolParameter.Value = knowledgeBase.getUsersParamValue(dataBaseToolID, currentToolParameter.CLCode);
                    }
                }
            }

            return(result);
        }
Exemple #7
0
        //----------------------------------------------------------------------------------------
        public void addNewUserParameter(string sUserParamName)
        {
            // Получили название инструмента
            string sToolTypeName = lstTools.GetItemText(lstTools.SelectedItem);

            // Ищем нужный инструмент
            for (int i = 0; i < AdditionalToolParameters.gostToolsArray.Count(); i++)
            {
                if (String.Equals(AdditionalToolParameters.gostToolsArray[i].toolLabel, sToolTypeName))
                {
                    int newUserClCode = AdditionalToolParameters.gostToolsArray[i].getMaxClCodeValue();
                    if (newUserClCode < int.Parse(StringResource.startUserCLCodeNumber))
                    {
                        newUserClCode = int.Parse(StringResource.startUserCLCodeNumber);
                    }
                    else
                    {
                        newUserClCode++;
                    }

                    // Надо записать имя выбранного паремтра
                    ToolParameter newParameter = new ToolParameter();
                    newParameter.Capture = sUserParamName;
                    newParameter.Type    = StringResource.xmlParamUserType;
                    newParameter.CLCode  = newUserClCode;

                    string[] arrParams = new string[4];
                    arrParams[0] = newParameter.Capture;
                    arrParams[1] = "---";
                    arrParams[2] = StringResource.xmlParamUserType;
                    arrParams[3] = newUserClCode.ToString();

                    // Добавить в список для карты наладки
                    ListViewItem newItem = new ListViewItem(arrParams);
                    listEspGostParams.Items.Add(newItem);
                    AdditionalToolParameters.gostToolsArray[i].addParameter(newParameter);
                    break;
                }
            }
        }
Exemple #8
0
        // Заполнение значений ВСЕХ пользовательских параметров только для одного инструмента
        public bool fillUsersParamsGostTool(GostTool GostTool)
        {
            bool result = true;

            // Получаем ID из БД по ID инструмента из документа
            if (GostTool.dataBaseToolID == "")
            {
                string cuttingToolID = getCuttingToolID(GostTool.toolDocumentID);
                if (cuttingToolID != null)
                {
                    GostTool.dataBaseToolID = cuttingToolID;
                }
            }
            // Получаем список пользовательских параметров из БД
            DataTable dbUsersParams = getUsersParamsByID(GostTool.dataBaseToolID);

            if (dbUsersParams != null && dbUsersParams.Rows.Count == 0)
            {
                return(false);
            }

            // проходим по всем пользовательским параметрам и заполняем значениями
            for (int j = 0; j < GostTool.parameters.Count(); j++)
            {
                DataRow[]     userParameterRows;
                ToolParameter curToolParameter = GostTool.parameters.getParameter(j);

                if (String.Equals(curToolParameter.Type, StringResource.xmlParamUserType))
                {
                    // поиска параметра
                    userParameterRows = dbUsersParams.Select("fldCLFileCode_tblCuttingToolParameter = " + curToolParameter.CLCode.ToString());

                    // Сохраняем значение в структуре
                    curToolParameter.Value = userParameterRows[0][0].ToString();
                }
            }
            return(result);
        }
Exemple #9
0
        //----------------------------------------------------------------------------------------
        private void loadPatternParameterFile(GostTool[] toolsArray)
        {
            if (!File.Exists(Connect.assemblyFolder + StringResource.xmlPathPattrenFileName))
            {
                AdditionalToolParameters.creatPatternFile(Connect.assemblyFolder + StringResource.xmlPathPattrenFileName);
                return;
            }

            XmlDocument XmlDoc = new XmlDocument();

            XmlDoc.Load(Connect.assemblyFolder + StringResource.xmlPathPattrenFileName);
            // get root element
            XmlElement xmlRoot = XmlDoc.DocumentElement;
            // select all tools
            XmlNodeList allToolsList = xmlRoot.SelectNodes(StringResource.xmlElementName);
            int         index        = 0;

            foreach (XmlNode nodeTool in allToolsList)
            {
                XmlNode singleNodeName = nodeTool.SelectSingleNode("@" + StringResource.xmlToolName);
                string  sToolName      = singleNodeName.Value;
                if (String.Equals(sToolName, toolsArray[index].toolName))
                {
                    XmlNodeList parametersList = nodeTool.ChildNodes;
                    for (int i = 0; i < parametersList.Count; i++)
                    {
                        ToolParameter newParam = new ToolParameter();
                        newParam.Name    = parametersList[i].SelectSingleNode("@" + StringResource.xmlParameterName).Value;
                        newParam.Capture = parametersList[i].SelectSingleNode("@" + StringResource.xmlParameterCapture).Value;
                        newParam.Type    = parametersList[i].SelectSingleNode("@" + StringResource.xmlParameterType).Value;
                        newParam.CLCode  = int.Parse(parametersList[i].SelectSingleNode("@" + StringResource.xmlParameterClCode).Value);

                        AdditionalToolParameters.gostToolsArray[index].addParameter(newParam);
                    }
                }
                index++;
            }
        }
Exemple #10
0
        //TODO - мотод заполнение значения пользовательских параметров для всех инструментов
        public bool fillUserParamsGostToolArray(GostTool[] GostToolArray)
        {
            bool result = false;

            // перед этим все стандартные параметры уже загружены в структуру
            // цикл по все инструментам получаем их ID и по ниму загружаем список параметров
            for (var i = 0; i < GostToolArray.Length; i++)
            {
                // Получаем ID из БД по ID инструмента из документа
                GostTool curGostTool = GostToolArray[i];
                if (curGostTool.dataBaseToolID == "")
                {
                    string cuttingToolID = getCuttingToolID(curGostTool.toolDocumentID);
                    curGostTool.dataBaseToolID = cuttingToolID;
                }
                // Получаем список пользовательских параметров из БД
                DataTable dbUsersParams = getUsersParamsByID(curGostTool.dataBaseToolID);

                if (dbUsersParams == null)
                {
                    return(false);
                }

                // проходим по всем пользовательским параметрам и заполняем значениями
                for (int j = 0; j < curGostTool.parameters.Count(); j++)
                {
                    DataRow[]     userParameterRows;
                    ToolParameter curToolParameter = curGostTool.parameters.getParameter(j);
                    // Сохраняем значение в структуре
                    userParameterRows      = dbUsersParams.Select("fldUserCLCode Like " + curToolParameter.CLCode.ToString()); // поиска параметра
                    curToolParameter.Value = userParameterRows[0][0].ToString();
                }
            }
            result = true;
            return(result);
        }
Exemple #11
0
        //----------------------------------------------------------------------------------------
        private void fillFrmReportList(String toolName)
        {
            // находим инструмент из списка
            for (int i = 0; i < AdditionalToolParameters.gostToolsArray.Count(); i++)
            {
                if (String.Equals(AdditionalToolParameters.gostToolsArray[i].toolName, toolName))
                {
                    for (int j = 0; j < AdditionalToolParameters.gostToolsArray[i].parameters.Count(); j++)
                    {
                        ToolParameter reportParameter = AdditionalToolParameters.gostToolsArray[i].parameters.getParameter(j);
                        string[]      arrParams       = new string[4];
                        arrParams[0] = reportParameter.Capture;
                        arrParams[1] = reportParameter.Name;
                        arrParams[2] = reportParameter.Type;
                        arrParams[3] = reportParameter.CLCode.ToString();

                        // Добавить в список на форме для карты наладки
                        ListViewItem newItem = new ListViewItem(arrParams);
                        listEspGostParams.Items.Add(newItem);
                    }
                    break;
                }
            }
        }
        public ToolParameter getParameter(int index)
        {
            ToolParameter result = parameters[index];

            return(result);
        }
Exemple #13
0
        //TODO - сохранение параметров инструмента из структуры в БД
        public bool saveUserToolParams(GostTool GostTool)
        {
            // Цикл по всем параметрам - выбираем с типом пользовательский
            for (int j = 0; j < GostTool.parameters.Count(); j++)
            {
                ToolParameter curToolParameter = GostTool.parameters.getParameter(j);
                if (curToolParameter.Type == StringResource.xmlParamUserType)
                {
                    string newSQLQuery = " IF EXISTS (SELECT * FROM tblCuttingToolParameter WHERE fldCLFileCode_tblCuttingToolParameter = @CLCode" +
                                         "    AND fldfkCuttingToolId_tblCuttingToolParameter = @ToolID)" +
                                         " BEGIN" +
                                         "    UPDATE tblCuttingToolParameter" +
                                         "    SET fldValue_tblCuttingToolParameter = @Value" +
                                         "    WHERE fldCLFileCode_tblCuttingToolParameter = @CLCode" +
                                         "       AND fldfkCuttingToolId_tblCuttingToolParameter = @ToolID" +
                                         " END" +
                                         " ELSE" +
                                         " BEGIN" +
                                         "   INSERT INTO tblCuttingToolParameter" +
                                         "   (fldCLFileCode_tblCuttingToolParameter, " +
                                         "   fldfkCuttingToolId_tblCuttingToolParameter," +
                                         "   fldValue_tblCuttingToolParameter) " +
                                         "   VALUES (@CLCode, @ToolID, @Value)" +
                                         " END;";

                    //string sql = "INSERT INTO tblCuttingToolParameter" +
                    //                " (fldCLFileCode_tblCuttingToolParameter, " +
                    //                " fldfkCuttingToolId_tblCuttingToolParameter," +
                    //                " fldValue_tblCuttingToolParameter) " +
                    //                " VALUES (@CLCode, @ToolID, @Value)";

                    // Обязательно должен быть ID и CL код параметра инструмента
                    if (curToolParameter.CLCode == 0 || GostTool.dataBaseToolID == "")
                    {
                        return(false);
                    }

                    if (connectionString == "")
                    {
                        loadConnectionString();
                    }

                    using (SqlConnection conn = new SqlConnection(connectionString))
                    {
                        try
                        {
                            conn.Open();
                        }
                        catch (Exception E)
                        {
                            Connect.logger.Error("Не удалось подключиться к БД! Error " + E.Message);
                            return(false);
                        }
                        SqlCommand cmd = conn.CreateCommand();
                        cmd.CommandText = newSQLQuery;
                        cmd.Parameters.AddWithValue("@CLCode", curToolParameter.CLCode);
                        cmd.Parameters.AddWithValue("@ToolID", GostTool.dataBaseToolID);
                        cmd.Parameters.AddWithValue("@Value", curToolParameter.Value);
                        cmd.ExecuteNonQuery();

                        conn.Close();
                    }
                }
            }
            return(true);
        }
Exemple #14
0
        private bool isToolParamExist(ToolParameter toolParam)
        {
            bool result = false;

            return(result);
        }
        public void FillFileReport(string distFileName)
        {
            Connect.logger.Info("Формирование карты наладки");
            setInnerParams();
            try
            {
                excelApp = new Excel.Application();
            }
            catch (Exception E)
            {
                Connect.logger.Error("Не удалось создать Excel приложение. Error :" + E.Message);
                return;
            }

            try
            {
                excelWBook = excelApp.Workbooks.Open(distFileName, null, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", true, false, null, true, 1, 0);
            }
            catch (Exception E)
            {
                Connect.logger.Error("Не удалось открыть файл " + E.Message);
                return;
            }
            excelWBook = excelApp.Workbooks.Open(distFileName, null, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", true, false, null, true, 1, 0);

            //Снять защиту с книги после копирования
            excelWBook.Unprotect("rogachev");

            // Заполняем главный лист
            excelWSheet = (Excel.Worksheet)excelWBook.Worksheets.Item[1];

            //Снять защиту с листа
            excelWSheet.Unprotect("rogachev");

            //excelWSheet.Name = "Лист " + currentSheetNumber;
            // Заполняем "шапку"
            fillCompanyName();
            fillDetailName();
            fillDetailDesignation();

            fillFIODev();
            fillFIOChecker();
            fillFIOAccepter();
            fillFIONormChecker();

            // Посчитать кол-во листов
            calcTotalPageNumber();
            // Заполнить номара страниц
            fillTotalPageNumber();
            fillPageNumber();
            // Заполнение таблицы
            fillCNCProgName();
            fillCNCMachineName();
            // Цикл по всему инструменту для отчета
            for (int i = 0; i < AdditionalToolParameters.gostReportToolsArray.Count; i++)
            {
                GostTool reportTool = AdditionalToolParameters.gostReportToolsArray[i];
                fillTool(reportTool);

                // Цикл по параметрам инструента
                for (int j = 0; j < reportTool.parameters.Count(); j++)
                {
                    ToolParameter repotToolParameter = reportTool.parameters.getParameter(j);
                    fillToolParameter(repotToolParameter);
                }
            }

            // Удаляем последний чистый лист
            excelApp.DisplayAlerts = false;
            Excel.Worksheet deletedSheet = excelWBook.Worksheets.Item[excelWBook.Worksheets.Count];
            deletedSheet.Delete();
            excelApp.DisplayAlerts = true;

            excelWBook.Close(true, misValue, misValue);
            excelApp.Quit();

            releaseOdject(excelWSheet);
            releaseOdject(excelWBook);
            releaseOdject(excelApp);
        }
        public void removeParameter(string DeleteParameterName)
        {
            ToolParameter deletedParam = parameters.getParameter(DeleteParameterName);

            removeParameter(deletedParam);
        }
 public void removeParameter(ToolParameter oldParameter)
 {
     parameters.RemoveParameter(oldParameter);
 }
 public void addParameter(ToolParameter newParameter)
 {
     parameters.AddParameter(newParameter);
 }
        public static void LoadToolsParameters()
        {
            Connect.logger.Info("Загрузка инструмента - LoadToolsParameters");
            // Загружаем из файл-шаблона названия инструмента, заполняя форму.
            XmlDocument xDoc = new XmlDocument();

            try
            {
                xDoc.Load(Connect.assemblyFolder + StringResource.xmlPathToolsParams);
            }
            catch (Exception E)
            {
                Connect.logger.Error("Ошибка при загрузке файла-шаблона параметров инструмента \n" + E.Message);
            }

            XmlElement xRoot = xDoc.DocumentElement;
            // выбор всех инструментов
            XmlNodeList childnodes = xRoot.SelectNodes(StringResource.xmlElementName);

            // Очистить массив, при повторной загрузке парметров
            if (gostToolsArray != null)
            {
                Array.Clear(gostToolsArray, 0, gostToolsArray.Length);
            }
            Connect.logger.Info("childnodes.Count " + childnodes.Count.ToString());

            if (childnodes.Count <= 0)
            {
                Connect.logger.Error("Файл параметров инструментов пуст.");
                return;
            }
            // Создание массива инструментов
            // Пропускаем 0-й элемент чтобы не учитывать неизвестный инструмент
            gostToolsArray = new GostTool[childnodes.Count];

            int i = 0;

            foreach (XmlNode node in childnodes)
            {
                int iToolId = int.Parse(node.SelectSingleNode("@" + StringResource.xmlToolID).Value);

                XmlNode singleNodeLable = node.SelectSingleNode("@" + StringResource.xmlToolLabel);
                string  sToolLabel      = singleNodeLable.Value;
                XmlNode singleNodeName  = node.SelectSingleNode("@" + StringResource.xmlToolName);
                string  sToolName       = singleNodeName.Value;

                if (i > gostToolsArray.Length)
                {
                    break;
                }

                gostToolsArray[i]           = new GostTool();
                gostToolsArray[i].toolID    = iToolId;
                gostToolsArray[i].toolLabel = sToolLabel;
                gostToolsArray[i].toolName  = sToolName;
                i++;
                //Connect.logger.Info(String.Format("Index = {0}, childnodes.Count {1}", i, childnodes.Count));
            }

            try
            {
                if (!File.Exists(Connect.assemblyFolder + StringResource.xmlPathPattrenFileName))
                {
                    creatPatternFile(Connect.assemblyFolder + StringResource.xmlPathPattrenFileName);
                    return;
                }
            }
            catch (Exception E)
            {
                Connect.logger.Error("Файл-шаблон инструментов отсутствует. Ошибка при создании файла\n" + E.Message);
            }

            Connect.logger.Info("Заполнение параметров для отчета");

            // Чтение параметров для отчета
            XmlDocument XmlDoc = new XmlDocument();

            XmlDoc.Load(Connect.assemblyFolder + StringResource.xmlPathPattrenFileName);
            // get root element
            XmlElement xmlRoot = XmlDoc.DocumentElement;
            // select all tools
            XmlNodeList allToolsList = xmlRoot.SelectNodes(StringResource.xmlElementName);

            for (int node = 0; node < allToolsList.Count; node++)
            {
                XmlNode nodeTool = allToolsList[node];
                //Connect.logger.Info(String.Format("Текущее значение {0}", node));

                XmlNode singleNodeName = nodeTool.SelectSingleNode("@" + StringResource.xmlToolName);
                string  sToolName      = singleNodeName.Value;

                if (string.Equals(sToolName, gostToolsArray[node].toolName))
                {
                    XmlNodeList parametersList = nodeTool.ChildNodes;
                    for (int j = 0; j < parametersList.Count; j++)
                    {
                        ToolParameter newParam = new ToolParameter();
                        newParam.Name    = parametersList[j].SelectSingleNode("@" + StringResource.xmlParameterName).Value;
                        newParam.Capture = parametersList[j].SelectSingleNode("@" + StringResource.xmlParameterCapture).Value;
                        newParam.Type    = parametersList[j].SelectSingleNode("@" + StringResource.xmlParameterType).Value;
                        newParam.CLCode  = int.Parse(parametersList[j].SelectSingleNode("@" + StringResource.xmlParameterClCode).Value);

                        gostToolsArray[node].addParameter(newParam);
                    }
                }
                //Connect.logger.Info(String.Format("Index = {0}, allToolsList.Count {1}, gostToolsArray.length {2}", index, allToolsList.Count, gostToolsArray.Length));
            }
            Connect.logger.Info("Заполнение параметров для отчета закончено");
        }