Открыть главное меню

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

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

Параметры шаблона

Шаблон использует блочное форматирование параметров.

ПараметрОписаниеТипСтатус
Заголовокзаголовок

без описания

Неизвестнонеобязательный
Ширинаширина

без описания

Неизвестнонеобязательный
Файлфайл

без описания

Неизвестнонеобязательный
Ссылкассылка

без описания

Неизвестнонеобязательный
Высотавысота

без описания

Неизвестнонеобязательный
Тексттекст

без описания

Неизвестнонеобязательный

Описание

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

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

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

{{Поле прокрутки
 | ширина = 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