(?) - Параметр запроса Sql

ListopadListopad Хабаровск
отредактировано July 2009 Раздел: FastReport .NET
Здравствуйте, я столкнулась с проблемой.
Я создаю запрос SQL через мастер создания запросов (если он конечно так называется):

select [таблица].[поле1] from [таблица] where [таблица].[поле2] in (?)

Далее, следуя шагам мастера, создаю параметр типа VarChar(255), параметр Expression = [ПараметрОтчета], где [ПараметрОтчета] - параметр отчета, который заполняется программно:

string param = "значение1, значение2";
Report.SetParametrValue([ПараметрОтчета],param);


По идее (ну, во всяком случае, я так думаю), запрос должен превратиться при выполнение в следующую строку:

select [таблица].[поле1] from [таблица] where [таблица].[поле2] in ("значение1, значение2")

Но он не работает. :)
Вот если одно значение передать: param = "значение1", тогда все ок...

В чем проблема? Подскажите, пожалуйста...
«1

Комментарии

  • отредактировано 15:21
    предполагаю, проблема исключительно из-за сырости FasReport.NET, поторопились с его выпуском на рынок.

    у меня тоже куча проблем с OleDB

    протестили на Microsoft SQL и все на этом, остальные СУБД их не интересуют, не партнеры же.
  • ListopadListopad Хабаровск
    отредактировано 15:21
    _aser_ написал: »
    предполагаю, проблема исключительно из-за сырости FasReport.NET, поторопились с его выпуском на рынок.

    У меня тоже такая мысль возникала. Печально, конечно...
    Хотя, возможно, такие мысли возникают от незнания. :)
  • отредактировано July 2009
    уже неделю бьюсь, никак...
    да и тут помочь никто не может.

    Решил выйти из проблемы следующим образом:
    форму рисую в студии на ней формирую все необходимые данные для отчета, вставляю в DataSet и передаю в отчет.

    если интересно могу куски кода скинуть.
  • ListopadListopad Хабаровск
    отредактировано July 2009
    Высылай. )
  • отредактировано 15:21
    как появится немного свободного времени...
    с этими экспериментами я слишком много времени потерял
  • отредактировано 15:21
    написал:
    По идее (ну, во всяком случае, я так думаю), запрос должен превратиться при выполнение в следующую строку:

    select [таблица].[поле1] from [таблица] where [таблица].[поле2] in ("значение1, значение2")

    Передавать множественные значения для IN с помощью параметра нельзя. Параметр может передать только одно значение. В Вашем случае это будет "значение1, значение2", а надо - "значение1", "значение2". Выход - формировать текст SQL вручную, вот так:

    TableDataSource data = Report.GetDataSource("my_datasource") as TableDataSource;
    data.SelectCommand = ...

    этот код надо выполнить после загрузки отчета, и до его запуска.
    написал:
    Хотя, возможно, такие мысли возникают от незнания.

    В данном случае это верно :)
  • ListopadListopad Хабаровск
    отредактировано 15:21
    _aser_ написал: »
    как появится немного свободного времени...
    да я тебя не тороплю. как время будет - пиши. )
  • ListopadListopad Хабаровск
    отредактировано July 2009
    AlexTZ написал: »
    TableDataSource data = Report.GetDataSource("my_datasource") as TableDataSource;
    data.SelectCommand = ...
    этот код надо выполнить после загрузки отчета, и до его запуска.

    Спасибо огромное. Вроде бы заработало. ) Ура! )))

    Есть еще вопрос не по теме - у меня почему то не полностью печатаются страницы формата А3 - печататется только заголовок страницы и первая строка бэнда данные. В чем проблема?
  • отредактировано 15:21
    В окне просмотра отображается нормально?
  • ListopadListopad Хабаровск
    отредактировано 15:21
    AlexTZ написал: »
    В окне просмотра отображается нормально?

    Да, в окне просмотра все нормально, А4 печатает, а вот А3 - нет...
  • отредактировано 15:21
    А что за принтер? Я попробовал печатать А3, у меня работает нормально.
  • ListopadListopad Хабаровск
    отредактировано 15:21
    AlexTZ написал: »
    А что за принтер? Я попробовал печатать А3, у меня работает нормально.

    Странно... Принтер: HP LaserJet 8150.
  • отредактировано 15:21
    Откройте диалог настройки страницы (Файл|Настройки страницы...) - там указан тип бумаги А3, или пользовательский размер?
  • ListopadListopad Хабаровск
    отредактировано 15:21
    AlexTZ написал: »
    Откройте диалог настройки страницы (Файл|Настройки страницы...) - там указан тип бумаги А3, или пользовательский размер?
    Там указан тип А3...
  • отредактировано 15:21
    Распечатали на еще одном принтере в офисе. Ошибок нет. Можете прислать файл .fpx (сохранить из превью) на tz@fast-report.com?
  • ListopadListopad Хабаровск
    отредактировано 15:21
    AlexTZ написал: »
    Распечатали на еще одном принтере в офисе. Ошибок нет. Можете прислать файл .fpx (сохранить из превью) на tz@fast-report.com?
    Отправила. Ловите. )))
  • отредактировано 15:21
    Извиняюсь, прибил - принял за спам :)
    Пришлите еще раз, пожалуйста - вместе с файлом отчета .frx
  • ListopadListopad Хабаровск
    отредактировано 15:21
    AlexTZ написал: »
    Извиняюсь, прибил - принял за спам :)
    Пришлите еще раз, пожалуйста - вместе с файлом отчета .frx
    Дубль два. ) Отправила.
    Не вижу смысла слать файл .frx - все равно работать не будет, у меня же там идет связь с БД...
    Так что выслала только .fpx. Проверьте его, он у меня так и не печатается...
  • отредактировано 15:21
    Попробуйте поменять источник бумаги для страниц (Свойства страницы - Источник бумаги).
  • ListopadListopad Хабаровск
    отредактировано 15:21
    AlexTZ написал: »
    Попробуйте поменять источник бумаги для страниц (Свойства страницы - Источник бумаги).
    Я перепробовала все источники... А у вас напечаталось?
  • ListopadListopad Хабаровск
    отредактировано 15:21
    Есть БД на Access, в которой есть запрос с параметром [param]. Можно ли как-нибудь передать из FastReport'а значение этого параметра в запрос?
  • ListopadListopad Хабаровск
    отредактировано 15:21
    И еще вопрос. Есть две БД Access. В отчете создано два соединения к таблицам, располож. в разных БД. Необходимо сделать запрос, включающий обе эти таблицы.
  • ListopadListopad Хабаровск
    отредактировано 15:21
    И последний вопрос на сегодня (хотя может и не последний).
    Есть БД Access. В ней есть связь с таблицей из другой БД. Почему я не могу использовать эту связанную таблицу в качестве источника для отчета? :)
  • отредактировано 15:21
    Listopad написал: »
    Я перепробовала все источники... А у вас напечаталось?

    Да, у нас печатается нормально. Из чего делаю вывод, что барахлит конкретно эта связка "программа-принтер". Я, правда, не понял - что именно печатается неправильно - было бы неплохо взглянуть, как выглядит распечатка того отчета, что Вы мне посылали.
  • отредактировано 15:21
    Listopad написал: »
    Есть БД на Access, в которой есть запрос с параметром [param]. Можно ли как-нибудь передать из FastReport'а значение этого параметра в запрос?

    Способ описан в руководстве пользователя:
    http://fast-report.com/documentation/UserM...passvalueto.htm
  • отредактировано 15:21
    Listopad написал: »
    И еще вопрос. Есть две БД Access. В отчете создано два соединения к таблицам, располож. в разных БД. Необходимо сделать запрос, включающий обе эти таблицы.

    Это невозможно, в запросе можно использовать таблицы одной базы данных.
  • отредактировано 15:21
    Listopad написал: »
    И последний вопрос на сегодня (хотя может и не последний).
    Есть БД Access. В ней есть связь с таблицей из другой БД. Почему я не могу использовать эту связанную таблицу в качестве источника для отчета? :)

    Надо добавить в отчет два соединения и таблицы из них. Потом между таблицами надо создать связь (в окне "Данные" выберите "Действия-Новая связь").
  • отредактировано 15:21
    Да, еще забыл спросить - отчет А3 в портретной ориентации печатается нормально?
  • ListopadListopad Хабаровск
    отредактировано 15:21
    AlexTZ написал: »
    Да, у нас печатается нормально. Из чего делаю вывод, что барахлит конкретно эта связка "программа-принтер". Я, правда, не понял - что именно печатается неправильно - было бы неплохо взглянуть, как выглядит распечатка того отчета, что Вы мне посылали.
    Это, возможно, странно, но он никак не выглядит. )
    Если печатать из превью файла .frx, то печататется только заголовок, а бэнд данный игнорируется, а если печатать из файла готового отчета (который я вам отправила), то не печатается вообще, даже перебрав все источники, то есть принтер как будтно запрос на печать вообще не обрабатывает... Странно все это... Блин, что ж делать - то... (((((
  • ListopadListopad Хабаровск
    отредактировано 15:21
    AlexTZ написал: »
    Способ описан в руководстве пользователя:
    http://fast-report.com/documentation/UserM...passvalueto.htm

    Да, я это уже читала. Но я имела в виду несколько иное.
    Вот есть у меня запрос в самой базе (не в репорте созданный, а уже готовый запрос БД), к примеру select * from Table where Table.Field = [param].
    Если делать этот запрос источником данных, то он естественно выглядит не как запрос для репорта, а как таблица, то есть просто поля без взяких параметров. Если я создам параметр для этого источника, он будет передан в запрос в качестве значения для [param]?

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.