Добрый день! На кнопку повесил опцию отчета, настроил поля БД, которые передаются в FastReport. Как передать значение переменной из скрипта в FastReport? Версия 2.8. Буду благодарен.

О, нашел ссылку в недрах форума.

Добрый день! 3 года назад приобрел у Вас лицензию на версию 2.хх - 2.99. Как скачать версию 2.8, чтобы применить лицензионный ключ? Нужно быстренько на коленке сделать генератор отчетов к бд, а где 2.хх скачать - в упор не вижу.

4

(4 replies, posted in Russian)

Спасибо! Оба варианта работают!

5

(4 replies, posted in Russian)

SQLite

6

(4 replies, posted in Russian)

Добрый день! Существует табличка с двумя полями ДАТА/ВРЕМЯ (dd.MM.yy HH:mm):  "Начало работ" и "Окончание работ". Необходимо создать вычисляемое поле "Время производства работ". DATEDIFF(begin, end) почему-то не работает. Подскажите, как написать запрос для вычисления разницы в часах, а еще лучше в формате "HH:mm"?

7

(2 replies, posted in Russian)

Пишите их друг под другом.

Снова потестил свой проект. Определил в каком месте происходит "зависание" приложения (не открывалось, но висело в процессах) на втором ПК, в то время как одновременно на первом ПК приложение было открыто:

(select REPLACE(GROUP_CONCAT(DISTINCT Baza.KKS), ',', char(13))
FROM Baza WHERE Baza.id_BazaProgram = BazaProgram.id)

При удалении условия

WHERE Baza.id_BazaProgram = BazaProgram.id

проект начинал работать на обоих ПК одновременно. Два дня ломал голову как сохранить это необходимое мне условие.
Воспользовался программой SQLite Expert Personal 3. В ней почистил ранее сохраненные и забытые файлы в базе - как указал выше Дмитрий, вакуумировал и реиндексировал базу, выполнил проверку. И о чудо - проблема решена!
Так же скорость открытия приложения уменьшилась с 25 сек до 2 сек!!!
В чем именно были проблемы, я так и не понял, но вдруг кому поможет в трудных ситуациях.
Всем спасибо.

Дмитрий, спасибо за подсказку по скорости загрузки! На днях попробую на других ПК потестить. На MySQL перейти не могу, как я понял там нужны настройки сервера, чего мне не дадут.

Дмитрий, скажите, проблема как-либо решается?

11

(2 replies, posted in Russian)

Дмитрий, огромное спасибо!

Добрый день! Не вытерпел, сил уже нет самостоятельно разобраться с данной проблемой. Ситуация такова: необходимо составить отчет с кучей независящих друг от друга диаграмм. Создаю отчет с длинющим sql-запросом, в котором создаются таблички (путем создания и объединения полей посредством UNION). Если я правильно понял (пожалуйста поправьте меня, если я ошибаюсь!) то результатом sql-запроса является одна большая таблица, которую я собираю путем соединения своих табличек оператором JOIN (ну или просто используя запятую). В результате получается умопомрачительная CROSS таблица (это когда каждой строке каждого поля одной таблицы, соответствует каждая строка каждого поля всех других таблиц, так называемое декартово произведение). Для того чтобы получить то что я хочу - чтобы тупо таблички A, B, C... G просто выстроились передо мной в шеренгу без программного спаривания друг с другом, были введены поля idA, idB... idG (что-то вроде id строк) и заполнены вручную

select ...
"1"  as idA
...
select ...
"2" as idA
и т.д.

Так как таблички различаются по числу строк, то чтобы таблица (как результат всего запроса) имела количество строк равное максимальному из всех табличек, приходится добавлять в маленькие таблички дополнительные строки с пустыми ячейками посредством NULL.
Далее в запросе прописываем условие

WHERE idA=idB and idA=idC ... and idA=idG

и о чудо, наконец-то я получил то что хотел:
http://s8.hostingkartinok.com/uploads/images/2016/07/e1c3e55828a25116068f179b93e832d7.jpg
Здесь вы видите пустые ячейки, если бы я их не вводил, то по условию WHERE строк с id равными 3 и 4 не было бы, т.е. таблица A потеряла бы часть своих данных.
Казалось бы, можно радоваться, целовать жену, бежать за пивом, но:
http://s8.hostingkartinok.com/uploads/images/2016/07/46f2e569b5bb290cb07263070a642f7f.jpg
Меня это не устраивает! Гугл в помощь, пишут что это не беда, достаточно снять галочку тут:
http://s8.hostingkartinok.com/uploads/images/2016/07/7f5f88b61e415b9e8afadf3ee5c2b4b7.jpg
И поставить тут:
http://s8.hostingkartinok.com/uploads/images/2016/07/dd9af1a719d86d0e98f3022840451c6f.jpg
Но почему-то это не работает. Устал от танцев с бубнами, что я делаю не так? Укажите нужное направление. Кто делал сложные отчеты - дайте пожалуйста исходники, чтобы посмотреть как это правильно делать.

К сожалению объем большой, здесь выложить не могу. Я уже Дмитрию отписал, что и дома тестил с двух ПК - все тоже самое.

vir2alex wrote:

В настройках общей папки не стоит ограничение на количество юзеров?

Нет, не стоит.

Сообщений об ошибке нет. Проект отправил вам по почте. Жду с нетерпением. Спасибо!

Добрый день! Ситуация такова. Недавно принес на работу свой проект для тестирования. На сервере сохранил sqlite.db, а остальные файлы скопировал на два ПК, имеющих связь с сервером (политика компании запрещает иметь *.exe и *.dll на сервере). В приложениях указал путь к файлу БД на сервере. Запускается отлично, все работает, НО (!) ... невозможно запустить приложение на одном ПК, если такое же приложение открыто на другом ПК. В диспетчере задач процесс висит, но само приложение не открывается. Проблема критична, планируется запускать приложения максимум с 4 ПК, Прошу помощи!

Дмитрий, вопрос в продолжение темы. Я отредактировал ячейку - добавил массив цифр 1...9:
http://s8.hostingkartinok.com/uploads/images/2016/06/f5cc6390242ef12b75a9807ae1d1c239.jpg
К сожалению, цифры от 5 до 9 не видны, при использовании скрола-прокрутки происходит перескок на следующую строку таблицы, что не дает возможность прочитать всю информацию в ячейке. Есть возможность исправить эту проблему?

Дмитрий, спасибо за внимание! Проект большой (6 Мб), отправил вам на почту с указанием темы и описанием.

Дмитрий, не помогло. Ошибка все равно вылетает.

Спасибо!

Доброго времени суток! Прошу помочь со следующей проблемой.
На форме есть график, линия в котором задается из грида:
http://s8.hostingkartinok.com/uploads/images/2016/06/09217ff18b8c317a25cded588b857278.jpg
Решил проблему определения максимальной высоты вертикальной оси (для автомасштабирования) следующим образом:

procedure PokazAgregat_OnShow (Sender: string; Action: string);
var
  i,c: integer;
  max: real;
begin
PokazAgregat.DBImage1.dbShowButtons := False;
PokazAgregat.DBImage2.dbShowButtons := False;
ChartLine := TChart.Create(PokazAgregat);
  ChartLine.Parent := PokazAgregat.PanelLine;
  ChartLine.Align := alClient;
  ChartLine.AddSeries(TLineSeries.Create(ChartLine));
  ChartLine.Series[0].XValues.DateTime := True;
  ChartLine.View3D := False;
  TLineSeries(ChartLine.Series[0]).Pointer.Visible := True;
  TLineSeries(ChartLine.Series[0]).Pointer.Style  := psCircle;
  TLineSeries(ChartLine.Series[0]).Pointer.Size   := 3;
  PokazAgregat.Button4.Click;
  PokazAgregat.bLineUpdate.Click;
  ChartLine.LeftAxis.Automatic := False;
  ChartLine.LeftAxis.Minimum := 0;

  c := PokazAgregat.TableGrid3.RowCount-1;
  max:= StrToFloat(PokazAgregat.TableGrid3.Cells[1, 0]);
  for i := 0 to c do
  begin
  if max<StrToFloat(PokazAgregat.TableGrid3.Cells[1, i])
  then max:= StrToFloat(PokazAgregat.TableGrid3.Cells[1, i]);
  end;
  ChartLine.LeftAxis.Maximum := Round(max + 1);
end;

Код работает превосходно в формах с заполненным гридом, но если вызываем форму с пустым гридом, то выпадает ошибка:
http://s8.hostingkartinok.com/uploads/images/2016/06/335655abf04b347ad9423ead7cea7d17.jpg
Жмем "ОК" и открывается форма с пустым графиком - то что мне и нужно при пустом-то гриде:
http://s8.hostingkartinok.com/uploads/images/2016/06/1b3e1334a76ba37b121b51353231cbc1.jpg
Вопрос: как избавиться от этой ошибки, которая говорит мне что ячейки грида пусты? что написать/исправить, чтобы программа не ругалась, а понимала, что так все и задумано?

П.С. И еще вопрос, как убрать легенду?

22

(46 replies, posted in Russian)

Дмитрий, огромное спасибо!

23

(46 replies, posted in Russian)

Дмитрий, спасибо за примеры кодов! Получилось создать график. Только возникло два вопроса:
1. Как сделать график чтобы ось значений ProfitValue начиналась с нуля?
2. Как на графике сделать несколько линий?
Если не сложно, приведите примеры таких кодов.

bullet13, спасибо огромное! Первый вариант работает, красиво получается!

Не работает, выдает ошибку:
http://s8.hostingkartinok.com/uploads/images/2016/05/d4d345061bebf459d2a315639a2bfd33.jpg
Гуглю-гуглю, а решения не нахожу sad