// Конструктор копирования 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++; } }
// Заполнение значений ВСЕХ пользовательских параметров только для одного инструмента 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; } }
//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); }
//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); }