добавить новую страницу

2»

Комментарии

  • отредактировано 07:44
    ilyaae написал: »
    Ну мне надо каким то чудесным образом dataSet присвоить значение таблицы или может запроса и в дальнейшем зарегистрировать в отчете :)
    А данные-то где хранятся? И не обязательно DataSet, можно DataTable. По сути DataSet это массив DataTable.
  • отредактировано April 2016
    CodeMAP написал: »
    А данные-то где хранятся? И не обязательно DataSet, можно DataTable. По сути DataSet это массив DataTable.
    Данные на SQL Server. Наверно и можно DataTable. Может как то можно DataSet присвоить значение запроса?
  • отредактировано 07:44
    ilyaae написал: »
    Данные на SQL Server. Наверно и можно DataTable. Может как то можно DataSet присвоить значение запроса?
    не то, что можно. даже нужно :) Именно для этого он и существует

    Подключаешь пространство имён
    using System.Data.SqlClient;
    

    Потом вот так заполняешь данными
    SqlConnection _connect = new SqlConnection("тут строка подключения к базе данных");
    
    SqlCommand _command = new SqlCommand(@" тут запрос, который возвращает нужные нам данные", _connect);
    SqlDataAdapter Adapt = new SqlDataAdapter(_command);
    DataSet ds = new DataSet();
    
    Adapt.Fill(ds, "имя таблицы в датасете");
    

    и всё :)
    Строка подключения к SQL вот такого вида должна быть:
    ilyaae написал: »
    user id=ИмяПользователя;password=Пароль;server=Адрес SQL сервера;Trusted_Connection=no;database=ИмяБазы;connection timeout=120; Pooling=false;
  • отредактировано 07:44
    CodeMAP написал: »
    не то, что можно. даже нужно :) Именно для этого он и существует

    Подключаешь пространство имён
    using System.Data.SqlClient;
    

    Потом вот так заполняешь данными
    SqlConnection _connect = new SqlConnection("тут строка подключения к базе данных");
    
    SqlCommand _command = new SqlCommand(@" тут запрос, который возвращает нужные нам данные", _connect);
    SqlDataAdapter Adapt = new SqlDataAdapter(_command);
    DataSet ds = new DataSet();
    
    Adapt.Fill(ds, "имя таблицы в датасете");
    

    и всё :)
    Строка подключения к SQL вот такого вида должна быть:
    Спасибо. смотрел сегодня на адаптер, смущает что надо подключаться к базе. У меня то клиент подключен уже.
  • отредактировано 07:44
    ilyaae написал: »
    Спасибо. смотрел сегодня на адаптер, смущает что надо подключаться к базе. У меня то клиент подключен уже.
    ну раз клиент подключен, у него где-то должен быть connection, вот его и передай в SQLCommand
  • отредактировано April 2016
    CodeMAP написал: »
    ну раз клиент подключен, у него где-то должен быть connection, вот его и передай в SQLCommand
    Не, я о том, что получается клиент подключен и второй раз для репортинга надо подключение делать.
    А вообще просто супер, громоздко конечно немного, но это того стоит. Спасибо.
    А ты используешь диалоговую форму репортинга или в студии рисуешь свой диалог? интересует со стандартной диалоговой формы организация множественной выборки значений в комбобоксе и передача его в репорт. У комбобокса нет multiselect. DataSelector не очень нравится
  • отредактировано 07:44
    Я стараюсь по возможности использовать диалоговые окна в репорте. В это есть очень весомый плюс - если надо будет поменять отчёт и дело коснётся изменения исходных параметров, то достаточно будет переделать только сам репорт, а не лезть в исходники программы, перекомпилировать а потом ещё мучаться с обновлением на рабочих местах.
    По поводу множественного выбора - попробуй CheckedListBox, я с ним делал и меня всё устроило.
    А по поводу подключений, если ты переживаешь что у тебя будет два подключения к базе, вместо одного, так для SQL сервера это абсолютно не существенно :) хоть 1000 подключений, ему от этого хуже не станет
  • отредактировано 07:44
    CodeMAP написал: »
    Я стараюсь по возможности использовать диалоговые окна в репорте. В это есть очень весомый плюс - если надо будет поменять отчёт и дело коснётся изменения исходных параметров, то достаточно будет переделать только сам репорт, а не лезть в исходники программы, перекомпилировать а потом ещё мучаться с обновлением на рабочих местах.
    По поводу множественного выбора - попробуй CheckedListBox, я с ним делал и меня всё устроило.
    А по поводу подключений, если ты переживаешь что у тебя будет два подключения к базе, вместо одного, так для SQL сервера это абсолютно не существенно :) хоть 1000 подключений, ему от этого хуже не станет
    Не, переживаю не за лишнее подключение, а то что для того, чтоб передать запрос в dataset столько надо городить. :)
    CheckedListBox хороший компонент, но CheckedComnoBox был бы лучше. :) Если имел возможность видеть отчеты на MS SSRS(Reporting Services ) то CheckedListBox выглядел бы там не уместно
  • отредактировано 07:44
    ilyaae написал: »
    Не, переживаю не за лишнее подключение, а то что для того, чтоб передать запрос в dataset столько надо городить. :)
    CheckedListBox хороший компонент, но CheckedComnoBox был бы лучше. :) Если имел возможность видеть отчеты на MS SSRS(Reporting Services ) то CheckedListBox выглядел бы там не уместно

    Я конечно уже извращаюсь :) Согласен что CheckedComboBox красивее смотрится, хотя бы из-за того что не надо делать большую форму с развёрнутым на ней CheckedListBox.
    По этому я прикинул и сделал вот такую хрень: по кнопке показывается CheckedListBox, причём расположен от не на форме, а на отдельном контроле ToolStripDropDown, который позволяет отрисовывать объекты даже за пределами окна.. Это я в инете нарыл :) Потом выбранные объекты кидаю в DataTable, ну а там уж можно на форму вывести. Или же в качестве фильтра для запроса использовать наверное можно. В общем глянь ради интереса. Сам себе взял на заметку что так можно извернуться в случае необходимости
    https://yadi.sk/d/lfagdKGQrGjWm
  • отредактировано 07:44
    CodeMAP написал: »
    Я конечно уже извращаюсь :) Согласен что CheckedComboBox красивее смотрится, хотя бы из-за того что не надо делать большую форму с развёрнутым на ней CheckedListBox.
    По этому я прикинул и сделал вот такую хрень: по кнопке показывается CheckedListBox, причём расположен от не на форме, а на отдельном контроле ToolStripDropDown, который позволяет отрисовывать объекты даже за пределами окна.. Это я в инете нарыл :) Потом выбранные объекты кидаю в DataTable, ну а там уж можно на форму вывести. Или же в качестве фильтра для запроса использовать наверное можно. В общем глянь ради интереса. Сам себе взял на заметку что так можно извернуться в случае необходимости
    https://yadi.sk/d/lfagdKGQrGjWm
    Прикольно. Ну ты и маньяк. в хорошем понимании :)
  • отредактировано 07:44
    Хотя с таким же успехом можно было создать и показать просто новую форму
    System.Windows.Forms.Form _newForm = new System.Windows.Forms.Form();
    _newForm.Show();
    
  • отредактировано 07:44
    CodeMAP написал: »
    Я конечно уже извращаюсь :) Согласен что CheckedComboBox красивее смотрится, хотя бы из-за того что не надо делать большую форму с развёрнутым на ней CheckedListBox.
    По этому я прикинул и сделал вот такую хрень: по кнопке показывается CheckedListBox, причём расположен от не на форме, а на отдельном контроле ToolStripDropDown, который позволяет отрисовывать объекты даже за пределами окна.. Это я в инете нарыл :) Потом выбранные объекты кидаю в DataTable, ну а там уж можно на форму вывести. Или же в качестве фильтра для запроса использовать наверное можно. В общем глянь ради интереса. Сам себе взял на заметку что так можно извернуться в случае необходимости
    https://yadi.sk/d/lfagdKGQrGjWm
    Спасибо. Там не хватает еще чекбокса, который будет отвечать за снять метки или выделить все. :)
  • отредактировано 07:44
    ilyaae написал: »
    Спасибо. Там не хватает еще чекбокса, который будет отвечать за снять метки или выделить все. :)
    Слушай, до меня только сейчас дошло :) Это ж .NET платформа. значит очень многое, что можно сделать в обычном WinForms приложении, можно сделать и в репорте!
    Я взял и просто скопировал из студии код формы. Это из приложения, которое я тебе раньше присылал. И эту форму можно вызывать в отчёте :)
    Первые две кнопки открывают отчёты, которые были вместе с прогой - можешь указать к ним путь и открыть. Третья кнопка позволяет открыть любой отчёт.
    Вот такая рекурсия блин :) из отчёта можно открыть сам себя!

    глянь https://yadi.sk/d/nRBVILbCrGuTi

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

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