![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.09.2010
Сообщений: 16
|
![]()
1) Дана таблица Table1
ID - AutoNumber pole_1 - Text pole _2 - Text pole _3 - Text pole _4 - Text pole _5 - Text pole _6 - Text pole _7 - Text 2) В Form1 введены поля таблицы Table1. 3) В Report1 я хочу относительно ID, чтобы были бы видны только те поля, где введены значения. Не долны отображаться поля,которые являются пустыми. Например в Table1 введены следующие значения. Table1 ================ ID pole_1 pole_2 pole_3 pole_4 pole_5 pole_6 pole_7 1 книга ручка тетрадь 467 5 2 тетрадь книга книга 365 3 блокнот тетрадь книга тетрадь 356 ============= 4) В Report1 должна быть видны следующие поля, если ID = 1 ID -1 pole_1 - книга pole_3 - ручка pole_4 - тетрадь pole_6 - 467 pole_7 - 5 =================================== ============================= если ID = 2 ID - 2 pole_1 - тетрадь pole_3 - книга pole_5 - книга pole_6 - 365 =================================== ============================= если ID = 3 ID - 3 pole_2 - блокнот pole_3 - тетрадь pole_4 - книга pole_5 - тетрадь pole_7 - 356 Есть ли возможность сделать такой отчет, и если есть, то как можно будет сделать это. Последний раз редактировалось NickiBell; 15.09.2010 в 15:36. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 15.09.2010
Сообщений: 16
|
![]()
Здравствуйте ...
![]() Практически мне нужно узнать какую именно команду я должна применить в коде, чтобы она сама сажала бы поле в пустом отчете. Что это за команда, где ее искать? Надеюсь мне кто-нибудь подскажет. Заранее спасибо. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 01.09.2010
Сообщений: 28
|
![]()
И Вам - Здравствуйте!
Такое понятие как "динамический отчет" не используется. Отчет - это сетка/шаблон, который заполняется данными полученными в результате запроса. Естественно, при разных результатах запроса и отчет будет разным (динамическим? ![]() В общем случае, если результат запроса не содержит данных для некоторых полей, то соответствующие поля отчета также будут пустыми. Можно определить заголовки столбцов как вычисляемые поля и отображать их также, в зависимости от результата запроса (.Visible=True/False) Но! Все поля/столбцы останутся на своих местах и просто будут пустыми! Можно конечно усложнить и, дополнительно, установить в "0" ширину пустых полей ( .Width=0) и перемещать видимые поля/столбцы. Или Вам именно это и нужно? Последний раз редактировалось D.Shibanov; 16.09.2010 в 02:51. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.09.2010
Сообщений: 16
|
![]()
Если я правильно поняла, то в отчете я должна поместить друг за другом (сверху вниз) все поля, которые я хочу чтобы участвовали бы в самом отчете.
Таким образом получается, что если поле, например pole_1 имеет пустое значение, то его высота (на данный момент именно высота должна меня интересовать) станет pole_1.Height=0 и затем делаю проверку следующих полей. Мне нужно именно перемещать видимые поля вверх. Сейчас проверю такой метод, как он будет работать. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 15.09.2010
Сообщений: 16
|
![]()
При загрузке в отчете конкретной страницы как правильнее сделать проверку поля на пустое значение?
Private Sub Report_Load() If (Reports![Report1]![pole_1] Is Not Null) Then Reports![Report1]![pole_1].Visible = True Else Reports![Report1]![pole_1].Visible = False Reports![Report1]![pole_1].Height = 0 End If End Sub ======================= Если указываю конкретное значение, то все работает, но мне нужен первый вариант. Private Sub Report_Load() If (Reports![Report1]![pole_1] ="YES") Then Reports![Report1]![pole_1].Visible = True Else Reports![Report1]![pole_1].Visible = False Reports![Report1]![pole_1].Height = 0 End If End Sub |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
![]()
Здравствуйте NickiBell.
Вашу задачу лучше решать перебором, обращаясь к контролам по имени: Код:
Евгений. P.S. выкладывая на странице образцы кода, для удобочитаемости заключайте его (код) в тэги [соde]...[/соde], для этого можно воспользоваться кнопкой #. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 15.09.2010
Сообщений: 16
|
![]()
Здравствуйте,
Мое знание Access не ахти. Элементарный цикл не знаю как выполнить для полей, чтобы наконец завершить эту работу. Где-то здесь ошибка кроется и нигде не могу найти подробную информацию о циклах. ======================== Код:
Должно выполниться в таком порядке: [pole_7].Top=[pole_6].Top [pole_6].Top=[pole_5].Top [pole_5].Top=[pole_4].Top [pole_4].Top=[pole_3].Top [pole_3].Top=[pole_2].Top [pole_2].Top=[pole_1].Top Идеи для решения моей задачи мне очень помогли ... ![]() Спасибо большое. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 15.09.2010
Сообщений: 16
|
![]() Код:
![]() Фактически, для той темы, что мне нужно было, я по порядку делала невидимым поле, которое было пустым и следующие поля поднимала вверх на отчете. и таким образом, видимые поля менялись на отчете соответственно. Всем спасибо за поддержку. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание отчета | bsi1952 | Microsoft Office Access | 1 | 27.06.2010 20:43 |
Создание отчета | Alsou | Общие вопросы Delphi | 0 | 19.06.2010 19:43 |
Создание отчета | Deni55 | Microsoft Office Excel | 13 | 15.06.2009 14:53 |
Создание отчета! | Deni55 | Microsoft Office Excel | 10 | 16.04.2009 14:04 |
Создание отчета!!! | Viento | Microsoft Office Excel | 12 | 26.01.2009 09:26 |