Форумы Интермех
 ° Начало ° Ответить ° Статистика ° Регистрация ° Поиск ° 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.
Жаль

Ваш ответ

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL 
...



Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 

На форуме сейчас: гостей - 1
пользователей - 0
Наибольшее количество посетителей: 165 [12 Янв 2025 18:00:44]
гостей - 165 / пользователей - 0


miniВВ © 2001-2025