示例#1
0
        public НалогиНаФОП()
        {
            Sotrs = new List <SotrFOP>();
            List <НалогНаФОП> NalogsFOP = new List <НалогНаФОП>();

            OLE ноЗПФонды;
            OLE СпрШкала = V7Z.CreateObject("Справочник.ШкалаСтавок");

            if (СпрШкала.Method("НайтиПоКоду", (object)"ЗПФонды").ToBool())
            {
                ноЗПФонды = СпрШкала.Method("ТекущийЭлемент");
            }
            else
            {
                throw new Exception("ОШИБКА !!! Не могу найти сведения о налогах с фонда оплаты труда \n В справочнике 'Шкалы ставок' не обнаружен элемент с кодом 'ЗПФонды'");
            }

            СпрШкала.Method("ИспользоватьРодителя", ноЗПФонды);
            СпрШкала.Method("ИспользоватьДату", ДатаПериода.End);
            СпрШкала.Method("ПорядокКодов");
            СпрШкала.Method("ВыбратьЭлементы");

            while (СпрШкала.Method("ПолучитьЭлемент").ToBool())
            {
                НалогНаФОП nalog = new НалогНаФОП((string)СпрШкала.Property("Код"));
                NalogsFOP.Add(nalog);
            }
        }
 public IVsTextBuffer CreateVsTextBufferAdapterForSecondaryBuffer(OLE.Interop.IServiceProvider serviceProvider, ITextBuffer secondaryBuffer)
 {
     VsTextBufferMock tb = new VsTextBufferMock(secondaryBuffer);
     _textBufferAdapters[tb.TextBuffer] = tb;
     _vsTextBufferAdapters[tb] = tb.TextBuffer;
     return tb;
 }
 public IVsTextView CreateVsTextViewAdapter(OLE.Interop.IServiceProvider serviceProvider)
 {
     VsTextViewMock tv = new VsTextViewMock();
     _textViewAdapters[tv.TextView] = tv;
     _vsTextViewAdapters[tv] = tv.TextView;
     return tv;
 }
示例#4
0
        private ICharacterMarkerSymbol GetMarkerSymbol(bool bLocated)
        {
            //Create a new system draw font
            System.Drawing.Font drawFont = new System.Drawing.Font("ESRI Crime Analysis", 21);

            //Create a new CharacterMarkerSymbol and get the ICharacterMarkerSymbol interface
            ICharacterMarkerSymbol charMarker = new CharacterMarkerSymbolClass();

            //Set the marker symbol properties
            charMarker.Font = (stdole.IFontDisp)OLE.GetIFontDispFromFont(drawFont);

            if (bLocated == true)
            {
                charMarker.CharacterIndex = 56;
                charMarker.Color          = GetRGBColor(255, 0, 0);
                charMarker.Size           = 30;
            }
            else
            {
                charMarker.CharacterIndex = 46;
                charMarker.Color          = GetRGBColor(0, 0, 0);
                charMarker.Size           = 30;
            }
            return(charMarker);
        }
 public IVsTextBuffer CreateVsTextBufferAdapter(OLE.Interop.IServiceProvider serviceProvider, IContentType contentType)
 {
     VsTextBufferMock tb = new VsTextBufferMock(contentType);
     _textBufferAdapters[tb.TextBuffer] = tb;
     _vsTextBufferAdapters[tb] = tb.TextBuffer;
     return tb;
 }
示例#6
0
        private void SetLineDoc(ref OLE DOC, Проводка provodka, int WriteCount)
        {
            DOC.Method("НоваяСтрока");
            Trace.WriteLine(WriteCount + " Проводка - Д(" + provodka.Debit.Account.Property("Код").ToString() +
                            ") K(" + provodka.Credit.Account.Property("Код").ToString() +
                            ") SUMM(" + (double)provodka.Summ + ")");

            DOC.Property("ВидДеятельности", provodka.Debit.Subconto[0]);
            DOC.Property("Подразделение", provodka.Debit.Subconto[1]);
            if (provodka.Debit.Zatrat != null)
            {
                DOC.Property("ВидЗатрат", provodka.Debit.Zatrat);
            }
            else
            {
                DOC.Property("ВидЗатрат", provodka.Credit.Zatrat);
            }
            DOC.Property("Счет", provodka.Credit.Account);
            int i;

            for (i = 0; i < provodka.Credit.Subconto.Length; i++)
            {
                if (provodka.Credit.Subconto[i] != null)
                {
                    DOC.Method("НазначитьТип", "Субконто" + (i + 1), provodka.Credit.Account.Method("ВидСубконто", i + 1));
                    DOC.Property("Субконто" + (i + 1), provodka.Credit.Subconto[i]);
                }
            }

            DOC.Property("Сумма", (double)provodka.Summ);
            DOC.Property("Примечание", provodka.Comment);
            //Operation.Property("НашаФирма", CommonVariables.FirmB /* CommonVariables.BFirm.CurrentItem */);
        }
示例#7
0
        private OLE DefaultSubconto(int SubcontoNumber, string SubcontoName)
        {
            OLE Result;

            if (SubcontoName == "договора")
            {
                Result = V7B.CreateObject("Документ.Договор");
                if (Result.Method("НайтиПоНомеру", TemplateEntry.Property("Субконто" + Marker + (SubcontoNumber + 1)).Property("Code").ToString()).ToBool())
                {
                    return(Result.Method("CurrentItem"));
                }
            }
            else
            {
                Result = V7B.CreateObject("Справочник." + SubcontoName);
                int search = 0;
                if (V7B.EvalExpr("Метаданные.Справочник(\"" + SubcontoName + "\").СерииКодов").ToString().Trim().ToUpper() == ("ВПределахПодчинения").ToUpper())
                {
                    search = 2;
                }

                if (Result.Method("FindByCode", TemplateEntry.Property("Субконто" + Marker + (SubcontoNumber + 1)).Property("КАУ").ToString().Trim(), search).ToBool())
                {
                    if (SubcontoName.ToUpper() == "ВидыЗатрат".ToUpper())
                    {
                        Zatrat = Result.Method("CurrentItem");
                    }
                    return(Result.Method("CurrentItem"));
                }
            }
            return(null);
        }
示例#8
0
        // OLE     Проводка         - элемент справочника ЭП_Проводки, на основании которого формируется проводка
        // decimal Сумма            - сумма проводки
        // string СотрудникКод      - код сотрудника, по которому формирует проводка
        // string ПодразделениеКод  - код подразделения по которому формируется проводка
        // DateTime Period          - Период формируемой проводки
        // bool ЭтоНачисленияНаОтпуск - Прзнак начисления на отпуск
        public Проводка(OLE ШаблонПроводки, decimal Сумма, string СотрудникКод, string ПодразделениеКод, DateTime Period, bool ЭтоНачисленияНаОтпуск)
        {
            if (OLE.IsEmtyValue(ШаблонПроводки.Property("СчетДебета")) && OLE.IsEmtyValue(ШаблонПроводки.Property("СчетКредита")))
            {
                Error = "В проводке " + ШаблонПроводки.Property("Код") + " хоз. операции " + ШаблонПроводки.Property("Владелец").Property("Description") + " не заданы счета! Проводка не формируется!";
                return;
            }


            Сумма = decimal.Round(Сумма, 2);

            if (Сумма == 0)
            {
                Error = "По проводке №" + ШаблонПроводки.Property("Код") + " хоз. операции " + ШаблонПроводки.Property("Владелец").Property("Description") + " сумма 0! Проводка не формируется!";
                return;
            }


            if (ШаблонПроводки.Property("УказанПроцент").ToBool())
            {
                Summ = decimal.Round(Сумма * ШаблонПроводки.Property("Процент").ToDecimal() / 100, 2);
            }
            else
            {
                Summ = Сумма;
            }

            Debit   = new Debit(ШаблонПроводки, СотрудникКод, ПодразделениеКод, Period, ЭтоНачисленияНаОтпуск);
            Credit  = new Credit(ШаблонПроводки, СотрудникКод, ПодразделениеКод, Period, ЭтоНачисленияНаОтпуск);
            Comment = " ";
        }
示例#9
0
        private stdole.IFontDisp GetIFontDisp(float size)
        {
            const string    FontFamilyName = "Arial";
            const FontStyle FontStyle      = FontStyle.Bold;

            Font font = new Font(FontFamilyName, size, FontStyle);

            return(OLE.GetIFontDispFromFont(font) as stdole.IFontDisp);
        }
示例#10
0
        public static OLE GetReferenceElementZIK(string ReferenceType, string Code)
        {
            OLE reference = V7Z.CreateObject("Справочник." + ReferenceType);

            if (reference.Method("FindByCode", Code).ToBool())
            {
                return(reference.Method("CurrentItem"));
            }
            return(null);
        }
示例#11
0
        public decimal Procent(DateTime onDate)
        {
            OLE СпрШкала = V7Z.CreateObject("Справочник.ШкалаСтавок");

            if (!СпрШкала.Method("НайтиПоКоду", СпрШкалаКод).ToBool())
            {
                throw new Exception("Ошибка позиционирования по коду ШкалаСтавок.");
            }
            return((decimal)СпрШкала.Property("Ставка").Method("Получить", onDate));
        }
示例#12
0
 public static bool СистемныйВидРасч(OLE Вир)
 {
     // Возвращает 1, если вид расчета является системным (нач. сальдо, к выплате за месяц)
     if ((Вир.Property("ВидРасч").Property("CODE").ToString() == "НачальноеСальдо") ||
         (Вир.Property("ВидРасч").Property("CODE").ToString() == "КВыплатеЗаМесяц") ||
         (Вир.Property("ВидРасч").Property("CODE").ToString() == "ВыплатаЧерезКассу") ||
         (Вир.Property("ВидРасч").Property("CODE").ToString() == "ВыплатаЧерезБанк"))
     {
         return(true);
     }
     return(false);
 }
示例#13
0
        public void Add(OLE Rasch, decimal rez, List <НалогНаФОП> NalogsFOP)
        {
            PeriodFOP p = new PeriodFOP(Rasch.Method("НачалоПериодаПоДате", Rasch.Property("ДатаНачала")).ToDateTime(), Rasch.Property("Объект"), NalogsFOP);
            int       i = Period.BinarySearch(p);

            if (i < 0) // New Period
            {
                Period.Add(p);
                Period.Sort();
                i = Period.BinarySearch(p);
            }
            Period[i].Add(Rasch, rez);
        }
示例#14
0
        public static ITextSymbol makeTextSymbol(string fontName, int fontSize)
        {
            ITextSymbol textSymbol = new TextSymbolClass();

            System.Drawing.Font drawFont = new System.Drawing.Font(fontName, fontSize, FontStyle.Bold);
            textSymbol.Font  = (stdole.IFontDisp)OLE.GetIFontDispFromFont(drawFont);
            textSymbol.Color = GetRGBColor(0, 0, 0);
            ITextPath         textPath         = new BezierTextPathClass(); //to spline the text
            ISimpleTextSymbol simpleTextSymbol = (ISimpleTextSymbol)textSymbol;

            simpleTextSymbol.TextPath = textPath;

            return(textSymbol);
        }
示例#15
0
 public void Add(OLE Sotr, OLE Rasch, decimal rez)
 {
     if (Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.ОсновныеНачисления")).ToBool())
     {
         MainRaschet(Sotr, Rasch, rez);
         return;
     }
     if (СистемныйВидРасч(Rasch))
     {
         return;                                 // системные виды расчета (нач.сальдо, к выплате за месяц) не эспортируем
     }
     AtherRaschet(Sotr, Rasch, rez);
     return;
 }
示例#16
0
        public decimal Predel(DateTime onDate)
        {
            OLE СпрШкала = V7Z.CreateObject("Справочник.ШкалаСтавок");

            if (!СпрШкала.Method("НайтиПоКоду", СпрШкалаКод).ToBool())
            {
                throw new Exception("Ошибка позиционирования по коду ШкалаСтавок.");
            }
            string s     = (string)СпрШкала.Property("Дополнительно").Method("Получить", onDate);
            int    start = s.LastIndexOf('=') + 1;

            s = s.Substring(start, s.IndexOf(';', start) - start);
            return(decimal.Parse(s));
        }
示例#17
0
        public static List <MEMReferences> CopyOLERefToMEMRef(OLE OLERef, string Index, bool ISMethodIndex, bool NoDeleted, bool NoGroup)
        {
            List <MEMReferences> MEMRef = new List <MEMReferences>();

            OLERef.Method("¬ыбратьЁлементы");
            while (OLERef.Method("ѕолучитьЁлемент").ToBool())
            {
                if (NoDeleted)
                {
                    if (OLERef.Method("DeleteMark").ToBool())
                    {
                        continue;
                    }
                }

                if (NoGroup)
                {
                    if ((double)OLERef.Method("IsGroup") == 1.0)
                    {
                        continue;
                    }
                }

                MEMReferences MR = new MEMReferences();
                try
                {
                    if (ISMethodIndex)
                    {
                        MR.INDEX = OLERef.Method(Index).ToString().Trim();
                    }
                    else
                    {
                        MR.INDEX = OLERef.Property(Index).ToString().Trim();
                    }
                }
                catch
                {
                    throw new Exception("ќшибка копировани¤ справочника");
                }

                MR.CODE        = OLERef.Property("Code").ToString().Trim();
                MR.DESCRIPTION = OLERef.Property("Description").ToString().Trim();
                MR.Reference   = OLERef.Method("CurrentItem");
                MR.FULLCODE    = OLERef.Method("FullCode").ToString().Trim();
                MEMRef.Add(MR);
            }
            return(MEMRef);
        }
示例#18
0
        private bool FindOperation(ref OLE Oper)
        {
            if ((double)Oper.Method("SelectOpers", CommonVariables.ДатаПериода.End, CommonVariables.ДатаПериода.End) == 0)
            {
                return(false);
            }
            while ((double)Oper.Method("GetOper") == 1.0)
            {
                string s = (string)Oper.Property("Description");
                if (s.Trim() == OperationDescription)
                {
                    return(true);
                }
            }

            return(false);
        }
示例#19
0
        public static OLE ПолучитьСотрудникаПУБ(string СотрудникКод)
        {
            OLE           SotrZIK = GetReferenceElementZIK("Сотрудники", СотрудникКод);
            string        TIN     = SotrZIK.Property("ФизическоеЛицо").Property("ИНН").ToString().Trim();
            MEMReferences MR      = new MEMReferences();

            MR.INDEX = TIN;
            int i   = 0;
            OLE PUB = V7B.CreateObject("Справочник.Сотрудники");

            do
            {
                i = MEMPUBWoker.BinarySearch(MR);
                if (i < 0)
                {
                    // Нет сотрудника в ПУБ
                    MR.DESCRIPTION = SotrZIK.Property("Description").ToString().Trim();
                    if (AutoInsertUser)
                    {
                        MR.Reference = SotrZIK;
                        PUB.Method("New");
                        PUB.Property("ИНН", MR.INDEX);
                        PUB.Property("Description", MR.DESCRIPTION);
                        PUB.Method("Write");
                        MR.CODE     = PUB.Property("Code").ToString().Trim();
                        MR.FULLCODE = PUB.Method("FullCode").ToString().Trim();
                        MEMPUBWoker.Add(MR);
                        MEMPUBWoker.Sort();
                        Trace.WriteLine("Вставим сотрудника в Бухгалтерию - " + MR.CODE + "  " + MR.DESCRIPTION + " ИНН - " + MR.INDEX);
                        return(PUB.Method("CurrentItem"));
                    }
                    DialogResult result = MessageBox.Show("В 1С7.7 Бух отсутствует сотрудник " + MR.DESCRIPTION + " с кодом ИНН - " + MR.INDEX +
                                                          ". Загрузите не монопольно 1С7.7 и введите даного пользователя, после чего нажмите ОК.",
                                                          "Ошибка в справочнике Сотрудники.",
                                                          MessageBoxButtons.OKCancel);
                    if (result == DialogResult.Cancel)
                    {
                        return(null);
                    }
                    CommonVariables.MEMPUBWoker = MEMReferences.CopyOLERefToMEMRef(PUB, "ИНН");
                    MEMPUBWoker.Sort();
                }
            } while (i < 0);
            PUB.Method("FindByCode", MEMPUBWoker[i].CODE);
            return(PUB.Method("CurrentItem"));
        }
示例#20
0
        // Ищем документ
        // Global    - глобальный контекст конфигурации
        // DocName   - название документа
        // DateStart - начальная дата
        // DateEnd   - конечная дата
        // LabelDoc  - метка документа
        // Возврат:
        //    Найденый документ или null
        private OLE FindDoc(OLE Global, string DocName, DateTime DateStart, DateTime DateEnd, string LabelDoc)
        {
            OLE doc = Global.CreateObject("Документ." + DocName);

            if (!doc.Method("ВыбратьДокументы", DateStart, DateEnd).ToBool())
            {
                return(null);
            }
            while (doc.Method("Получитьдокумент").ToBool())
            {
                if (doc.Property("Операция").Property("Description").ToString().Trim() == OperationDescription)
                {
                    return(doc);
                }
            }
            return(null);
        }
示例#21
0
        public void GenEntries(ref Проводки prov, OLE Sotr, List <НалогНаФОП> NalogsFOP)
        {
            foreach (FOPDivision Division in FOPDivision.Values)
            {
                foreach (PeriodFOP per in Division.Period)
                {
                    for (int i = 0; i < per.Nalogs.Count; i++)
                    {
                        OLE спрПроводки = V7Z.CreateObject("Справочник.Проводки");
                        спрПроводки.Method("ИспользоватьВладельца", per.Nalogs[i].НалогНаФОП.ХозОперация);
                        спрПроводки.Method("ВыбратьЭлементы");
                        System.Diagnostics.Trace.WriteLine("Налог на фонд " + per.Nalogs[i].НалогНаФОП.СпрШкалаКод + " за период " +
                                                           per.PerD.ToShortDateString() + " - " + per.Nalogs[i].Налог.ToString() +
                                                           " с отпуска - " + per.Nalogs[i].Налог_с_Отпуска.ToString());

                        while (спрПроводки.Method("ПолучитьЭлемент").ToBool())
                        {
                            if (спрПроводки.Method("ПометкаУдаления").ToBool())
                            {
                                continue;
                            }
                            // Проведём деление на отпускные
                            if (NalogFOP.ИспользоватьРезервОтпусков)
                            {
                                prov.Item.Add(new Проводка(спрПроводки.Method("CurrentItem"),                    //Проводка
                                                           per.Nalogs[i].Налог_с_Отпуска,                        //Сумма
                                                           Code,                                                 //Сотрудник
                                                           FOPDivision.Keys[FOPDivision.IndexOfValue(Division)], //Division
                                                           per.PerD,                                             //Период
                                                           true));

                                //471 счёт
                            }

                            prov.Item.Add(new Проводка(спрПроводки.Method("CurrentItem"),                    //Проводка
                                                       per.Nalogs[i].Налог,                                  //Сумма
                                                       Code,                                                 //Сотрудник
                                                       FOPDivision.Keys[FOPDivision.IndexOfValue(Division)], /*Division*/
                                                       per.PerD));
                            //Период
                        }
                    }
                }
            }
        }
示例#22
0
 /// <summary>
 ///     Updates the bitmap image with the image from the <paramref name="bitmap" />.
 /// </summary>
 /// <param name="bitmap">The bitmap.</param>
 protected void UpdateBitmap(Bitmap bitmap)
 {
     try
     {
         this.Bitmap = OLE.GetIPictureDispFromBitmap(bitmap) as IPictureDisp;
     }
     catch (Exception e)
     {
         if (MinerRuntimeEnvironment.IsUserInterfaceSupported)
         {
             Log.Error("Error Updating Bitmap " + this.Name, e);
         }
         else
         {
             Log.Error(e);
         }
     }
 }
示例#23
0
        public Debit(OLE Проводка, string СотрудникКод, string ПодразделениеКод, DateTime Period, bool ЭтоНачисленияНаОтпуск)
        {
            this.TemplateEntry = Проводка;
            string tAccount = Проводка.Property("Счет" + Marker + "а").Property("Code").ToString().Trim();

            if (tAccount == "")
            {
                throw new Exception("");
            }
            if (tAccount == "ВТ")
            {// Спецподстановка
                tAccount = СчётЗатрат(ПодразделениеКод);
                if (tAccount == "")
                {
                    tAccount = "91";
                    //throw new Exception("");
                }
            }
            this.Account = CommonVariables.BConnection.Global.EvalExpr("СчетПоКоду(\"" + tAccount + "\")");
            tAccount     = this.Account.Property("Code").ToString().Trim();
            if (tAccount == "")
            {
                tAccount     = "91";
                this.Account = CommonVariables.BConnection.Global.EvalExpr("СчетПоКоду(\"" + tAccount + "\")");
                //throw new Exception("");
            }

            // если начисление на отпуск то
            if (ЭтоНачисленияНаОтпуск && (Marker == "Дебет") && ЭтоСчетЗатрат(tAccount))
            {
                this.Account = CommonVariables.BConnection.Global.EvalExpr("СчетПоКоду(\"" + "471" + "\")");
                Subconto     = new OLE[this.Account.Method("КоличествоСубконто").ToInt()];
                Subconto[0]  = ВидДеятельности(ПодразделениеКод);
                Subconto[1]  = GetReferenceElementPUB("подразделения", ПодразделениеКод);
                Subconto[2]  = GetReferenceElementPUB("видызатрат", "0014"); //Отпускные
                return;
            }

            Subconto = new OLE[this.Account.Method("КоличествоСубконто").ToInt()];
            for (int i = 0; i < Subconto.Length; i++)
            {
                Subconto[i] = Analiz(this.Account.Method("ВидСубконто", i + 1).Method("Идентификатор").ToString().Trim().ToLower(), i, СотрудникКод, ПодразделениеКод, Period);
            }
        }
示例#24
0
        private bool НужноРаспределятьПоЗаказам(OLE Пров)
        {
            // Назначение:
            //		По проводке определяет, нужно ли распределять сумму между заказами
            // Аргументы:
            //		Пров - проводка, элемент справочника
            // Возвращает:
            //		true - нужно, false - нет

            string стрДебетКредит = "Дебет";

            for (int Инд = 1; Инд < 2; Инд++)
            {
                for (int ИндСубк = 1; ИндСубк < Проводка.МаксКоличествоСубконто; ИндСубк++)
                {
                    // дебет
                    if ((double)Пров.Method("ПолучитьАтрибут", "АвтоСубконто" + стрДебетКредит + ИндСубк) == 1.0)
                    {
                        OLE Счет = Пров.Method("ПолучитьАтрибут", "Счет" + стрДебетКредит + "а");
                        if (!OLE.IsEmtyValue(Счет))
                        {
                            // автоматически могут определяться также сотрудники и подразделения
                            OLE ВидСубк = Счет.Method("ПолучитьАтрибут", "ВидСубконто" + ИндСубк);
                            if (OLE.IsEmtyValue(ВидСубк))
                            {
                                continue;
                            }
                            string ИдентВидСубк = ВидСубк.Property("Идентиф").ToString().Trim().ToLower();
                            if ((double)V7Z.Property("глСпецВидыСубконто").Method("НайтиЗначение", ИдентВидСубк) == 0)
                            {
                                return(true);
                            }
                        }
                        else
                        {
                            return(true);
                        }
                    }
                }
                стрДебетКредит = "Кредит";
            }
            return(false);
        }
示例#25
0
        private OLE GenDoc231()
        {
            OLE doc = FindDoc(V7B, "ЗатратыПроизводственногоХарактера", CommonVariables.ДатаПериода.End,
                              CommonVariables.ДатаПериода.End, OperationDescription);

            if (doc != null)
            {
                if (doc.Method("Проведен").ToBool())
                {
                    doc.Method("СделатьНеПроведенным");
                }
                doc.Method("УдалитьСтроки");
            }
            else
            {
                doc = V7B.CreateObject("Документ.ЗатратыПроизводственногоХарактера");
                doc.Method("New");
                V7B.Method("глУстановитьФирму", doc);
                doc.Property("ПроводитьПоЭлементамЗатрат", V7B.EvalExpr("?(ИспользоватьСчетаРасходов <> Класс9,1,0)"));
                doc.Property("ДатаДок", CommonVariables.ДатаПериода.End);
                doc.Property("Операция").Property("Description", OperationDescription);
            }
            doc.Property("Примечание", "Генерація проводок " + DateTime.Now);


            // Проверим на пригодность к записи
            bool entr_ok = true;

            do
            {
                try
                {
                    doc.Method("Записать");
                    entr_ok = true;
                }
                catch
                {
                    entr_ok = false;
                    doc.Property("НомерДок", int.Parse(doc.Property("НомерДок").ToString()) + 1);
                }
            } while (!entr_ok);
            return(doc);
        }
示例#26
0
        private void axMapControl1_OnAfterDraw(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnAfterDrawEvent e)
        {
            //If foreground refreshed
            if (e.viewDrawPhase == (int)esriViewDrawPhase.esriViewForeground)
            {
                //If a line object for splining text exists
                if (m_Polyline != null)
                {
                    //Ensure there's at least two points in the line
                    if (m_PointCollection.PointCount > 1)
                    {
                        //Create a line symbol and grab hold of the ILineSymbol interface
                        ILineSymbol lineSymbol = new SimpleLineSymbolClass();
                        //Set line symbol properties
                        lineSymbol.Color = GetRGBColor(0, 0, 0);
                        lineSymbol.Width = 2;

                        //Create a text symbol and grab hold of the ITextSymbol interface
                        ITextSymbol textSymbol = new TextSymbolClass();
                        //Create a system drawing font symbol with the specified properties
                        System.Drawing.Font drawFont = new System.Drawing.Font("Arial", 16, FontStyle.Bold);

                        //Set the text symbol font by getting the IFontDisp interface
                        textSymbol.Font  = (stdole.IFontDisp)OLE.GetIFontDispFromFont(drawFont);
                        textSymbol.Color = GetRGBColor(0, 0, 0);

                        //Create a text path and grab hold of the ITextPath interface
                        ITextPath textPath = new BezierTextPathClass();                          //to spline the text
                        //Grab hold of the ISimpleTextSymbol interface through the ITextSymbol interface
                        ISimpleTextSymbol simpleTextSymbol = (ISimpleTextSymbol)textSymbol;
                        //Set the text path of the simple text symbol
                        simpleTextSymbol.TextPath = textPath;

                        //Draw the line object and spline the user text around the line
                        object oLineSymbol = lineSymbol;
                        object oTextSymbol = textSymbol;
                        axMapControl1.DrawShape(m_Polyline, ref oLineSymbol);
                        axMapControl1.DrawText(m_Polyline, Text1.Text, ref oTextSymbol);
                    }
                }
            }
        }
示例#27
0
        /// <summary>
        /// The ID2D1Factory interface provides the starting point for Direct2D.
        /// In general, an object created from a single instance of a factory object can be used with other resources created from that instance,
        /// but not with resources created by other factory instances.
        /// </summary>
        /// <returns></returns>
        public static bool CreateD2DFactory(ID2D1Factory factory)
        {
            factory = null;
            object ppIFactory = null;
            int    rc         = Win32Error.S_OK;
            IntPtr ptrIID     = IntPtr.Zero;

            GUID iid;

            if ((rc = OLE.IIDFromString(D2DInterfaceID.ID2D1Factory, out iid)) != Win32Error.S_OK)
            {
                logger.ErrorFormat("获取ID2D1Factory IID失败, guid = {0}, code = {1}", D2DInterfaceID.ID2D1Factory, rc);
                return(false);
            }

            try
            {
                ptrIID = Marshal.AllocHGlobal(Marshal.SizeOf(iid));
                Marshal.StructureToPtr(iid, ptrIID, true);
                if ((rc = D2D1.D2D1CreateFactory(D2D1_FACTORY_TYPE.D2D1_FACTORY_TYPE_SINGLE_THREADED, ptrIID, IntPtr.Zero, out ppIFactory)) != Win32Error.S_OK)
                {
                    logger.ErrorFormat("D2D1CreateFactory失败, code = {0}", rc);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                logger.Error("创建D2DFactory异常", ex);
                return(false);
            }
            finally
            {
                if (ptrIID != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(ptrIID);
                }
            }

            factory = ppIFactory as ID2D1Factory;

            return(true);
        }
示例#28
0
        private void New(OLE Сотрудник, OLE Назначение, OLE Проводка, OLE Rasch, decimal Сумма, OLE Comu)
        {
            // Процедура предназначена для добавления проводки к списку проводок
            // Сотрудник, Назначение - используются для выдачи сообщений и проводок
            // Проводка - уже найденная проводка
            // Сумма - сумма для распределения между заказами
            // Распределение - документ "Распределение основных начислений", согласно которому выполняется распределение
            string СотрудникКод     = Сотрудник.Property("Code").ToString().Trim();
            string ПодразделениеКод = Rasch.Property("Объект").Property("Подразделение").Property("Code").ToString().Trim();

            // Вводим поддержку подразделений из назначения
            if (!OLE.IsEmtyValue(Rasch.Property("Назначение")))
            {
                ПодразделениеКод = Rasch.Property("Назначение").Property("МестоРаботы").Property("Владелец").Property("Code").ToString().Trim();
            }
            DateTime period = Rasch.Property("ДатаНачала").ToDateTime();


            Item.Add(new Проводка(Проводка, Сумма, СотрудникКод, ПодразделениеКод, period));
        }
示例#29
0
        /// <summary>
        ///     Updates the bitmap image with the image from the <paramref name="stream" />.
        /// </summary>
        /// <param name="stream">Stream of bitmap to load.</param>
        protected void UpdateBitmap(Stream stream)
        {
            try
            {
                Bitmap bitmap = new Bitmap(stream);
                bitmap.MakeTransparent(bitmap.GetPixel(0, 0));

                this.Bitmap = OLE.GetIPictureDispFromBitmap(bitmap) as IPictureDisp;
            }
            catch (Exception e)
            {
                if (MinerRuntimeEnvironment.IsUserInterfaceSupported)
                {
                    Log.Error("Error Updating Bitmap " + this.Name, e);
                }
                else
                {
                    Log.Error(e);
                }
            }
        }
示例#30
0
        private OLE CreateOperation()
        {
            OLE Operation = V7B.CreateObject("Operation");

            if (FindOperation(ref Operation))
            {
                while (Operation.Method("SelectEntries").ToBool())
                {
                    Operation.Method("DeleteEntry");
                }
            }
            else
            {
                Operation.Method("New");
                Operation.Property("OperDate", CommonVariables.ДатаПериода.End);
                Operation.Property("Description", OperationDescription);
            }
            Operation.Property("Документ").Property("Фирма", CommonVariables.GetFirm(Operation) /*CommonVariables.BFirm.CurrentItem*/);
            Operation.Property("Документ").Property("Примечание", "Генерація проводок " + DateTime.Now);


            // Проверим на пригодность к записи
            bool entr_ok = true;

            do
            {
                try
                {
                    Operation.Method("Записать");
                    entr_ok = true;
                }
                catch
                {
                    entr_ok = false;
                    Operation.Property("Документ").Property("НомерДок", int.Parse(Operation.Property("Документ").Property("НомерДок").ToString()) + 1);
                }
            } while (!entr_ok);
            return(Operation);
        }
示例#31
0
        private void НайтиРаспределение(OLE ПоЧемИщем, ref OLE аспределение, ref OLE ХозОперация)
        {
            // процедура предназначена для поиска документа-распределения и хозоперации в списке
            // ПоЧемИщем - назначение, сотрудник, подразделение или категория, по которой ищем в списке
            // Распределение - найденный документ "Распределение основных начислений"
            // ХозОперация - найденная хозоперация
            if (!OLE.IsEmtyValue(аспределение))
            {
                return;                                  // распределение уже выбрано
            }
            // собственно поиск
            аспределение r = new  аспределение();

            r.DocNumber = ПоЧемИщем.Global.Method("ЗначениеВСтрокуВнутр", ПоЧемИщем).ToString();
            r.Doc       = ПоЧемИщем;


            int Инд = аспределения.Items.BinarySearch(r);

            if (Инд >= 0)
            {
                // получилось найти документ-распределение в списке
                аспределение = аспределения.Items[Инд].Doc;
            }
            else
            {
                if (OLE.IsEmtyValue(ХозОперация))
                {
                    // найдем хозоперацию
                    // возможно для элемента справочника ПоЧемИщем хозоперация задана явно
                    try
                    {
                        ХозОперация = ПоЧемИщем.Property("ХозОперация");
                    }
                    catch { }
                }
            }
        }
示例#32
0
        public string СпрШкалаКод;   // код налога в справочнике шкалы ставок
        /// <summary>
        ///  Проверить использутся ли данный вид расчета в даном налоге
        /// </summary>
        /// <param name="Rasch">Пороверяемый расчет </param>
        public bool ВходитВНалог(OLE Rasch)
        {
            switch (СпрШкалаКод)
            {
            case "ФЗППенс":
                return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаПенсионныйФЗП2004")).ToBool());

            case "ФЗППенсЛет":
                return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаПенсионныйФЗП2004")).ToBool());

            case "ФЗППенсИнв":
                return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаПенсионныйФЗП2004")).ToBool());

            case "ФЗПСоцСтрах":
                return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаСоцСтрахФЗП2004")).ToBool());

            case "ФЗПСоцСтрахИнв":
                return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаСоцСтрахФЗП2004")).ToBool());

            case "ФЗПБезраб":
                return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаБезработицаФЗП2004")).ToBool());

            case "ФЗПБезрабИнв":
                return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаБезработицаФЗП2004")).ToBool());

            case "ФЗПСоцСтрахНесч":
                return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.БазаСоцСтрахНесчФЗП2004")).ToBool());

            case "ФЗПРезервОтп":
                return(Rasch.Property("ВидРасч").Method("ВходитВГруппу", Rasch.EvalExpr("ГруппаРасчетов.ВключатьВСреднююДляОтпуска")).ToBool());

            case "ФЗПБезрабГПХ":
                return(Rasch.Property("ВидРасч").Property("CODE").ToString().Trim() == "ОплатаПоДоговору");
            }
            return(false);
        }
示例#33
0
        /// <summary>
        ///  Получить зарегистрированный элемент справочника "фирмы"
        /// </summary>
        /// <param name="handle">Ссылка на активную 1С7.7 </param>
        public static OLE GetFirm(OLE handle)
        {
            if (handle == null)
            {
                return(null);
            }
            OLE temp = handle.Global.CreateObject("Справочник.Фирмы");

            temp.Method("ВыбратьЭлементы");
            while (temp.Method("ПолучитьЭлемент").ToBool())
            {
                if (temp.Method("DeleteMark").ToBool())
                {
                    continue;
                }
                if (temp.Property("ЕДРПОУ").ToString().Trim() == conf.CommonAllConfig.ЕДРПОУ)
                {
                    return(temp.Method("CurrentItem"));
                }
            }
            System.Diagnostics.Trace.WriteLine("Программа не зарегистрирована для даной базы: " + handle.EvalExpr("SystemCaption()").ToString());
            temp.Dispose();
            return(null);
        }
 public IVsTextView CreateVsTextViewAdapter(OLE.Interop.IServiceProvider serviceProvider, ITextViewRoleSet roles) {
     return CreateVsTextViewAdapter(serviceProvider);
 }
 public IVsCodeWindow CreateVsCodeWindowAdapter(OLE.Interop.IServiceProvider serviceProvider) {
     return new VsCodeWindowMock();
 }
示例#36
0
 public int CreateToolWindow(uint grfCTW, uint dwToolWindowId, object punkTool, ref Guid rclsidTool, ref Guid rguidPersistenceSlot, ref Guid rguidAutoActivate, OLE.Interop.IServiceProvider psp, string pszCaption, int[] pfDefaultPosition, out IVsWindowFrame ppWindowFrame) {
     var mock = new VsWindowFrameMock(pszCaption);
     _frames[rguidPersistenceSlot] = mock;
     ppWindowFrame = mock;
     return VSConstants.S_OK;
 }
示例#37
0
 public int CreateDocumentWindow(uint grfCDW, string pszMkDocument, IVsUIHierarchy pUIH, uint itemid, IntPtr punkDocView, IntPtr punkDocData, ref Guid rguidEditorType, string pszPhysicalView, ref Guid rguidCmdUI, OLE.Interop.IServiceProvider psp, string pszOwnerCaption, string pszEditorCaption, int[] pfDefaultPosition, out IVsWindowFrame ppWindowFrame) {
     throw new NotImplementedException();
 }