Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2012, 11:20   #1
chui
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 48
По умолчанию ФастРепорт, AdvSrtinGrid -2 вопроса

Здраствуйте. У меня возникло 2 вопроса:

1) Возникла такая ситуация, что мне необходимо выполнить запрос, потом произвести одну процедуру, а затем снова выполнить этот же запрос. И разницу в результатах этих запросов я хочу вывести в виде таблицы в ФастРепорт. И здесь вопрос, как мне это сделать?

2) Нужно экспортировать данные из AdvStringGrid в word. Я делаю так:
Код:
try
SG1.SaveToDoc(Form1.SaveDialog1.Filename + '.doc', True);
except
end;
При этом возникает несколько проблем. При сохранении большого количества данных (примерно 120 страниц в ворде) программа зависает. И еще надо как-то нарисовать границы таблицы.

Надеюсь на вашу помощь. Спасибо.
chui вне форума Ответить с цитированием
Старый 13.01.2012, 11:52   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
1) Возникла такая ситуация, что мне необходимо выполнить запрос, потом произвести одну процедуру, а затем снова выполнить этот же запрос. И разницу в результатах этих запросов я хочу вывести в виде таблицы в ФастРепорт. И здесь вопрос, как мне это сделать?
правильный способ - составить ОДИН запрос, где в подзапросах эти два исходные.
его и выводить в отчёт.

можно и по "кривому" пути пойти. Взять два датасета - искать в них различия (в цикле перебирая один и из датасетов и поиском искать нужные записи во втором).
Результаты ручками направлять в датасет (любой, можно вообще воспользоваться таблицей в памяти - TJvMemoryData ). и его уже выводить в отчёт...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.01.2012, 12:03   #3
chui
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 48
По умолчанию

Serge_Bliznykov, спасибо.

Но я не могу понять, как можно создать 1 запрос в данном случае. Ведь здесь нужны результаты запроса до и после выполнения определенной функции.

Этот вариант я тоже рассматривал, но я не знаю как передать в фастрепорт данные из датасета из программы, а не из фастрепортовского.
chui вне форума Ответить с цитированием
Старый 17.01.2012, 15:31   #4
chui
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 48
По умолчанию

Апну тему. Актуален первый вопрос.
chui вне форума Ответить с цитированием
Старый 17.01.2012, 20:50   #5
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

а субд какая? использование хранимой процедуры возможно?
maLoy*508 вне форума Ответить с цитированием
Старый 18.01.2012, 10:41   #6
chui
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 48
По умолчанию

maLoy*508, субд Firebird. Если можно, распиши немного подробнее, как это можно сделать.

Но если я правильно понял, то хранимая процедура не подойдет для решения задачи.

Последний раз редактировалось chui; 18.01.2012 в 11:34.
chui вне форума Ответить с цитированием
Старый 18.01.2012, 15:50   #7
chui
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 48
По умолчанию

Ребят, я попробывал так:
Создал текстовую переменную, в которую запихнул все необходимые значения из первого запроса (получилась переменная вида '5345,3432,5645,3244'). Потом передаю эту переменную как параметр в запрос в самом фастрепорте
Код:
select *
from T_GTD
inner join CLIENTS on (GTDZAYV = CLID)
where (GTDSTATUS = 2) and (GTDZAYV =:cclient) and (GTDID NOT IN (:spisid))
Но не работает.
chui вне форума Ответить с цитированием
Старый 10.02.2012, 18:01   #8
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

прозевал Ваш ответ, но все же:
а что мешает написать хранимую процедуру (произвести в ней все нужные вопросы) и "подсунуть" ее фастрепорту??
maLoy*508 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 вопроса Lindemann66 Общие вопросы C/C++ 5 31.08.2011 11:32
2 вопроса по C++Builder6 viktory Помощь студентам 2 30.10.2009 08:03
2 вопроса W0LF Общие вопросы Delphi 17 19.09.2009 18:34
2 вопроса по ХП Molotok Windows 14 17.12.2008 12:43
2 вопроса по Delphi N!ckeL Помощь студентам 5 30.04.2008 17:12