ОБЩИЕ

Главная

МОЙ КАБИНЕТ

Корзина
Заказы
Профиль

СКАЧАТЬ

Дистрибутивы

ЦЕНЫ

Прайс-лист

СВЯЗЬ

Форум
Техподдержка
Контакты

СОТРУДНИЧЕСТВО

Стать дилером
Вакансии


Команда RegionSoft:
"Мы создаем решения, которые
делают Ваш бизнес эффективнее!"
 

Логин:

Пароль:






Я забыл пароль


НАВИГАТОР


+ RegionSoft CRM. Использование конфигуратора
- Конфигуратор для чайника
- Работа в конфимгураторе
- Изменения в отчете "конверт"
- Редактирование формы счёта на оплату
- ShellExecute в конфигураторе.
- Фактический индекс клиента в письме
- Изменения в БД через конфигуратор.
- Использование компонентов других модулей в кофигураторе для формы.
- Нужен скрипт для выгрузки базы данных в excel
- Регион и район в конфигураторе
- Как восстановить удаленных клиентов или контакты
- Что можно сделать с помощью конфигуратора?
- Пример кастомизированного отчета
- Как поставить на автомат вывод Отчета
- Как узнать название объектов в карточке клиента?
- Как добавить фирменную шапку в печатную форму счета
- Как попасть в конфигуратор
- Пример интеграции с 1С
- Как убрать неиспользуемые вкладки в карточке клиента?
+ RegionSoft CRM. Установка, настройка, эксплуатация


ВАШИ ПРАВА

Сейчас Вы не можете даже добавлять сообщения, поскольку Вы не авторизованы. Пожалуйста, авторизуйтесь.


 Форум: 'RegionSoft CRM. Использование конфигуратора'
 ТЕМА: Пример кастомизированного отчета 
Автор темы: A4E
Тема создана: 2009-12-09 09:50:21

В этой теме приведем пример кастомизированного (клиентского) отчета.

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

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

Наша задача - разработать отчет для печати, в котором будут содержаться контактные данные (название и телефон) контрагентов, а также контактные данные имеющегося персонала. Выборка будет производиться по сегодняшним задачам заданного пользователя.

Николай, прошу прощения - забыл упомянуть, т.к. в код я добавил конструкцию and t.rush=4, то будут отображаться те задачи, которым установлен тип важности с id=4
Если Вам нужно отображать все задачи, просто удалите из Вашего скрипта and t.rush=4
A4E
2011-03-09 18:09:23

Добрый день!
Появилась возможность указать дату, но сообщение "Для выбранного пользователя на сегодня заданий не назначено" так и выходит.
А насчет инструкции?
Nickolas
2011-03-05 13:10:53

Добрый день, Николай!
Т.к. в системе появилась логистика задач по датам, нужно модифицировать скрипт. Предлагаю усовершенствовать отчет следующим образом:
1. Добавляем выбор даты отчета - в верхнем блоке var дописываем строку
dDatePick: TDateTimePicker;
Перед заключительным end дописываем сам код DateTimePicker'а:
dDatePick:=tdatetimepicker.create(fMain.pLeftInner);
dDatePick.parent:=fMain.pLeftInner;
dDatePick.name:='dDatePick';
dDatePick.top :=510;
dDatePick.left :=3;
dDatePick.width:=185;

2. Собственно изменяем условие - строки
'where (t.dateexp='+chr(39)+datetostr(now)+chr(39)+' '+ // Где дата равна сегодняшнему числу
'and u.id='+chr(39)+inttostr(a)+chr(39)+') '+ // А юзер - выбранному нами

меняем на
'where (t.dateexp>='+chr(39)+datetostr(dDatePick.date)+chr(39)+' and t.dateexp<'+chr(39)+datetostr(dDatePick.date+1)+chr(39)+'and u.id='+chr(39)+inttostr(a)+chr(39)+' and t.rush=4) '+
' order by c.id asc';
A4E
2011-03-04 19:07:03

Добрый день!

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

В соседней теме читал: "Сейчас (март 2010 г.) мы готовим инструкцию по использованию конфигуратора.". Стоит ли ожидать инструкцию? Все больше сталкиваемся с необходимостью создавать подобные отчеты. Упоминаемая инструкция позволила бы уже предпринять первые шаги в этом направлении.
Nickolas
2011-03-03 15:18:25

Файл отчета, упоминающегося в теме, лежит по следующей ссылке:
http://crmclub.nnov.ru/rep_task_today.fr3 (нажмите правой кнопкой мыши и выберить "Сохранить как...", чтобы его скачать)
Необходимо положить этот файл в расшареный каталог сервера

Чтобы добавить отчет, необходимо поместить следующий скрипт в fmain.onShow системного конфигуратора:
var
butcustrep: TButton; // Кнопка открытия отчета
r: TfrxReport; // Объект отчета
a: integer; // Идентификатор пользователя для отчета

procedure butcustreponclick (Sender: TObject); // Обработчик нажатия кнопки
begin
try
r := TfrxReport.Create(NIL); // Создаем динамический отчет
a := rUserID; // Присваиваем

if rUserRights = 'Администратор' then begin // Если пользователь является администратором, то
a := GetRef('USERS', true, rUserID); // он сможет выбрать, для кого печатать отчет. Иначе только для себя.
end;

if a < 1 then begin
Exit // Если отказ от выбора сотрудника - закрываем справочник без отчета
end else begin // Если определен пользователь для отчета - генерируем запрос в базу данных
dm.qScript.sql.clear;
dm.qScript.sql.Text := 'select distinct c.name, '+ //запрос уникальных значений.... название
' c.id, '+ //ID
' c.phone, '+ //Основные телефоны
// ПЕРВОЕ КОНТАКТНОЕ ЛИЦО, ТЕЛЕФОН, ДОЛЖНОСТЬ
' (select first (1) dateini from history where custno=c.id order by dateini desc, timeini desc) as histdate, '+
' (select first (1) family from contactpersons where custno=c.id order by post, contactpersons.id asc) as postfamily, '+
' (select first (1) name from contactpersons where custno=c.id order by post, contactpersons.id asc) as postname, '+
' (select first (1) name2 from contactpersons where custno=c.id order by post, contactpersons.id asc) as postname2, '+
' (select first (1) phone from contactpersons where custno=c.id order by post, contactpersons.id asc) as postphone, '+
' (select first (1) po.name po1 from contactpersons left join post po on po.id=contactpersons.post where custno=c.id order by post, contactpersons.id asc) as po1, '+
// ВТОРОЕ КОНТАКТНОЕ ЛИЦО, ТЕЛЕФОН, ДОЛЖНОСТЬ
' (select first (1) skip (1) family from contactpersons where custno=c.id order by post, contactpersons.id asc) as post2family, '+
' (select first (1) skip (1) name from contactpersons where custno=c.id order by post, contactpersons.id asc) as post2name, '+
' (select first (1) skip (1) name2 from contactpersons where custno=c.id order by post, contactpersons.id asc) as post2name2, '+
' (select first (1) skip (1) phone from contactpersons where custno=c.id order by post, contactpersons.id asc) as post2phone, '+
' (select first (1) skip (1) po.name po1 from contactpersons left join post po on po.id=contactpersons.post where custno=c.id order by post, contactpersons.id asc) as po2, '+
// ТРЕТЬЕ КОНТАКТНОЕ ЛИЦО, ТЕЛЕФОН, ДОЛЖНОСТЬ
' (select first (1) skip (2) family from contactpersons where custno=c.id order by post, contactpersons.id asc) as post3family, '+
' (select first (1) skip (2) name from contactpersons where custno=c.id order by post, contactpersons.id asc) as post3name, '+
' (select first (1) skip (2) name2 from contactpersons where custno=c.id order by post, contactpersons.id asc) as post3name2, '+
' (select first (1) skip (2) phone from contactpersons where custno=c.id order by post, contactpersons.id asc) as post3phone, '+
' (select first (1) skip (2) po.name po1 from contactpersons left join post po on po.id=contactpersons.post where custno=c.id order by post, contactpersons.id asc) as po3 '+
' from customer c '+
// Объединяем "слева" - в один ряд
' left join history h on c.id=h.custno '+
' left join task t on c.id=t.custno '+
' left join segmnt s on c.segmnt=s.id '+
' left join users u on u.id=t.executor '+
'where (t.dateexp='+chr(39)+datetostr(now)+chr(39)+' '+ // Где дата равна сегодняшнему числу
'and u.id='+chr(39)+inttostr(a)+chr(39)+') '+ // А юзер - выбранному нами
' order by c.id asc'; // Сортируем по ID
dm.qScript.Open; // Выполняем запрос
if dm.qScript.RecordCount > 0 then begin // Если по запросу есть данные
r.LoadFromFile('\\SERVER\SHARE\rep_task_today.fr3'); // !! Замените путь на путь к Вашему отчету !!
r.ShowReport; // Показываем отчет
end else begin
showmessage ('Для выбранного пользователя на сегодня заданий не назначено');
end;
end;

finally
r.free; // Освобождаем отчет
end;
end;

begin
// Основной скрипт
butcustrep := TButton.Create(fMain.pLeftInner); // Создаем кнопку
butcustrep.parent := fMain.pLeftInner; // Назначаем родителя
butcustrep.Name := 'Butcustrep';
butcustrep.Caption := 'Контакты на день'; // Текст на кнопке
butcustrep.SetBounds(3, 430, 185, 30); // Положение на родителе
butcustrep.OnClick := @butcustreponclick; // Назначаем обработчик кнопки скриптом
butcustrep.Hint := 'Отчет по контактам на сегодняшний день для выбранного пользователя'; // Хинт
butcustrep.ShowHint := true; // Показывать хинт
end.
A4E
2009-12-09 10:04:54

Этот сайт защищен международными и российскими законами об авторском праве.
Перепечатка, а также любое другое воспроизведение материалов сайта без письменного разрешения администрации - запрещена.
RegionSoft CRM - Автоматизация бизнеса Copyright (C) 2001-2018 RegionSoft Developer Studio