Шаблон:Поле прокрутки

Материал из Википедия ЭТИМа (ETIM Wikipedia)
Версия от 16:40, 21 мая 2019; Michael (обсуждение | вклад) (Новая страница: «<noinclude> ==Описание== Этот шаблон можно использовать для отображения больших текстов в фикс…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Описание

Этот шаблон можно использовать для отображения больших текстов в фиксированном окне. Если не указывать ширину и высоту, то они будут максимальными. В случае, если указанная ширина меньше окна вывода, то блок будет выравнен по середине.

Для использования шаблона добавьте в текст:

{{Поле прокрутки
 | ширина = 
 | высота = 
 | заголовок = 
 | файл = 
 | текст = 
}}

Пример использования

{{Поле прокрутки
 | ширина = 90%
 | высота = 200px
 | заголовок = Пример скрипта LibreOffice VBA
 | текст = <syntaxhighlight lang=basic>REM  ***** LibreOffice BASIC for Calc 4.x *****
'
' Автор: Павел Малахов, 24pm@mail.ru
'
' Этот скрипт использует стили ячеек, которые желательно создать заранее:
' pm-Время				- ячейки со временем
' pm-Заголовок			- заголовок колонки в таблице
' pm-Заголовок общий	- заголовок отчёта
' pm-Итого				- итоговые ячейки
' pm-Сотрудник			- заголовок отчёта по сотруднику
' 
'
' Предварительные требования к листу с исходными данными: 
' - Данные берутся из 1-го листа, со 2-й строки (первая содержит название столбцов и не учитывается)
' - Строки должны быть отсортированны по Подразделению (столбец J) и по вторичному ключу Фамилия (столбец B)
' 
' 
' Заметки:
' - Скрипт работает медленнее, если включен вид "Разметка страницы". Для ускорения нужно переключить в вид "Обычный"
' 
' История изменений:2014.09.04 - первая полнофункциональная версия
'					2014.12.17 - Исправлено: Если был зарегистрирован только вход, то данные следующего человека учитывались в текущем. Добавлена переменная tab_person
'

'==== Общие для всех модулей процедуры и функции ====

'==== Константы ====

Const dayStatusHoliday	= 0
Const dayStatusShort 	= 1
Const dayStatusWork		= 2

'Определение времени начала и окончания рабочего дня в формате Часы:Минуты:Секунды
Const timeWorkStart 	As Date = "08:00:00"
Const timeWorkEnd 		As Date = "17:15:00"
Const timeWorkEndShort  As Date	= "15:00:00"
Const timeZero 			As Date = "00:00:01"	'если полный ноль, то это минус сутки
Const timeWorkOver		As Date = "00:15:00"	'переработка < 15 мин не учитывается


' Преобразует дату в строку
' 	cDate() - не подходит, т.к. возвращает строку в формате "ММ.ДД.ГГГГ ЧЧ:ММ:СС"
Function DateTimeToString(dt As Date) As String
	DateTimeToString = Year(dt) & "." & Month(dt) & "." & Day(dt) & "  " & Hour(dt) & ":" & Minute(dt)
End Function   'DateTimeToString

' Возвращает количество дней в месяце
Function DaysInMonth(dt As Date) As Integer
	Dim days As Integer
	days = 28
	
	If IsDate( "29." & Month(dt) & "." & Year(dt) ) Then
		days = 29
	End If
	
	If IsDate("30." & Month(dt) & "." & Year(dt)) Then
		days = 30
	End If
			
	If IsDate("31." & Month(dt) & "." & Year(dt)) Then
		days = 31
	End If
	
	DaysInMonth = days
End Function   'DaysInMonth</syntaxhighlight>
}}

Результат

{{#if: Пример скрипта LibreOffice VBA|

REM  ***** LibreOffice BASIC for Calc 4.x *****
'
' Автор: Павел Малахов, 24pm@mail.ru
'
' Этот скрипт использует стили ячеек, которые желательно создать заранее:
' pm-Время				- ячейки со временем
' pm-Заголовок			- заголовок колонки в таблице
' pm-Заголовок общий	- заголовок отчёта
' pm-Итого				- итоговые ячейки
' pm-Сотрудник			- заголовок отчёта по сотруднику
' 
'
' Предварительные требования к листу с исходными данными: 
' - Данные берутся из 1-го листа, со 2-й строки (первая содержит название столбцов и не учитывается)
' - Строки должны быть отсортированны по Подразделению (столбец J) и по вторичному ключу Фамилия (столбец B)
' 
' 
' Заметки:
' - Скрипт работает медленнее, если включен вид "Разметка страницы". Для ускорения нужно переключить в вид "Обычный"
' 
' История изменений:2014.09.04 - первая полнофункциональная версия
'					2014.12.17 - Исправлено: Если был зарегистрирован только вход, то данные следующего человека учитывались в текущем. Добавлена переменная tab_person
'

'==== Общие для всех модулей процедуры и функции ====

'==== Константы ====

Const dayStatusHoliday	= 0
Const dayStatusShort 	= 1
Const dayStatusWork		= 2

'Определение времени начала и окончания рабочего дня в формате Часы:Минуты:Секунды
Const timeWorkStart 	As Date = "08:00:00"
Const timeWorkEnd 		As Date = "17:15:00"
Const timeWorkEndShort  As Date	= "15:00:00"
Const timeZero 			As Date = "00:00:01"	'если полный ноль, то это минус сутки
Const timeWorkOver		As Date = "00:15:00"	'переработка < 15 мин не учитывается


' Преобразует дату в строку
' 	cDate() - не подходит, т.к. возвращает строку в формате "ММ.ДД.ГГГГ ЧЧ:ММ:СС"
Function DateTimeToString(dt As Date) As String
	DateTimeToString = Year(dt) & "." & Month(dt) & "." & Day(dt) & "  " & Hour(dt) & ":" & Minute(dt)
End Function   'DateTimeToString

' Возвращает количество дней в месяце
Function DaysInMonth(dt As Date) As Integer
	Dim days As Integer
	days = 28
	
	If IsDate( "29." & Month(dt) & "." & Year(dt) ) Then
		days = 29
	End If
	
	If IsDate("30." & Month(dt) & "." & Year(dt)) Then
		days = 30
	End If
			
	If IsDate("31." & Month(dt) & "." & Year(dt)) Then
		days = 31
	End If
	
	DaysInMonth = days
End Function   'DaysInMonth