Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 13.04.2017
Сообщений: 22
1

Fastreport прописать условие из двух ADO

28.12.2018, 11:36. Показов 2017. Ответов 5

Author24 — интернет-сервис помощи студентам
С фастрепортом дружу относительно недавно, но не могу все понять.... Мне необходимо прописать следующее условие: Если text начинается со слов "Договор" и стоит type "Договор", то необходимо удалить в text "Договор". Для всех остальных оставить text. Косяк в том что в запросе qTable нет в select моего поля type, а менять запрос нельзя (это по факту подключение к зашитой функции в БД). Моя процедура:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure MasterDataOnBeforePrintType(Sender: TfrxComponent);
var text: string;
begin
  text := VarToStr(<qTable."text">);
  begin
    if <qType."type">='Договор' then begin
      if Pos('Договор',<qTable."text">)=0 then
        TfrxMemoView(Sender).Text := text
      else begin
        Delete(text, 1, 8);
        TfrxMemoView(Sender).Text := text
      end;
    end;
  end;
end;
Вопрос: Как соединить данные из несколько запросов в одном masterdate (бд - qTable)? из одной text, count, comment (qTable, id не выводит, даже не соединишь) из второго нового запроса вытянуть type (qType)...

Так как masterdate подключается к qTable то type тянется для всех одинаковый...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2018, 11:36
Ответы с готовыми решениями:

ADO и FastReport
Добрый день, уважаемые форумчане, подскажите пожалуйста, в чем может быть проблема: В дата модуле...

Как добавить только четные строки из ado в fastreport?
Как добавить только четные строки из ado в fastreport? Спасибо

Как в ADO создать прописать строку SQL с предикатом NOT IN?
В Excel пользуясь ADO не получается создать вложенный запрос в NOT IN: &quot;UPDATE Set ='No' WHERE ...

Как прописать условие Where ?
Всем привет! Люди добрые помогите! Есть таблица table1.td, в ней отражена активность в формате...

5
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
28.12.2018, 13:48 2
ну, вы сначала наставите себе кольев, потом начинаете перепрыгивать...
а как бы вы добывали эти данные если б не было отчета, а вот просто - в коде?

наверное, сделали бы дополнительный запрос, основываясь на имеющихся данных, и получили бы то, что нужно
вот так и поступите
откройте вкладку Data и фигачьте эти запросы как хотите. и данные берите из них
0
1 / 1 / 0
Регистрация: 13.04.2017
Сообщений: 22
28.12.2018, 15:05  [ТС] 3
Отчеты древние, функции писали еще древнее программисты.
И эти функции работают на всю программу и на все отчеты, поэтому лезть туда это аналогично смерти.

Пока так и колупаю, но это дичь! У меня 10 отчетов с 6 листами и в каждом по две таблицы....
Неужели никак нельзя соединить две таблицы.
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
28.12.2018, 16:34 4
что вы имеете в виду под "таблица" и "соединить" ??
тогда и будет ответ

кроме того, вы пропустили мимо ушей совет создать новый запрос прямо в отчете?
0
1 / 1 / 0
Регистрация: 13.04.2017
Сообщений: 22
29.12.2018, 12:31  [ТС] 5
Вы неправильно поняли. У меня функция - это длинющий код, в котором разбираться лет сто и просто скопировать его и сделать запрос не прокатит.
Я же написала, что и пишу в fastreporte новый запрос.
ЛАЙФХАК: Но чтобы не менять все таблицы на каждом листе отчета, написала новую функцию и в fastreport в старом запросе ADO прописала условие:
Delphi
1
2
3
4
5
6
declare @contrat_ext_id int, @type varchar(100)                                                        
set @contrat_ext_id = :CONTRAT_EXT_ID
set @type = :TYPE
 
if (@TYPE = 'Договор')
  exec dbo.rep_app_ce_type @CONTRAT_EXT_ID
Работает.
Только новая фишка... но это уже другой вопрос)
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
29.12.2018, 14:24 6
все равно не понимаю, зачем это тут
ваш запрос в любом случае выглядит как
SQL
1
2
3
4
SELECT что-то FROM какая-то-таблица-или-процедура
JOIN другая-таблица
JOIN третья
WHERE условие
что мешает в JOIN поставить еще одну две пять таблиц
а еще есть CASE для формирования значений полей
и много всего
0
29.12.2018, 14:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2018, 14:24
Помогаю со студенческими работами здесь

Как прописать условие?
Если (файл.exe закрылся) то { выполнить такое то действие }

Как лучше прописать условие if?
Всем привет ! Есть такой код # &lt; Запрос из таблицы items новостей для проверки....

Как правильно прописать условие?
Доброго времени суток. Хочу при условии что если комбобокс активен то выполнялся опеределный...

Как правильно прописать условие if
Добрый день коллеги. :-if if (ComboBox1-&gt;ItemIndex == ) //Если выбрана 1 { ShowMessage &quot;Вы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru