Режим редактирования составных объектов — КиберПедия 

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Режим редактирования составных объектов

2017-10-16 339
Режим редактирования составных объектов 0.00 из 5.00 0 оценок
Заказать работу

Некоторые объекты Visual FoxPro, такие как Command Group и Option Group, являются составными объектами. В их состав входит несколько объектов, каждый из которых имеет свои собственные свойства.

Такие объекты содержат во всплывающем меню команду Edit, позво­ляющую перевести объект в режим редактирования. При переходе в данный режим вокруг объекта появляется заштрихованная рамка.

В режиме редактирования каждым элементом, входящим в состав объекта, можно управлять как самостоятельным объектом: перемещать его внутри рамки, изменять его размеры, цвет и другие свойства.

Для выхода из режима редактирования составных объектов необходимо перевести указатель манипулятора «мышь» в область формы вне составного объекта и выполнить щелчок левой кнопкой.


Создание набора кнопок

Инструмент Command Group панели инструментов Form Controls используется в том случае, если необходимо создать сразу несколько управляющих кнопок. Объект данного типа обладает свойством ButtonCount, которого не имели ранее рассмотренные объекты. Это свойство объекта определяет количество кнопок или команд, размещае­мых в объекте.

1. Откройте создаваемую экранную форму в окне конструктора форм.

2. Выберите инструмент Command Group на панели инструментов Form Controls и поместите объект в нижней части формы.

3. Откройте окно свойств созданного объекта.

4 Свойство ButtonCount объекта определяет количество кнопок, раз­мещаемых в форме. По умолчанию свойство содержит значение, равное 2. Скорректируйте его, задав количество кнопок, равное 5.

5. Увеличьте с помощью манипулятора «мышь» размеры созданного объекта, чтобы в нем можно было поместить все пять кнопок.

6. Для того чтобы разместить все кнопки горизонтально, необходимо перейти в режим редактирования созданного объекта. Для этого установите указатель манипулятора «мышь» внутрь объекта, нажмите правую кнопку и выберите пункт Edit всплывающего (контекстного) меню.

7. В режиме редактирования объекта типа Command Group, поочередно выделяя каждый элемент группы, переместите их, расположив гори­зонтально вдоль одной линии. Для выхода из режима редактирова­ния после завершения перемещений, выделите манипулятором «мышь» пространство вне области объекта типа Command Group. Скорректируйте размер внешней рамки объекта под новое расположение кнопок.

8. Откройте окно свойств объекта типа Command Group. Нажмите кнопку раскрытия списка в верхней части данного окна. Выбирая в этом списке поочередно каждый элемент, можно изменить его свойства.

9. Скорректируйте для каждого элемента объекта свойство Caption, за­дав название кнопок: «Первая»; «Следующая»; «Предыдущая»; «Последняя»; «Выход».

10. Для того чтобы фон, на котором располагаются кнопки, совпадал с цветом фона экранной формы, скорректируйте свойство BackColor объекта Command Group, установив цвет фона экранной формы, или свойство BackStyle, присвоив ему значение Transparent.

11.Определите команды, которые будут выполняться при их нажатии. Для каждого элемента, входящего в составной объект, в окне процедур метода Click поместите следующие процедуры.

Для кнопки «Первая»:

* Переходим на первую запись и перевыводим значения полей

IF!BOF()

GO TOP

ENDIF

_screen.ActiveForm.Refresh()

Для кнопки «Следующая»:

* Переходим на следующую запись и перевыводим значения

* полей

IF!EOF()

SKIP

ENDIF

_screen.ActiveForm.Refresh()

Для кнопки «Предыдущая»:

* Переходим на предыдущую запись и перевыводим значения

* полей

IF!BOF()

SKIP - 1

ENDIF

_screen.ActiveForm.Refresh()

Для кнопки «Последняя»:

* Переходим на последнюю запись и перевыводим значения

* полей

IF!EOF()

GO BOTTOM

ENDIF

_ sсreen.ActiveForm.Refresh()

Для кнопки «Выход»:

* Запрашиваем и выходим, если «ДА»

IF MESSAGEBOX("Выходить из формы?",4+32+256,"Выход")=6

_screen.ActiveForm.Release()

ELSE

_screen.ActiveForm.Refresh()

ENDIF

12. После ввода текста процедур закройте окна процедур. Набор кнопок для перемещения по записям таблицы и выхода из экранной формы создан.

Запуск формы на выполнение

Созданная в Visual FoxPro экранная форма не требует генерации программных кодов. Она сразу готова для выполнения.

Для запуска созданной экранной формы из окна конструктора форм воспользуйтесь одним из перечисленных ниже способов:

1) выполните команду меню Form → Run Form;

2) выполните команду меню Run → Form всплывающего меню;

3) нажмите кнопку Run на стандартной панели инструментов Visual FoxPro.

Для запуска формы из окна проекта достаточно нажать кнопку Run.

Кроме того, можно запустить форму так же, как и любую программу, выполнив команду меню Program → Do. В открывшемся окне диалога «Do» установите тип выполняемого файла (в данном случае – Form), выберите требуемую форму из списка файлов и нажмите кнопку Do.

Аппаратура и материалы совпадают с приведенными в описании лабораторной работы 1.

Указания по технике безопасности совпадают с приведенными в описании лабораторной работы 1.

Задания для защиты работы. Базовый уровень

Задание 1. Откройте в подкаталоге вашей группы, созданный проект «Стол заказов». Создайте для него, пользуясь режимом «автоформат», форму для таблицы «Склад».

Методика и порядок выполнения задания 1

Для выполнения задания 1 изучите подпункт «Использовани е автоформата для создания простых экранных форм»» из раздела «Теоретическое обоснование» данной лабораторной работы.

Задание 2. Создайте с помощью «мастера» форм форму для таблицы «Потребители».

Методика и порядок выполнения задания 2

1. Откройте проект «Стол заказов».

2. Перейдите во вкладку Documents. В ней выберите группу Forms и нажмите кнопку New, в результате чего откроется диалоговое окно New Form.

3. В этом окне нажмите на кнопку Form Wizard. На экране появится окно диалога, в которого необходимо указать, создается ли форма для одной таблицы или нескольких связанных таблиц. По умолчанию предполагается создание однотабличной формы. Для перехода к следующему шагу вновь нажмите кнопку ОК.

4. Выберите таблицу или поля таблицы, которые будут входить в создаваемую форму. Для выбора базы данных и содержащейся в ней таблицы используются два списка, расположенные в области «Databases and Tables». Для выбора требуемой таблицы нажмите кнопку «>>», расположенную рядом с кнопками раскрытия списков таблиц и баз данных. На экране откроется диалоговое окно Open, позволяющее найти таблицу, которая будет использована в форме.

5. После выбора таблицы список «Available Fields» содержит перечень всех полей открытой таблицы. Перенесите из списка «Available Fields» в список «Selected Fields» те поля, которые будут внесены в создаваемую экранную форму. Если возникнет необходимость удалить поле из списка «Selected Fields», то следует использовать кнопку Remove. После выбора полей перейдите к следующему шагу, нажав на кнопку Next.

6. Установите стиль отображения объектов формы и типов кнопок управления. Список «Style» содержит шесть различных вариантов отображения объектов в экранной форме. «Мастер» форм позволяет при выборе каждого из стилей просмотреть результат в верхней части окна диалога. Опции переключателя Button Type позволяют выбрать тип отображения кнопок управления: Text Buttons; Picture Buttons; No Buttons; Custom. После выбора нужных опций нажмите кнопку Next.

8. Укажите критерий сортировки данных в списке «Selected Fields». Для выбора поля, по которому будет осуществляться сортировка, установите на него курсор в списке «Available Fields or indexed tag» и нажмите кнопку Add. Опции Ascending и Descending определяют, по возрастанию или по убыванию будут упорядочены данные в выбранном поле. Для перехода к следующему шагу нажмите кнопку Next.

9. Задайте заголовок формы в поле «Type a title for your form» и выберите один из возможных вариантов продолжения работы с ней: Save form for later use; Save and run form; Save form and modify it in Form Designer.

10. После установки требуемых опций нажмите кнопку Finish для завершения создания объекта с помощью мастера. В открывшемся окне диалога Save as выберите каталог, в котором будет храниться форма, и введите имя созданной формы.

Повышенный уровень

Задание 3. Создайте с помощью конструктора форм: формы для таблиц «Потребители», «Журнал прихода» из базы данных «Стол заказов».

Методика и порядок выполнения задания 3

Для выполнения задания 3 изучите подпункты«Создание экранной формы в конструкторе форм», «Свойства и методы объектов формы», «Размещение текстовой информации», «Размещение полей ввода», «Создание кнопок управления», «Создание одиночных кнопок», «Режим редактирования составных объектов», «Создание группы кнопок», «Запуск формы на выполнение» раздела «Теоретическое обоснование» данной лабораторной работы.

Содержание отчета и его форма

Отчет по лабораторной работе должен состоять из:

1) названия лабораторной работы;

2) ответов на контрольные вопросы;

3) формулировки заданий к лабораторной работе и порядка их выполнения.

Отчет о выполнении лабораторной работы в письменном виде сдается преподавателю.

3. Вопросы для самостоятельной работы

Базовый уровень

1. Опишите понятие экранной формы в Visual FoxPro.

2. Основные способы создания форм в Visual FoxPro.

3. Создание формы в режиме «автоформат».

4. Создание формы с помощью мастера.

5. Создание форм в конструкторе проектов.

6. Создание одиночной кнопки.

7. Создание группы кнопок.

8. Запуск формы на выполнение.

Повышенный уровень

9.Опишите режим редактирования составных объектов при создании экранной формы в Visual FoxPro.

 

Лабораторная работа 4

Отчеты в Visual FoxPro

 

Цель и содержание: изучить способы создания отчетов в Visual FoxPro; научить студентов создавать и работать с основными типами отчетов.

Теоретическая часть

Под отчетом в Visual FoxPro понимается форматированное представление данных, выводимое на экран, принтер или в файл.

Прежде чем приступить к созданию отчета, необходимо знать ответы на следующие вопросы: «С какой целью создается отчет?», «Какая информация и из каких таблиц должна быть представлена в отчете?», «Отчет какого вида предполагается создать (табличный, в свободной форме или наклейки)?», «Предполагается ли группировка данных?»

Четкие ответы на данные вопросы существенно облегчат работу разработчика базы данных при создании отчета.

При создании отчета можно воспользоваться стандартными средствами, ускоряющими процесс создания отчета или разработать для отчета специальный формат с помощью конструктора отчетов. Конструктор отчетов позволяет создавать отчеты как в табличном виде, так и в свободной форме.

Табличный отчет представляет собой напечатанную таблицу, в которой данные упорядочены по столбцам и строкам. Каждый из столбцов отчета содержит поле исходной таблицы или вычисляемое поле, а строка представляет собой запись. Табличный отчет позволяет напечатать данные из таблиц в наиболее простом и естественном виде. Табулированное представление данных в отчете имеет свои недостатки: в некоторых случаях поля исходной таблицы должны располагаться в специально отведенных для этого местах отчета. Очевидно, что табличный отчет не пригоден для этих целей.

Отчеты в свободной форме позволяют устранить ограничения, свойственные табличным отчетам. Для получения отчета в свободной форме можно воспользоваться стандартным формой отчета, автоматически создаваемой Visual FoxPro для каждой таблицы. В таком отчете поля исходной таблицы расположены вертикально. Конструктор отчетов позволяет разработать специальный формат отчета, в котором поля исходной таблицы будут расположены в требуемых местах отчета.

Для создания отчетов в Visual FoxPro можно использовать:

1) «мастер» отчетов (Report Wizard),позволяющий быстро создать отчет, выбрав параметры сортировки и группировки данных, стиль отображения данных и их расположение;

2) стандартный отчет (Quick Report), позволяющий создавать стандартный отчет, в котором поля отчета расположены определенным образом, предлагаемым программой;

3) конструктор отчета, в котором можно разработать собственный отчет.

Создание отчета с помощью «мастера» не требует специальных знаний от пользователя базы данных. Ему в этом случае достаточно выбрать таблицы, входящие в отчет, определить список полей отчета и порядка их размещения.

Стандарт­ный отчет – это средство конструктора отчетов, которое автоматически по­мещает выбранные поля в пустое окно конструктора отчета. Для завершения создания отчета необходимо лишь требуемым образом изменить расположение долей, а также вставить дополнительный текст и другие объекты отчета.

Для создания стандартного отчета необходимо выполнить приведенную последовательность действий:

1. Находясь в окне конструктора отчета, выполните команду меню Report → Quick Report.

2. В открывшемся окне диалога Open содержится список всех таблиц от­крытой в проекте базы данных. Выберите таблицу, для которой создается стандартный отчет, и нажмите кнопкуОК.

3. После этого на экран будет выведено диалоговое окно Quick Report, в котором выберите вариант расположения полей в отчете из двух предложенных: в столбец или в строку. При выборе варианта расположения полей в столбец (левая кнопка) поля отображаются в полосе «Detail» слева направо вдоль всей страницы. При выборе варианта расположения полей в строку (правая кнопка) поля отображаются в полосе «Detail» друг под другом.

4. Для выбора полей отчета в режиме Quick Report в окне диалога нажмите кнопку Fields. Появится окно диалога Field Picker. В данном окне выберите те поля, которые необходимо включить в отчет, используя для этого кнопку Move. Если в отчет нужно поместить все поля, воспользуйтесь кнопкой All. Если нужно разместить в отчете все поля за исключением нескольких, следует вначале выбрить все поля, а затем удалить лишние, воспользовавшись кнопкой Remove.

5. Закончив выбор полей, нажмите кнопку ОК. Теперь отчет содержит все необходимые поля, которые будут использоваться в качестве черновика отчета. Кроме того, в полосе «Page Footer» будет размещено поле с функцией DATE() и поле с системной переменной _PAGENO (номер страницы).

6. Если в стандартном отчете текст и наименования полей представлены некор­ректно, то измените шрифт этих объектов. Для этого выделите объекты отчета, воспользовавшись командой Edit → Select All. После этого уста­новите требуемый шрифт. Для этого выполните команду Format → Font и в окне диалога Выбор шрифта установите начертание, стиль, цвет, размер символов выделенных объектов (в данном случае всех объектов отчета). В области «Шрифт» установите любой подходящий вам шрифт, поддерживаю­щий кириллицу, и нажмитеОК.

Просмотр и печать отчета

Для просмотра отчета можно использовать один из способов:

1) выполнить команду F10File → Print Preview;

2) выполнить команду F10View → Preview;

3) воспользоваться командой Preview контекстного меню;

4) нажать кнопку Print Preview стандартной панели инструментов.

Печать отчета в СУБД Visual FoxPro осуществляется одним из следующих способов:

1) командой меню F10 → File → Print;

2) командой меню Report → Run Report;

3) командой Print контекстного меню;

4) командой меню Report → Run Report;

5) нажатием кнопки Print или Run на стандартной панели инструментов Visual FoxPro.

На экране появится стандартное диалоговое окно Print, позволяющее установить параметры принтера.

Аппаратура и материалы совпадают с приведенными в описании лабораторной работы 1.

Указания по технике безопасности совпадают с приведенными в описании лабораторной работы 1.

Задания для защиты работы

Базовый уровень

Задание 1. Откройте созданный проект «Стол заказов». Создайте с помощью «мастера» отчетов: отчет по таблице «Поставщики».

Методика и порядок выполнения задания 1

1. Откройте созданный проект «Стол заказов».

2. Перейдите на вкладку Documents, выберите группу Reports и нажмите кнопку New. В открывшемся диалоговом окне New Report выберите опцию Report Wizard.

3. Определите, для какой таблицы создается отчет, и какие поля необходимо в нем разместить. Для выбора базы данных и таблицы используется два связанных списка в области «Databases and tables». Для открытия базы данных или выбора требуемых таблиц нажмите кнопку, расположенную справа от списка баз данных. На экране откроется окно диалога Open, позволяющее выбрать требуемую базу данных. Перенесите из списка Available fields, содержащего перечень всех полей выбранной таблицы, в список Selected fields все поля, которые должны быть включены в создаваемый отчет. Для переноса полей используются кнопки, расположенные между этими списками. Используя эти кнопки, сформируйте список Selected fields и нажмите кнопку Next для перехода к следующему шагу в создании отчета.

4. Выберите стиль отображения данных. Переключатель Style содержит три варианта отображения компонентов отчета. Мастер позволяет при выборе стиля просмотреть результат в верхнем левом углу окна.

5. Укажите порядок размещения объектов в отчете и ориентацию страницы отчета.

6. Определите, требуется ли упорядочивать отображаемые данные по какому-либо из полей.

7. Задайте заголовок отчета. Выберите один из трех вариантов работы с отчетом: Save report for later use (Сохранить отчет); Save report and modify it in the Report Designer (Сохранить и открыть в конструкторе для модификации); Save and print report (Сохранить и распечатать отчет).

8. Для завершения создания отчета нажмите кнопку Finish.

Повышенный уровень

Задание 2. Откройте в подкаталоге вашей группы проект «Стол заказов». Создайте стандартный отчет по таблице «Журнал товаров». Название отчета – «Перечень товаров».

Методика и порядок выполнения задания 2

1. Откройте проект «Стол заказов».

2. Перейдите на вкладку «Documents», выберите группу Reports и нажмите кнопку New.

3. В открывшемся окне диалога New Report выберите опцию New Report. На экране появится окно конструктора отчетов.

4. Откройте окно диалога Data Environment, выполнив команду View → En­vironment, или выбрав команду Data Environment контекстного меню.

5. Для добавления таблицы в окружение выполните команду меню Data En­vironment → Add. В открывшемся диалоговом окне Add Table or View выберите таблицу, например, «Потребители», и нажмите кнопку ОК. В окне Data Environmen t появилась вы­бранная таблица. Закройте окно Data Environment.

6. Для создания стандартного отчета выполните команду меню F10 → Report → Qu­ick Report. На экране откроется окно диалога Quick Report.

7. Выберите вариант размещения полей по столбцам и нажмите кнопку Fields.

8. В диалоговом окне Field Picker выберите поля, помещаемые в отчет. Для таблицы «Потребители» – «код потребителя», «название потребителя», «адрес потребителя», «телефон потребителя», «факс потребителя». Используя кнопку Move, перенесите их в список Selected Fields. Нажмите кнопку ОК.

9. Возвратившись в окно диалога Quick Report, нажмите кнопку ОК для завершения создания стандартного отчета.

10. Для того чтобы придать отчету законченный вид, добавьте область заго­ловка отчета. Для этого выполните команду Report → Title/Summary. В от­крывшемся окне диалога «Title/Summary» установите флажок в область «Title Band» и нажмите ОК. В отчете появится полоса «Title».

11. Разместите в полосе «Title» текст заголовка отчета «Список покупателей», используя кнопку Label. В случае необходимости, скорректируйте текст, выполнив команду Format → Font и установив шрифт, поддерживающий кириллицу.

12. Просмотрите внешний вид отчета с помощью команды контекстного меню Preview.

13. Сохраните отчет.

Содержание отчета и его форма

Отчет по лабораторной работе должен состоять из:

1) названия лабораторной работы;

2) ответов на контрольные вопросы;

3) формулировки заданий к лабораторной работе и порядка их выполнения.

Отчет о выполнении лабораторной работы в письменном виде сдается преподавателю.

3. Вопросы для самостоятельной работы

Базовый уровень

1. Создание отчетов в конструкторе проектов.

2. Создание отчетов с помощью мастера.

3. Каким образом можно просмотреть отчет?

4. Вывод отчета на печать.

Повышенный уровень

5.Какие виды отчетов используются в Visual FoxPro?


Лабораторная работа 5

Разработка меню приложения

 

Цель и содержание: изучить основные приемы проектирования меню и подменю приложения в Visual FoxPro.

Теоретическая часть

Система меню приложения в Visual FoxPro служит для объединения в единое целое отдельные его компонентов и придания ему законченного и удобного для дальнейшего использования вида.

При разработке системы меню приложения необходимо выполнить следующие действия:

1) спроектировать структуру меню;

2) определить тип меню;

3) описать пункты меню в зависимости от его вида.

В СУБД Visual FoxPro меню чаще всего представляют в виде горизонтального меню. Горизонтальное меню, расположенное в верхней части экрана, называют еще строкой меню. Создаваемое пользователем меню приложения позволяет заменить стандартное меню системы или дополнить его пунктами необходимыми для работы пользователя.

При разработке строки меню приложения необходимо выполнить последовательность действий:

1) открыть окно конструктора меню;

2) описать пункты меню;

3) отобрать строку меню на экране;

4) определить действия, выполняемые при выборе опции меню;
5) сгенерировать меню и запустить его.

Запуск конструктора меню

1. Откройте окна конструктора меню в Visual FoxPro можно одним из трех способов.

1 способ – с помощью главного меню СУБД Visual FoxPro:

1) в пункте меню File выберите команду New;

2) в диалоговом окне New установите переключатель в позицию Menu (Меню);

3) нажмите кнопку New File (Новый файл).

2 способ – в окне конструктора проектов:

1) откройте окно конструктора проектов;

2) в нем перейдите на вкладку Other (Остальные)

3) выберите группу Menus (Меню);

4) нажмите кнопку New (Новый), расположенную в правой частиокна конструктора проектов.

3 способ ­­– с помощью стандартной панели инструментов:

1) выберите группу Menus (Меню) в окне конструктора проектов;

2) нажмите кнопку New (Новый) на стандартной панели инструментов Visual FoxPro;

3) в диалоговом окне New установите переключатель в позицию Menu (Меню);

4) нажмите кнопку New File.

2. В диалоговом окне New Menu (Новое меню) выберите один из предлагаемых вариантов создания меню. СУБД Visual FoxPro поддерживает работу меню двух видов: Menu – меню в виде строки и Shortcut – всплывающее меню, в котором основные пункты расположены по вертикали.

3. После выбора вида создаваемого меню будет запущен конструктор меню, а в главном меню СУБД Visual FoxPro будет добавлен пункт Menu

Создание меню

1. Откройте конструктор меню.

2. В поле «Prompt (Приглашение)» введите наименования первого пункта меню.

3. Для перехода на следующее поле нажмите клавишу Enter или Таb..

4. После чего курсор переместиться в поле «Result (Результат)». Это поле представляет собой список, в который включены возможные типы пунктов меню: Command (Команда); Pad Name (Наименование строки меню); Submenu (Подменю) и Procedure (Процедура). Выберите необходимый тип пункта меню, и, нажав клавишу Enter, перейдите на следующие строку.

5. Для просмотра созданных пунктов меню нажмите кнопку Preview (Просмотр). После чего основное меню Visual FoxPro будет заменено созданным меню. Пункты меню отображаются на экране в порядке их описания. На экране будет выведено диалоговое окно Preview (Просмотр), в котором отображается текст текущего пункта меню, его тип и выполняемое действие

«Горячие» клавиши

Для выбора пункта меню приложения пользователем чаще всего используются клавиши-стрелки (→, ←, ↑, ↓) или манипулятор «мышь». Кроме того, для удобства работы с меню приложения для каждого из пунктов можно «горячую» клавишу, нажатие которой вместе с клавишей Alt активизирует выбранный пункт меню.

Для создания «горячей» клавиши, предоставляющей возможность ускоренного выбора пункта меню, необходимо включить в его имя перед активизирующим символом последовательность знаков «\<». В качестве «горячей» клавиши можно использовать первый символ имени пункта, что, конечно, более предпочтительно, а также и любой другой символ из его имени. Символы, используемые в качестве «горячей» клавиши, выделяются в строке меню подчеркиванием. Если несколько пунктов меню начинается с одного символа, то рекомендуется в качестве «горячей» клавиши указывать порядковый номер пункта. «Горячие» клавиши для пунктов меню назначаются Visual FoxPro по умолчанию.


Поделиться с друзьями:

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.