Example #1
0
 public bool Equals(IStamp <int> other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     return(Hash == other.Hash);
 }
Example #2
0
        private bool _isDisposed; // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!_isDisposed)
            {
                _lastStateStamp = null;
                _isDisposed     = true;
            }
        }
Example #3
0
 private void CallToAllStamps(string action)
 {
     foreach (var child in cvMainAdorner.Children)
     {
         if (child is IStamp)
         {
             IStamp stamp = (IStamp)child;
             if (action == "PageSelected")
             {
                 stamp.UpdatedSelectedPage();
             }
         }
     }
 }
 /// <summary>
 /// Создать пдф по координатам и формату
 /// </summary>
 public IResultApplication PrintStamp(IStamp stampContainer, ColorPrintApplication colorPrint, string prefixSearchPaperSize) =>
 new ResultAppValue <IStamp>(stampContainer, new ErrorApplication(ErrorApplicationType.StampNotFound, "Штамп не найден")).
 ResultValueContinue(stamp => stamp is IStampMicrostation,
                     okFunc: stamp => (IStampMicrostation)stamp,
                     badFunc: _ => new ErrorApplication(ErrorApplicationType.StampNotFound, "Штамп не соответствует формату Microstation")).
 ResultVoidOk(stamp => stamp.StampCellElement.ModelMicrostation.Activate()).
 ResultValueOkBind(stamp => ApplicationMicrostation.SetPrintingFenceByRange(stamp.StampCellElement.Range).
                   ToResultApplicationValue(stamp)).
 ResultValueOkBind(stamp => ApplicationMicrostation.SetPrinterPaperSize(stamp.PaperSize, prefixSearchPaperSize).
                   ToResultApplicationValue(stamp))?.
 ResultVoidOk(stamp => ApplicationMicrostation.SetPrintingOrientation(stamp.Orientation)).
 ResultVoidOk(stamp => ApplicationMicrostation.SetPrintScale(stamp.StampCellElement.UnitScale)).
 ResultVoidOk(_ => ApplicationMicrostation.SetPrintColor(colorPrint)).
 ResultVoidOk(_ => ApplicationMicrostation.PrintCommand()).
 ToResultApplication();
Example #5
0
 public static PBStampChronology ToPBStamp(this IStamp c)
 {
     //# Tested
     return(new PBStampChronology
     {
         PublicId = c.PublicId.ToPBPublicId(),
         StampVersions =
         {
             new PBStampVersion
             {
                 Status = c.Status.ToPBConcept(),
                 Author = c.Author.ToPBConcept(),
                 Module = c.Module.ToPBConcept(),
                 Path = c.Path.ToPBConcept(),
                 Time = Timestamp.FromDateTime(c.Time)
             }
         }
     });
 }
Example #6
0
        public void SpsDoc(int n_str, string text, string dat, int n_doc)
        {
            IKompasDocument doc   = appl.Documents.Open(path[n_doc], true, false);// Получаем интерфейс активного документа 2D в API7
            ksSpcDocument   DocS  = (ksSpcDocument)kompas.SpcActiveDocument();
            ksStamp         stamp = DocS.GetStamp();



            stamp.ksOpenStamp();

            //_______________________________________
            LayoutSheets _ls   = doc.LayoutSheets;
            LayoutSheet  LS    = _ls.ItemByNumber[1];
            var          q     = _ls.ItemByNumber[1].Stamp;
            IStamp       isamp = LS.Stamp;
            IText        qq    = isamp.Text[10];

            Console.WriteLine("Есть ли руковод -------------  " + qq.Str);
            //________________________________________


            stamp.ksColumnNumber(120);
            ksTextItemParam itemParam = (ksTextItemParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextItemParam);

            if (itemParam != null)
            {
                itemParam.Init();

                ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont();
                if (itemFont != null)
                {
                    itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true);
                    itemFont.fontName = "Staccato222 BT";

                    itemParam.s = "44444";
                    stamp.ksTextLine(itemParam);
                }
            }

            stamp.ksCloseStamp();
        }
        private void SetUserStamp(T entity, bool isUpdate)
        {
            if (entity is IStamp)
            {
                IStamp stamp = entity as IStamp;
                if (!isUpdate)
                {
                    stamp.CreatedBy   = LoggedUser.Id;
                    stamp.CreatedDate = DateTime.Now;
                }
                stamp.ModifiedBy   = LoggedUser.Id;
                stamp.ModifiedDate = DateTime.Now;
            }
            else if (entity is ICreatedStamp && !isUpdate)
            {
                ICreatedStamp stamp = entity as ICreatedStamp;

                stamp.CreatedBy   = LoggedUser.Id;
                stamp.CreatedDate = DateTime.Now;
            }
        }
Example #8
0
 /// <summary>
 /// Имя файла печати с учетом принципа именования
 /// </summary>
 private static IResultValue <string> GetFileNameByNamingType(string fileName, PdfNamingType pdfNamingType, IStamp stamp) =>
 pdfNamingType switch
 {
Example #9
0
 public int CompareTo(IStamp other)
 {
     return(DateTime.CompareTo(other));
 }
Example #10
0
 public bool Equals(IStamp other)
 {
     return(other != null && DateTime.Equals(other.DateTime));
 }
Example #11
0
 /// <summary>
 /// Получить сокращенные штампы
 /// </summary>
 private IResultAppCollection <IStamp> GetShortStamps(IEnumerable <ITableElementWord> tablesStamp, IStamp fullStamp, ConvertingSettingsApp convertingSettings) =>
 StampCreating.GetShortStamps(fullStamp, tablesStamp,
                              StampCreating.GetStampSettingsWord(1, convertingSettings, PaperSize, OrientationType),
                              ApplicationOffice.ResourcesWord.SignaturesSearching);
Example #12
0
 /// <summary>
 /// Команда печати
 /// </summary>
 public IResultApplication PrintStamp(IStamp stamp, ColorPrintApplication colorPrint, string prefixSearchPaperSize) =>
 new ResultApplication().
 Void(_ => ApplicationOffice.PrintCommand());
 /// <summary>
 /// Add a stamp to the set
 /// </summary>
 /// <param name="stamp"></param>
 /// <remarks>
 /// This will likely be called by the XML config.
 /// </remarks>
 /// <remarks>
 /// The default behavior is that if no stamps are explicitly added, the <see cref="DefaultStamps"/> are used instead.
 /// </remarks>
 public void AddStamp(IStamp stamp)
 {
     Stamps.Add(stamp);
 }
Example #14
0
 private IResultError PrintCommand(IDocumentLibrary documentLibrary, IStamp stamp, string filePath,
                                   ConvertingModeType convertingModeType, ColorPrintType colorPrintType,
                                   string prefixSearchPaperSize) =>
 PrintCommandFunc(documentLibrary, stamp, colorPrintType, prefixSearchPaperSize).
 Map(printCommand => convertingModeType switch
Example #15
0
 /// <summary>
 /// Печать
 /// </summary>
 private IResultValue <IFileDataSourceServer> CreatePrintingService(IDocumentLibrary documentLibrary, IStamp stamp, IFilePath filePath,
                                                                    ConvertingModeType convertingModeType, ColorPrintType colorPrintType,
                                                                    IResultValue <IPrinterInformation> printerInformation) =>
 printerInformation.
 ResultVoidOk(printer => _messagingService.ShowMessage($"Установка принтера {printer.Name}")).
 ResultVoidOk(printer => SetDefaultPrinter(printer.Name)).
 ResultVoidOk(printer => _messagingService.ShowMessage($"Печать файла {filePath.FileNameClient}")).
 ResultValueOkBind(_ => PrintCommand(documentLibrary, stamp, filePath.FilePathServer, convertingModeType, colorPrintType,
                                     printerInformation.Value.PrefixSearchPaperSize)).
 ResultVoidOk(_ => _loggerService.LogByObject(LoggerLevel.Debug, LoggerAction.Operation, ReflectionInfo.GetMethodBase(this), filePath.FilePathServer)).
 ResultValueOk(_ => new FileDataSourceServer(filePath.FilePathServer, filePath.FilePathClient, convertingModeType,
                                             stamp.PaperSize, printerInformation.Value.Name));
Example #16
0
 private void SaveStateStamp(object obj)
 {
     _lastStateStamp = _stateStamper.GetStamp(obj);
 }
Example #17
0
        public void Doc2D(int n_str, int n_str_dat, string text, string dat, int n_doc, bool ruk = false)
        {
            IKompasDocument doc   = appl.Documents.Open(path[n_doc], true, false);// Получаем интерфейс активного документа 2D в API7
            ksDocument2D    docD  = (ksDocument2D)kompas.ActiveDocument2D();
            ksStamp         stamp = (ksStamp)docD.GetStamp();

            Console.WriteLine("функция Doc2D ");


            stamp.ksOpenStamp();


            //_____________________________________________________________
            LayoutSheets _ls   = doc.LayoutSheets;
            LayoutSheet  LS    = _ls.ItemByNumber[1];
            IStamp       isamp = LS.Stamp;
            IText        qq    = isamp.Text[10];

            Console.WriteLine("Есть ли руководитель -------------  " + qq.Str);
            //_____________________________________________________________



            stamp.ksColumnNumber(n_str);
            ksTextItemParam itemParam = (ksTextItemParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextItemParam);

            if (itemParam != null)
            {
                itemParam.Init();

                ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont();
                if (itemFont != null)
                {
                    itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true);
                    itemParam.s = text;
                    docD.ksTextLine(itemParam);
                }
            }

            stamp.ksColumnNumber(n_str_dat);

            if (itemParam != null)
            {
                itemParam.Init();

                ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont();
                if (itemFont != null)
                {
                    itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true);
                    itemParam.s = dat;
                    docD.ksTextLine(itemParam);
                }
            }


            if (ruk == true)
            {
                stamp.ksColumnNumber(123);

                if (itemParam != null)
                {
                    itemParam.Init();

                    ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont();
                    if (itemFont != null)
                    {
                        itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true);
                        itemParam.s = textBox2.Text;
                        docD.ksTextLine(itemParam);
                    }
                }


                stamp.ksColumnNumber(133);

                if (itemParam != null)
                {
                    itemParam.Init();

                    ksTextItemFont itemFont = (ksTextItemFont)itemParam.GetItemFont();
                    if (itemFont != null)
                    {
                        itemFont.SetBitVectorValue(ldefin2d.NEW_LINE, true);
                        itemParam.s = dat;
                        docD.ksTextLine(itemParam);
                    }
                }
            }

            stamp.ksCloseStamp();



            //doc.Close(0); //Закрыть документ
        }
Example #18
0
        public void START()
        {
            int stolb     = 1; //   A - B - C - D     //Cells(5, 3) = C5
            int stroka    = 1; //  1-2-3
            int nomer_Sps = 1;



            spec_stroka[] Spisok_dok = new spec_stroka[1500];



            //for (int i1 = 0; i1 <1000;i1++)
            //{
            //    Sps[i1] = new spec_stroka();
            //}



            Console.WriteLine("Количество документов = " + path.Count);
            for (int i = 0; i < path.Count; i++)
            {
                IKompasDocument doc = appl.Documents.Open(path[i], false, false);// Получаем интерфейс активного документа 2D в API7
                Console.WriteLine("Получение спецификации из документа № - " + Convert.ToInt32(i + 1));

                SpecificationDescription Specification_Descriptions = doc.SpecificationDescriptions.Active;



                if (Specification_Descriptions != null)
                {
                    ISpecificationCommentObjects SpcObjects     = Specification_Descriptions.CommentObjects;
                    ISpecificationBaseObjects    SpcObjectsBase = Specification_Descriptions.BaseObjects;


                    //Console.WriteLine(" ВСПОМОГАТЕЛЬНЫЕ объекты " + SpcObjects.Count);
                    //Console.WriteLine(" Базовые объекты " + SpcObjectsBase.Count);
                    int kol_com  = SpcObjects.Count;
                    int kol_base = SpcObjectsBase.Count;

                    if (kol_com == 0 & kol_base > 0)
                    {
                        tip_obj_base = true;
                        num          = kol_base;
                    }
                    if (kol_base == 0 & kol_com > 0)
                    {
                        tip_obj_base = false;
                        num          = kol_com;
                    }



                    ISpecificationObject  Specification_Object;
                    ISpecificationColumns Specification_Columns;
                    ISpecificationColumn  Specification_Column;

                    // Начало блока вспомагательных объктов
                    for (int SD = 0; SD < num; SD++)
                    {
                        Console.WriteLine("----- Строка " + (SD + 1) + "   ---- ");
                        Console.WriteLine("");
                        //var ww = SpcObjects[SD];
                        if (!tip_obj_base)
                        {
                            ISpecificationCommentObject obj = SpcObjects[SD];
                            var OBJ = obj;
                            ISpecificationColumns oC = obj.Columns;
                            int qq = obj.Section;
                            Console.WriteLine("!!!!СЕКЦИЯ " + (qq) + "   !!!!!");
                            Specification_Object = obj;
                            nomer_razdela        = qq;
                            //5 - документация   10 - комплексы    15 - сборочные единицы   20 - детали    25 - стандартные изделия   30 - прочие изделия    35 - материалы      40 - комплекты
                        }
                        else
                        {
                            ISpecificationBaseObject obj_base = SpcObjectsBase[SD];
                            var OBJ = obj_base;
                            ISpecificationColumns oC = obj_base.Columns;
                            int qq = obj_base.Section;
                            Console.WriteLine("!!!!СЕКЦИЯ " + (qq) + "   !!!!!");
                            Specification_Object = obj_base;
                            nomer_razdela_base   = qq;
                        }

                        if (((nomer_razdela == 5) | (nomer_razdela_base == 5)) & (i != 0))
                        {
                            Console.WriteLine("----------------Пропуск раздела документация-------------------");
                            continue;
                        }
                        else
                        {
                            Sps[nomer_Sps]          = new spec_stroka();
                            Sps[nomer_Sps].doc_name = ObrezFileName(path[i]);
                            Sps[nomer_Sps].sortir   = false;


                            if (nomer_razdela == 5 | nomer_razdela_base == 5)
                            {
                                Sps[nomer_Sps].tip_stroki = "CБ";
                                Console.WriteLine("----------------Запись раздела документация  ГЛАВНОГО ДОКУМЕНТА-------------------");
                            }

                            if (nomer_razdela == 15 | nomer_razdela_base == 15)
                            {
                                Sps[nomer_Sps].tip_stroki = "CБ";
                            }
                            if (nomer_razdela == 25 | nomer_razdela_base == 25)
                            {
                                Sps[nomer_Sps].tip_stroki = "СТ";
                            }
                            if (nomer_razdela == 30 | nomer_razdela_base == 30)
                            {
                                Sps[nomer_Sps].tip_stroki = "П";
                            }
                            if (nomer_razdela == 35 | nomer_razdela_base == 35)
                            {
                                Sps[nomer_Sps].tip_stroki = "М";
                            }



                            Specification_Columns = Specification_Object.Columns;

                            for (int bCol = 0; bCol < Specification_Columns.Count; bCol++)
                            {
                                Specification_Column = Specification_Columns[bCol];
                                var st = Specification_Column.Text.Str;
                                Console.WriteLine("Столбец " + (bCol + 1) + " - " + st);

                                //Заполнение      /////////////////////////////////////                            ///////////////////////////
                                //sheet.Cells[stroka, stolb] = st;
                                if (nomer_razdela == 20 | nomer_razdela_base == 20)
                                {
                                    if (bCol == 0)
                                    {
                                        if (st != "БЧ")
                                        {
                                            Sps[nomer_Sps].tip_stroki = "Д";
                                        }
                                        else
                                        {
                                            Sps[nomer_Sps].tip_stroki = "БЧ";
                                        }
                                    }
                                }

                                switch (bCol)
                                {
                                case 0:
                                    Sps[nomer_Sps].format = st;


                                    break;

                                case 2:
                                    Sps[nomer_Sps].poz = st;
                                    break;

                                case 3:
                                    //Sps[nomer_Sps].obozn = st;
                                    Sps[nomer_Sps].obozn = ObrezSB(st);
                                    break;

                                case 4:
                                    //Sps[nomer_Sps].naimen = st;
                                    if (nomer_razdela == 5 | nomer_razdela_base == 5)
                                    {
                                        Sps[nomer_Sps].naimen = textBox4.Text;
                                    }
                                    else
                                    {
                                        Sps[nomer_Sps].naimen = Regex.Replace(st, @"[ \n]", " ");
                                    }

                                    break;

                                case 5:
                                    Sps[nomer_Sps].kol = st;
                                    break;

                                case 6:
                                    Sps[nomer_Sps].prim = st;
                                    break;
                                }

                                //stolb += 1;
                            }

                            Console.WriteLine("----- Конец cтроки ---- ");
                            // stolb = 1;
                            //stroka += 1;
                            nomer_Sps         += 1;
                            nomer_razdela      = 0;
                            nomer_razdela_base = 0;
                        }
                    }



                    if (doc != null)
                    {
                        doc.Close(0); //Закрыть документ
                    }
                }
                else
                {
                    Console.WriteLine("Пропущен документ (документ не спецификации, и не на чертеже)");
                    if (doc != null)
                    {
                        ksDocument2D docD  = (ksDocument2D)kompas.ActiveDocument2D();
                        ksStamp      stamp = (ksStamp)docD.GetStamp();


                        LayoutSheets _ls   = doc.LayoutSheets;
                        LayoutSheet  LS    = _ls.ItemByNumber[1];
                        IStamp       isamp = LS.Stamp;
                        IText        qq    = isamp.Text[3];
                        IText        ww    = isamp.Text[2];

                        Console.WriteLine("ШТАМП Материал -------------  " + qq.Str);
                        Console.WriteLine("ШТАМП Обозначение -------------  " + ww.Str);

                        Sps[nomer_Sps]            = new spec_stroka();
                        Sps[nomer_Sps].doc_name   = ObrezFileName(path[i]);
                        Sps[nomer_Sps].obozn      = ww.Str;
                        Sps[nomer_Sps].tip_stroki = "Материал из детали";
                        Sps[nomer_Sps].material   = qq.Str;
                        Sps[nomer_Sps].sortir     = false;

                        nomer_Sps += 1;
                        doc.Close(0); //Закрыть документ
                    }
                }

                doc.Close(0);
                Console.WriteLine("");
                Console.WriteLine("-Проверка-");
            }



            ////////////////////////////////////////////////////////////////////////////////////////

            //sheet.Columns["D:D"].ColumnWidth = 16.0;
            // sheet.Columns["E:E"].ColumnWidth = 25.0;


            try
            {
                //ex.Application.ActiveWorkbook.SaveAs("D:\\1111111111111111111.xlsx", Type.Missing,
                // Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange,
                //Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            }
            catch
            {
                MessageBox.Show("Сперва закройте БазуНСИ");
            }



            ///////////////////////////////////////////

            /*
             *
             * workBook = null;
             * sheet = null;
             * //ex.Quit();
             * ex = null;
             * GC.Collect();
             *
             */



            for (int i2 = 0; i2 < 1500; i2++)
            {
                if (Sps[i2] != null)
                {
                    if (Sps[i2].sortir != null)
                    {
                        Sps[i2].GetInfoSst();
                    }
                }
            }
        }