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

Нужна помощь в переходе Firebird с 2,5 на 3 (не работает IBEScript)

Автор MkTel, Червень 15, 2020, 13:56:06

Попередня тема - Наступна тема

0 Користувачі і 2 Гостей дивляться цю тему.

MkTel

Подскажите пож-та неведающему можно ли выгрузить в файл любой отчет из УкрСклада не в ручном режиме, т.е запустив какой-либо процесс тем-же планировщиком? Если можно то тогда тратить время на IBEScript/IBExpert нет смысла (для меня по крайнем мере.)

MkTel

Вкладываю отчет (простой, код/кол-во по 3 складам/3 цены).  IBExpert выдает ошибку "Invalid variant operation". База нужна?
Очень хочется перейти на 7.

admin

Цитата: 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

Ура!!! Заработали все отчеты на тестовом компе, кроме одного (полный импорт на сайт), ошибка та-же, наверно еще какой-то параметр нужно подправить?
Большое человеческое спасибо!

admin

Цитата: 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,

  ...

MkTel

Спасибо. Отчет пошел, теперь с кодировками полезла проблема, вся кириллица отображается так: АкумуляС,РѕСЂ BAT16533000 Doogee X9 Pro 3000 mAh, copyAA  :(

AGSoft

Цитата: MkTel від Червень 26, 2020, 16:19:17
Спасибо. Отчет пошел, теперь с кодировками полезла проблема, вся кириллица отображается так: АкумуляС,РѕСЂ BAT16533000 Doogee X9 Pro 3000 mAh, copyAA  :(
Там где идет присвоение значения попробуйте использовать функцию:

нужная переменная = Utf8ToAnsi(Переменная в которую попадает ответ от базы данных)
Автоматизація бізнесу заощаджує ваш час. Я знаю, як це зробити.    ✆ +38 050 669 18 76 (viber, telegram)    ✆ +38 098 970 970 1

MkTel

В самом отчете?
пример: [DataRep."NAME"]=Utf8ToAnsi[DataRep."NAME"]
Если так - то не проходит, все равно каракули.
Что еще можно сделать?

AGSoft

Цитата: MkTel від Червень 29, 2020, 10:36:22
В самом отчете?
пример: [DataRep."NAME"]=Utf8ToAnsi[DataRep."NAME"]
Если так - то не проходит, все равно каракули.
Что еще можно сделать?
Не знаю как работают Ваши отчеты, но проблема тут явно с кодировкой. В отчете где-то должен быть блок получения данных и вывода полученной информации. Вот в блоке получения данных и надо использовать эту функцию. На картинке пример как это делается программно. 1- подготовка к получению информации. 2 - сам запрос получения информации. 3 - берем полученные данные и присваиваем нужным переменным. в блоке 3 показаны примеры получения данных как с необходимостью перекодировать так и без такой необходимости. В вашем отчете должно быть что-то подобное.
Автоматизація бізнесу заощаджує ваш час. Я знаю, як це зробити.    ✆ +38 050 669 18 76 (viber, telegram)    ✆ +38 098 970 970 1

AGSoft

пункт 2 не туда указал,но это сути не меняет. Вам надо искать в отчете обращение к базе данных и присвоение результатов переменным
Автоматизація бізнесу заощаджує ваш час. Я знаю, як це зробити.    ✆ +38 050 669 18 76 (viber, telegram)    ✆ +38 098 970 970 1

MkTel

В этом я не разбираюсь к сожалению..
Кто может помочь?

AGSoft

Если ничего не придумаете, то как вариант можете поэкспериментировать с ОС. Пару раз сталкивался с таким моментом, что программы работающие с базой данных, которые я писал на заказ не нуждались в функции перекодирования если работали на Windows-Server. Точной версии не скажу.
Автоматизація бізнесу заощаджує ваш час. Я знаю, як це зробити.    ✆ +38 050 669 18 76 (viber, telegram)    ✆ +38 098 970 970 1

admin

Цитата: MkTel від Червень 29, 2020, 10:36:22
Utf8ToAnsi[DataRep."NAME"]

Такой функции нет в FastReport версии 3 от 2005 года. Даже если пробовать объявить:
string2 : WideString;
то ругается что "Неизвестный тип: WideString". Скорее всего в 2005 году FastReport ничего не знал про Юникод. А данные из базы поступают в Юникоде. Вообще очень странно, почему IBExpert в 2020 году использует FastReport 15 летней давности.

MkTel

Т.е про работу с отчетами через IBExpert можно забыть? Сумно... На 7-ую перешли, работает быстрее, есть функционал очень нужный с наценками, но теперь автоматизация в пролете...
Спрашиваю в разрезе того, стоит мне далее тратить время на поиск решений?

admin

Цитата: MkTel від Липень 02, 2020, 10:15:32
Т.е про работу с отчетами через IBExpert можно забыть? Сумно... На 7-ую перешли, работает быстрее, есть функционал очень нужный с наценками, но теперь автоматизация в пролете...
Спрашиваю в разрезе того, стоит мне далее тратить время на поиск решений?

В дизайнере бланков, для компонента IBEDB, в Params пропишите третью строку:
lc_ctype=WIN1251