Форумы Интермех
 ° Начало ° Ответить ° Статистика ° Регистрация ° Поиск ° RSS ° Wiki °

Форумы Интермех / Search, ImProject / События в Search
Автор Сообщение
Kostyaev
Участник
Волгодонск

Дата: 17 Сен 2009 12:01:46


Здравствуйте!
Нам понадобилось автоматически заполнять дополнительный параметр при создании объекта с определённой маской обозначения.
насколько я знаю событий в на создание, удаление и т . д. в Search нет вообще.
Подскажите пожалуйста какую ни будь идею.

Jk
Участник
НПП Интермех

Дата: 17 Сен 2009 12:58:18


Попробуйте найти на инсталяционном диске файл:
...\API_Demos\event_plugins\SearchPlugin.txt

Kostyaev
Участник
Волгодонск

Дата: 17 Сен 2009 16:48:37


Спасибо! Попробовал изменить пример плагина из папки \Basic,
зарегистрировал библиотеку на сервере, в инишку прописил название плагина и GUID взял из Delphi, так как закоментил некоторые события и изменил обработчик для OnInsertArticle. Запустил Search и никакого результата

Jk
Участник
НПП Интермех

Дата: 17 Сен 2009 17:19:00


Цитата: Kostyaev
зарегистрировал библиотеку на сервере

это где?
билиотека должна быть зарегистрирована там где запускается Search.

Kostyaev
Участник
Волгодонск

Дата: 18 Сен 2009 14:27:32


Разобрался. Регистрировать библиотеку вообще не понадобилось. На всех машинах плагин заработал автоматически. Но есть одно но.

При возникновении события OnInsertArticle плагину возвращается строка с кривым обнозначением. Например:
Я создаю объект с обозначением ДСМК.ХХХХХХ.ХХХ-ХХХ но вот уже в плагин попадает обозначение Д(CMK - буквы латинские). Вот Hex:
---------------------------
S4
---------------------------
D0 94 43 4D 4B 2E 36 38 37 32 34 33 2E 39 39 39 2D 39 39 39
D0 94 43 4D 4B 2E
D0 94 D0 A1 D0 9C D0 9A 2E
---------------------------
OK
---------------------------

где первая строка это переданное плагину полное обозначение
вторая строка это первые пять символов обозначения
Третья строка это теже самые первые пять РУССКИХ символов.

Подскажите пожалуйста как это лечить?

Kostyaev
Участник
Волгодонск

Дата: 18 Сен 2009 16:30:00


И ещё такой вопрос. Мне требуется записать значение в полее ХХХХ таблицы SECT_X, но по событию OnInsertArticle записи в данной таблице ещё нет. Если её созать то Search ругается на дублирующиеся записи в таблице. События OnAfterInsertArticle Я не нашел. Подскажите пожалуйста выход

Jk
Участник
НПП Интермех

Дата: 18 Сен 2009 17:08:38


в чем проблема уточните? не понял что я должен увидеть в hex

в OnInsertArticle передается то обозначение которое записано у изделия.

Jk
Участник
НПП Интермех

Дата: 18 Сен 2009 17:14:56 ° Поправил: Jk


по поводу SECT_X:

вот мой пример - если будет создан объект типа "Деталь" то в материал ему пишется "тест" - у Вас так сработает?
function TTestAddinEx.OnInsertArticle(var Info: ArticleInfo): Integer;
begin
  Result := MsgDlg1('OnInsertArticle', Info);
  if Info.Vid = 4 then
  begin
    MessageDlg('test', mtWarning, [mbOK], 0);
    S4Intf.OpenArticle(Info.ID);
    S4Intf.SetFieldValue_Articles('Материал', 'тест');
  end;
end;


Kostyaev
Участник
Волгодонск

Дата: 21 Сен 2009 08:35:52


Цитата: Jk
в чем проблема уточните? не понял что я должен увидеть в hex


Возвращаемая строка записана в юникоде. Для русских Символов это два байта, для английских - один байт. Все строчки имеют первый символ D094, который равен символу "Д". Далее первые две строчки имеют один байт на символ, но третья строчка имеет два байта на символ: D0 94 D0 A1 D0 9C D0 9A 2E

Где

D0 94 - "Д"
D0 A1 - "М"
D0 9C - "С"
D0 9A - "К"
2E - "."


D0 94 43 4D 4B 2E 36 38 37 32 34 33 2E 39 39 39 2D 39 39 39
D0 94 43 4D 4B 2E

Где E2 это символ точки. Ещё раз все три строки:

D0 94 43 4D 4B 2E 36 38 37 32 34 33 2E 39 39 39 2D 39 39 39
D0 94 43 4D 4B 2E
D0 94 D0 A1 D0 9C D0 9A 2E

Первая строка это то что, приходит по событию OnInsertArticle
Вторая - это первые пять символов первой строки.
Третья - Это эталонные пять символов в русской раскладке (ДСМК.).

По поводу того, что возвращаются вводимые символы. У меня нет разного рода автопереключалок раскладки клавиатуры. И если я написал первый символ русский, а его не спутаешь с латинским, то и остальные так же напишу. Плюс, пробовал вставлять текст с эталонной строки методом копирования. Результат тот же

Kostyaev
Участник
Волгодонск

Дата: 21 Сен 2009 09:17:28


Воспользовался Вашим примером, переделал его под себя. Всё работает отлично. Спасибо! Ещё бы с сиволами разобраться и вообще сказка будет!

Jk
Участник
НПП Интермех

Дата: 21 Сен 2009 10:32:55 ° Поправил: Jk


А попробуйте зайти в Search администратор, вызовите команду меню
Настройка/Индексный сервер/Настройка правил индексации
и выключите там все галки (запомните что было включено чтобы потом восстановить)
После этого попробуйте перезапустить Search и посмотреть что будет в плагине.

Kostyaev
Участник
Волгодонск

Дата: 21 Сен 2009 13:47:49


Нашел там галочку "Нормализовать одинаковые по написанию символы". Думаю это и есть решение моей проблемы! Спасибо за помощь!

Ваш ответ

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



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

На форуме сейчас: гостей - 1
пользователей - 0
Наибольшее количество посетителей: 87 [1 Янв 2017 02:23:26]
гостей - 87 / пользователей - 0


miniВВ © 2001-2021