отчет с группировкой

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
virtuoz
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 10.05.2006 (Ср) 15:36

отчет с группировкой

Сообщение virtuoz » 23.05.2006 (Вт) 20:59

Нужно сделать отчет с группировкой. Создал 6 секцию. для группировки, поместил туда RptTextBox. Вопрос: что нужно добавить в коде кнопки чтобы подключить RptTextBox для группировки (например по Familiya)? предполагаю что нужно добавить

Код: Выделить всё

Private Sub cmdShowReport_Click()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

With cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "C:\DataReport.mdb"
    .Open
End With

With rs
    .ActiveConnection = cn
    .LockType = adLockReadOnly
    .CursorType = adOpenDynamic
    .Source = "SELECT * FROM tblPeople WHERE Age>=" & _
    txtFrom & " AND Age<=" & txtTo & " "
    .Open
End With

Set DataReport1.DataSource = rs

DataReport1.Show 1
End Sub

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 24.05.2006 (Ср) 7:22

Код: Выделить всё
Source = "SELECT * FROM tblPeople WHERE Age>=" & _
    txtFrom & " AND Age<=" & txtTo & " ORDER BY  Familiya"

Примерно так (не проверял) делается сортировка.
RptTextBox - это что за контрол? DataReport1, а это? :?
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.05.2006 (Ср) 7:26

Matew, ты вопрос-то перечитай...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 24.05.2006 (Ср) 9:30

virtuoz,GSerg, ну так я его и недопонял, поэтому и спросил, что за контролы. Я ответил, как понял. В коде сортировки не было. Я и написал... :oops:
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

virtuoz
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 10.05.2006 (Ср) 15:36

Сообщение virtuoz » 24.05.2006 (Ср) 9:39

DataReport1 это форма отчета (меню-проект-добавить DataReport)
RptTextBox - это контрол для вывода данных

miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

Сообщение miwutka » 24.05.2006 (Ср) 9:50

посмотрел я этот ДатаОтчет и контролы. Спасибо, что пордсказал своим вопросом, мне как раз будет удобно для себя его использовать )

Так для этого rptTextBox енсть теже свойства dataField и DatMemder.
Следовательно подключается он также как и все остальные, только сначала задается свойство DataSource для DataReport, а в fataField контрола rptTextbox указывается нужно поле.

Тоько сначала нужно в соответствующий рекордсет засунуть запрос с группировкой - как говорил Matew

virtuoz
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 10.05.2006 (Ср) 15:36

Сообщение virtuoz » 24.05.2006 (Ср) 9:55

miwutka
я вот сейчас так и пытаюсь сделать, но пока не очень то получается добавить выборку, если у тебя что-нибудь получтится выложи примерчик

miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

Сообщение miwutka » 24.05.2006 (Ср) 10:27

куда ты ее хочешь добавить?

я открыл поиск по слову DataReport - столько полезных результатов я еще не видел ))
ищи там

virtuoz
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 10.05.2006 (Ср) 15:36

Сообщение virtuoz » 24.05.2006 (Ср) 12:29

есть допустим таблица с полями: Familiya, Vozrast, Gorod. Я ввожу определенный возраст и должен выскачить отчет со всеми людьми этого возраста с группировкой по городам.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 24.05.2006 (Ср) 12:41

Код: Выделить всё

SELECT * FROM tblPeople WHERE [Vozrast]=yourValue ORDER BY Gorod
Если всё делать своими ручками, они скоро отвалятся !

virtuoz
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 10.05.2006 (Ср) 15:36

Сообщение virtuoz » 24.05.2006 (Ср) 12:46

Kovu, так это сортировка, а мне нужно группировку, чтобы не к каждой записи был выведен город, а такой вид:

Код: Выделить всё
Москва
                        Иванов 17
                        Старов 17
                        Мишина 17
Валаколамск
                       Артамонов 17
                       Резцова 17


Group by Familiya выдает тот же результат. По идее нужно как-то прописать DataSourse для Group Header (Section6).

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 24.05.2006 (Ср) 12:56

virtuoz
В запросе группировки вроде не сделать :roll: (именно в самом запросе)
Если всё делать своими ручками, они скоро отвалятся !

virtuoz
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 10.05.2006 (Ср) 15:36

Сообщение virtuoz » 24.05.2006 (Ср) 12:59

ну пусть не в запросе, мне хоть как-то, лишь бы была выборка и группировка

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.05.2006 (Ср) 13:11

virtuoz писал(а):Kovu, так это сортировка, а мне нужно группировку

Он тебе не готовый рецепт дал, а направление.
Если у тебя набор данных отсортирован, то группировку сделать относительно легко.
Проходишься циклом и сравниваешь текущее значение с предыдущим. Если они отличаются, значит надо подбить итоги за предыдущий уровень.
Хотя не совсем понятно, чем тебя не устраивает обычный GROUP BY. Все равно конечный результат в том виде, в котором ты хочешь, сразу не получить.
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 24.05.2006 (Ср) 14:05

я вижу для автора несколько путей:

1. CrystalReports
2. назад в Access
3. HTML отчет
4. Продолжить извращения со стандартным дизайнером отчетов в бейсике

3 - наиболее предпочтительный вариант
1 - вполне профессиональный
2 - если припрет и быстро сделать надо
4 - если много времени и заняться нечем

:wink:

virtuoz
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 10.05.2006 (Ср) 15:36

Сообщение virtuoz » 24.05.2006 (Ср) 14:22

и как сделать подобное в HTML? Лучше наглядный пример

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 24.05.2006 (Ср) 15:32

вот:
Вложения
report_simple.rar
(548 байт) Скачиваний: 53

virtuoz
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 10.05.2006 (Ср) 15:36

Сообщение virtuoz » 24.05.2006 (Ср) 15:40

:shock: Konst_One шутник, как хтмл странички рисовать я и сам знаю, с таким же успехом можно и в Paint-е отчеты создавать, я просил пример проекта

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 24.05.2006 (Ср) 15:48

а что тебе не понятно, как получить данные - ты знаешь, как страничку создать html - тоже знаешь, ну так в чем тогда проблема :?:

сядь и напиши приложение :D

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 24.05.2006 (Ср) 16:57

Вот тебе пример. Наслаждайся.
Вложения
Адчод.rar
(1.83 Кб) Скачиваний: 74
Лучший способ понять что-то самому — объяснить это другому.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 24.05.2006 (Ср) 17:20

:lol:

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 25.05.2006 (Чт) 1:50

Antonariy,Konst_One, на помойку стандартные отчеты! ИЕ-рулит!! :)
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 25.05.2006 (Чт) 9:32

Matew, это ты вообще к чему?
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 25.05.2006 (Чт) 10:03

VVitafresh, понравились возможности ИЕ(сам как-то не додумался :( ). Стандартные контролы не впечатлили, хотя если меня кто-то попробует переубедить-было бы интересно послушать.
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 42

    TopList