Передать параметры ячейки при нажатии мышкой

Обсуждение Stimulsoft Reports.NET
Ответить
Ингвар
Сообщения: 169
Зарегистрирован: 17 июл 2012, 19:27

Передать параметры ячейки при нажатии мышкой

Сообщение Ингвар »

Есть отчет, содержащий набор строк бэнда "Данные". Нужно в окне просмотра, при щелчке мышки на ячейки из строки бэнда передать содержимое этой ячейки в код (в действие "Нажатие").
Как это можно сделать?
Возможно есть другой вариант решения подобной задачи - получить значения поля по которому щелкнул пользователь.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Передать параметры ячейки при нажатии мышкой

Сообщение HighAley »

Здравствуйте.

Узнать значение вы можете в событии Click компонента с помощью следующего кода:

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

(sender as StiText).Text
Спасибо.
Ингвар
Сообщения: 169
Зарегистрирован: 17 июл 2012, 19:27

Re: Передать параметры ячейки при нажатии мышкой

Сообщение Ингвар »

Спасибо. А если ячейка находится на бэнде "Данные", можно ли получить значения соседних ячеек (чтобы передать не одно значения, а все значения строки данных)?
Может быть можно использовать функцию "Взаимодействие", но без открытия страницы детализации?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Передать параметры ячейки при нажатии мышкой

Сообщение HighAley »

Здравствуйте.

Обычно для этих целей используется поле Tag у текстового компонента, куда можно записать всю необходимую информацию.

Спасибо.
Ингвар
Сообщения: 169
Зарегистрирован: 17 июл 2012, 19:27

Re: Передать параметры ячейки при нажатии мышкой

Сообщение Ингвар »

Можно ли через Tag передать несколько значений?
Нет ли примера работы с этим полем?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Передать параметры ячейки при нажатии мышкой

Сообщение HighAley »

Здравствуйте.

Получить значение Tag можно следующим кодом:

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

(sender as StiText).TagValue as string
По сути это строка, в которую вы можете записать всё, что захотите, а потом можно распарсить выражение.

Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Re: Передать параметры ячейки при нажатии мышкой

Сообщение Леонид »

Добрый день!

Для реализации вашей задачи можно сделать так. В коде отчёта в классе самого отчёта (чуть выше конструктора, например) пишет свой обработчик события (назовём его, например, CustomText_Click) компонента OnClick():

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

using System;
using System.Drawing;
...
namespace Reports
{
    public class Report : Stimulsoft.Report.StiReport
    {
               // наш обработчик и код в нём
		public void CustomText_Click(object sender, System.EventArgs e)
		{
                       // получаем текущее значение компонента Text, по которому кликнули (т.е. значение колонки, на которой кликнули)
			string text = (sender as StiText).Text;
                        MessageBox.Show(text); // просто выводим его
		}		
		
        public Report()        {
            this.InitializeComponent();
        }
....
Теперь просто подписываем все (или необходимые компоненты Text) на наше событие в событии отчёта BeginRender():

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

foreach (StiText text in DataBand1.Components)
  text.Click += new System.EventHandler(this.CustomText_Click);
Рабочий пример в приложении (единственное, что я использовал данные из Oracle, так что подставьте свой провайдер данных).
Вложения
Report.mrt
(9.13 КБ) 372 скачивания
Ингвар
Сообщения: 169
Зарегистрирован: 17 июл 2012, 19:27

Re: Передать параметры ячейки при нажатии мышкой

Сообщение Ингвар »

Спасибо.
Aleksey Andreyanov писал(а):Получить значение Tag можно следующим кодом:

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

(sender as StiText).TagValue as string
Это если берется Tag текстового поля. Можно ли получить Tag целиком бэнда (чтобы можно было обрабатывать щелчок не только по конкретной ячейки, но и по всей строке)?
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Передать параметры ячейки при нажатии мышкой

Сообщение HighAley »

Здравствуйте.

В отрендеренном отчёте нету бэндов. Остаются только текстовые компоненты.
Сохраняйте необходимые значения в свойстве Tag текстбокса.

Спасибо.
Ответить