Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Опыт и разработки пользователей ИРБИС :  ИРБИС Irbis
 
Страницы: <<12345678>>
Страница: 7 из 8
Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 08, March, 2017 07:02

Barkoff написал(а):
-------------------------------------------------------
> Да, второй вариант нужен.

Взгляните на этот пример: https://github.com/amironov73/ManagedIrbis/tree/master/Examples/ManagedClient/MaliciousDebtors

С помощью данной программы генерируется таблица Excel, показанная в предыдущем моём сообщении. Для этого используется библиотека DevExpress, однако всё очень легко переделывается под любую другую.

Небольшие пояснения:

* В файле App.config хранятся строка подключения к серверу и количество месяцев, на которые читатель должен задолжать книгу, чтобы сведения о ней были включены в отчёт.

* В исходном коде программы присуствует константа LibraryName, по которой из отчёта исключаются книги, задолженные сотрудниками библиотеки. Эту фильтрацию легко отключить, если она не нужна.

* В реальной программе, используемой в "Молчановке", вместо формата по умолчанию brief.pft используется sbrief.pft (можно взять здесь: https://github.com/amironov73/ManagedIrbis/blob/master/TestData/sbrief.pft). Он выдаёт более информативное биб. описание за счёт того, что у авторов не выводится имя, отчетство, в область заглавия не выводятся сведения об ответственности. Имя формата можно настроить в константе FormatName в исходном коде программы.

* Если вышеописанное улучшение биб. описания с помощью sbrief не нужно, его можно закомментировать в тексте программы.

* Генерация таблицы Excel в 1250 строк с помощью этой программы на рабочем месте библиотекаря занимает около двух минут.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: Ivan88 (IP-адрес скрыт)
Дата: 16, November, 2017 06:03

Скажите пожалуйста, актуальна ли сейчас эта библиотека и в чем ее преимущество в сравнении с IRBIS64_CLIENT.DLL?

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 16, November, 2017 08:42

Ivan88 написал(а):
-------------------------------------------------------
> Скажите пожалуйста, актуальна ли сейчас эта
> библиотека и в чем ее преимущество в сравнении с
> IRBIS64_CLIENT.DLL?

Текущая версия в NuGet (https://www.nuget.org/packages/ManagedClient/) вполне актуальна, работает с современными версиями сервера ИРБИС64 (начиная с 2012.1) и успешно применяется в проектах ряда библиотек.

Главное преимущество ManagedClient64 по сравнению с IRBIS64_CLIENT.DLL — независимость от архитектуры компьютера/операционной системы. На данный момент в библиотеках активно применяются клиенты, использующие ManagedClient64 и работающие на WinMobile, Android и Raspberry Pi (Raspbian OS и Windows 10 IoT Edition). Есть также клиенты на Ubuntu Linux x64. Оригинальная библиотека IRBIS64_CLIENT.DLL на перечисленных системах не работает.

Другим важным достоинством ManagedClient64 является открытость — исходные тексты опубликованы на GitHub (https://github.com/amironov73/ManagedClient.4), поэтому библиотеку можно переделывать под свои нужды (некоторые пользователи так и поступили).

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: Ivan88 (IP-адрес скрыт)
Дата: 16, November, 2017 10:17

Спасибо за скорый ответ.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: Barkoff (IP-адрес скрыт)
Дата: 30, November, 2017 18:36

Здравствуйте. У нас странное дело, июльская версия работает нормально, а последняя очищает запись, как при неправильном символе в обозначении подполя. Но старая версия не очищает те записи.
Пока пробуем собрать логи.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 30, November, 2017 23:08

Barkoff написал(а):
-------------------------------------------------------
> Здравствуйте. У нас странное дело, июльская версия
> работает нормально, а последняя очищает запись,
> как при неправильном символе в обозначении
> подполя. Но старая версия не очищает те записи.
> Пока пробуем собрать логи.

Честно говоря, я мало что понял. "Июльская версия" чего?

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: Barkoff (IP-адрес скрыт)
Дата: 01, December, 2017 11:04

ManagedIrbis июльский.
Прилагаю логи.

Вложения: Logs.rar (109.6KB)  
Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 04, December, 2017 02:05

Barkoff написал:
-------------------------------------------------------
> ManagedIrbis июльский.

Версия 1.7.2 с NuGet?

А какая тогда «последняя»? 1.8.1 с NuGet?

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: Barkoff (IP-адрес скрыт)
Дата: 11, January, 2018 12:24

Извиняюсь за столь поздний ответ. Это у нас опять поле 902 содержит неправильные символы.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 11, January, 2018 14:13

Barkoff написал(а):
-------------------------------------------------------
> Извиняюсь за столь поздний ответ. Это у нас опять
> поле 902 содержит неправильные символы.

В чём заключается их "неправильность"? При выполнении какой функции возникает этот эффект?

Пока из Ваших сообщений, к сожалению, я не могу понять, что происходит и как можно помочь.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: pwdimkapw (IP-адрес скрыт)
Дата: 16, March, 2018 15:06

Добрый день.
Не получается реализовать пересоздания словаря.

Примерный код:
string DB = "BD";
ManagedClient64 client = new ManagedClient64();
client.ParseConnectionString(*строка подключения*);
client.Connect();
client.Timeout = 10000;
client.RebuildDictionary(DB);

На последней строке ломается. Помогите, пожалуйста. Как сделать правильно?

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 16, March, 2018 15:25

pwdimkapw написал(а):
-------------------------------------------------------
> Добрый день.
> Не получается реализовать пересоздания словаря.
...
> На последней строке ломается. Помогите,
> пожалуйста. Как сделать правильно?

Не очень понятно, что значит "ломается". Возникает исключение? Какое (желательно точный текст)?

От имени какого АРМа вы подключаетесь? Пересоздание словаря доступно только АРМ "Администратор". Есть ли в строке подключения фрагмент "ARM=A;" ?

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: pwdimkapw (IP-адрес скрыт)
Дата: 16, March, 2018 15:57

Вот она моя невнимательность.. Спасибо за быстрый отклик. Да, я забыл указать Арм. Теперь строка имеет такой вид : "host=****;port=****;user=****;password=****; DB=" + DB + ";ARM=A;"
Но теперь не происходит соединение. Висит На этой строке: client.Connect()



Редактировано 2 раз. Последний раз 16.03.2018 15:59 пользователем pwdimkapw.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 16, March, 2018 16:23

pwdimkapw написал(а):
-------------------------------------------------------
> Вот она моя невнимательность.. Спасибо за быстрый
> отклик. Да, я забыл указать Арм. Теперь строка
> имеет такой вид :
> "host=****;port=****;user=****;password=****; DB="
> + DB + ";ARM=A;"
> Но теперь не происходит соединение. Висит На этой
> строке: client.Connect()

"A" латинская? INI-файл для пользователя прописан в client_m.mnu? Правильно прописан (т. е. такой файл есть, он доступен серверу, в нём нет ошибок)?

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: pwdimkapw (IP-адрес скрыт)
Дата: 16, March, 2018 16:46

Решилось. Апострофы пропусти: APM='A'

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: Barkoff (IP-адрес скрыт)
Дата: 26, February, 2020 22:03

Здравствуйте!
Я использую версию 1.9.2.2906
Не удаётся найти запись читателя по инвентарному номеру выданного экземпляра. Действую следующим образом:
connection.Database = "RDR"
var readerRecord = connection.SearchRead("\"B={0}\"", book.ExInventory).FirstOrDefault();

В программе с Версией 1.8.3 всё находится.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: Gena (IP-адрес скрыт)
Дата: 27, February, 2020 07:46

Вы уверены, что указали правильно инверсию словаря? По умолчанию в дистрибутиве Ирбиса в базе RDR для выданной литературы используется словарь H=

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: lybs (IP-адрес скрыт)
Дата: 22, December, 2020 16:09

Опробовал. Глючит, если в формат нужно вставить что-то кириллическое (сформированное программой).

Например,

string y="2020";
string fio="АПС";
string etr="ШК";


string f=
"&uf('J,TH="+y+"-"+fio+"-"+etr+"')"; /* f должно быть передано в ирбис как формат

Как бороться с этим?



Редактировано 1 раз. Последний раз 22.12.2020 16:15 пользователем lybs.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: lybs (IP-адрес скрыт)
Дата: 22, December, 2020 16:13

Опробовал. Глючит, если нужно передать в формат что-то кириллическое.

Например,

string y="2020";
string fio="АПС";
string etr="ШК";


string f="&uf('J,TH="+y+"-"+fio+"-"+etr+"')"; // f передаётся как формат в Ирбис


Если переменные fio и etr не содержат кириллицы, работает нормально, если содержат, глючит.

Как с этим бороться?

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 22, December, 2020 16:19

lybs написал(а):
-------------------------------------------------------
> Опробовал. Глючит, если нужно передать в формат
> что-то кириллическое.
> Как с этим бороться?

Покажите код, как именно Вы "передаёте в формат".

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: lybs (IP-адрес скрыт)
Дата: 22, December, 2020 16:28

Точную копипасту не приведу, сейчас я на другом компьютере.

Просто передаю строку f как аргумент ManagedClient64.FormatRecord(string format, int mfn)



using (var client = new ManagedClient64 ())
{
string connectionString = System.Configuration.AppSettings["connection-string"];
client.ParseConnectionString ( connectionString );
client.Connect ();

string y="2020";
string fio="АПС";
string etr="ШК";
string f="&uf('J,TH="+y+"-"+fio+"-"+etr+"')"; // f передаётся как формат в Ирбис


client.FormatRecord (f, 1);

}



Редактировано 2 раз. Последний раз 22.12.2020 16:31 пользователем lybs.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: lybs (IP-адрес скрыт)
Дата: 22, December, 2020 16:30

Добавлю, что здесь формат не зависит от MFN, поэтому второй аргумент произвольный.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 22, December, 2020 16:37

lybs написал(а):
-------------------------------------------------------
> Просто передаю строку f как аргумент
> ManagedClient64.FormatRecord(string format, int
> mfn)

Судя по "ManagedClient64", Вы опробовали ооочень древнюю версию библиотеки. Возьмите с NuGet актуальную версию, в ней такой проблемы нет.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: lybs (IP-адрес скрыт)
Дата: 22, December, 2020 16:44

А она будет работать с Visual Studio 2010?

Или VS тоже нужно обновить?

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 22, December, 2020 16:54

lybs написал(а):
-------------------------------------------------------
> А она будет работать с Visual Studio 2010?

Просто попробуйте подключить её через встроенный в Visual Studio клиент NuGet.

Если Visual Studio заупрямится, значит, пришла пора её обновлять.

Вообще же, библиотека должна работать с .NET Framework, начиная с версии 3.5 SP1.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: lybs (IP-адрес скрыт)
Дата: 22, December, 2020 16:56

Я даже не знаю, где он есть, этот клиент в VS 2010.



Редактировано 1 раз. Последний раз 22.12.2020 16:57 пользователем lybs.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 22, December, 2020 17:03

lybs написал(а):
-------------------------------------------------------
> Я даже не знаю, где он есть, этот клиент в VS
> 2010.

Если он ещё не установлен в VS, его нужно установить, как написано здесь.

Затем подключить библиотеку "ManagedIrbis" как показано здесь.

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 22, December, 2020 17:05

lybs написал(а):
-------------------------------------------------------
> Я даже не знаю, где он есть, этот клиент в VS
> 2010.

На всякий случай поинтересуюсь, какая у Вас версия VS? Professional?

Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: lybs (IP-адрес скрыт)
Дата: 23, December, 2020 19:57

Вот такая у меня версия Visual Studio

Вложения: VS_version.jpg (86.9KB)  
Re: Клиентская библиотека ИРБИС64 на языке C#
Пользователь: amironov73 (IP-адрес скрыт)
Дата: 24, December, 2020 01:46

lybs написал(а):
-------------------------------------------------------
> Вот такая у меня версия Visual Studio

На эту VS NuGet должен без проблем установиться и работать.

Потом создаёте новый проект (например, консольный или WinForms) с таргетингом на .NET Framework 4.0 и подключаете к нему NuGet-пакет "ManagedIrbis". VS сама должна скачать нужные сборки и прописать зависимости в проекте.

Страницы: <<12345678>>
Страница: 7 из 8


Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.