Пример визуализации временных интервалов на шкале времени с изменяемым шагом шкалы.
Автор Lukas   
18.12.2009 г.

Показывает возможный вариант визуализации временных интервалов с использованием ленточной формы и текстовых полей с условным форматированием.
Можно текстовые поля с условным форматированием заменить выключателями, флажками или переключателями. Работать будет быстрее, но визуализация хуже, особенно если активирована опция "Элементы управления из тем Windows в формах" в параметрах приложения.

В реальных приложениях необходимо добавить сервисный функционал, например варианты сортировок, фильтрацию по атрибутам и т.д.

 

  

 

Download now

 

 


Просмотров: 16850

  Коментарии (12)
 1 Написал(а) Витек, в 18:07 28.05.2010
классная вещь. А можно ли сделать, чтобы показ длительности задач осуществлялся с помощью той же тени, которая показывает прошедший промежуток времени. Эта тень показывает промежуток очень точно. 
В то же время длительность задач зависит от 48 квадратиков и точность показа падает значительно. 
Например, если задача заканчивается 1 мая, то при детализации до месяца все равно заполнится квадратик, соответствующий маю. 
Или при детализации до 10 минут, если задача заканчивается в 13:07, то заполнится лишь квадратик, соответствующий периоду 12:50-13:00. То есть вообще некорректно получается. 
В итоге сильно теряется смысл визуализации, так как она совершенно не отражает реальной картины. Время начала и окончания задач либо показываются неверно либо сливаются в зависимости от того, какая детализация выбрана. 
Если это можно исправить, было бы хорошо. Если нет, то не вижу смысла в использовании этого классного НА ПЕРВЫЙ ВЗГЛЯД примера. 
Спасибо за внимание.
 2 Написал(а) Lukas, в 21:05 28.05.2010
Этот пример изначально строился по принципу: если событие произошло/произойдет (например день рождения), то он ДОЛЖЕН отобразиться, независимо от интервала, который отображает квадратик, потому как событие было/будет. (От того что мы выбрали интервал - квартал, событие-то никто не отменит. : ) 
Баги с отображением времени вполне возможны, так как сильно не тестировал. Да и запросы можно облегчить. : ) 
Пропорциональное отображение длительности событий значительно проще отобразить в html. 
Можно и на форме Access, но несколько иначе. 
...не вижу смысла в использовании... 
Так никто ведь и не заставляет. : ) 
Сделаете лучше, присылайте пример администратору, вместе порадуемся. 
Задача осчастливить все Access-ное сообщество и не ставилась. Это всего лишь ответ на вопрос в форуме.
 3 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 10:15 08.11.2011
Lukas спасибо Вам за такой шикарный пример! Подскажите, пожалуйста, можно ли квадратики отображающее интервал(затемнённые) сделать доступными, хочу сделать, чтоб по нажатию на этот квадратик происходило определённое событие. 
Me.Controls("f" & i).Enabled = true – в цикле не помогает.
 4 Написал(а) sanek, в 14:32 10.11.2011
Решил проблему тем, что сделал на верх дополнительные textbox а них уже сделал доступными. Теперь вопрос как сделать чтоб промежуток времени отображался правильно????
 5 Написал(а) Lukas, в 18:08 13.11.2011
sanek, 
там надо править процедуры формирования инструкции SQL запросов-источников. 
Со временем там легкий бардачекс, да и с датами запросы можно облегчить. 
Сам я пользую другое решение, потому этот вариант до праведного конца не довел. Сори.
 6 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 09:10 16.11.2011
=) разобрался с датами, всё прекрасно работает. Lukas можно поинтересоваться какой вариант Вы используете?
 7 Написал(а) Lukas, в 19:01 17.11.2011
Я формирую html и показываю в браузере. 
Там значительно проще показывать пропорциональные временные отрезки.
 8 Написал(а) Sanek, в 07:29 28.11.2011
У меня есть задания которые имеют одинаковый номер но разный период времени вот хочу сделать чтоб они группировались в одну строчку, подскажите пожалуйста как это правильно сделать 
Переделываю запрос таким образом, но выдаёт ошибку: 
Private Function GetSQL(ByVal dStart As Date, Interval As Double) As String 
Dim strSQL As String 
Dim i As Integer 
Dim sStart As String 
Dim sEnd As String 
strSQL = "SELECT ItemName" 
strSQL = strSQL & vbCrLf & "FROM tblItem " 
strSQL = strSQL & vbCrLf & "Group BY ItemName" 
For i = 1 To 48 
sStart = Format$(dStart + (i - 1) * Interval, SQLDATETIME) 
sEnd = Format$(dStart + i * Interval - 1 / 24 / 360, SQLDATETIME) 
strSQL = strSQL & ", " & vbCrLf & "Having(DatStart + TimeStart BETWEEN " & sStart & " AND " & sEnd & " OR DatEnd + TimeEnd BETWEEN " & sStart & " AND " & sEnd & " OR " & sStart & " BETWEEN DatStart + TimeStart AND DatEnd + TimeEnd OR " & sEnd & " BETWEEN DatStart + TimeStart AND DatEnd + TimeEnd) As f" & i 
Next i 
sStart = Format$(dStart, SQLDATETIME) 
sEnd = Format$(dStart + 48 * Interval - 1 / 24 / 360, SQLDATETIME) 
strSQL = strSQL & vbCrLf & " FROM tblItem " 
strSQL = strSQL & vbCrLf & "Group BY ItemName" & vbCrLf & " Having DatStart + TimeStart BETWEEN " & sStart & " AND " & sEnd & " OR DatEnd + TimeEnd BETWEEN " & sStart & " AND " & sEnd & " OR " & sStart & " BETWEEN DatStart + TimeStart AND DatEnd + TimeEnd OR " & sEnd & " BETWEEN DatStart + TimeStart AND DatEnd + TimeEnd" 
strSQL = strSQL & vbCrLf & " ORDER BY ItemName" 
GetSQL = strSQL 
End Function
 9 Написал(а) Sanek, в 15:52 05.01.2012
Разобрался как группировать, может кому надо: 
Private Function GetSQL(ByVal dStart As Date, Interval As Double) As String 
Dim strSQL As String 
Dim i As Integer 
Dim sStart As String 
Dim sEnd As String 
strSQL = "SELECT tblItem.ItemName" 
For i = 1 To 48 
sStart = Format$(dStart + (i - 1) * Interval, SQLDATETIME) 
sEnd = Format$(dStart + i * Interval - 1 / 24 / 360, SQLDATETIME) 
strSQL = strSQL & ", " & vbCrLf & "Sum(DatStart + TimeStart>= " & sStart & " AND DatStart + TimeStart=" & sStart & " AND DatEnd + TimeEnd= DatStart + TimeStart AND " & sStart & " = DatStart + TimeStart AND " & sEnd & "=Now()" 
strSQL = strSQL & vbCrLf & " group BY tblItem.ItemName" 
GetSQL = strSQL 
Debug.Print strSQL 
End Function
 10 Написал(а) Sanek, в 09:20 17.01.2012
Подскажите пожалуйста как поменять цвет ячеек, которые являются индикаторами присутствия задания

Показывает возможный вариант визуализации временных интервалов с использованием ленточной формы и текстовых полей с условным форматированием.
Можно текстовые поля с условным форматированием заменить выключателями, флажками или переключателями. Работать будет быстрее, но визуализация хуже, особенно если активирована опция "Элементы управления из тем Windows в формах" в параметрах приложения.

В реальных приложениях необходимо добавить сервисный функционал, например варианты сортировок, фильтрацию по атрибутам и т.д.

 

  

 

Download now

 

 


Просмотров: 16850

  Коментарии (12)
 11 Написал(а) Format Condition, в 21:09 20.01.2012
Смотри условное форматирование
 12 Написал(а) sanek, в 10:08 27.01.2012
Благодарю!!!

Добавить коментарий
Имя:
E-mail
Коментарий:



Код:* Code