вот пример простого плагина, который добавляет кнопку в Toolbar окна номенклатуры.
При нажатии на кнопку создаётся и показывается форма "Коллекции компонентов".
Пример написан на C#
При нажатии на кнопку создаётся и показывается форма "Коллекции компонентов".
Пример написан на C#
Код |
---|
using System; using Csdn.Vogbit.Base; using Csdn.Vogbit.Data; using Csdn.Vogbit.Forms; using Csdn.Vogbit.Main; using System.Windows.Forms; namespace VogbitPluginExample { [Caption("PluginExample")] [ID("{EB7B1DCC-0DDE-4eaf-B500-2D669DE4557C}")] public class Example: PlugInBase { private const string CommandGuidString = "{67ED1590-AB70-46f7-94F9-58A462D333DB}"; private const string CategoryGuidString = "{B18D68B3-33B2-45eb-BBCA-424B30E65B48}"; protected override void Connect() { base.Connect(); ExtForms.EventHandler += ExtFormsEventHandler; } void ExtFormsEventHandler(object sender, ExtensibleFormsEventArgs e) { if (e.EventType == ExtensibleFormsEventType.NewForm) { if (e.PlugInForm.GetType() == typeof(NomenclatureGridForm)) { var commandId = new Guid(CommandGuidString); var categoryId = new Guid(CategoryGuidString); var barManager = (IBarManager) e.PlugInForm; var barCategory = barManager.BarCategories.Add(categoryId, "Пример"); var exampleButton = barManager.BarCommands.AddButtonCommand(commandId, barCategory, "Команда", false); //exampleButton.IconGlyph = exampleButton.Caption = "Пример кнопки"; exampleButton.ActionExecute += ExampleButtonActionExecute; } } } void ExampleButtonActionExecute(object sender, ActionExecuteEventArgs e) { if (((IPlugInDataForm)ExtForms.ActiveForm).CurrentItem != null) { //long nmkId = ((NomenclatureItem) ((IPlugInDataForm) ExtForms.ActiveForm).CurrentItem).ID; long nmkId = ((IPlugInDataForm) ExtForms.ActiveForm).CurrentItem["ID"].AsLongInt; var formParams = new PlugInFormParams(); formParams["OwnerID"].Value = nmkId; var collectionsForm = ExtForms.GetNewForm(typeof (OwnedComponentCollectionsForm).ToString()); collectionsForm.TabText = "Пример формы"; collectionsForm.OpenForm(formParams); collectionsForm.ShowFloatingForm(DockStyle.None); } } } } |