Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / DataReport проблема / 25 сообщений из 31, страница 1 из 2
04.08.2011, 23:33
    #37381489
bubek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
Привет ребята!
Есть БД. В ней 5 записей. Есть DataReport (связка через DataEnvironment). При показе DataReport все 5 записей выводятся на лист. Хочу выводить только ту запись на которой в данный момент моя каретка. Использую DataGrid. Как вывести на DataReport именно ту запись, которая в данный момент активна в гриде?
Заранее благодарен!
...
Рейтинг: 0 / 0
05.08.2011, 00:30
    #37381533
BelowZero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
bubek,

погоди, ща они придут, помогут) просто все PRO просыпаются только в 1-2 ночи. ты рано написАл
...
Рейтинг: 0 / 0
05.08.2011, 00:38
    #37381536
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
BelowZerobubek,

погоди, ща они придут, помогут) просто все PRO просыпаются только в 1-2 ночи. ты рано написАл


по-моему, ты уже откровенно хочешь в баню....
...
Рейтинг: 0 / 0
05.08.2011, 00:40
    #37381540
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
на такой общий вопрос - только общий ответ - использовать фильтр по ключевому полю, соответствующей текущей записи в источнике данных для DataGrid

Самое простое - сделай тестовый проект и выложи
...
Рейтинг: 0 / 0
05.08.2011, 07:54
    #37381664
bubek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
Shocker.Pro,

Создал команду в DataEnvironment типа:

Select * from MAINBASE where cardno = '444'
При DataReport.show он выводит на печать именно эту запись (запись с номером карточки 444).

Вопрос:
Нельзя ли сделать SQL запрос типа:

Select * from MAINBASE where name = Adodc1.recordset("name") , тоесть дать понять приложению, что в данный момент выбрана запись такая то в DataGrid и выводи на печать именно её.

Спасибо!

P.S. С выставлением тестового проекта есть трудность. БД в ADS.
...
Рейтинг: 0 / 0
05.08.2011, 08:57
    #37381713
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
bubekНельзя ли сделать SQL запрос типа:
Select * from MAINBASE where name = Adodc1.recordset("name")
Ну да, что-то типа и надо сделать. Вот так разве не получается?
...
Рейтинг: 0 / 0
05.08.2011, 10:04
    #37381817
bubek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
Shocker.ProbubekНельзя ли сделать SQL запрос типа:
Select * from MAINBASE where name = Adodc1.recordset("name")
Ну да, что-то типа и надо сделать. Вот так разве не получается?

Прописываю Select * from MAINBASE where name = Adodc1.recordset("name"), делаю применить и получаю следующее сообщение:

To retrieve field information for this Command, the Command must be executed. You may need to specify input parameter values in the Parameters tab before the command is executed. Execution may add to or modify data in the database. Execute command?

Далее запускаю проект, нажимаю на Показать отчет и получаю ошибку:

Failed getting Rowset(s) from current data source

Что может быть?
...
Рейтинг: 0 / 0
05.08.2011, 10:11
    #37381843
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
стоп-стоп
где прописываешь?
надо в коде, а не в DataEnvironment

ЗЫ: и кавычки для текстового поля не забудь
...
Рейтинг: 0 / 0
05.08.2011, 10:21
    #37381878
bubek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
Shocker.Proнадо в коде, а не в DataEnvironment

Private Sub cmdShowReport_Click()

DataEnvironment ????? - в коде что писать?

DataReport.Show
End Sub
...
Рейтинг: 0 / 0
05.08.2011, 10:44
    #37381949
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
В том-то и дело, что я никогда не работал с DataEnvironment, поэтому и попросил тестовый код.

я обычно делаю что-то типа :
Код: plaintext
1.
Set DataReport.DataSource=Conn.Execute("select ... from .... where")
DataReport.Show
...
Рейтинг: 0 / 0
05.08.2011, 10:58
    #37381997
bubek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
Shocker.Pro,

Мммм...вроде понятно. А описание Conn. можешь дать своего кода?
Ну типа Dim conn as new Connection ... или как там у тебя идет?

Спасибо!
...
Рейтинг: 0 / 0
05.08.2011, 11:01
    #37382007
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
Ну коннекшн у тебя уже есть в АДОДЦ

то есть что-то типа будет:
Код: plaintext
1.
Set DataReport.DataSource=Adodc1.Recordset.ActiveConnection.Execute("select ... from .... where")
DataReport.Show
...
Рейтинг: 0 / 0
05.08.2011, 11:18
    #37382058
bubek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
Shocker.Pro,

Сделал следующее:

Private Sub cmdShowReport_Click()
Set DR.DataSource = Adodc1.Recordset.ActiveConnection.Execute("select * from MAINBASE")
DR.Show
End Sub

Получил ошибку:

Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.
...
Рейтинг: 0 / 0
05.08.2011, 11:36
    #37382116
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
ну вот сложно так, без образца... по идее должно работать, надо пробовать отлаживать эту составную строку по частям
...
Рейтинг: 0 / 0
05.08.2011, 11:46
    #37382144
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
А как задается источник данных для ADODC? Тоже через DataEnvironment?
...
Рейтинг: 0 / 0
05.08.2011, 14:39
    #37382539
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
по идеи, у адодиси должно быть свойство - рекордсорс, или датасорс куда можно вставить скюэль запрос с нужным вам условием, либо возможно есть свойство фильтр, которое вообще упрощает задачу автора
...
Рейтинг: 0 / 0
05.08.2011, 14:42
    #37382548
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
вот только не пойму, зачем вообще работать через адодиси, работайте через рекордсеты и будет вам счастье
...
Рейтинг: 0 / 0
05.08.2011, 14:47
    #37382557
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
ADODC удобен для работы с датагридом, особенно если используется в видимом режиме, то есть как интерфейс пользователя.

Но вот работать с DataEnvironment смысла скорее всего нет.
...
Рейтинг: 0 / 0
05.08.2011, 15:08
    #37382594
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
Я бы сделал так:
На открытие отчета-
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim rs As New ADODB.Recordset
If rs.State =  1  Then
rs.Close
End If

rs.CursorLocation = adUseClient
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
SQL = "SELECT * " & _
"FROM Моя_таблица "

rs.Open SQL, conn

ValId= 1  
rs.Filter= "[ключевое_поле]=" & ValId 
Set DataReport.DataSource=rs
DataReport.Show

Что бы все работало нужно убедится что подключена библиотека:
Microsoft ActiveX Data Object Recordset 2.8 Library
(Проект->ссылки
...
Рейтинг: 0 / 0
05.08.2011, 15:19
    #37382622
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
Для начала автор не знает где взять объект Connection, так как сконструировал его (как я понял) с помощью DataEnvironment
...
Рейтинг: 0 / 0
05.08.2011, 15:38
    #37382657
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
Shocker.ProДля начала автор не знает где взять объект Connection, так как сконструировал его (как я понял) с помощью DataEnvironment
Эх!
Ну тогда в модуле:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Public conn As New ADODB.Connection

Function SetConnection()
Dim ConnString, SourceBase As String
SourceBase = "Здесь путь к базе"
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & SourceBase & ";Persist Security Info=False" 'Этот провайдер для 2003 Access и ниже
conn.Open ConnString
End Function 
...
Рейтинг: 0 / 0
05.08.2011, 16:21
    #37382741
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
TpaBka
Код: plaintext
Microsoft.Jet.OLEDB. 4 . 0 

bubekP.S. С выставлением тестового проекта есть трудность. БД в ADS.
...
Рейтинг: 0 / 0
05.08.2011, 16:23
    #37382745
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
> Автор: Shocker.Pro
> БД в ADS.


Еще с утра хотел спросить что это значит?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
05.08.2011, 16:25
    #37382751
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
Игорь Горбонос> БД в ADS.
Еще с утра хотел спросить что это значит?

Не знаю , но вряд ли в MDB, раз автор не может ее приложить
...
Рейтинг: 0 / 0
05.08.2011, 17:23
    #37382837
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataReport проблема
> Автор: Shocker.Pro
> Не знаю , но вряд ли в MDB, раз автор не может ее приложить


Только для примера, можно было сделать и в mdb

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / DataReport проблема / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]