Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
12 / 1 / 2
Регистрация: 02.02.2012
Сообщений: 121
1

Отчёт в FastReport. Заменить данные с другой таблицы

13.08.2015, 17:50. Показов 1952. Ответов 16
Метки нет (Все метки)

Впринципе, все данные в одной таблице, но есть одно поле id_user и там записаны только порядковые номера юзеров, а в другой таблицы записано его ФИО. Так вот в отчёте выводится вместо ФИО его порядковый номер...

Пробую через запрос:
SQL
1
SELECT * FROM bases INNER JOIN users ON bases.id_user=users.n WHERE bases.da LIKE '''+FormatDateTime('yyyy-mm', Dater.Date)+'%''
Вот, оно все равно мне номер юзера пишет...
Подскажите, как тот номер в отчете поменять на ФИО....
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.08.2015, 17:50
Ответы с готовыми решениями:

Выбрать данные из таблицы и заменить один столбец с id значениями из другой таблицы
Есть таблица A: A.ID | A.B_ID и таблица B: B.ID | B.TEXT где A.B_ID -> B.ID является...

Отчет в FastReport по выбранной дате из таблицы
var d,string; begin d:=DBGrid_History.SelectedField.Text; n:= edit1.Text;...

Отчет FastReport не отображает новые данные
Здравствуйте, если запустить отчет FastReport, то он выводиться как и должно, но если не...

Отчет FastReport должен брать данные из БД Access
Доброго времени суток уважаемые коллеги:)...у меня появилась одна огромная проблема:wall: - и я...

16
пофигист широкого профиля
4456 / 2944 / 830
Регистрация: 15.07.2013
Сообщений: 16,932
13.08.2015, 18:35 2
Цитата Сообщение от MT-11 Посмотреть сообщение
Вот, оно все равно мне номер юзера пишет
Что просишь, то и пишет.
ЗАПРАШИВАНИЕ МНОГОЧИСЛЕННЫХ ТАБЛИЦ ТАКЖЕ КАК ОДНОЙ
0
12 / 1 / 2
Регистрация: 02.02.2012
Сообщений: 121
14.08.2015, 08:37  [ТС] 3
northener, Что-то все равно я "вкурить" не могу... Если не трудно, дайте пример как это сделать...
0
11 / 11 / 7
Регистрация: 23.07.2015
Сообщений: 62
14.08.2015, 09:03 4
открой отчет в редакторе FastReport'a найди поле где должна быть фамилия, и замени ссылку на поле на id_user на ссылку на поле с его фамилией
0
12 / 1 / 2
Регистрация: 02.02.2012
Сообщений: 121
14.08.2015, 09:12  [ТС] 5
antojgo, Та делал я так, то оно мне выводит только первое ФИО с таблицы...
0
11 / 11 / 7
Регистрация: 23.07.2015
Сообщений: 62
14.08.2015, 11:55 6
в каждой записи выдает первую фамилию? если да то проверь запрос, что он выдает
или один раз вывел фамилию и дальше молчит?
сколько всего записей выдает запрос и выдает отчет?
0
12 / 1 / 2
Регистрация: 02.02.2012
Сообщений: 121
14.08.2015, 12:15  [ТС] 7
Да, выдает первую фамилию...
запрос у меня как в первом посте....

Для наглядности структура таблиц:
таблица bases:
1. n ------ счётчик (уникальное)
2. da ----- дата
3. id_user -- числовое
4. f4 ------- текст
5. f5 ------- текст
6. f6 ------- текст

таблица users
1. n ------ счётчик (уникальное)
2. names -- текст

вот нада чтоб с таблицы users поля names подменяло в поле is_user
0
11 / 11 / 7
Регистрация: 23.07.2015
Сообщений: 62
14.08.2015, 13:30 8
Цитата Сообщение от MT-11 Посмотреть сообщение
вот нада чтоб с таблицы users поля names подменяло в поле is_user
так в запросе пропиши
SQL
1
SELECT users.names AS is_user, ...
1
12 / 1 / 2
Регистрация: 02.02.2012
Сообщений: 121
14.08.2015, 14:22  [ТС] 9
Спасибо, но если так пропишу
SQL
1
SELECT users.names AS id_user, * FROM bases INNER JOIN users ON id_user=users.n  WHERE da LIKE '''+FormatDateTime('yyyy-mm', Dater.Date)+'%''
то дает ошибку
Миниатюры
Отчёт в FastReport. Заменить данные с другой таблицы  
0
11 / 11 / 7
Регистрация: 23.07.2015
Сообщений: 62
14.08.2015, 14:39 10
это говорит о том что в fqBase описано поле id_user с типом integer, но он получает значения типа WideMemo
пересоздай field в fqBase с новым типом и будет работать
но этот вариант - костыль, кто его знает где у тебя это поле используется
по хорошему надо проверять фастрепорт, почему там не выводятся фамилии
проверь,
Цитата Сообщение от MT-11 Посмотреть сообщение
Да, выдает первую фамилию...
только в первой строке или вкаждой строке первая фамилия?
0
12 / 1 / 2
Регистрация: 02.02.2012
Сообщений: 121
14.08.2015, 16:13  [ТС] 11
antojgo, Только что экспериментировал, короче, выдает ту фамилию в каждой записи на которой стоит курсор в таблице users. Если перед этим запросом поставить fqUser.First то везде первая фамилия....
0
11 / 11 / 7
Регистрация: 23.07.2015
Сообщений: 62
14.08.2015, 16:29 12
в отчете на какую query ссылается поле с фамилией, на fqUser или на ту где этот запрос
Цитата Сообщение от MT-11 Посмотреть сообщение
SELECT * FROM bases INNER JOIN users ON bases.id_user=users.n WHERE bases.da LIKE '''+FormatDateTime('yyyy-mm', Dater.Date)+'%''
?
0
12 / 1 / 2
Регистрация: 02.02.2012
Сообщений: 121
14.08.2015, 16:34  [ТС] 13
Ну на fqUser... или как
0
11 / 11 / 7
Регистрация: 23.07.2015
Сообщений: 62
14.08.2015, 16:42 14
как я понимаю основные данные для отчета берутся из fqBase (или другая кверя с запросом на который я ссылался в предыдущем сообщении), так?
если так то - значит и фамилию надо из него же брать
если нет, то плохой я телепат и выкладывай код
0
12 / 1 / 2
Регистрация: 02.02.2012
Сообщений: 121
14.08.2015, 16:48  [ТС] 15
Ну вроде все правильно...
вот код, на всяк-пожарное, вызова отчёта
Delphi
1
2
3
4
5
6
7
8
  fqBase.Close;
  fqBase.SQL.Clear;
  fqBase.SQL.Add('SELECT * FROM bases LEFT JOIN users ON id_user=users.n  WHERE da LIKE '''+FormatDateTime('yyyy-mm', Dater.Date)+'%''');
  fqBase.SQL.Add('order by da');
  fqBase.Open;
  fqBase.Active:=True;
  fqBase.First;
  rZMoutch.ShowReport();
Да, я тож так понимаю что нада брать фамилию из fqBase, но когда я подлючил базу к фастРепорту то там нету ссылки на фамилию, тобиш, есть только [frxDBDataset1."id_user"] а когда меняю id_user на names оно мне говорит что нету такого...
0
11 / 11 / 7
Регистрация: 23.07.2015
Сообщений: 62
14.08.2015, 16:51 16
Лучший ответ Сообщение было отмечено MT-11 как решение

Решение

запрос видимо правил после подключения квери к фастрепорту
обнови список полей у квери
обнови список полей в фастрепорте
1
12 / 1 / 2
Регистрация: 02.02.2012
Сообщений: 121
14.08.2015, 17:16  [ТС] 17
Ой, спасибо за помощь....
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.08.2015, 17:16

Связал таблицы в AdoQuery через Sql запрос, для отчета. Сам отчет делаю в FastReport
Связал таблицы в AdoQuery через Sql запрос, для отчета. Сам отчет делаю в FastReport. Но при...

Заменить значение ключа из одной таблицы именем из другой таблицы в форме
Здравствуйте! Есть две таблицы. Одна таблица называется "Посуда" с полями "Ключ посуды" и...

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

Данные из таблицы в отчет по заданному времени
Пытаюсь вывести данные из таблицы в отчет по заданному времени. Запрос идеально работает, но через...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru