Example #1
0
        void menuMMKEQACableListExport_Click(object sender, EventArgs e)
        {
            if (DatabaseManager.Databases.Count <= 0)
            {
                Flute.Service.MessageBoxWinForm.Error("电缆表导出", "程序还没有载入任何EQA数据库.", "");
                return;
            }

            DataSet dataSet = DatabaseManager.Databases[DatabaseManager.CurrentKey].DatabaseSource;
            EQASubSystemCollectin subSystems = EQAHelper.CreateEQASubSystems(dataSet.Tables[TblSys.TblName],
                                                                             dataSet.Tables[TblCbl.TblName],
                                                                             dataSet.Tables[TblLoop.TblName],
                                                                             dataSet.Tables[TblEqp.TblName]);

            Flute.Drawing.EQA.MMKCableList inMMKCableList = new MMKCableList(subSystems);

            inMMKCableList.Export("");

            return;
        }
Example #2
0
        void menuLongEQAEquipmentIndentExport_Click(object sender, EventArgs e)
        {
            if (DatabaseManager.Databases.Count <= 0)
            {
                Flute.Service.MessageBoxWinForm.Error("设备清单导出", "程序还没有载入任何EQA数据库.", "");
                return;
            }

            DataSet dataSet = DatabaseManager.Databases[DatabaseManager.CurrentKey].DatabaseSource;
            EQASubSystemCollectin subSystems = EQAHelper.CreateEQASubSystems(dataSet.Tables[TblSys.TblName],
                                                                             dataSet.Tables[TblCbl.TblName],
                                                                             dataSet.Tables[TblLoop.TblName],
                                                                             dataSet.Tables[TblEqp.TblName]);

            Flute.Drawing.EQA.LongEquipmentIndent inLongEquipmentIndent = new LongEquipmentIndent(subSystems);

            if (inLongEquipmentIndent.Export(""))
            {
                this.Activate();
                Flute.Service.MessageBoxWinForm.Info("设备清单导出成功", "设备清单已成功导出!", "");
            }

            return;
        }
Example #3
0
        public bool Export(string templatePath)
        {
            EQASubSystemCollectin subSystems = DrawingData as EQASubSystemCollectin;

            if (subSystems.Count == 0)
            {
                return(true);
            }

            subSystems.Sort();

            frmMMKEquipmentList FrmMMKEquipmentList = new frmMMKEquipmentList();

            System.Windows.Forms.DialogResult dlgResult = FrmMMKEquipmentList.ShowDialog();

            if (dlgResult == System.Windows.Forms.DialogResult.Cancel)
            {
                return(true);
            }

            _drawingLanguage = FrmMMKEquipmentList.Language;

            _contractNo = FrmMMKEquipmentList.ContractNo;
            _drawingNo  = FrmMMKEquipmentList.DrawingNo;
            _revision   = FrmMMKEquipmentList.Revision;
            _topLevelNo = FrmMMKEquipmentList.TopLevelNo;
            _speciality = FrmMMKEquipmentList.Speciality;
            _stage      = FrmMMKEquipmentList.Stage;
            _date       = FrmMMKEquipmentList.Date;
            _madeBy     = FrmMMKEquipmentList.MadeBy;
            _designBy   = FrmMMKEquipmentList.DesignBy;
            _checkedBy  = FrmMMKEquipmentList.CheckedBy;
            _reviewedBy = FrmMMKEquipmentList.ApprovedBy;

            if (!FrmMMKEquipmentList.KeepETNo)
            {
                int startNo = 0;
                for (int i = 0; i < subSystems.Count; i++)
                {
                    for (int j = 0; j < subSystems[i].Loops.Count; j++)
                    {
                        for (int k = 0; k < subSystems[i].Loops[j].Equipments.Count; k++)
                        {
                            startNo = subSystems[i].Loops[j].Equipments[k].TagNo.IndexOf("-", 0);
                            subSystems[i].Loops[j].Equipments[k].TagNo =
                                subSystems[i].Loops[j].Equipments[k].TagNo.Substring(startNo);
                        }
                    }
                }
            }

            Microsoft.Office.Interop.Excel.ApplicationClass xlsApp = new ApplicationClass();
            // 打开文件
            xlsApp.Workbooks.Add(FrmMMKEquipmentList.TemplatePath);

            Microsoft.Office.Interop.Excel.Workbook xlsWorkBook
                           = xlsApp.Workbooks[1];
            xlsApp.Visible = true;

            try {
                int pageCount;
                int currentPageNumber;
                int eqpNumberInPages;

                Microsoft.Office.Interop.Excel.Worksheet xlsWorkSheet;

                switch (_drawingLanguage)
                {
                case DrawingLanguage.SimplifiedChinese:

                    pageCount = 0;

                    foreach (EQASubSystem subSystem in subSystems)
                    {
                        if ((subSystem.EquipmentsCount % 7) == 0)
                        {
                            pageCount += subSystem.EquipmentsCount / 7;
                        }
                        else
                        {
                            pageCount += Convert.ToInt32(Math.Ceiling(subSystem.EquipmentsCount / 7.0f));
                        }
                    }

                    for (int i = 0; i < pageCount - 1; i++)
                    {
                        (xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).Copy(Missing.Value, xlsApp.Worksheets[1 + i]);
                    }

                    currentPageNumber = 0;
                    eqpNumberInPages  = 7;

                    lock (subSystems) {
                        if (subSystems.Count > 0)
                        {
                            for (int i = 0; i < subSystems.Count; i++)
                            {
                                EQASubSystem subSystem = subSystems[i];
                                currentPageNumber++;
                                if (i > 0 && (subSystems[i - 1].EquipmentsCount % 7 == 0))
                                {
                                    currentPageNumber--;
                                }
                                eqpNumberInPages  = 7;
                                xlsWorkSheet      = (Microsoft.Office.Interop.Excel.Worksheet)xlsApp.Worksheets[currentPageNumber];
                                xlsWorkSheet.Name = (currentPageNumber).ToString();
                                xlsWorkSheet.Activate();

                                // 图纸格式
                                // 字体
                                xlsWorkSheet.get_Range("B7", "S13").Font.Name = "Times New Roman";
                                xlsWorkSheet.get_Range("B7", "S13").Font.Size = 11f;

                                // 格式
                                xlsWorkSheet.get_Range("B7", "S13").HorizontalAlignment = Constants.xlCenter;
                                xlsWorkSheet.get_Range("B7", "S13").VerticalAlignment   = Constants.xlCenter;
                                xlsWorkSheet.get_Range("M7", "M13").HorizontalAlignment = Constants.xlGeneral;
                                xlsWorkSheet.get_Range("M7", "M13").VerticalAlignment   = Constants.xlGeneral;
                                xlsWorkSheet.get_Range("B7", "S13").WrapText            = true;

                                //
                                // 图纸内容
                                //
                                // 项目名称
                                xlsWorkSheet.get_Range("B2", Missing.Value).Value2
                                    += "俄罗斯MMK冷轧公辅EP项目";
                                // 子系统
                                xlsWorkSheet.get_Range("B3", Missing.Value).Value2
                                    += subSystem.Name;

                                //
                                // 图框内容
                                xlsWorkSheet.Shapes.Item("BTL").Ungroup();
                                // 专业
                                xlsWorkSheet.Shapes.Item("DWG_SPECIALITY").TextFrame.Characters(Missing.Value, Missing.Value).Text = _speciality;
                                // 设计阶段
                                xlsWorkSheet.Shapes.Item("DESIGN_STAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _stage;
                                // 日期
                                xlsWorkSheet.Shapes.Item("PRINT_DATE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _date;
                                // 室审
                                xlsWorkSheet.Shapes.Item("DEPT_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _reviewedBy;
                                // 审核
                                xlsWorkSheet.Shapes.Item("DWG_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _checkedBy;
                                // 设计
                                xlsWorkSheet.Shapes.Item("DWG_DESIGN").TextFrame.Characters(Missing.Value, Missing.Value).Text = _designBy;
                                // 制图
                                xlsWorkSheet.Shapes.Item("DWG_DRAW").TextFrame.Characters(Missing.Value, Missing.Value).Text = _madeBy;
                                // 合同号
                                xlsWorkSheet.Shapes.Item("CONTRACT").TextFrame.Characters(Missing.Value, Missing.Value).Text = _contractNo;
                                // 图号
                                xlsWorkSheet.Shapes.Item("DRAWING_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _drawingNo;
                                // 高层代号
                                xlsWorkSheet.Shapes.Item("=").TextFrame.Characters(Missing.Value, Missing.Value).Text = "=" + _topLevelNo;
                                // 修改号
                                xlsWorkSheet.Shapes.Item("REVISE_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _revision;
                                // 页次
                                if (xlsWorkSheet.Index < pageCount)
                                {
                                    xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = xlsWorkSheet.Index.ToString() + "+";
                                }
                                else
                                {
                                    xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = (xlsWorkSheet.Index).ToString();
                                }

                                if (subSystem.Loops.Count > 0)
                                {
                                    for (int j = 0; j < subSystem.Loops.Count; j++)
                                    {
                                        EQALoop loop = subSystem.Loops[j];
                                        if (loop.Equipments.Count > 0)
                                        {
                                            // 回路号
                                            xlsWorkSheet.get_Range("B" + eqpNumberInPages.ToString(), Missing.Value).Value2
                                                = FrmMMKEquipmentList.HasLoopNo ? loop.LoopNo : "";

                                            //检测与控制项目
                                            string item = loop.Location + loop.ProcParameter +
                                                          (loop.HasLocalIndication ? @"/就地显示" : "") +
                                                          (loop.HasLocalOperating ? @"/就地操作" : "") +
                                                          (loop.HasComputerIndication ? @"/显示" : "") +
                                                          (loop.HasComputerOperating ? @"/操作" : "") +
                                                          (loop.HasRecording ? @"/记录" : "") +
                                                          (loop.HasAlarm ? @"/报警" : "") +
                                                          (loop.HasControlling ? @"/调节" : "") +
                                                          (loop.HasInterlock ? @"/联锁" : "");

                                            xlsWorkSheet.get_Range("D" + eqpNumberInPages.ToString(), Missing.Value).Value2
                                                = FrmMMKEquipmentList.HasItems ? item : "";
                                        }

                                        for (int m = 0; m < loop.Equipments.Count; m++)
                                        {
                                            EQAEquipment eqp = loop.Equipments[m];
                                            if (!eqp.IsEquipment)
                                            {
                                                continue;
                                            }

                                            // 位号
                                            xlsWorkSheet.get_Range("C" + eqpNumberInPages.ToString(), Missing.Value).Value2
                                                = FrmMMKEquipmentList.HasTagNo ? eqp.TagNo : "";

                                            // 其他项目
                                            xlsWorkSheet.get_Range("E" + eqpNumberInPages.ToString(), "S" + eqpNumberInPages.ToString()).Value2
                                                = new object[] { FrmMMKEquipmentList.HasEqpName?eqp.Name                                                                          : "",
                                                                                                    FrmMMKEquipmentList.HasEqpType?eqp.EqpType                                    : "",
                                                                                                    FrmMMKEquipmentList.HasMeasuringRangeMin?eqp.LowerLimit                       : "",
                                                                                                    FrmMMKEquipmentList.HasMeasuringRangeMax?eqp.UpperLimit                       : "",
                                                                                                    FrmMMKEquipmentList.HasMeasuringRangeUnit?eqp.Unit                            : "",
                                                                                                    FrmMMKEquipmentList.HasInputSignal?eqp.InputSignal                            : "",
                                                                                                    FrmMMKEquipmentList.HasOutputSignal?eqp.OutputSignal                          : "",
                                                                                                    FrmMMKEquipmentList.HasPowerSupply?eqp.PowerSupply                            : "",
                                                                                                    FrmMMKEquipmentList.HasSpec?eqp.Spec1 + ",\n" + eqp.Spec2 + ",\n" + eqp.Spec3 : "",
                                                                                                    FrmMMKEquipmentList.HasQuantity?eqp.Quantity.ToString()                       : "",
                                                                                                    FrmMMKEquipmentList.HasLocation?eqp.FixedPlace                                : "",
                                                                                                    FrmMMKEquipmentList.HasOperationRangeMin?loop.LowerLimit                      : "",
                                                                                                    FrmMMKEquipmentList.HasOperationRangeMax?loop.UpperLimit                      : "",
                                                                                                    FrmMMKEquipmentList.HasOperationRangeUnit?loop.Unit                           : "",
                                                                                                    FrmMMKEquipmentList.HasRemark?eqp.Remark                                      : "" };

                                            eqpNumberInPages++;


                                            if (eqpNumberInPages >= 14)
                                            {
                                                currentPageNumber++;
                                                xlsWorkSheet      = (Microsoft.Office.Interop.Excel.Worksheet)xlsApp.Worksheets[currentPageNumber];
                                                xlsWorkSheet.Name = (currentPageNumber).ToString();
                                                xlsWorkSheet.Activate();

                                                // 图纸格式
                                                // 字体
                                                xlsWorkSheet.get_Range("B7", "S13").Font.Name = "Times New Roman";
                                                xlsWorkSheet.get_Range("B7", "S13").Font.Size = 11f;

                                                // 格式
                                                xlsWorkSheet.get_Range("B7", "S13").HorizontalAlignment = Constants.xlCenter;
                                                xlsWorkSheet.get_Range("B7", "S13").VerticalAlignment   = Constants.xlCenter;
                                                xlsWorkSheet.get_Range("M7", "M13").HorizontalAlignment = Constants.xlGeneral;
                                                xlsWorkSheet.get_Range("M7", "M13").VerticalAlignment   = Constants.xlGeneral;
                                                xlsWorkSheet.get_Range("B7", "S13").WrapText            = true;

                                                //
                                                // 图纸内容
                                                //
                                                // 项目名称
                                                xlsWorkSheet.get_Range("B2", Missing.Value).Value2
                                                    = "项目名称:俄罗斯MMK冷轧公辅EP项目";
                                                // 子系统
                                                xlsWorkSheet.get_Range("B3", Missing.Value).Value2
                                                    = "子系统:" + subSystem.Name;

                                                //
                                                // 图框内容
                                                xlsWorkSheet.Shapes.Item("BTL").Ungroup();
                                                // 专业
                                                xlsWorkSheet.Shapes.Item("DWG_SPECIALITY").TextFrame.Characters(Missing.Value, Missing.Value).Text = _speciality;
                                                // 设计阶段
                                                xlsWorkSheet.Shapes.Item("DESIGN_STAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _stage;
                                                // 日期
                                                xlsWorkSheet.Shapes.Item("PRINT_DATE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _date;
                                                // 室审
                                                xlsWorkSheet.Shapes.Item("DEPT_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _reviewedBy;
                                                // 审核
                                                xlsWorkSheet.Shapes.Item("DWG_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _checkedBy;
                                                // 设计
                                                xlsWorkSheet.Shapes.Item("DWG_DESIGN").TextFrame.Characters(Missing.Value, Missing.Value).Text = _designBy;
                                                // 制图
                                                xlsWorkSheet.Shapes.Item("DWG_DRAW").TextFrame.Characters(Missing.Value, Missing.Value).Text = _madeBy;
                                                // 合同号
                                                xlsWorkSheet.Shapes.Item("CONTRACT").TextFrame.Characters(Missing.Value, Missing.Value).Text = _contractNo;
                                                // 图号
                                                xlsWorkSheet.Shapes.Item("DRAWING_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _drawingNo;
                                                // 高层代号
                                                xlsWorkSheet.Shapes.Item("=").TextFrame.Characters(Missing.Value, Missing.Value).Text = "=" + _topLevelNo;
                                                // 修改号
                                                xlsWorkSheet.Shapes.Item("REVISE_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _revision;
                                                // 页次
                                                if (xlsWorkSheet.Index < pageCount)
                                                {
                                                    xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = xlsWorkSheet.Index.ToString() + "+";
                                                }
                                                else
                                                {
                                                    xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = (xlsWorkSheet.Index).ToString();
                                                }

                                                eqpNumberInPages = 7;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    break;

                case DrawingLanguage.English:

                    pageCount = 0;

                    foreach (EQASubSystem subSystem in subSystems)
                    {
                        if ((subSystem.EquipmentsCount % 3 == 0))
                        {
                            pageCount += subSystem.EquipmentsCount / 3;
                        }
                        else
                        {
                            pageCount += Convert.ToInt32(Math.Ceiling(subSystem.EquipmentsCount / 3.0f));
                        }
                    }

                    (xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).Shapes.Item("BTL").Ungroup();

                    // 图纸格式
                    // 字体
                    (xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("B9", "S14").Font.Name = "Times New Roman";
                    (xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("B9", "S14").Font.Size = 11f;

                    // 格式
                    (xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("B9", "S14").HorizontalAlignment = Constants.xlCenter;
                    (xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("B9", "S14").VerticalAlignment   = Constants.xlCenter;
                    (xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("M9", "M14").HorizontalAlignment = Constants.xlGeneral;
                    (xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("B9", "S14").WrapText            = true;

                    for (int i = 0; i < pageCount - 1; i++)
                    {
                        (xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).Copy(Missing.Value, xlsApp.Worksheets[1 + i]);
                    }

                    currentPageNumber = 0;
                    eqpNumberInPages  = 9;

                    lock (subSystems) {
                        if (subSystems.Count > 0)
                        {
                            for (int i = 0; i < subSystems.Count; i++)
                            {
                                EQASubSystem subSystem = subSystems[i];
                                currentPageNumber++;
                                if (i > 0 && (subSystems[i - 1].EquipmentsCount % 3 == 0))
                                {
                                    currentPageNumber--;
                                }

                                eqpNumberInPages  = 9;
                                xlsWorkSheet      = (Microsoft.Office.Interop.Excel.Worksheet)xlsApp.Worksheets[currentPageNumber];
                                xlsWorkSheet.Name = (currentPageNumber).ToString();
                                xlsWorkSheet.Activate();

                                //
                                // 图纸内容
                                //

                                // 子系统
                                xlsWorkSheet.get_Range("B3", Missing.Value).Value2
                                    = "Sub-system/Подсистема: " + subSystem.Name;

                                //
                                // 图框内容

                                // 专业
                                xlsWorkSheet.Shapes.Item("DWG_SPECIALITY").TextFrame.Characters(Missing.Value, Missing.Value).Text = _speciality;
                                // 设计阶段
                                xlsWorkSheet.Shapes.Item("DESIGN_STAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _stage;
                                // 日期
                                xlsWorkSheet.Shapes.Item("PRINT_DATE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _date;
                                // 室审
                                xlsWorkSheet.Shapes.Item("DEPT_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _reviewedBy;
                                // 审核
                                xlsWorkSheet.Shapes.Item("DWG_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _checkedBy;
                                // 设计
                                xlsWorkSheet.Shapes.Item("DWG_DESIGN").TextFrame.Characters(Missing.Value, Missing.Value).Text = _designBy;
                                // 制图
                                xlsWorkSheet.Shapes.Item("DWG_DRAW").TextFrame.Characters(Missing.Value, Missing.Value).Text = _madeBy;
                                // 合同号
                                xlsWorkSheet.Shapes.Item("CONTRACT").TextFrame.Characters(Missing.Value, Missing.Value).Text = _contractNo;
                                // 图号
                                xlsWorkSheet.Shapes.Item("DRAWING_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _drawingNo;
                                // 高层代号
                                xlsWorkSheet.Shapes.Item("=").TextFrame.Characters(Missing.Value, Missing.Value).Text = "=" + _topLevelNo;
                                // 修改号
                                xlsWorkSheet.Shapes.Item("REVISE_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _revision;
                                // 页次
                                if (xlsWorkSheet.Index < pageCount)
                                {
                                    xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = xlsWorkSheet.Index.ToString() + "+";
                                }
                                else
                                {
                                    xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = (xlsWorkSheet.Index).ToString();
                                }


                                if (subSystem.Loops.Count > 0)
                                {
                                    for (int j = 0; j < subSystem.Loops.Count; j++)
                                    {
                                        EQALoop loop = subSystem.Loops[j];
                                        if (loop.Equipments.Count > 0)
                                        {
                                            // 回路号
                                            xlsWorkSheet.get_Range("B" + eqpNumberInPages.ToString(), Missing.Value).Value2
                                                = FrmMMKEquipmentList.HasLoopNo ? loop.LoopNo : "";

                                            //检测与控制项目
                                            string item = loop.Location + loop.ProcParameter +
                                                          (loop.HasLocalIndication ? @"/就地显示" : "") +
                                                          (loop.HasLocalOperating ? @"/就地操作" : "") +
                                                          (loop.HasComputerIndication ? @"/显示" : "") +
                                                          (loop.HasComputerOperating ? @"/操作" : "") +
                                                          (loop.HasRecording ? @"/记录" : "") +
                                                          (loop.HasAlarm ? @"/报警" : "") +
                                                          (loop.HasControlling ? @"/调节" : "") +
                                                          (loop.HasInterlock ? @"/联锁" : "");

                                            xlsWorkSheet.get_Range("D" + eqpNumberInPages.ToString(), Missing.Value).Value2
                                                = FrmMMKEquipmentList.HasItems ? item : "";
                                        }

                                        for (int m = 0; m < loop.Equipments.Count; m++)
                                        {
                                            EQAEquipment eqp = loop.Equipments[m];
                                            if (!eqp.IsEquipment)
                                            {
                                                continue;
                                            }

                                            // 位号
                                            xlsWorkSheet.get_Range("C" + eqpNumberInPages.ToString(), Missing.Value).Value2
                                                = FrmMMKEquipmentList.HasTagNo ? eqp.TagNo : "";

                                            // 其他项目
                                            xlsWorkSheet.get_Range("E" + eqpNumberInPages.ToString(), "S" + eqpNumberInPages.ToString()).Value2
                                                = new object[] { FrmMMKEquipmentList.HasEqpName?eqp.Name:"",
                                                                                                    FrmMMKEquipmentList.HasEqpType?eqp.EqpType:"",
                                                                                                    FrmMMKEquipmentList.HasMeasuringRangeMin?eqp.LowerLimit:"",
                                                                                                    FrmMMKEquipmentList.HasMeasuringRangeMax?eqp.UpperLimit:"",
                                                                                                    FrmMMKEquipmentList.HasMeasuringRangeUnit?eqp.Unit:"",
                                                                                                    FrmMMKEquipmentList.HasInputSignal?eqp.InputSignal:"",
                                                                                                    FrmMMKEquipmentList.HasOutputSignal?eqp.OutputSignal:"",
                                                                                                    FrmMMKEquipmentList.HasPowerSupply?eqp.PowerSupply:"",
                                                                                                    FrmMMKEquipmentList.HasSpec?eqp.Spec1 + ",\n" + eqp.Spec2:"",
                                                                                                    FrmMMKEquipmentList.HasQuantity?eqp.Quantity.ToString():"",
                                                                                                    FrmMMKEquipmentList.HasLocation?eqp.FixedPlace:"",
                                                                                                    FrmMMKEquipmentList.HasOperationRangeMin?loop.LowerLimit:"",
                                                                                                    FrmMMKEquipmentList.HasOperationRangeMax?loop.UpperLimit:"",
                                                                                                    FrmMMKEquipmentList.HasOperationRangeUnit?loop.Unit:"",
                                                                                                    FrmMMKEquipmentList.HasRemark?eqp.Remark:"" };

                                            xlsWorkSheet.get_Range("B" + (eqpNumberInPages + 1).ToString(), "S" + (eqpNumberInPages + 1).ToString()).Value2
                                                = xlsWorkSheet.get_Range("B" + eqpNumberInPages.ToString(), "S" + eqpNumberInPages.ToString()).Value2;

                                            eqpNumberInPages += 2;

                                            if (eqpNumberInPages >= 15)
                                            {
                                                currentPageNumber++;
                                                xlsWorkSheet      = (Microsoft.Office.Interop.Excel.Worksheet)xlsApp.Worksheets[currentPageNumber];
                                                xlsWorkSheet.Name = (currentPageNumber).ToString();
                                                xlsWorkSheet.Activate();

                                                //
                                                // 图纸内容
                                                //
                                                // 子系统
                                                xlsWorkSheet.get_Range("B3", Missing.Value).Value2
                                                    = "Sub-system/Подсистема: " + subSystem.Name;

                                                //
                                                // 图框内容

                                                // 专业
                                                xlsWorkSheet.Shapes.Item("DWG_SPECIALITY").TextFrame.Characters(Missing.Value, Missing.Value).Text = _speciality;
                                                // 设计阶段
                                                xlsWorkSheet.Shapes.Item("DESIGN_STAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _stage;
                                                // 日期
                                                xlsWorkSheet.Shapes.Item("PRINT_DATE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _date;
                                                // 室审
                                                xlsWorkSheet.Shapes.Item("DEPT_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _reviewedBy;
                                                // 审核
                                                xlsWorkSheet.Shapes.Item("DWG_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _checkedBy;
                                                // 设计
                                                xlsWorkSheet.Shapes.Item("DWG_DESIGN").TextFrame.Characters(Missing.Value, Missing.Value).Text = _designBy;
                                                // 制图
                                                xlsWorkSheet.Shapes.Item("DWG_DRAW").TextFrame.Characters(Missing.Value, Missing.Value).Text = _madeBy;
                                                // 合同号
                                                xlsWorkSheet.Shapes.Item("CONTRACT").TextFrame.Characters(Missing.Value, Missing.Value).Text = _contractNo;
                                                // 图号
                                                xlsWorkSheet.Shapes.Item("DRAWING_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _drawingNo;
                                                // 高层代号
                                                xlsWorkSheet.Shapes.Item("=").TextFrame.Characters(Missing.Value, Missing.Value).Text = "=" + _topLevelNo;
                                                // 修改号
                                                xlsWorkSheet.Shapes.Item("REVISE_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _revision;
                                                // 页次
                                                if (xlsWorkSheet.Index < pageCount)
                                                {
                                                    xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = xlsWorkSheet.Index.ToString() + "+";
                                                }
                                                else
                                                {
                                                    xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = (xlsWorkSheet.Index).ToString();
                                                }

                                                eqpNumberInPages = 9;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    break;

                default:
                    break;
                }

                return(true);
            } catch (Exception ex) {
                return(false);
            }


            //} finally {
            //    IntPtr t = new IntPtr(xlsApp.Hwnd);

            //    int k = 0;
            //    GetWindowThreadProcessId(t, out k);
            //    System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k);
            //    p.Kill();
            //}
        }
Example #4
0
        public bool Export(string templatePath)
        {
            EQASubSystemCollectin subSystems = DrawingData as EQASubSystemCollectin;

            if (subSystems.Count == 0)
            {
                return(true);
            }

            subSystems.Sort();

            frmLongEquipmentIndent FrmLongEquipmentIndent = new frmLongEquipmentIndent();

            System.Windows.Forms.DialogResult dlgResult = FrmLongEquipmentIndent.ShowDialog();

            if (dlgResult == System.Windows.Forms.DialogResult.Cancel)
            {
                return(true);
            }

            _drawingLanguage = FrmLongEquipmentIndent.Language;

            //
            // 设备中有用电电源一项暂没有使用
            // 本算法中将之用于设备归类
            // 首先提取设备类别的种类,然后分类,分子项列出设备
            //
            IList <string> equipmentTypes = new List <string>();

            lock (subSystems) {
                // SubSystems
                foreach (EQASubSystem subSystem in subSystems)
                {
                    if (subSystem.Loops.Count > 0)
                    {
                        // Loops
                        foreach (EQALoop loop in subSystem.Loops)
                        {
                            if (loop.Equipments.Count > 0)
                            {
                                // Equipments
                                foreach (EQAEquipment equip in loop.Equipments)
                                {
                                    if (!equipmentTypes.Contains(equip.PowerSupplySource.Trim()))
                                    {
                                        equipmentTypes.Add(equip.PowerSupplySource.Trim());
                                    }
                                }
                            }
                            else
                            {
                                continue;
                            }
                        }
                    }
                    else
                    {
                        continue;
                    }
                }
            }


            Microsoft.Office.Interop.Excel.ApplicationClass xlsApp = new ApplicationClass();
            // 打开文件
            xlsApp.Workbooks.Add(FrmLongEquipmentIndent.TemplatePath);

            Microsoft.Office.Interop.Excel.Workbook xlsWorkBook
                           = xlsApp.Workbooks[1];
            xlsApp.Visible = true;

            try {
                int    pageCount;
                int    currentPageNumber;
                int    currentLineNumber;
                int    lastLineNumber;
                string currentprefix = "";

                Microsoft.Office.Interop.Excel.Worksheet xlsWorkSheet;

                switch (_drawingLanguage)
                {
                case DrawingLanguage.English:
                    break;

                case DrawingLanguage.SimplifiedChinese:
                    currentPageNumber = 1;

                    currentLineNumber = 4;
                    lastLineNumber    = currentLineNumber;
                    currentprefix     = "";

                    xlsWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlsApp.Worksheets[currentPageNumber];
                    xlsWorkSheet.Activate();

                    lock (subSystems) {
                        // SubSystems
                        foreach (EQASubSystem subSystem in subSystems)
                        {
                            if (subSystem.Loops.Count > 0)
                            {
                                if (subSystem.SubSystemID.Length != 4)
                                {
                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "I" + currentLineNumber.ToString()).Merge(false);
                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "A" + currentLineNumber.ToString()).Value2
                                        = subSystem.Name;
                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "A" + currentLineNumber.ToString()).RowHeight           = 24;
                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "A" + currentLineNumber.ToString()).Interior.ColorIndex = 33;

                                    lastLineNumber = currentLineNumber++;
                                }
                                else if (subSystem.SubSystemID.Length == 4 && !subSystemIDprefixs.ContainsKey(subSystem.SubSystemID.Substring(0, 2)))
                                {
                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "I" + currentLineNumber.ToString()).Merge(false);
                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "A" + currentLineNumber.ToString()).Value2
                                        = subSystem.Name;
                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "A" + currentLineNumber.ToString()).RowHeight           = 24;
                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "A" + currentLineNumber.ToString()).Interior.ColorIndex = 33;

                                    lastLineNumber = currentLineNumber++;
                                }
                                else if (subSystem.SubSystemID.Length == 4 &&
                                         subSystemIDprefixs.ContainsKey(subSystem.SubSystemID.Substring(0, 2)) &&
                                         subSystem.SubSystemID.Substring(0, 2) != currentprefix)
                                {
                                    currentprefix = subSystem.SubSystemID.Substring(0, 2);

                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "I" + currentLineNumber.ToString()).Merge(false);
                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "A" + currentLineNumber.ToString()).Value2
                                        = subSystemIDprefixs[currentprefix];
                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "A" + currentLineNumber.ToString()).RowHeight           = 24;
                                    xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "A" + currentLineNumber.ToString()).Interior.ColorIndex = 33;

                                    lastLineNumber = currentLineNumber++;
                                }

                                // Loops
                                foreach (EQALoop loop in subSystem.Loops)
                                {
                                    if (loop.Equipments.Count > 0)
                                    {
                                        // Equipments
                                        foreach (EQAEquipment equip in loop.Equipments)
                                        {
                                            xlsWorkSheet.get_Range("A" + currentLineNumber.ToString(), "J" + currentLineNumber.ToString()).Value2
                                                = new object[] {
                                                equip.TagNo,
                                                equip.Name,
                                                equip.EqpType,
                                                equip.Quantity,
                                                equip.LowerLimit + "~" + equip.UpperLimit + equip.Unit,
                                                equip.Spec1 + " " + equip.Spec2 + " " + equip.Spec3,
                                                equip.Remark,
                                                loop.LoopNo,
                                                loop.Location + loop.ProcParameter,
                                                equip.FixedPlace,
                                                };
                                            ++currentLineNumber;
                                        }

                                        xlsWorkSheet.PageSetup.PrintArea = "$A$1"
                                                                           + ":" + "$J$" + (currentLineNumber - 1).ToString();

                                        //if (lastLineNumber + 1 == currentLineNumber
                                        //    && subSystemIDprefixs.Values.Contains(
                                        //        Convert.ToString(xlsWorkSheet.get_Range("A" + lastLineNumber.ToString(), "A" + lastLineNumber.ToString()).Value2))) {
                                        //    xlsWorkSheet.get_Range("A" + lastLineNumber.ToString(), "I" + lastLineNumber.ToString())
                                        //            .Delete(XlDeleteShiftDirection.xlShiftUp);
                                        //    currentLineNumber--;
                                        //}
                                    }
                                }
                            }
                        }
                    }

                    break;

                default:
                    break;
                }
                return(true);
            } catch (Exception ex) {
                string e = ex.Message;
                return(false);
            }
        }
Example #5
0
        public bool Export(string templatePath)
        {
            EQASubSystemCollectin subSystems = DrawingData as EQASubSystemCollectin;

            if (subSystems.Count == 0)
            {
                return(true);
            }

            subSystems.Sort();

            frmMMKCableList FrmMMKCableList = new frmMMKCableList();

            System.Windows.Forms.DialogResult dlgResult = FrmMMKCableList.ShowDialog();

            if (dlgResult == System.Windows.Forms.DialogResult.Cancel)
            {
                return(true);
            }

            _drawingLanguage = FrmMMKCableList.Language;

            _contractNo = FrmMMKCableList.ContractNo;
            _drawingNo  = FrmMMKCableList.DrawingNo;
            _revision   = FrmMMKCableList.Revision;
            _topLevelNo = FrmMMKCableList.TopLevelNo;
            _speciality = FrmMMKCableList.Speciality;
            _stage      = FrmMMKCableList.Stage;
            _date       = FrmMMKCableList.Date;
            _madeBy     = FrmMMKCableList.MadeBy;
            _designBy   = FrmMMKCableList.DesignBy;
            _checkedBy  = FrmMMKCableList.CheckedBy;
            _reviewedBy = FrmMMKCableList.ApprovedBy;

            Microsoft.Office.Interop.Excel.ApplicationClass xlsApp = new ApplicationClass();
            // 打开文件
            xlsApp.Workbooks.Add(FrmMMKCableList.TemplatePath);

            Microsoft.Office.Interop.Excel.Workbook xlsWorkBook
                           = xlsApp.Workbooks[1];
            xlsApp.Visible = true;

            try {
                int pageCount;
                int currentPageNumber;
                int cableNumberInPages;

                int currentCableNumber;

                Microsoft.Office.Interop.Excel.Worksheet xlsWorkSheet;

                switch (_drawingLanguage)
                {
                case DrawingLanguage.SimplifiedChinese:
                    break;

                case DrawingLanguage.English:
                    pageCount = 0;

                    foreach (EQASubSystem subSystem in subSystems)
                    {
                        pageCount += subSystem.CablesCount;
                    }

                    if ((pageCount % 5 == 0))
                    {
                        pageCount = pageCount / 5;
                    }
                    else
                    {
                        pageCount = Convert.ToInt32(Math.Ceiling(pageCount / 5.0f));
                    }

                    (xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).Shapes.Item("BTL").Ungroup();

                    // 图纸格式
                    // 字体
                    //(xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("B9", "S14").Font.Name = "Times New Roman";
                    //(xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("B9", "S14").Font.Size = 11f;

                    //// 格式
                    //(xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("B9", "S14").HorizontalAlignment = Constants.xlCenter;
                    //(xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("B9", "S14").VerticalAlignment = Constants.xlCenter;
                    //(xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("M9", "M14").HorizontalAlignment = Constants.xlGeneral;
                    //(xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).get_Range("B9", "S14").WrapText = true;

                    for (int i = 0; i < pageCount - 1; i++)
                    {
                        (xlsApp.Worksheets[1] as Microsoft.Office.Interop.Excel.Worksheet).Copy(Missing.Value, xlsApp.Worksheets[1 + i]);
                    }

                    currentPageNumber  = 1;
                    cableNumberInPages = 4;
                    currentCableNumber = 1;

                    lock (subSystems) {
                        if (subSystems.Count > 0)
                        {
                            for (int i = 0; i < subSystems.Count; i++)
                            {
                                EQASubSystem subSystem = subSystems[i];

                                xlsWorkSheet      = (Microsoft.Office.Interop.Excel.Worksheet)xlsApp.Worksheets[currentPageNumber];
                                xlsWorkSheet.Name = (currentPageNumber).ToString();
                                xlsWorkSheet.Activate();

                                if (xlsWorkSheet.Index == 1)
                                {
                                    //
                                    // 图框内容

                                    // 专业
                                    xlsWorkSheet.Shapes.Item("DWG_SPECIALITY").TextFrame.Characters(Missing.Value, Missing.Value).Text = _speciality;
                                    // 设计阶段
                                    xlsWorkSheet.Shapes.Item("DESIGN_STAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _stage;
                                    // 日期
                                    xlsWorkSheet.Shapes.Item("PRINT_DATE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _date;
                                    // 室审
                                    xlsWorkSheet.Shapes.Item("DEPT_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _reviewedBy;
                                    // 审核
                                    xlsWorkSheet.Shapes.Item("DWG_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _checkedBy;
                                    // 设计
                                    xlsWorkSheet.Shapes.Item("DWG_DESIGN").TextFrame.Characters(Missing.Value, Missing.Value).Text = _designBy;
                                    // 制图
                                    xlsWorkSheet.Shapes.Item("DWG_DRAW").TextFrame.Characters(Missing.Value, Missing.Value).Text = _madeBy;
                                    // 合同号
                                    xlsWorkSheet.Shapes.Item("CONTRACT").TextFrame.Characters(Missing.Value, Missing.Value).Text = _contractNo;
                                    // 图号
                                    xlsWorkSheet.Shapes.Item("DRAWING_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _drawingNo;
                                    // 高层代号
                                    xlsWorkSheet.Shapes.Item("=").TextFrame.Characters(Missing.Value, Missing.Value).Text = "=" + _topLevelNo;
                                    // 修改号
                                    xlsWorkSheet.Shapes.Item("REVISE_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _revision;
                                    // 页次
                                    if (xlsWorkSheet.Index < pageCount)
                                    {
                                        xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = xlsWorkSheet.Index.ToString() + "+";
                                    }
                                    else
                                    {
                                        xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = (xlsWorkSheet.Index).ToString();
                                    }
                                }

                                //
                                // 图纸内容
                                //

                                if (subSystem.Cables.Count > 0)
                                {
                                    for (int j = 0; j < subSystem.Cables.Count; j++)
                                    {
                                        EQACable cable = subSystem.Cables[j];

                                        // 电缆内容
                                        string[] cableSpec = cable.CableSpec.Split(' ');

                                        xlsWorkSheet.get_Range("B" + cableNumberInPages.ToString(), "O" + cableNumberInPages.ToString()).Value2
                                            = new object[] { (currentCableNumber++).ToString(),
                                                             cable.CableNo,
                                                             cable.StartPosition,
                                                             subSystems.EquipmentInSubSystems(cable.StartPosition) != null?
                                                             subSystems.EquipmentInSubSystems(cable.StartPosition).Area : "",
                                                             cable.EndPosition,
                                                             subSystems.EquipmentInSubSystems(cable.EndPosition) != null?
                                                             subSystems.EquipmentInSubSystems(cable.EndPosition).Area : "",
                                                             cableSpec[0],
                                                             cableSpec[cableSpec.Length - 1],
                                                             cable.CableLength,
                                                             cable.Route,
                                                             cable.ConductSpec,
                                                             cable.ConductLength,
                                                             "",
                                                             cable.Remark, };

                                        xlsWorkSheet.get_Range("B" + (cableNumberInPages + 1).ToString(), "O" + (cableNumberInPages + 1).ToString()).Value2
                                            = xlsWorkSheet.get_Range("B" + cableNumberInPages.ToString(), "O" + cableNumberInPages.ToString()).Value2;

                                        cableNumberInPages += 2;

                                        if (cableNumberInPages >= 14)
                                        {
                                            currentPageNumber++;
                                            xlsWorkSheet      = (Microsoft.Office.Interop.Excel.Worksheet)xlsApp.Worksheets[currentPageNumber];
                                            xlsWorkSheet.Name = (currentPageNumber).ToString();
                                            xlsWorkSheet.Activate();

                                            //
                                            // 图框内容

                                            // 专业
                                            xlsWorkSheet.Shapes.Item("DWG_SPECIALITY").TextFrame.Characters(Missing.Value, Missing.Value).Text = _speciality;
                                            // 设计阶段
                                            xlsWorkSheet.Shapes.Item("DESIGN_STAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _stage;
                                            // 日期
                                            xlsWorkSheet.Shapes.Item("PRINT_DATE").TextFrame.Characters(Missing.Value, Missing.Value).Text = _date;
                                            // 室审
                                            xlsWorkSheet.Shapes.Item("DEPT_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _reviewedBy;
                                            // 审核
                                            xlsWorkSheet.Shapes.Item("DWG_CHECKER").TextFrame.Characters(Missing.Value, Missing.Value).Text = _checkedBy;
                                            // 设计
                                            xlsWorkSheet.Shapes.Item("DWG_DESIGN").TextFrame.Characters(Missing.Value, Missing.Value).Text = _designBy;
                                            // 制图
                                            xlsWorkSheet.Shapes.Item("DWG_DRAW").TextFrame.Characters(Missing.Value, Missing.Value).Text = _madeBy;
                                            // 合同号
                                            xlsWorkSheet.Shapes.Item("CONTRACT").TextFrame.Characters(Missing.Value, Missing.Value).Text = _contractNo;
                                            // 图号
                                            xlsWorkSheet.Shapes.Item("DRAWING_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _drawingNo;
                                            // 高层代号
                                            xlsWorkSheet.Shapes.Item("=").TextFrame.Characters(Missing.Value, Missing.Value).Text = "=" + _topLevelNo;
                                            // 修改号
                                            xlsWorkSheet.Shapes.Item("REVISE_NO").TextFrame.Characters(Missing.Value, Missing.Value).Text = _revision;
                                            // 页次
                                            if (xlsWorkSheet.Index < pageCount)
                                            {
                                                xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = xlsWorkSheet.Index.ToString() + "+";
                                            }
                                            else
                                            {
                                                xlsWorkSheet.Shapes.Item("PAGE").TextFrame.Characters(Missing.Value, Missing.Value).Text = (xlsWorkSheet.Index).ToString();
                                            }

                                            cableNumberInPages = 4;
                                        }
                                    }
                                }
                            }
                        }
                    }

                    break;

                default:
                    break;
                }
                return(true);
            } catch (Exception ex) {
                return(false);
            }
        }