Я долго искал микрографики для динамических списков, нашел публикацию для табличиных частей на управляемых формах, но ничего не нашел для динамических списков и решил сделать самостоятельно.
Что такое микрографик? Микрографик — это столбец, который в графическом виде представляет информацию изменения какой-либо величины. Этот вид представления значительно удобнее обычного числового представления.
Основная идея встраивания мигрографика в собственный динамический список в любую конфигурацию на 1С:Предприятие 8.2 — вставка одинаковых символов и для разного процента, разное количество этих символов, чем больше процент тем больше символов, ну и соответственно чем процент меньше, тем и символов меньше.
В качестве 100% процентов берется строка шаблон например «|||||||||||||||||||||||||||». И для заданного процента выводится часть этой строки.
Последовательность шагов для внедрения в свой динамический список:
1. Мы в настройках динамического списка указываем, что это произвольный запрос.
2. В запросе добавляем столбец:
ПОДСТРОКА(&СтрокаПроценты, 1, ВЫРАЗИТЬ(Процент *&КоэффициентПроценты КАК ЧИСЛО(3, 0))) КАК ПроцентМикрографик
Поле «Процент» замените на Ваш столбец с процентом.
3. Добавляем этот столбец в динамический список на форму
4. При начале работы заполняем параметры в запросе динамического списка СтрокаПроценты и КоэффициентПроценты.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Задать для каждого случая конкретно
// В этой строке содержится шаблон для 100%
// В реальной задаче можете изменить длинну, или заполнить другими символами
СтрокаПроценты = "|||||||||||||||||||||||||||";
//СтрокаПроценты = "*************************";
//СтрокаПроценты = "`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;";
//СтрокаПроценты = "·························";
//СтрокаПроценты = "•••••••••••••••••••••••••";
// Считается автоматически
ДлинаСтрокаПроценты = СтрДлина(СтрокаПроценты);
КоэффициентПроценты = ДлинаСтрокаПроценты / 100;
ДинСписок.Параметры.УстановитьЗначениеПараметра("СтрокаПроценты", СтрокаПроценты);
ДинСписок.Параметры.УстановитьЗначениеПараметра("КоэффициентПроценты", КоэффициентПроценты);
...
В обработке к публикации, прилагается пример использования микрографиков для динамического списка, в котором есть несколько видов оформления, а так же изменение процента в «ран-тайм». Все сдално именно для процентов, но никто не мешает использовать для произвольных величин. Это лишь пример.
Надо будет попробовать. «Тормозов» на больших списках не наблюдается?
Имею в виду чисто субъективное сравнение поведения списка с микрографиком и без.
Все гениальное — просто!!!
🙂
(1) kapustinag, я думаю не больще чем обычно.
вообще когда после УПП-1.2 я вдруг зачем-то открываю Документооборот,
то у меня (наверное «чисто субъективно») возникает ощущение:
блин, какие тормоза!!! и как все неудобно !!!
(0)
Авторhttp://infostart.ru/profile/72825/
http://infostart.ru/public/80628/
23.01.2011
Авторhttp://infostart.ru/profile/46936/
http://infostart.ru/public/80691/
25.01.2011
Ну и еще
Авторhttp://infostart.ru/profile/26500/
http://infostart.ru/public/91167/
21.09.2011
Не вижу принципиальных отличий кроме «привязки» к динамическому списку
(4) AnryMc, дасс
коллег надо уважать
их не надо аскор… то есть не цитировать
🙂
Ну а динамические списки —
енто новомодный ныне прогрессивный управляемый интерфейс
за что не грех и плюсанут.
(4) Я в публикации указал ссылку на одно из решений для табличной части.
У меня задача стояла к работе в динамическом списке тут есть большая разница.
Т.е. необходимо, что бы микрографик строился в запросе, а не отдельной процедурой…
Согласитесь это большая разница. В 8.1 аналогично.
Упоминать микрографики для 7.7 я не посчитал нужным. Это я вообще не смотрел.
Если надо перечислить все решения, то давайте тогда и Excel к списку препишем 🙂
Задумался, где бы применить в самописной конфиге. Интересная реализация.
(6)
вообще-то и для табличной части в неуправляемой форме
все можно посчитать запросом в обработчике ПриПолученииДанных()
а затем вывести вывести в цикле перебрав оформления строк табличного поля.
Так даже рекомендуется делать, чтобы формы меньше «тормозили».
(8) yuraos, все верно. Я немного не про это, а про сам подход.
Я предлагаю в примере достаточно простую реализацию красивого вывода микрографиков в динамическом списке, который будет работать достаточно быстро. Может кому то пригодится.
Офигенно!!! Автор умничка!
А мне понравилось… автору зачет.
Согласен автор молодец — не поленился продумать и переделать.
Идея не нова))) Я в лицейские годы на Fox Pro в досе еще так графики делал)))
+ Прикольно 😀
(13) А о гениальной идее речи нет! Автор показывает реализацию в 1С, и только в 1С!
Спасибо за конкретный рабочий пример
Вообще не вижу инноваций… можно ASCII графикой рисовать=) ASCII арт делать
Еще можно исхитрится — выводить в поле СКД! Ау=)
(18) Можно все. Лишь бы красиво и функционально было.
Автору благодарность за публикацию и за хороший пример
+1
Нормуль, чо!
Спасибо!! Крутая штука получилась. И главное что когда-то видел, а теперь пригодилась 😉
Баловался такой фигней в районе 2002 года на FoxPro под MS DOS))).