|
v7: Воронка продаж. Как нарисовать в 7-ке сам график в виде воронки? [Решено] | ☑ | ||
---|---|---|---|---|
0
DGorgoN
14.08.13
✎
13:10
|
Делаю воронку продаж. Про саму воронку подробно описано тут: http://infostart.ru/public/192683/
Так как покупать ничего не хочу - хочу сделать сам. В 1-ке средств мало, придумал формировать html файл и открывать его браузером. Можно конечно свою ВК написать но это дольше. Если кто реализовывал воронку другими средствами просьба поделится мыслями/алгоритмами/обработками кому не жалко. |
|||
1
Ёпрст
14.08.13
✎
13:12
|
берешь любой активикс, который реализует Это.. втыкаешь на форму, наслаждаешься..
Ну или вебброузер на форме и там что угодно. |
|||
2
jarett
14.08.13
✎
13:15
|
прочитал сейчас и думаю - кому вообще может хоть иногда понадобиться такая воронка?
|
|||
3
DGorgoN
14.08.13
✎
13:15
|
(1) Любой это какой?
|
|||
4
DGorgoN
14.08.13
✎
13:16
|
(2) Для CRM нужна. Что бы в графическом виде увидеть эту якобы воронку.
|
|||
5
DGorgoN
14.08.13
✎
13:18
|
Можно конечно обычным графиком, но хотят именно воронку - якорь им в одно место..
|
|||
6
palpetrovich
14.08.13
✎
13:21
|
о, убивца 1с такое умеет: http://crm74.ru/uploads/qs2/voronka-sale.png
|
|||
7
ЧеловекДуши
14.08.13
✎
13:23
|
(6) Жесть :)
|
|||
9
DGorgoN
14.08.13
✎
13:24
|
(6) Да и 1с может по всякому. Именно в виде воронки приходится допиливать, но возможно же. Вопрос в том как допилить.
|
|||
10
Ёпрст
14.08.13
✎
13:25
|
(3) ну, от Codejock наверняка умеет..
там этих диаграмм, как собак нерезанных. |
|||
11
Ёпрст
14.08.13
✎
13:26
|
||||
12
Ёпрст
14.08.13
✎
13:27
|
||||
13
Fragster
модератор
14.08.13
✎
13:32
|
в 7.7 вроде тоже есть горизонтальная гистограмма
http://wstaw.org/m/2013/08/14/0_1.png вопрос с представлением данных снимает. да даже и не горизонтальная тоже |
|||
14
Ёпрст
14.08.13
✎
13:40
|
(13) только скриншот у тебя.. со снеговика :)
|
|||
15
Ёпрст
14.08.13
✎
13:41
|
а в 8.3 ужо есть штатная "воронка продаж"
|
|||
16
Fragster
модератор
14.08.13
✎
13:41
|
(14) и что, в клюшках нет горизонтальной гистограммы? да и горизонтальной оно не обязательно же должно быть...
|
|||
17
DGorgoN
14.08.13
✎
13:50
|
Накидаю пример, представлю для общественности.
|
|||
18
Славен
14.08.13
✎
13:52
|
из 1с в эксель делал
|
|||
19
NS
14.08.13
✎
13:54
|
(13) Есть и гистограммы и горизонтальная и вертикальная, и вообще экселевский объект на таблицу можно внедрить, и рисовать всё что возможно рисовать в экселе.
|
|||
20
DGorgoN
14.08.13
✎
13:55
|
Народ - 10-20 минут. Выставлю код без экселя.
(19) эксель мани хочет. У меня конечно он куплен. А если вдруг лицензия закончится. |
|||
21
Fragster
модератор
14.08.13
✎
13:58
|
да вообще не понимаю того, зачем оно должно быть именно в виде "воронок", чем обычный график с областями или гистограмма не устраивает
|
|||
22
DGorgoN
14.08.13
✎
13:59
|
(21) Политика данного вопроса очень простая: Я начальник ты дурак. Нужно головной конторе. Она оооочень большая. Надо и все.
|
|||
23
DGorgoN
14.08.13
✎
16:43
|
//*******************************************
Функция ВыборЦвета(чНомерЦвета) чНомерЦвета_ = чНомерЦвета; Если чНомерЦвета_ > 9 Тогда чНомерЦвета_ = 9; КонецЕсли; Если чНомерЦвета_ = 1 Тогда Возврат("#5D8AA8"); ИначеЕсли чНомерЦвета_ = 2 Тогда Возврат("#F0F8FF"); ИначеЕсли чНомерЦвета_ = 3 Тогда Возврат("#E32636"); ИначеЕсли чНомерЦвета_ = 4 Тогда Возврат("#EFDECD"); ИначеЕсли чНомерЦвета_ = 5 Тогда Возврат("#FFBF00"); ИначеЕсли чНомерЦвета_ = 6 Тогда Возврат("#8DB600"); ИначеЕсли чНомерЦвета_ = 7 Тогда Возврат("#3B444B"); ИначеЕсли чНомерЦвета_ = 8 Тогда Возврат("#007FFF"); ИначеЕсли чНомерЦвета_ = 9 Тогда Возврат("#FAEBD7"); Иначе Возврат("#EFDECD"); КонецЕсли; КонецФункции //******************************************* Процедура Сформировать() //Формирование исходных данных тзПереговоры = СоздатьОбъект("ТаблицаЗначений"); тзПереговоры.НоваяКолонка("Объект", "Справочник.CRMСтатусПереговоров"); тзПереговоры.НоваяКолонка("Значение", "Число", 16, 4); тзПереговоры.НоваяКолонка("Ширина", "Число", 16, 0); тзПереговоры.НоваяКолонка("Процент", "Число", 16, 2); тзПереговоры.Сортировать("Объект"); CRMСтатусПереговоров = СоздатьОбъект("Справочник.CRMСтатусПереговоров"); CRMСтатусПереговоров.ВыбратьЭлементы(); Пока CRMСтатусПереговоров.ПолучитьЭлемент()=1 Цикл Если CRMСтатусПереговоров.ПометкаУдаления()=0 Тогда тзПереговоры.НоваяСтрока(); тзПереговоры.Объект = CRMСтатусПереговоров.ТекущийЭлемент(); КонецЕсли; КонецЦикла; чИтого = 0; CRMПереговоры = СоздатьОбъект("Документ.CRMПереговоры"); CRMПереговоры.ВыбратьДокументы(НачДата, КонДата); Пока CRMПереговоры.ПолучитьДокумент() = 1 Цикл CRMПереговоры.ВыбратьСтроки(); Пока CRMПереговоры.ПолучитьСтроку() = 1 Цикл чПоз = 0; Если тзПереговоры.НайтиЗначение(CRMПереговоры.СтатусПереговоров, чПоз, "Объект") = 1 Тогда тзПереговоры.УстановитьЗначение(чПоз, "Значение", тзПереговоры.ПолучитьЗначение(чПоз, "Значение") + 1); чИтого = чИтого + 1; КонецЕсли; КонецЦикла; КонецЦикла; Если чИтого = 0 Тогда Сообщить("Нет статусов за данный период"); Возврат; КонецЕсли; //Построение воронки чСередина = 200; чСмещениеВысота = 50; чШирина = чСередина / чИтого; Процент = 100 / чИтого; тзПереговоры.ВыбратьСтроки(); Пока тзПереговоры.ПолучитьСтроку() = 1 Цикл тзПереговоры.Процент = Процент * тзПереговоры.Значение; тзПереговоры.Ширина = Окр(чШирина * тзПереговоры.Значение, 0); КонецЦикла; Текст_инет = СоздатьОбъект("Текст"); Текст_инет.ДобавитьСтроку("<html><head><title>canvasExample</title></head><body><canvas height='800' width='600' id='example'>Обновите браузер</canvas><script>"); Текст_инет.ДобавитьСтроку("var example = document.getElementById('example'); var ctx = example.getContext('2d'); example.height = 800; example.width = 600;"); ПредШирина = 0; чНом = 0; чСледВысота = 0; тзПереговоры.ВыбратьСтроки(); Пока тзПереговоры.ПолучитьСтроку() = 1 Цикл чНом = чНом + 1; чСледВысота = чСледВысота + чСмещениеВысота; Если чНом = 1 Тогда ПредШирина = тзПереговоры.Ширина; КонецЕсли; Текст_инет.ДобавитьСтроку("ctx.fillStyle = '"+ВыборЦвета(чНом)+"';"); //Текст_инет.ДобавитьСтроку("ctx.strokeStyle = '"+ВыборЦвета(чНом)+"';"); //Если нужно разукрасить линии КоординатаНачТочкиХ1 = чСередина - ПредШирина; КоординатаКонТочкиХ1 = чСередина + ПредШирина; КоординатаНачТочкиХ2 = чСередина - тзПереговоры.Ширина; КоординатаКонТочкиХ2 = чСередина + тзПереговоры.Ширина; КоординатаНачТочкиУ = чСледВысота; КоординатаКонТочкиУ = чСледВысота + чСмещениеВысота; Текст_инет.ДобавитьСтроку("ctx.beginPath();"); Текст_инет.ДобавитьСтроку("ctx.moveTo("+СокрЛП(КоординатаНачТочкиХ1)+", "+СокрЛП(КоординатаНачТочкиУ)+");"); //перемешаем в начальную точку Текст_инет.ДобавитьСтроку("ctx.lineTo("+СокрЛП(КоординатаКонТочкиХ1)+", "+СокрЛП(КоординатаНачТочкиУ)+");"); Текст_инет.ДобавитьСтроку("ctx.lineTo("+СокрЛП(КоординатаКонТочкиХ2)+", "+СокрЛП(КоординатаКонТочкиУ)+");"); Текст_инет.ДобавитьСтроку("ctx.lineTo("+СокрЛП(КоординатаНачТочкиХ2)+", "+СокрЛП(КоординатаКонТочкиУ)+");"); Текст_инет.ДобавитьСтроку("ctx.lineTo("+СокрЛП(КоординатаНачТочкиХ1)+", "+СокрЛП(КоординатаНачТочкиУ)+");"); Текст_инет.ДобавитьСтроку("ctx.fill();"); Текст_инет.ДобавитьСтроку("ctx.stroke();"); ТекстЛегенды = СокрЛП(тзПереговоры.Объект) + ": " + СокрЛП(тзПереговоры.Значение) + " (" + СокрЛП(тзПереговоры.Процент) + ") %"; Текст_инет.ДобавитьСтроку("ctx.fillStyle = '#000000';"); Текст_инет.ДобавитьСтроку("ctx.strokeStyle = '#000000';"); Текст_инет.ДобавитьСтроку("ctx.font = 'bold 15px sans-serif';"); Текст_инет.ДобавитьСтроку("ctx.strokeText('"+ТекстЛегенды+"', 400, "+СокрЛП(КоординатаКонТочкиУ-25)+");"); ПредШирина = тзПереговоры.Ширина; КонецЦикла; Текст_инет.ДобавитьСтроку("</script></body></html>"); Текст_инет.КодоваяСтраница(0); Текст_инет.Записать("c:\1\voronka.html"); ЗапуститьПриложение("c:\1\voronka.html"); КонецПроцедуры |
|||
24
DGorgoN
14.08.13
✎
16:44
|
Вначале заполнение данных, потом заполнение HTML (Нужен браузер с поддержкой HTML5).
|
|||
25
NS
14.08.13
✎
16:46
|
(20) АктивX вроде бесплатен.
|
|||
26
Fragster
модератор
14.08.13
✎
17:06
|
(25) нет, бесплатен ADO-ODBC драйвер
|
|||
27
Ёпрст
14.08.13
✎
17:07
|
(23) нафига через запустить приложение ?
Проще в самой форме показать. |
|||
28
acsent
14.08.13
✎
17:08
|
Можно не воронкой, а лесенкой нарисовать.
Хотя можно и воронкой |
|||
29
acsent
14.08.13
✎
17:10
|
||||
30
DGorgoN
14.08.13
✎
17:21
|
(27) Этот вопрос уже касателен допиливания под свои нужды. Тут ценен сам код и сам алгоритм.
|
|||
31
DGorgoN
14.08.13
✎
17:23
|
(28) Некрасиво ))) Вон глянь мою: http://vfl.ru/fotos/0891cb152891007.html
|
|||
32
DGorgoN
14.08.13
✎
17:24
|
Вообще "красяво"
|
|||
33
acsent
14.08.13
✎
17:25
|
(32) какая то странная у тебя воронка
|
|||
34
Попытка1С
14.08.13
✎
17:27
|
Всегда было интересно, кому нафиг эти графики нужны.
Ну вот гистограмму еще как-то могу понять, но воронка и прочее.. имхо все излишества. |
|||
35
КонецЦикла
14.08.13
✎
17:58
|
(31) Это шприц сложной формы
(34) Визуализация помогает тупым топ-манагерам. Гистограмму тут они не осилят |
|||
36
Fragster
модератор
14.08.13
✎
18:00
|
(35) т.е. (13) слишком сложно?
|
|||
37
КонецЦикла
14.08.13
✎
18:02
|
(36) Мозг должен достроить зеркальное отражение и скруглить квадратики :)
|
|||
38
DGorgoN
14.08.13
✎
18:12
|
(33) Ну какая есть, такая есть )))) Это не на всех данных - просто тест.
|
|||
39
DGorgoN
14.08.13
✎
18:20
|
(36) А зачем?
|
|||
40
DGorgoN
14.08.13
✎
18:20
|
Хотят же воронку.
|
|||
41
Злопчинский
15.08.13
✎
00:27
|
вот графика всякая штатно в клюшках.
http://infostart.ru/public/71675/ вообще не вижу проблемы нарисовать воронку на обычном отчете комбинайие клеточек... |
|||
42
DGorgoN
15.08.13
✎
09:08
|
(41) Она у тебя секциями будет.
|
|||
43
Злопчинский
15.08.13
✎
11:35
|
(42) ну и что? выглядит так как надо пользователю..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |