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; } } }
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; } } }