none
c# Добавить пользовательские переменные excel,word RRS feed

  • Общие обсуждения

  • Здравствуйте. Использую Interpop.Excel\Word.

    Я хочу выполнить такой алгоритм. Из программы открыть отчет(excel,word) отловить там событие пересохранения документа и этот документ вставить в базу(заменив прошлый).

    public static void WorkbookBeforeSave(Microsoft.Office.Interop.Excel.Workbook value, bool value1, ref bool value2)
            {
                SetForegroundWindow(Program.handlemainform);
                if (MessageBox.Show("Сохранить документ в базу данных "+Program.nameApp, "Сохранение данных", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
                    return;
                //Сохраняем измененный
                value.Application.WorkbookBeforeSave -= WorkbookBeforeSave;
                value.Save();
                //Вставляем в базу
                InsertDocumenttoDB(id_project, type_doc, file, "xls");
                //Если вдруг еще раз будем сохранять изменения
                value.Application.WorkbookBeforeSave += WorkbookBeforeSave;
            }


    Отловить событие я отловил. Но чтобы вставить в базу мне нужно передать как то id_project, id_type_document обратно в мою функцию. Тоесть после открытия отчета мне нужно excel\ word передать 2 пользовательские переменные, а потом их вытянуть. Подскажите, в какое свойство\метод их можно запихать(как для excel, так и для word требуется ответ)?

    глобальные переменные не подойдут.

    Можно конечно сделать отдельный класс для отчетов, и там создавать у него свойство тип отчета и номер проекта.. Но не хочу усложнять проект, когда скорее всего реализовано уже все это в классе interpop.

    как один из вариантов можно в название файла закинуть <номер проекта> <тип документа>.xls , но если сделать сохранить как и чуть изменить название файла, все пойдет наперекосяк)

    Можно даже просто неиспользуемые\редк используемые текстовые свойства.

    16 июня 2014 г. 5:38

Все ответы