Был ли у кого-то опыт добавление счетчика записей в заголовок групп?

Может быть есть мысли о том, как можно реализовать динамическое изменение заголовка группы в зависимости от количества записей, удовлетворяющих условию группы

 

Изображение удалено.

Нравится

1 комментарий

Вадим, задача отображения к-ва не сложная. А вот задача "как избавиться от большой нагрузки на сервера" гораздно сложнее. После того, как N пользователей откроют группы, то сразу же уйдет масса запросов. Да, их конечно можно поставить в очередь, чтобы одинаковые группы не пересчитывались несколько раз, но это будет неверно. Разные пользователи имеют разные права. 

А если это динамическая группа рассылки, где фильтры достаточно сложные, то это количество может считаться от секунд до минут. И это только для одной группы. Сложно представить, сколько запросов будет обрабатываться от, скажем 50-ти пользователей в системе

 

Если подытожить, то мысли добавления были, но проблем в разы больше

 

Показать все комментарии

Требуется создать на пункте левого меню Проекты счётчик доступных текущему пользователю проектов.

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

Ответственный = текущий пользователь

И

текущий пользователь имеет права на чтение

И

Состояние проекта не равно (Завершён, Отменён)

 

Выглядеть должно следующим образом.

Изображение удалено.

Я начинающий разработчик и не очень понимаю как именно это реализовать. Была идея создать визуальны модуль с счётчиком, но пока не понимаю как это сделать. Уже написан вэб-сервис, который возвращает доступное количество проектов, но пока нет понимая откуда его вызвать и как установить эти счётчики.

 

Нравится

5 комментариев

Не факт что туда можно влезть. Левую панель с разделами отрисовывает модуль SideBarModule.

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

Уже есть настроенный показатель «Активных проектов», можно изменить его условие фильтрации:

Или ещё проще, настроить динамическую группу с нужным фильтром, включить в разделе итог «Отображать количество записей» и при нахождении внутри группы над реестром будет видно интересующее число.

Зверев Александр, Спасибо за предложение, но всё-таки мне требуется выводить это число в панели разделов

Полозюков Евгений Петрович, спасибо за ответ, также в модуле SectionMenuModule формируется список разделов которые должны вывестись на панель. Сейчас буду смотреть что можно там сделать

Динар, кажется, придумал ещё один способ.

Из JS доступна структура Terrasoft.configuration.ModuleStructure, где хранится информация по разделам, в том числе и названия. Если там вручную из консоли браузера сменить название, дописав цифру, то при обновлении перечня разделов, например, при смене рабочего места, она появится. Можно менять её программно, а потом вызывать перестройку списка разделов, как при смене рабочего места. Эта структура генерируется на серверной стороне в схеме ConfigurationSectionHelper.

Показать все комментарии

Добрый день!
itil 7.6
Подскажите, пожалуйста,почему может не работать счетчик уведомлений для уведомлений, связанных с объектом "изменение"
( причем с объектом "обращение" счетчик работает)
Выглядит это так
- на иконке кол-во не отображается, но уведомления есть

Сверяли уведомления в таблице Reminding - заполнены корректно

Нравится

10 комментариев

Здравствуйте, Дарья!

А подключение по websocket есть?

Добрый день!
А где это проверить необходимо?

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

Давайте по другому - у Вас работают процессы (элементы взаимодействия с пользователем открываются)?

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

Здравствуйте, Дарья!

За обновление количества уведомлений отвечает процесс "Получить количество уведомлений". Он журналируется. Проверьте, пожалуйста, он завершается с ошибкой или нет.

Также, уточните следующие параметры:
1) Часовой пояс на локальной машине пользователя
2) Часовой пояс в профиле пользователя
3) Часовой пояс на сервере, где развернуто приложение.

Добрый день, Алексей!
Процесс "Получить кол-во уведомлений" с ошибкой НЕ завершается.
С часовыми поясами тоже все в порядке.
Дело не в конкретном пользователе

Проверяем как на облачной базе, так и на базе он-сайт тестовой.
Смотрите, какая ситуация:
Вообще счетчик уведомлений работает, но он работает только, если уведомление связано с объектом "Обращение"- только их он считает.
Если же уведомление связано с объектом "Проблема" или "Изменение" - то счетчик Не считает такие уведомления, он их не учитывает,хотя они есть - их можно посмотреть.

Есть три аналогичных процесса.
1. Создает уведомление по обращению - такое уведомление попадает в счетчик
2.Создает уведомление по проблеме - такое уведомление НЕ попадает в счетчик
3.Создает уведомление по изменению - такое уведомление НЕ попадает в счетчик

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

У проблемы и изменения есть " состояние ", так что непонятно отсутствие провайдера.
Если у каждого раздела есть свой провайдер, который считает кол-во уведомлений,то не очень понятно почему же забыли создать такие провайдеры для разделов "Проблемы", "Изменения", "Релизы" и т.д.

Создавать техническую активность вообще не выход,это приведет к захламлению системы ненужными активностями, да и уведомление должна создаваться к объекту, а не к активности.

Как тогда включить необходимый провайдер?
В счетчике должны отображаться уведомления по всем объектам, к которым можно создать уведомления - по крайней мере к основным разделам системы уж точно.
Алексей, ну он должен быть заложен в систему.
То, что уведомления создаются, но не считаются в счетчике - это же ошибка(
Причем сами эти уведомления отражаются в панели уведомлений справа

создали UsrProblemNotificationProvider
по аналогии с CaseNotificationProvider

Но ничего не изменилось, видимо где-то этот новый провайдер надо подключить?

Добавили
вот такую строчку в sql
insert into NotificationProvider
(ClassName,Type)
values('Terrasoft.Configuration.UsrProblemNotificationProvider',1)
Уведомления для проблем включены.
По аналогии поступим со остальными разделами.
Но очень странно, конечно, что провайдеров изначально не было
Спасибо)

Показать все комментарии

Добрый день.

Возможно ли сделать полю обычный цифровой счетчик, чтобы он сам генерировал число?

Или только при открытии формы он к мах значению прибавлял 1? (как тогда выбрать мах значение)

Нравится

4 комментария

Для создание счетчиков обычно пользуются системными настройками(Файл->Настройки->Системные настройки). Создайте там две настройки с кодом заканчивающимся на "Number" и "Mask". Если рассмотреть на примере счетов, то уже есть настройки "InvoiceNumber" и "InvoiceMask". Каждый раз перед сохранением записи(событие датасета beforePost) вызывается функция SetItemSystemNumber('Invoice', Dataset, 'InvoiceNumber'). Она увеличивает значение системной настройки(из первого параметра) на единицу и записывает в поле указанного в третьем параметре(InvoceNumber). Таким образом номер счета увеличивается автоматически.

Константин, ознакомьтесь с алгоритмом создания автоматической нумерации во вложенном файле.

Есть более низкоуровневый способ. Сделать автонумерацию на уровне БД:

ALTER TABLE tbl_Bank
ADD [Incr] [int] IDENTITY(1,1) NOT NULL

Потом добавить колонку Incr INT в администраторе(не сохраняя в БД)

Правда после этого больше нельзя будет сохранять таблицу в БД через TSAdmin
и все изменения структуры нужно будет делать напрямую через в СУБД.

Спасибо большое, все получилось!

Показать все комментарии

Здравствуйте. Каким образом можно создать отчет по задачам с результатами вида:

фио звонков встреч
менеджер1
менеджер2
менеджер3

?
Нужно чтобы в столбцах Звонков и Встреч отображалось колличество задач этих типов, со статусом выполнено, за какой-то период времени.

Подскажите, пожалуйста, как можно вывести число таких задач в колонку для каждого менеджера?

Спасибо.

Нравится

8 комментариев

Типы, статусы и переиод - указывабтся в фильтрах
Чтобы отобразить количество, можно по любому полю (лучше всего по ID) вызвать его свойства и в поле "группировать..." указать количество

Здравствуйте, Сергей!

Для того, чтобы создать необходимый Вам отчет, требуется предварительно корректно создать запрос на выборку для этого отчета (SelectQuery).
В этом SelectQuery необходимо создать для "звонков" и "встреч" колонки подзапроса (SubSelectColumn).
Далее, в настройке поля ID этого запроса в поле "Итог" необходимо указать значение "Сумма" (см. прикрепленные файлы). Непосредственно в отчете FastReport Вам необходимо создать отдельную колонку в которую и будет выводиться количество записей.
Для поля OwnerID необходимо указать связь tbl_Task.OwnerID = tbl_Contact.ID (см. прикрепленные файлы).
В результате Вы получите количество задач, в которых контакт является ответственным.

Terrasoft Support Team

Добрый день.

Как в подзапросе можно отфильтровать задачи? Выбрать только звонки например.
Если я добавлю в поздапросе условие типа:
([tbl_Task].[TypeID] = '{ced7cc70-81cb-4ab1-a9f2-521998b14723}')
изменения не сохраняться.
Или нужно выбирать поле Типа Задачи в общем запросе и потом ставить фильтр? Но при этом запрос неправильно работает.

Спасибо.

Разобрался, сделал через параметры.

Подскажите, пожалуйста, как можно отфильтровать запрос, который рассматривали выше, по периоду задач?

В нем выбираеться кол-во задач разного типа за все время. Не могу разобраться, как отфильтровать значие поля DueDate, в подзапросах по параметрам BeginDate и EndDate. Можно ли как-то задать значение этих параметров из отчета или датасета?

Заранее спасибо!

Здравствуйте, Сергей!

Для реализации поставленной Вами задачи нет необходимости создавать специальный фильтр для записей разного типа за все время. Вы можете добавить необходимое поле, по которому будете фильтровать на стандартной форме фильтрации в отчете. Например, если Вы добавите на эту форму фильтры по полям <Дата начала> и <Дата завершения>, сохраните изменения в Terrasoft CRM Administrator, затем при запуске отчета и установке значений в окне фильтрации (<Дата начала> >= 1.01.2009 и <Дата завершения> <= 30.01.2009), то параметры заполняются автоматически. Чтобы в этом убедиться можете запустить MS SQL Profiler и просмотреть результаты посылаемых запросов.

Terrasoft CRM Team

Добрый день.
Насколько я понял, в форме фильтрации отчета можно добавлять фильтры для полей датасета. Но в запросе поля даты завершения не выбираються, но должны фильтроваться в подзапросах. Каким образом нужно добавить фильтры чтобы связать их с параметрами? Может быть нужно в датасете вывести какие-то связанные поля?

Спасибо!

Добрый день, Сергей!
Для наложения фильтров по полям таблиц, данные которых не выводятся в отчете (в Вашем случае, используемых в подзапросах), придется использовать пользовательскую форму фильтрации. Использовать стандартную форму фильтрации для такой задачи нерационально. Порядок создания пользовательской формы и наложения фильтров описан тут (задача очень похожа на Вашу): http://community.terrasoft.ua/forum/topic/2092
При регистрации отчета в системе необходимо указать код окна пользовательской формы фильтрации.
Если возникнут вопросы, всегда рад помочь.

Показать все комментарии