Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Генерация отчета 
:(
    Опции темы
nicka
  Дата 30.7.2003, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



А еще хочу спросить вас следующее:
Вот делаю я отчет, в котором данные из таблицы идут, в которой все нули или минус единицы стоят
(0/ -1), значит и в отчете они будут видны в натуральную величину. А вот я хочу вместо них видеть скажем либо пробел, либо галочку.
Что прикажете делать?

PM MAIL   Вверх
GriKo
Дата 30.7.2003, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 7.6.2003
Где: Израиль

Репутация: нет
Всего: нет



Сделай цикл, "ФОР" скажем, и в нём "ЕСЛЕ". И вот "есле" прочитанный символ = 0, тогда чтобы он заменялся пробел, а "подругому" - чтобы заменялся на V.
PM MAIL ICQ   Вверх
-Mikle-
Дата 30.7.2003, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Например lFld - это значение 0 или -1, а в переменную sRes надо записать " " или "V":
Код
sRes = IIf(lFld=0," ","V")


но в варианте предложенном GriKo, можно например в нужном месте нарисовать голчку:
If sFld=0 then
pic.PaintPicture(picSrc.picture,0,0)
else
pic.PaintPicture(picSrc1.picture,0,0)
end if
так что он более шире по возможностям...


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
nicka
Дата 31.7.2003, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Bсе это понятно, только ведь проблема в другом!

Ведь данное действие надо писать в методе Current формы , а у рапорта такового не имееться!
Если я такое напишу в методе Open, допустим, то этот код подействует лишь на первую запись, а все остальные записи отобразит как первую!

Что скажете, господа! Или я не права?!


PM MAIL   Вверх
Plamenk
Дата 31.7.2003, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 258
Регистрация: 18.2.2003

Репутация: нет
Всего: 3



У Access есть встроенные функция, точно не помню как называется нет под рукой Access, что-то типа if((выражение), (правда), (ложь)). Смысл этой функции по-моему очевиден.
Так что в качестве значения поля можно использовать следующее выражение
Код
=if((value = -1)," ", "V")

PM MAIL   Вверх
cardinal
Дата 31.7.2003, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Где и как ты делаешь свой отчет? Я вообще по вопросу ничего не понимаю, что и куда ты хочешь записать анализировав свою таблицу.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
nicka
Дата 1.8.2003, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Повторяю еще раз
Все очень просто:
ПРостая таблица с полем, значениями которого могут быть либо 1, либо 0.
На основе этой таблицы делаю отчет, следовательно в отчете вижу либо 1, либ 0.
А я хочу видеть в отчете вместо 1 - галочку, а вместо 0 - пустое место, Ясно?

Товарищи предлагают различные варианты с оператором If(IFF), я и сама могла бы догададаться до этого, однако проблема в другом. Как я уже объяснила данный код надо присабачить к какому-то событию. Если бы это была форма я бы этот код написала в событии Current формы, и тогда проблем не будет, но ведь в данном случае дело происходит в отчете, где такого свойства нет, а есть только Open.
Если же я этот код поставлю в данном свойстве, то он проверит лишь первую запись и подействует на все остальные как на первую!
Понятно?
Короче попробуй, сам увидишь...

PM MAIL   Вверх
cardinal
Дата 1.8.2003, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата
Вот делаю я отчет, в котором данные из таблицы идут...


Ладно поясняю, что в этом вопросе неоднозначно. Что такое отчет? Да хрен его знает, что это. Ты пишешь в раздел VB, так причем здесь Access. Чтобы ты знала в VB можно тоже делать отчеты. Вот тебе примеры:

1. Отчеты можно формировать с помощью конструктора DataReport, который является новинкой в VB 6.0.
2. Их можно также формировать в Microsoft Access, а потом использовать в VB приложениях.
3. Отчеты можно создавать с использованием пакета VSREPORTS фирмы VideoSoft, позволяющего пользователям приложения создавать отчеты Microsoft Access независимо от того, установлена ли на их компьютере сама программа Microsoft Access.
4. Отчеты можно создавать с использованием пакета VSVIEW фирмы VideoSoft
5. Отчеты можно создавать с помощью программы Crystal Reports.
6. Отчеты можно "делать" (как ты говоришь) в виде HTML-документа.
7. Отчет можно создавать при помощи библиотеки Microsoft Scripting Runtime Library, которая облегчает экспорт данных в файлы в ясной объектно-ориентированной манере.
8. Ты можешь вообще "делать" отчеты с использованием объекта VB Printer.

Ну так почему же нельзя сказать как ты делаешь отчет? На мой вопрос "как?" ты отвечаешь:

Цитата
На основе этой таблицы делаю отчет...


Почему только товарищ Plamenk упоминает вообще слово Access, а не ты?
Я могу догадываться, что ты делаешь отчет в MS Access, только по тому факту, что ты Plamenk не сказала:
"Причем тут Access?".

Короче ладно х%р с ним. Для чего я это все в который раз пишу? А для того, чтобы посетители форума поконкретнее вопросы ставили - тогда и ответы поконкретней будут.

Ладно, попробуй вот это. Если я правильно до всего догадался, то это решение твоей проблемы. Я не поленился сделал базу данных, отчет и все протестировал. Соответственно если - это не то, что ты хотела, то значит думай в следующий раз как поставить вопрос так, чтобы ответ на него мог бы быть только один!

Код
=Switch([Field]="1";"V";[Field]="0";"")


Все, что я написал - это не наезд, а просто очередная попытка призвать людей к порядку smile.gif. А если кто-то считает это наездом, то тогда это просто ответ на наезды типа:
Цитата
Понятно?
...
Цитата
Ясно?

Прямо впечатление создалось, что там сначало было написано "Понятно, козел? Что пишешь тут, если тебе ничего непонятно..." smile.gif


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
nicka
Дата 4.8.2003, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Цитата
=Switch([Field]="1";"V";[Field]="0";"")


Насчет данного кода,
у меня в отчете в методе Open стоит следующий код:

Private Sub Report_Open(Cancel As Integer)
Dim strsql As String

DoCmd.Maximize

strsql = "SELECT check FROM table1 "

Me.RecordSource = strsql

End Sub

Теперь я ставлю данный код в эту же процедуру( в конце):
Me.check.Value = Switch(Me.check .Value = "1", "V", Me.check .Value = "0", "")

При запуске отчета выдаеться такая ошибка:
You entered an expression that has no value
при том что в отчете стоит елемент check у которого свойство Control Source присвоено значение check .
Не знаю может значение еще не успело присвоится на данном этапе загрузки формы?
И вообще этот код (Me.check .Value = Switch(Me.check .Value = "1", "V", Me.check .Value = "0", "")) надо писать в данном методе формы или еще где?

PM MAIL   Вверх
Unregistered
Дата 4.8.2003, 17:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Указаный мною код

Код
=if((value = -1)," ", "V")


надо писать не в событие OPEN, а присваивать его как значение поля.

По-моему, и cardinal имел ввиду тоже самое.
  Вверх
Plamenk
Дата 4.8.2003, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 258
Регистрация: 18.2.2003

Репутация: нет
Всего: 3



Данное сообщение было написано мною.
PM MAIL   Вверх
cardinal
Дата 4.8.2003, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



это я и имел ввиду...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
nicka
Дата 5.8.2003, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Код
[QUOTE]=Switch([Field]="1";"V";[Field]="0";"")[/QUOTE]


Ладно, я ставлю этот код (вместо Field ставлю название поля берущегося из запроса к таблице(check)) в свойство Control Source textbox-а на форме - к сожалению вообще ничего не показывает, или это не значит -
Цитата
надо писать не в событие OPEN, а присваивать его как значение поля.
??
PM MAIL   Вверх
nicka
Дата 5.8.2003, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Код
[QUOTE]=if((value = -1)," ", "V")[/QUOTE]


Когда пишу это, вообще при выходе из поля выдает ошибку The expression you entered contains envalid sintax...

Код
[QUOTE]=iif((value = -1)," ", "V")[/QUOTE]
и так пробовала все равно не правильно

А если так пишу :
Код
= IIf(me.jan ="-1", "V", "*")
то при запуске отчета пишет "Cannot find the field = IIf(me.check="-1", "V", "*")"
PM MAIL   Вверх
cardinal
Дата 5.8.2003, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Все что тебе надо сделать - это открыть в MS Access базу данных, выбрать тот отчет, который тебе нужно, открыть его констpуктором и написать в значение поля то, что я тебе написал.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1399 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.