Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

16 Февраль 2019, 17:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Отчет по конкретному значению таблицы  (Прочитано 4872 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Glebzilla
Участник
**
Offline Offline

Пол: Мужской
Расположение: Kazan, RU-TA
Сообщений: 6


« Стартовое сообщение: 16 Апрель 2014, 08:29 »

LibreOffice 4.5.1
Опыт работы с БД небольшой. Имеется простая БД, удовлетворяющая меня по многим параметрам. Но не могу сделать нормальный отчёт.
Конкретнее: среди моих форм имеется форма "протокол". В этой форме есть субформа в виде таблицы.
Мне требуется, чтобы я мог выбрать номер протокола, а потом получить отчёт с теми же самыми данными, что и в форме. Только по одному конкретному номеру протокола, а не по всем имеющимся.

[вложение удалено Администратором]
« Последнее редактирование: 16 Апрель 2014, 08:35 от Glebzilla » Записан
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #1: 16 Апрель 2014, 09:03 »

Поменяйте свой SELECT, добавив условие  "испСИ"."№прот" = :N_prot

SELECT "испСИ"."ID", "испСИ"."№прот", "испСИ"."Наименов", "СИ"."ЗавНом", "СИ"."СрокПов", "СИ"."СвидПов" FROM "испСИ", "СИ" WHERE "испСИ"."Наименов" = "СИ"."Наименов" AND "испСИ"."№прот" = :N_prot

Переменная будет запрашиваться при выполнении.
Записан

Яна (in real)
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #2: 16 Апрель 2014, 09:09 »

Написание названия переменной значения не имеет. Можете поменять его на другое, кириллица будет отображаться. Визуально это понятнее для пользователя. Я написала по привычке (для отладки на латин.)
Записан

Яна (in real)
Glebzilla
Участник
**
Offline Offline

Пол: Мужской
Расположение: Kazan, RU-TA
Сообщений: 6


« Ответ #3: 16 Апрель 2014, 09:21 »

А можно ли два запроса объединить в одном отчёте? Ну там сам протокол + испСИ
Чтобы один раз спрашивал номер протокола.
Записан
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #4: 16 Апрель 2014, 09:27 »

Не поняла. 

Если вы имеете ввиду жестко закрепленный "испСИ"."№прот", тогда давайте конкретное значение "испСИ"."№прот"='1'.
Записан

Яна (in real)
Glebzilla
Участник
**
Offline Offline

Пол: Мужской
Расположение: Kazan, RU-TA
Сообщений: 6


« Ответ #5: 16 Апрель 2014, 09:39 »

Вот у меня имеется запрос испСИ, по вводу "номера протокола" в который можно получить табличку, что мне и надо, спасибо.
И, допустим, я создаю ещё один запрос, относящийся к таблице протоколы, который по вводу "номера протокола" выдаёт не список, а только одну строку таблицы (номер протокола — число уникальное), что мне и требуется, опять спасибо Вам.
А можно ли эти два запроса в один отчёт?
Записан
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #6: 16 Апрель 2014, 10:10 »

Насколько я вижу в таблице испСИ 2 записи с протоколом №1. Чтобы получить уникальность нужно группировать данные и подсчитывать количество этих протоколов

SELECT "испСИ"."№прот", COUNT( "испСИ"."№прот" ) FROM "испСИ", "СИ" WHERE "испСИ"."Наименов" = "СИ"."Наименов"
  GROUP BY "испСИ"."№прот" HAVING ( ( "испСИ"."№прот" = '1' ) )

[вложение удалено Администратором]
Записан

Яна (in real)
Glebzilla
Участник
**
Offline Offline

Пол: Мужской
Расположение: Kazan, RU-TA
Сообщений: 6


« Ответ #7: 16 Апрель 2014, 13:52 »

Вот сделал то, что имел ввиду. Теперь как бы мне эти два запроса на один лист отчета разместить?
То есть применительно конкретно к этой БД: я открываю отчёт 1, ввожу цифру 1, у меня выходит то, что нужно, со вторым аналогично.
И в первом, и во втором отчёте используется один и тот же номер протокола.
Да хоть два раза вводить, главное — чтоб на одном листе.

[вложение удалено Администратором]
« Последнее редактирование: 16 Апрель 2014, 14:06 от Glebzilla » Записан
Glebzilla
Участник
**
Offline Offline

Пол: Мужской
Расположение: Kazan, RU-TA
Сообщений: 6


« Ответ #8: 16 Апрель 2014, 14:24 »

А если через Calc или Writer?
Записан
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #9: 17 Апрель 2014, 07:59 »

Можно. В Запрос1 добавить Запрос_ИспСИ (см. скрин, уже в вашей базе сделано) и переделать Отчет1. Отчет 2 удалить.

[вложение удалено Администратором]
Записан

Яна (in real)
Glebzilla
Участник
**
Offline Offline

Пол: Мужской
Расположение: Kazan, RU-TA
Сообщений: 6


« Ответ #10: 18 Апрель 2014, 12:51 »

Спасибо огромное! Сделал то, что хотел — в Calc при выполнении макроса (записывал в автоматическом режиме) сначала вставляются результаты первого запроса, а чуть ниже — второго.
Помог совет и вот эта видеозапись http://www.youtube.com/watch?v=oxvGE-nIemU
Осталось облагородить внешний вид и что-то сделать с кодировкой.

[вложение удалено Администратором]
« Последнее редактирование: 18 Апрель 2014, 13:03 от Glebzilla » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!