Что нового

Напоминалка, с графическим отображением задач

alexnasa

Новичок
Сообщения
50
Репутация
0
Казалось бы простой вопрос - напоминалка.
Круг вопросов растёт год от года, а возраст даёт знать, могу забыть что-то, уехать в отпуск, а триал на сервере или где-то ещё закончится, в итоге ляжет объект, надо что-то делать. Или я один, такой рассеянный и другим не нужны подобные софты?
На форумах IXBT советов готовых решений не нашел. Неужели, среди миллионов софтинок, нет такой напоминалки с 3D, ну пусть 2D визуализацией внесённых задачек? Можно ли её написать на Autoit (GUICtrlCreateProgress)?
Цитирую свой вопрос из вышеупомянутого форума:

Дело в том, что напоминалок за многие годы я видел много, но есть желание найти такую программу, что бы было именно графическое представление временных отрезков типа "progress bar" по каждой задаче. Сначала я думал, что найду таких сотню-две. Мне представлялось что-то даже в 3D. Например шахматная доска, но фигуры в виде песочных часов. Их можно передвигать, в зависимости от меняющегося приоритета и наблюдать за этим "полем боя", конфигурируя своё внимание или пофигизм в этой картине (перемещая акценты тревоги).
Но я быстро сдулся. Или плохо искал. И уже согласен на просто динамически заполняющиеся дорожки 2D , с процентом или количеством оставшихся дней.
Или что-то вроде барабана от шарманки (музыкальной шкатулки), на котором день за днём укорачиваются цветные линии -дорожки.
Но, возможно и этого не найду?
Придётся вручную рисовать в экселе?
Был опыт работы в ServiceDesk на основе Outlook. Да, было очень удобно получать задачи или ставить, а потом выполнять-закрывать, но тут надо именно картину графическую, и мышкой двигать-перемещать задачи, т.к. актуальность их меняется со временем (то султан помер, то ишак сдох).
Да и цикл иногда нужен (месяц или год), а иногда он отсутствует.
Неужели вот так руками брать и рисовать? Но в экселе ведь нет объектов (что бы перемещать эти линии мышкой)?
Corel Drow?
Ещё раз прошу прощения за слишком примитивный предмет моего вопроса!
Единственное, что мне подсказали- "диаграмма ганта из управления проектами"
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Свой велосипед конечно можно :IL_AutoIt_1: но чем MS Project не устроил?

Если все таки писать свой, правильно я понимаю: добавляем задачу с неким дедлайном и процентом выполнения, полоска показывает приближение к дедлайну, при этом процент выполнения мы обновляем вручную?
 
Автор
alexnasa

alexnasa

Новичок
Сообщения
50
Репутация
0
Точнее не процент а дату. У каждого прогрессбара (пусть так и будут стандартными внешне абсолютно) будет 2 параметра:
дата-1 , т.е. сегодня (смотрим на часы)
дата-2 "дата армагедона" или "дня-Х"

Чем выше дата и меньше "день-Х", тем ближе к 100% индикатор. Но дату-то можно брать и автоматом? Т.е. запускаем скрипт и у нас два десятка полосок зелёных разной длины, некоторые почти на 100% вытянулись.
А ещё можно будет добавить "точку невозврата" - как в авиации.
А тут самое главное - копипастами в скрипте можно прогрессбары переносить из верхних в средние или даже в низы, тем самым показывая важные или второстепенные задачи. Для затравки нашел в Сети 2 примера:

Код:
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
	Local $progressbar1, $progressbar2, $button, $wait, $s, $msg, $m

	GUICreate("My GUI Progressbar", 220, 100, 100, 200)
	$progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
	GUICtrlSetColor(-1, 32250); not working with Windows XP Style
	$progressbar2 = GUICtrlCreateProgress(10, 40, 200, 20, $PBS_SMOOTH)
	$button = GUICtrlCreateButton("Start", 75, 70, 70, 20)
	GUISetState(@SW_SHOW)

	$wait = 20; wait 20ms for next progressstep
	$s = 0; progressbar-saveposition

	; Loop until the user exits.
	Do
		$msg = GUIGetMsg()
		If $msg = $button Then
			GUICtrlSetData($button, "Stop")
			For $i = $s To 100
				If GUICtrlRead($progressbar1) = 50 Then MsgBox($MB_SYSTEMMODAL, "Info", "The half is done...", 1)
				$m = GUIGetMsg()

				If $m = -3 Then ExitLoop

				If $m = $button Then
					GUICtrlSetData($button, "Next")
					$s = $i;save the current bar-position to $s
					ExitLoop
				Else
					$s = 0
					GUICtrlSetData($progressbar1, $i)
					GUICtrlSetData($progressbar2, (100 - $i))
					Sleep($wait)
				EndIf
			Next
			If $i > 100 Then
				;		$s=0
				GUICtrlSetData($button, "Start")
			EndIf
		EndIf
	Until $msg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example



Код:
ProgressOn("You look!", "go-go", "1-2-3...")

 For $i = 0 To 100
 	ProgressSet($i)
 	Sleep(50)
 Next

 ProgressSet(100, "Wow!")
 Sleep(75)
 ProgressOff()
 
Верх