Пример #1
0
        public void CallAsFunc(int lMethodNum, ref object pvarRetValue, ref System.Array paParams)
        {               //Здесь внешняя компонента выполняет код функций.
            MessageBoxIcon icon;

            pvarRetValue = 0;                     //Возвращаемое значение метода для 1С

            switch (lMethodNum)                   //Порядковый номер метода
            {
            case (int)Methods.methMessageBoxShow: //Реализуем метод MessageBoxShow внешней компоненты
            {
                icon = MessageBoxIcon.None;
                //Преобразовываем текстовое описание значка в MessageBoxIcon.ххх
                switch (strMessageBoxIcon)
                {
                case "Asterisk":
                    icon = MessageBoxIcon.Asterisk;
                    break;

                case "Error":
                    icon = MessageBoxIcon.Error;
                    break;

                case "Exclamation":
                    icon = MessageBoxIcon.Exclamation;
                    break;

                case "Hand":
                    icon = MessageBoxIcon.Hand;
                    break;

                case "Information":
                    icon = MessageBoxIcon.Information;
                    break;

                case "None":
                    icon = MessageBoxIcon.None;
                    break;

                case "Question":
                    icon = MessageBoxIcon.Question;
                    break;

                case "Stop":
                    icon = MessageBoxIcon.Stop;
                    break;

                case "Warning":
                    icon = MessageBoxIcon.Warning;
                    break;
                }


                //Преобразовываем текстовое описание кнопок в MessageBoxButtons.ххх
                MessageBoxButtons butt = MessageBoxButtons.OK;
                switch (strMessageBoxButtons)
                {
                case "AbortRetryIgnore":
                    butt = MessageBoxButtons.AbortRetryIgnore;
                    break;

                case "OK":
                    butt = MessageBoxButtons.OK;
                    break;

                case "OKCancel":
                    butt = MessageBoxButtons.OKCancel;
                    break;

                case "RetryCancel":
                    butt = MessageBoxButtons.RetryCancel;
                    break;

                case "YesNo":
                    butt = MessageBoxButtons.YesNo;
                    break;

                case "YesNoCancel":
                    butt = MessageBoxButtons.YesNoCancel;
                    break;
                }

                DialogResult res;
                string       strMessageBoxText;
                string       strMessageBoxHeader;
                string       strDialogResult;


                strMessageBoxText   = (string)paParams.GetValue(0);                       //Получаем первый параметр нашей функции - текст предупреждения
                strMessageBoxHeader = (string)paParams.GetValue(1);                       //Получаем второй параметр нашей функции - заголовок предупреждения

                //Показываем диалоговое окно MessageBox.Show
                res = MessageBox.Show(strMessageBoxText, strMessageBoxHeader, butt, icon);
                //Преобразовываем результат из DialogResult.ххх в текстовую строку
                switch (res)
                {
                case DialogResult.Abort:
                    strDialogResult = "Abort";
                    break;

                case DialogResult.Cancel:
                    strDialogResult = "Cancel";
                    break;

                case DialogResult.Ignore:
                    strDialogResult = "Ignore";
                    break;

                case DialogResult.No:
                    strDialogResult = "No";
                    break;

                case DialogResult.None:
                    strDialogResult = "None";
                    break;

                case DialogResult.OK:
                    strDialogResult = "OK";
                    break;

                case DialogResult.Retry:
                    strDialogResult = "Retry";
                    break;

                case DialogResult.Yes:
                    strDialogResult = "Yes";
                    break;

                default:
                    strDialogResult = "";
                    break;
                }

                pvarRetValue = strDialogResult;                         //Возвращаемое значение

                //Сбрасываем все свойства в исходное состояние
                strMessageBoxButtons = "OK";
                strMessageBoxIcon    = "None";
                break;
            }                     // конец метода MessageBosIcon
            //////////////////////////////////////////////////////////

            case (int)Methods.methExternalEvent:                      //Реализуем метод для генерации внешнего события
            {
                string s1;
                string s2;
                string s3;
                s1 = (string)paParams.GetValue(0);
                s2 = (string)paParams.GetValue(1);
                s3 = (string)paParams.GetValue(2);
                V7Data.AsyncEvent.ExternalEvent(s1, s2, s3);
                break;
            }                     // конец метода ExternalEvent
            //////////////////////////////////////////////////////////

            case (int)Methods.methShowErrorLog:                      //Реализуем метод для показа сообщения об ошибке
            {
                string s1;
                s1 = (string)paParams.GetValue(0);

                AddInLib.ExcepInfo ei = new AddInLib.ExcepInfo();
                ei.wCode           = 1006;               //Вид пиктограммы
                ei.bstrDescription = s1;
                ei.bstrSource      = c_AddinName;

                V7Data.ErrorLog.AddError("", ei);
                throw new System.Exception("An exception has occurred.");
                break;
            }                     // конец метода ShowErrorLog
            //////////////////////////////////////////////////////////

            case (int)Methods.methStatusLine:                     //Реализуем тестовый метод для изменения строки состояния
            {
                string s1;
                s1 = (string)paParams.GetValue(0);
                V7Data.StatusLine.SetStatusLine(s1);
                System.Threading.Thread.Sleep(1000);                         //Делаем паузу 1 сек
                V7Data.StatusLine.ResetStatusLine();
                break;
            }
            }
        }
Пример #2
0
        public void CallAsFunc(int lMethodNum, ref object pvarRetValue, ref System.Array paParams)
        {
            //Здесь внешняя компонента выполняет код функций.
            MessageBoxIcon icon;
            pvarRetValue = 0; //Возвращаемое значение метода для 1С

            switch(lMethodNum) //Порядковый номер метода
            {
                case (int)Methods.methMessageBoxShow: //Реализуем метод MessageBoxShow внешней компоненты
                {
                    icon = MessageBoxIcon.None;
                    //Преобразовываем текстовое описание значка в MessageBoxIcon.ххх
                    switch(strMessageBoxIcon)
                    {
                        case "Asterisk":
                            icon = MessageBoxIcon.Asterisk;
                            break;
                        case "Error":
                            icon = MessageBoxIcon.Error;
                            break;
                        case "Exclamation":
                            icon = MessageBoxIcon.Exclamation;
                            break;
                        case "Hand":
                            icon = MessageBoxIcon.Hand;
                            break;
                        case "Information":
                            icon = MessageBoxIcon.Information;
                            break;
                        case "None":
                            icon = MessageBoxIcon.None;
                            break;
                        case "Question":
                            icon = MessageBoxIcon.Question;
                            break;
                        case "Stop":
                            icon = MessageBoxIcon.Stop;
                            break;
                        case "Warning":
                            icon = MessageBoxIcon.Warning;
                            break;
                    }

                    //Преобразовываем текстовое описание кнопок в MessageBoxButtons.ххх
                    MessageBoxButtons butt = MessageBoxButtons.OK;
                    switch(strMessageBoxButtons)
                    {
                        case "AbortRetryIgnore":
                            butt = MessageBoxButtons.AbortRetryIgnore;
                            break;
                        case "OK":
                            butt = MessageBoxButtons.OK;
                            break;
                        case "OKCancel":
                            butt = MessageBoxButtons.OKCancel;
                            break;
                        case "RetryCancel":
                            butt = MessageBoxButtons.RetryCancel;
                            break;
                        case "YesNo":
                            butt = MessageBoxButtons.YesNo;
                            break;
                        case "YesNoCancel":
                            butt = MessageBoxButtons.YesNoCancel;
                            break;
                    }

                    DialogResult res;
                    string strMessageBoxText;
                    string strMessageBoxHeader;
                    string strDialogResult;

                    strMessageBoxText = (string)paParams.GetValue(0); //Получаем первый параметр нашей функции - текст предупреждения
                    strMessageBoxHeader = (string)paParams.GetValue(1);//Получаем второй параметр нашей функции - заголовок предупреждения

                    //Показываем диалоговое окно MessageBox.Show
                    res = MessageBox.Show(strMessageBoxText, strMessageBoxHeader, butt, icon);
                    //Преобразовываем результат из DialogResult.ххх в текстовую строку
                    switch(res)
                    {
                        case DialogResult.Abort:
                            strDialogResult = "Abort";
                            break;
                        case DialogResult.Cancel:
                            strDialogResult = "Cancel";
                            break;
                        case DialogResult.Ignore:
                            strDialogResult = "Ignore";
                            break;
                        case DialogResult.No:
                            strDialogResult = "No";
                            break;
                        case DialogResult.None:
                            strDialogResult = "None";
                            break;
                        case DialogResult.OK:
                            strDialogResult = "OK";
                            break;
                        case DialogResult.Retry:
                            strDialogResult = "Retry";
                            break;
                        case DialogResult.Yes:
                            strDialogResult = "Yes";
                            break;
                        default:
                            strDialogResult = "";
                            break;
                    }

                    pvarRetValue = strDialogResult; //Возвращаемое значение

                    //Сбрасываем все свойства в исходное состояние
                    strMessageBoxButtons = "OK";
                    strMessageBoxIcon = "None";
                    break;
                } // конец метода MessageBosIcon
                    //////////////////////////////////////////////////////////

                case (int)Methods.methExternalEvent:  //Реализуем метод для генерации внешнего события
                {
                    string s1;
                    string s2;
                    string s3;
                    s1 = (string)paParams.GetValue(0);
                    s2 = (string)paParams.GetValue(1);
                    s3 = (string)paParams.GetValue(2);
                    V7Data.AsyncEvent.ExternalEvent(s1, s2, s3);
                    break;
                } // конец метода ExternalEvent
                    //////////////////////////////////////////////////////////

                case (int)Methods.methShowErrorLog:  //Реализуем метод для показа сообщения об ошибке
                {
                    string s1;
                    s1 = (string)paParams.GetValue(0);

                    AddInLib.ExcepInfo ei = new AddInLib.ExcepInfo();
                    ei.wCode = 1006; //Вид пиктограммы
                    ei.bstrDescription = s1;
                    ei.bstrSource = c_AddinName;

                    V7Data.ErrorLog.AddError("", ei);
                    throw new System.Exception("An exception has occurred.");
                    //break;
                } // конец метода ShowErrorLog
                    //////////////////////////////////////////////////////////

                case (int)Methods.methStatusLine: //Реализуем тестовый метод для изменения строки состояния
                {
                    string s1;
                    s1 = (string)paParams.GetValue(0);
                    V7Data.StatusLine.SetStatusLine(s1);
                    System.Threading.Thread.Sleep(1000); //Делаем паузу 1 сек
                    V7Data.StatusLine.ResetStatusLine();
                    break;
                }
            }
        }