Хочется перейти на 7 версию УкрСклад но не получается перестроить автом. отчеты, которые формирует приложение IBEScript в IBExpert.
При обновлении IBExpert до версии, которая работает с Firebird 3x IBEScript перестает работать, знаний нет в этой области.
Нужна квалифицированная помощь по удалёнке за разумные деньги.
097 444 5445 Евгений
Может IBEScript тоже необходимо обновить? или оно при обновлении IBExpert обновляет и IBEScript?
IBEScript тоже обновленный конечно.
Так какая именно проблема? Какую ошибку выдает, где и в какой момент?
Первый-же шаг. Подключение IBExpert к БД УкрСклада. Win7, Firebird и IBExpert локально, УкрСклад клиент работает.
При попытке подключения IBExpert к базе ошибки:
Цитата: 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.
Отлично. 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 password=masterkey" SQLDialect="3" ClientLibName="fbclient.dll" Connected="True" AutoFillParams="True"/>
fbclient.dll - перенес из папки сервера в папку IBExpert
Попробуйте убрать служебные символы в строке подключения
Любое действие с служебными символами приводит к ошибке, см. вложение
В самом отчете видно что шапка отчета есть. нет данных
Можете в личные сообщения прислать ссылку на генератор отчета, копию базы от версии 6 и от версии 7. Посмотрю какие данные пытается тянуть отчет. Возможно поменялись названия таблиц и колонок в таблицах.
Цитата: MkTel від Червень 17, 2020, 16:30:00
Отлично. IBExpert подключился
Если подключились, то других манипуляций с соединением делать скорее всего не надо, надо понять что означает ошибка "Invalid Variant Operation", скорее всего надо смотреть что на закладке Код вашего отчета.
Отчеты делал когда-то давно TheOK. Возможно при переходе на новые версии П/О какие-то команды/правила изменились?
Кто-то может помочь в этом?
Есть смысл показать код? Вложу на всяк случай.
P.S
Перепроверил все отчеты - работают только те, у которых закладка Code пустая (т.е запись begin end.)
Цитата: MkTel від Червень 18, 2020, 10:05:56
Отчеты делал когда-то давно TheOK. Возможно при переходе на новые версии П/О какие-то команды/правила изменились?
Кто-то может помочь в этом?
Есть смысл показать код? Вложу на всяк случай.
P.S
Перепроверил все отчеты - работают только те, у которых закладка Code пустая (т.е запись begin end.)
Странно, почему такие отчеты надо было делать через IBExpert, ведь аналогичный функционал есть в УкрСкладе в меню Отчеты. Ошибка "Invalid Variant Operation" очень скупая, но можно предположить что в ваши функции GetGroup и PFS передается не тот тип параметра, надо смотреть где они в отчетах используются и что передается т.е. надо смотреть сам отчет.
Делалось для того, чтобы автоматизировать отчеты. Планировщик по расписанию запускает батник, он через IBEScript делает отчет, тот-же планировщик ложит файл куда нужно. Я не делаю руками импорты, только проверяю раз в неделю. (импорт для прайса, импорт для прома, импорт для своего сайта, импорт балансов клиентов для сайта и т.д и это раз в полчаса в течении рабочего дня). Я не вижу в УкрСкладе возможность такой автоматизации.
Я могу Вам отправить отчет?
Цитата: MkTel від Червень 19, 2020, 11:29:48
Делалось для того, чтобы автоматизировать отчеты. Планировщик по расписанию запускает батник, он через IBEScript делает отчет, тот-же планировщик ложит файл куда нужно. Я не делаю руками импорты, только проверяю раз в неделю. (импорт для прайса, импорт для прома, импорт для своего сайта, импорт балансов клиентов для сайта и т.д и это раз в полчаса в течении рабочего дня). Я не вижу в УкрСкладе возможность такой автоматизации.
Как не видите :) если бы такой возможности не было, то доступ к БД был бы закрыт.
Цитата: MkTel від Червень 19, 2020, 11:29:48
Я могу Вам отправить отчет?
Да.
Подскажите пож-та неведающему можно ли выгрузить в файл любой отчет из УкрСклада не в ручном режиме, т.е запустив какой-либо процесс тем-же планировщиком? Если можно то тогда тратить время на IBEScript/IBExpert нет смысла (для меня по крайнем мере.)
Вкладываю отчет (простой, код/кол-во по 3 складам/3 цены). IBExpert выдает ошибку "Invalid variant operation". База нужна?
Очень хочется перейти на 7.
Цитата: 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,
Ура!!! Заработали все отчеты на тестовом компе, кроме одного (полный импорт на сайт), ошибка та-же, наверно еще какой-то параметр нужно подправить?
Большое человеческое спасибо!
Цитата: 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,
...
Спасибо. Отчет пошел, теперь с кодировками полезла проблема, вся кириллица отображается так: АкумуляС,РѕСЂ BAT16533000 Doogee X9 Pro 3000 mAh, copyAA :(
Цитата: MkTel від Червень 26, 2020, 16:19:17
Спасибо. Отчет пошел, теперь с кодировками полезла проблема, вся кириллица отображается так: АкумуляС,РѕСЂ BAT16533000 Doogee X9 Pro 3000 mAh, copyAA :(
Там где идет присвоение значения попробуйте использовать функцию:
нужная переменная = Utf8ToAnsi(Переменная в которую попадает ответ от базы данных)
В самом отчете?
пример: [DataRep."NAME"]=Utf8ToAnsi[DataRep."NAME"]
Если так - то не проходит, все равно каракули.
Что еще можно сделать?
Цитата: MkTel від Червень 29, 2020, 10:36:22
В самом отчете?
пример: [DataRep."NAME"]=Utf8ToAnsi[DataRep."NAME"]
Если так - то не проходит, все равно каракули.
Что еще можно сделать?
Не знаю как работают Ваши отчеты, но проблема тут явно с кодировкой. В отчете где-то должен быть блок получения данных и вывода полученной информации. Вот в блоке получения данных и надо использовать эту функцию. На картинке пример как это делается программно. 1- подготовка к получению информации. 2 - сам запрос получения информации. 3 - берем полученные данные и присваиваем нужным переменным. в блоке 3 показаны примеры получения данных как с необходимостью перекодировать так и без такой необходимости. В вашем отчете должно быть что-то подобное.
пункт 2 не туда указал,но это сути не меняет. Вам надо искать в отчете обращение к базе данных и присвоение результатов переменным
В этом я не разбираюсь к сожалению..
Кто может помочь?
Если ничего не придумаете, то как вариант можете поэкспериментировать с ОС. Пару раз сталкивался с таким моментом, что программы работающие с базой данных, которые я писал на заказ не нуждались в функции перекодирования если работали на Windows-Server. Точной версии не скажу.
Цитата: MkTel від Червень 29, 2020, 10:36:22
Utf8ToAnsi[DataRep."NAME"]
Такой функции нет в FastReport версии 3 от 2005 года. Даже если пробовать объявить:
string2 : WideString;
то ругается что "Неизвестный тип: WideString". Скорее всего в 2005 году FastReport ничего не знал про Юникод. А данные из базы поступают в Юникоде. Вообще очень странно, почему IBExpert в 2020 году использует FastReport 15 летней давности.
Т.е про работу с отчетами через IBExpert можно забыть? Сумно... На 7-ую перешли, работает быстрее, есть функционал очень нужный с наценками, но теперь автоматизация в пролете...
Спрашиваю в разрезе того, стоит мне далее тратить время на поиск решений?
Цитата: MkTel від Липень 02, 2020, 10:15:32
Т.е про работу с отчетами через IBExpert можно забыть? Сумно... На 7-ую перешли, работает быстрее, есть функционал очень нужный с наценками, но теперь автоматизация в пролете...
Спрашиваю в разрезе того, стоит мне далее тратить время на поиск решений?
В дизайнере бланков, для компонента IBEDB, в Params пропишите третью строку:
lc_ctype=WIN1251
Опять спасибо! Кириллица выводится правильно!
Для полной гармонии осталось в двух отчетах убрать ошибку "Invalid Variant Operation".
Не хватает понимания. Буду благодарен за помощь.
Цитата: 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,
Спасибо!
Вернулись в обычный режим наблюдения за исправностью инструментов! Это здорово!