![]() ![]() |
° Начало ° Ответить ° Статистика ° Регистрация ° Поиск ° RSS ° Wiki ° |
![]() |
Форумы Интермех / Search, ImProject / Search API Выделение документов |
Автор | Сообщение |
ragman Участник АО "ЛЭС" |
Дата: 7 Май 2014 13:54:41 ° Поправил: ragman Здравствуйте. Подскажите, кто знает, какими функциями Search API выделить в текущем окне, в частности на рабочем столе, некоторые документы. Например, есть задача из документов, находящихся у меня на редактировании и отображаемых на рабочем столе, выбрать документы, с определенными значениями дополнительных параметров (например фамилия в поле Разработал"). Для этого я вручную выделяю в окне с документами, те из которых буду выбирать, и запускаю свою программу (C#). Используя пример из документации Search API, прохожу по выделенным документам и пытаюсь снять выделение с тех, которые мне не нужны. TS4SelectedItems SelItems; ... SelItems = app.GetSelectedItems(); ... k = SelItems.SelectedCount(); if (SelItems.FirstSelected() == 1) { //'переход к первой отмеченной записи for (int i = 0; i < k ; i++) { //'цикл по отмеченным записям id = SelItems.ActiveDocID; //'инвентарный номер отмеченного документа if (id > 0) { app.OpenDocument(id); //'делаем документ текущим, чтобы можно было пользоваться функциями API для работы с ним r = app.GetFieldValue("Разработал"); ver = app.GetDocVersionID(); id2 = app.CurrentDocID; if (r == cbRazrabotal.SelectedItem.ToString()) { textBox1.AppendText("id="); textBox1.AppendText(id.ToString()); textBox1.AppendText("/"); textBox1.AppendText(id2.ToString()); textBox1.AppendText("->"); textBox1.AppendText("Версия: "); textBox1.AppendText(ver.ToString()); textBox1.AppendText("\r\n"); SelItems.InvertCurrent(); k--; } } SelItems.NextSelected(); } } Так вот, строки, выводящие информацию в textBox1, выдают данные по документу на котором в данный момент установлен курсор и который открыт командой app.OpenDocument(id). Рис.1 Но команда SelItems.InvertCurrent(); инвертирует выделение на следующем документе. Рис.2 Что не так в этой команде? Может я в принципе неправильно подхожу к этому вопросу? |
Jk Участник НПП Интермех |
Дата: 7 Май 2014 15:10:25 Какая у вас версия Search? Проверьте ваш пример с InvertCurrent не на рабочем столе а например в архиве, помоему на рабочем столе с этим была какая то проблема.. |
ragman Участник АО "ЛЭС" |
Дата: 7 Май 2014 15:50:33 ° Поправил: ragman Jk Версия исполняемого файла: 12.0.2.2241 Дата сборки: 26.02.2014 Проверил на архиве документов - работает нормально. Но проблема вся в том что для своих целей в архиве документов я могу воспользоваться инструментом "Отметить группу по шаблону". А на рабочем столе этот инструмент не работает и ТП ответила что он не работает "по техническим причинам". Т.е. я так понимаю что работать и не будет. Вобщем, очень жаль ![]() ps: В ходе экспериментов выяснил, что при запуске в архиве документов значения свойств ActiveDocID и CurrentDocID совпадают (Рис.3), а при запуске на рабочем столе - значения отличаются (Рис.4). |
M.A.N. Участник НПП "Интермех" |
Дата: 7 Май 2014 16:26:54 Работа фунции InvertCurrent на рабочем столе будет исправлена в Search 12sp3 |
ragman Участник АО "ЛЭС" |
Дата: 8 Май 2014 08:10:51 M.A.N. Спасибо. Буду ждать. А нет ли функции которая добавляла бы к выделению документ по его id? |
M.A.N. Участник НПП "Интермех" |
Дата: 19 Май 2014 11:52:49 Цитата: ragman А нет ли функции которая добавляла бы к выделению документ по его id?Нет |
ragman Участник АО "ЛЭС" |
Дата: 20 Май 2014 08:24:50 M.A.N. Жаль |
На форуме сейчас: гостей - 1 пользователей - 0 |
Наибольшее количество посетителей: 165 [12 Янв 2025 18:00:44] гостей - 165 / пользователей - 0 |
miniВВ © 2001-2025 |