Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата

Наши программы => УкрСклад => Тема розпочата: MkTel від Червень 15, 2020, 13:56:06

Назва: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 15, 2020, 13:56:06
Хочется перейти на 7 версию УкрСклад но не получается перестроить автом. отчеты, которые формирует приложение IBEScript в IBExpert.
При обновлении IBExpert до версии, которая работает с Firebird 3x  IBEScript  перестает работать, знаний нет в этой области.
Нужна квалифицированная помощь по удалёнке за разумные деньги.
097 444 5445 Евгений

Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: AGSoft від Червень 15, 2020, 14:14:53
Может IBEScript тоже необходимо обновить? или оно при обновлении IBExpert обновляет и IBEScript?
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 15, 2020, 21:25:48
IBEScript тоже обновленный конечно.
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: admin від Червень 16, 2020, 12:50:05
Так какая именно проблема? Какую ошибку выдает, где и в какой момент?
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 17, 2020, 13:57:24
Первый-же шаг. Подключение IBExpert к БД УкрСклада. Win7, Firebird и IBExpert локально, УкрСклад клиент работает.
При попытке подключения IBExpert к базе ошибки:
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: admin від Червень 17, 2020, 15:22:07
Цитата: MkTel від Червень 15, 2020, 13:56:06
IBEScript  перестает работать

Вы писали что  IBEScript перестал работать, а по факту просто не смогли соединится IBExpert к 3 версии Firebird.

Цитата: MkTel від Червень 17, 2020, 13:57:24
Подключение IBExpert

На снимках неверно указаны параметры подключения:
1. Кодировка должна быть UTF8.
2. Библиотека fbclient.dll, находиться в папке Сервера.
3. Очень желательно подключатся не локальным протоколом, а сетевым, указать "Local, loopback" выбрать название Сервера или прописать localhost если компьютер тот же + порт 3053.
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 17, 2020, 16:30:00
Отлично. IBExpert подключился (Local, default и Local, XNet (FB 3) - работают/  Local, loopback - работает только без указания порта)
Далее при попытке сделать отчет вылетает ошибка (в вложении)
В самом файле отчета строка подключения такая:
<TfrxIBEDatabase Name="IBEDB" DatabaseName="C:\ProgramData\UkrSklad7S\db\SKLAD.TCB" LoginPrompt="False" Params.Text="user_name=SYSDBA&#13;&#10;password=masterkey" SQLDialect="3" ClientLibName="fbclient.dll" Connected="True" AutoFillParams="True"/>

fbclient.dll - перенес из папки сервера в папку IBExpert
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: AGSoft від Червень 17, 2020, 20:31:40
Попробуйте убрать служебные символы в строке подключения
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 17, 2020, 20:56:09
Любое действие с служебными символами приводит к ошибке, см. вложение
В самом отчете видно что шапка отчета есть. нет данных
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: AGSoft від Червень 17, 2020, 22:27:19
Можете в личные сообщения прислать ссылку на генератор отчета, копию базы от версии 6 и от версии 7. Посмотрю какие данные пытается тянуть отчет. Возможно поменялись названия таблиц и колонок в таблицах.
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: admin від Червень 18, 2020, 09:39:47
Цитата: MkTel від Червень 17, 2020, 16:30:00
Отлично. IBExpert подключился

Если подключились, то других манипуляций с соединением делать скорее всего не надо, надо понять что означает ошибка "Invalid Variant Operation", скорее всего надо смотреть что на закладке Код вашего отчета. 
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 18, 2020, 10:05:56
Отчеты делал когда-то давно TheOK. Возможно при переходе на новые версии П/О какие-то команды/правила изменились?
Кто-то может помочь в этом?
Есть смысл показать код? Вложу на всяк случай.

P.S
Перепроверил все отчеты - работают только те, у которых закладка Code пустая (т.е запись begin end.)
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: admin від Червень 19, 2020, 11:12:36
Цитата: MkTel від Червень 18, 2020, 10:05:56
Отчеты делал когда-то давно TheOK. Возможно при переходе на новые версии П/О какие-то команды/правила изменились?
Кто-то может помочь в этом?
Есть смысл показать код? Вложу на всяк случай.
P.S
Перепроверил все отчеты - работают только те, у которых закладка Code пустая (т.е запись begin end.)

Странно, почему такие отчеты надо было делать через IBExpert, ведь аналогичный функционал есть в УкрСкладе в меню Отчеты. Ошибка "Invalid Variant Operation" очень скупая, но можно предположить что в ваши функции GetGroup и PFS передается не тот тип параметра, надо смотреть где они в отчетах используются и что передается т.е. надо смотреть сам отчет.
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 19, 2020, 11:29:48
Делалось для того, чтобы автоматизировать отчеты. Планировщик по расписанию запускает батник, он через IBEScript делает отчет, тот-же планировщик ложит файл куда нужно. Я не делаю руками импорты,  только проверяю раз в неделю. (импорт для прайса, импорт для прома, импорт для своего сайта, импорт балансов клиентов для сайта и т.д и это раз в полчаса в течении рабочего дня). Я не вижу в УкрСкладе возможность такой автоматизации.
Я могу Вам отправить отчет?
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: admin від Червень 23, 2020, 10:38:57
Цитата: MkTel від Червень 19, 2020, 11:29:48
Делалось для того, чтобы автоматизировать отчеты. Планировщик по расписанию запускает батник, он через IBEScript делает отчет, тот-же планировщик ложит файл куда нужно. Я не делаю руками импорты,  только проверяю раз в неделю. (импорт для прайса, импорт для прома, импорт для своего сайта, импорт балансов клиентов для сайта и т.д и это раз в полчаса в течении рабочего дня). Я не вижу в УкрСкладе возможность такой автоматизации.

Как не видите :) если бы такой возможности не было, то доступ к БД был бы закрыт.

Цитата: MkTel від Червень 19, 2020, 11:29:48
Я могу Вам отправить отчет?

Да.
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 23, 2020, 11:06:28
Подскажите пож-та неведающему можно ли выгрузить в файл любой отчет из УкрСклада не в ручном режиме, т.е запустив какой-либо процесс тем-же планировщиком? Если можно то тогда тратить время на IBEScript/IBExpert нет смысла (для меня по крайнем мере.)
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 26, 2020, 10:07:51
Вкладываю отчет (простой, код/кол-во по 3 складам/3 цены).  IBExpert выдает ошибку "Invalid variant operation". База нужна?
Очень хочется перейти на 7.
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: admin від Червень 26, 2020, 13:02:15
Цитата: MkTel від Червень 26, 2020, 10:07:51
Вкладываю отчет (простой, код/кол-во по 3 складам/3 цены).  IBExpert выдает ошибку "Invalid variant operation". База нужна?
Очень хочется перейти на 7.

Трудно было понять т.к. IBExpert использует версию 3 FastReport, она от 2005 года , там даже дебага нет. Но скорее всего FastReport не понимал в группировке поле NUM т.к. оно сейчас Int64, попробуйте поменять в SQL скрипте 2 строку, вместо:
t.num,
пропишите
CAST(t.num AS INTEGER) AS num,
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 26, 2020, 13:52:16
Ура!!! Заработали все отчеты на тестовом компе, кроме одного (полный импорт на сайт), ошибка та-же, наверно еще какой-то параметр нужно подправить?
Большое человеческое спасибо!
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: admin від Червень 26, 2020, 15:28:34
Цитата: MkTel від Червень 26, 2020, 13:52:16
Ура!!! Заработали все отчеты на тестовом компе, кроме одного (полный импорт на сайт), ошибка та-же, наверно еще какой-то параметр нужно подправить?
Большое человеческое спасибо!

Скрипт должен начинаться с
SELECT
  CAST(t.analog_num AS INTEGER) AS analog_num,
  CAST(t.num AS INTEGER) AS num,
  CAST(gr.num AS INTEGER) AS num1,

далее идет ваш код
  gr.group_name as gr,
  t.name,
  t.dopoln3 as yakist,

  ...
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 26, 2020, 16:19:17
Спасибо. Отчет пошел, теперь с кодировками полезла проблема, вся кириллица отображается так: АкумуляС,РѕСЂ BAT16533000 Doogee X9 Pro 3000 mAh, copyAA  :(
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: AGSoft від Червень 27, 2020, 15:50:53
Цитата: MkTel від Червень 26, 2020, 16:19:17
Спасибо. Отчет пошел, теперь с кодировками полезла проблема, вся кириллица отображается так: АкумуляС,РѕСЂ BAT16533000 Doogee X9 Pro 3000 mAh, copyAA  :(
Там где идет присвоение значения попробуйте использовать функцию:

нужная переменная = Utf8ToAnsi(Переменная в которую попадает ответ от базы данных)
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 29, 2020, 10:36:22
В самом отчете?
пример: [DataRep."NAME"]=Utf8ToAnsi[DataRep."NAME"]
Если так - то не проходит, все равно каракули.
Что еще можно сделать?
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: AGSoft від Червень 29, 2020, 12:12:07
Цитата: MkTel від Червень 29, 2020, 10:36:22
В самом отчете?
пример: [DataRep."NAME"]=Utf8ToAnsi[DataRep."NAME"]
Если так - то не проходит, все равно каракули.
Что еще можно сделать?
Не знаю как работают Ваши отчеты, но проблема тут явно с кодировкой. В отчете где-то должен быть блок получения данных и вывода полученной информации. Вот в блоке получения данных и надо использовать эту функцию. На картинке пример как это делается программно. 1- подготовка к получению информации. 2 - сам запрос получения информации. 3 - берем полученные данные и присваиваем нужным переменным. в блоке 3 показаны примеры получения данных как с необходимостью перекодировать так и без такой необходимости. В вашем отчете должно быть что-то подобное.
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: AGSoft від Червень 29, 2020, 12:15:58
пункт 2 не туда указал,но это сути не меняет. Вам надо искать в отчете обращение к базе данных и присвоение результатов переменным
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Червень 29, 2020, 12:44:12
В этом я не разбираюсь к сожалению..
Кто может помочь?
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: AGSoft від Червень 29, 2020, 13:17:10
Если ничего не придумаете, то как вариант можете поэкспериментировать с ОС. Пару раз сталкивался с таким моментом, что программы работающие с базой данных, которые я писал на заказ не нуждались в функции перекодирования если работали на Windows-Server. Точной версии не скажу.
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: admin від Липень 01, 2020, 11:56:22
Цитата: MkTel від Червень 29, 2020, 10:36:22
Utf8ToAnsi[DataRep."NAME"]

Такой функции нет в FastReport версии 3 от 2005 года. Даже если пробовать объявить:
string2 : WideString;
то ругается что "Неизвестный тип: WideString". Скорее всего в 2005 году FastReport ничего не знал про Юникод. А данные из базы поступают в Юникоде. Вообще очень странно, почему IBExpert в 2020 году использует FastReport 15 летней давности.
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Липень 02, 2020, 10:15:32
Т.е про работу с отчетами через IBExpert можно забыть? Сумно... На 7-ую перешли, работает быстрее, есть функционал очень нужный с наценками, но теперь автоматизация в пролете...
Спрашиваю в разрезе того, стоит мне далее тратить время на поиск решений?
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: admin від Липень 07, 2020, 11:54:35
Цитата: MkTel від Липень 02, 2020, 10:15:32
Т.е про работу с отчетами через IBExpert можно забыть? Сумно... На 7-ую перешли, работает быстрее, есть функционал очень нужный с наценками, но теперь автоматизация в пролете...
Спрашиваю в разрезе того, стоит мне далее тратить время на поиск решений?

В дизайнере бланков, для компонента IBEDB, в Params пропишите третью строку:
lc_ctype=WIN1251
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Липень 10, 2020, 14:21:54
Опять спасибо! Кириллица выводится правильно!
Для полной гармонии осталось в двух отчетах убрать ошибку "Invalid Variant Operation".
Не хватает понимания. Буду благодарен за помощь.
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: admin від Липень 15, 2020, 14:56:05
Цитата: MkTel від Липень 10, 2020, 14:21:54
Опять спасибо! Кириллица выводится правильно!
Для полной гармонии осталось в двух отчетах убрать ошибку "Invalid Variant Operation".
Не хватает понимания. Буду благодарен за помощь.

В PriceZvit.fr3, текст:
SELECT
  tz.kolvo,
  tz.sklad_id,
  gr.group_name as gr,
  t.*

заменить на:
SELECT
  tz.kolvo,
  CAST(tz.sklad_id AS INTEGER) sklad_id,
  gr.group_name as gr,
  CAST(t.num AS INTEGER) num,
  t.*

в другом:
SELECT
  CAST(t.analog_num AS INTEGER) AS analog_num,
  CAST(t.num AS INTEGER) AS num,
  CAST(gr.num AS INTEGER) AS num1,

на:
SELECT
  CAST(t.analog_num AS INTEGER) AS analog_num,
  CAST(t.num AS INTEGER) AS num,
  CAST(gr.num AS INTEGER) AS num1,
  CAST(t.tip AS INTEGER) AS tip,
Назва: Re: Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)
Відправлено: MkTel від Липень 15, 2020, 15:54:42
Спасибо!
Вернулись в обычный режим наблюдения за исправностью инструментов! Это здорово!