Ejemplo n.º 1
0
        // Конструктор копирования
        public GostTool(GostTool previousGostTool)
        {
            parameters     = new ToolParametersList(previousGostTool.parameters);
            techTool       = previousGostTool.techTool;
            toolType       = previousGostTool.toolType;
            toolName       = previousGostTool.toolName;
            toolLabel      = previousGostTool.toolLabel;
            toolDocumentID = previousGostTool.toolDocumentID;
            toolID         = previousGostTool.toolID;

            Connect.logger.Info(String.Format("Создан инструмент : {0}", toolID));
        }
        public void calcTotalPageNumber()
        {
            totalRowNumber = 2; // Начальные строки - название УП и название стонка
            for (int i = 0; i < AdditionalToolParameters.gostReportToolsArray.Count; i++)
            {
                GostTool reportTool = AdditionalToolParameters.gostReportToolsArray[i];
                totalRowNumber++;
                totalRowNumber += reportTool.parameters.Count();
            }

            totalSheetNumber = totalRowNumber / 17;

            if (totalRowNumber % 17 != 0)
            {
                totalSheetNumber++;
            }
        }
Ejemplo n.º 3
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);
        }
        private void fillTool(GostTool gostTool)
        {
            incNumber();
            if (!mainSheet)
            {   // форма 4а
                excelWSheet.Range["A" + currentRow.ToString(), "B" + currentRow.ToString()].Value2 = "T " + getFormatedNumber();
                excelWSheet.Range["C" + currentRow.ToString(), "F" + currentRow.ToString()].Value2 = "-";
                // Отменить объединение и сделать новую ячейку
                excelWSheet.Range["G" + currentRow.ToString(), "S" + currentRow.ToString()].UnMerge();
                excelWSheet.Range["G" + currentRow.ToString(), "S" + currentRow.ToString()].Merge();

                excelWSheet.Range["G" + currentRow.ToString(), "S" + currentRow.ToString()].Value2 = gostTool.toolLabel;
            }
            else
            {    // форма 4
                excelWSheet.Range["A" + currentRow.ToString(), "A" + currentRow.ToString()].Value2 = "T " + getFormatedNumber();
                excelWSheet.Range["B" + currentRow.ToString(), "D" + currentRow.ToString()].Value2 = "-";
                // Отменить объединение и сделать новую ячейку
                excelWSheet.Range["E" + currentRow.ToString(), "Q" + currentRow.ToString()].UnMerge();
                excelWSheet.Range["E" + currentRow.ToString(), "Q" + currentRow.ToString()].Merge();

                excelWSheet.Range["E" + currentRow.ToString(), "Q" + currentRow.ToString()].Value2 = gostTool.toolLabel;
            }
        }
Ejemplo n.º 5
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);
        }
        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("Заполнение параметров для отчета закончено");
        }
        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);
        }
Ejemplo n.º 8
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);
        }