к оглавлению   к 4GL - визуальному программированию

Сценарии и определение структуры данных

Объект Scenario

Объект scenario (сценарий) позволяет хранить несколько значений в одной ячейке. Каждое уникальное значение в ячейке или каждая уникальная группа значений для группы ячеек называется сценарием. Семейство scenarios (сценарии) содержит все сценарии рабочего листа. Вручную сценарии создаются с помощью команды Сервис, Сценарии (Tools, Scenarios).

Рассмотрим методы объекта Scenario.

Add

Добавляет новый сценарий.

Синтаксис:

Add (Name, ChangingCells, Values, Comment, Locked, Hidden)

Аргументы:

  • Name — имя сценария
  • ChangingCells — диапазон, отводимый под изменяемые ячейки сценария
  • values — массив значений, вводимых в изменяемые ячейки
  • Comment — текстовая строка комментариев
  • Locked — допустимые значения: True (заблокировано изменение сценария) и False (в противном случае)
  • Hidden — допустимые значения: True (сценарий скрыт) и False (в противном случае)

Show

Показывает сценарий посредством ввода значений сценария в изменяемые ячейки

ChangeScenario

Изменяет группу изменяемых ячеек.

Синтаксис:

ChangeScenario (ChangingCells, Values)

  • ChangingCells — группа ячеек, которая будет играть роль новой группы изменяемых ячеек
  • values — массив с новыми значениями изменяемых ячеек

Delete

Удаляет сценарий

Рассмотрим наиболее часто используемые свойства объекта scenario.

ChangingCells

Возвращает диапазон изменяемых ячеек. Например,

Scenarios (1) .ChangingCells . Select

Value

Возвращает массив текущих значений изменяемых ячеек. Например,

Scenarios (I) .Values = Worksheets ( "Sheetl") .Range ("C5:T5") или Scenarios (1) .Values = Array (1, 3, 5, 7, 11, 13, 17, 19)

Приведем соответствие между аргументами методов Add и show семейства scenarios и созданием сценариев вручную при помощи команды Сервис, Сценарии (Tools, Scenarios) на примере создания расчета суммарных затрат (рис. 4.1) при двух вариантах (сценариях) стоимостей комплектующих и расходных материалов (табл. 4.1).

Рис. 4.1. Расчет суммарных затрат

Таблица 4.1. Два варианта стоимостей

Вариант

Комплектующие

Расходные материалы

1

2

1000

800

200

300

Суммарные затраты вычисляются в ячейке В5 по формуле:

=СУММ(В3:В4)

Шаг 1

Выберите команду Сервис, Сценарии (Tools, Scenarios). Появится диалоговое окно Диспетчер сценариев (Scenario Manager) (рис. 4.2). Нажмите кнопку Добавить (Add).

 

Рис. 4.2. Диалоговое окно Диспетчер сценариев

Шаг 2

В появившемся диалоговом окне Добавление сценария (Add Scenario) (рис. 4.3):

  • В поле Название сценария (Scenario Name) вводится имя создаваемого сценария. Введите, например, вариант 1 .
  • В поле Изменяемые ячейки (Changing Cells) вводятся ссылки на ячейки, в которые будут заноситься значения, соответствующие данному сценарию. Введите ссылки на диапазон ячеек $В$3:$В$4.
  • Нажмите кнопку ОК.

ШагЗ

В появившемся диалоговом окне Значения ячеек сценария

(Scenario Values) в поля, помеченные именами изменяемых ячеек, . вводятся соответствующие значения (рис. 4.4). В данном случае в поле $в$з введите юоо, а в поле $в$4 введите 200. Нажатие кнопки Добавить (Add) приведет к появлению диалогового окна Добавление сценария (Add Scenario), в котором следует ввести параметры второго сценария и т. д. После создания требуемого количества сценариев нажмите кнопку ОК, которая приведет к завершению создания сценариев.

Рис. 4.3. Диалоговое окно Добавление сценария

Рис. 4.4. Диалоговое окно Значения ячеек сценария

Шаг 4

В появившемся диалоговом окне Диспетчер сценариев (Scenario Manager) выбором в списке Сценарии (Scenarios) соответствующего сценария и нажатием на кнопку Вывести (Show) производится ввод соответствующих этому сценарию значений в изменяемые ячейки (рис. 4.5).Приведенное выше создание вручную сценариев программируется следующими инструкциями:

ActiveSheet . Scenarios . Add Name := "Вариант 1", ChangingCells:=Range ("B3:B4") , Values:=Array("1000", "200") , Comment :="Автор: Андрей Гарнаев, 28.03.99", Locked:=True, Hidden:=False ActiveSheet. Scenarios. Add Name : ="Вариант 2", ChangingCells:=Range("B3:B4") , Values :=Array ("800", "300"), Comment :="Автор: Андрей Гарнаев, 28.03.99", Locked :=True, Hidden :=False Отображение сценариев на рабочем листе осуществляется следующими двумя инструкциями:

ActiveSheet . Scenarios ( "Вариант 1" ) . Show ActiveSheet . Scenarios ( "Вариант 2 " ) . Show


 

Рис. 4.5. Диалоговое окно Диспетчер сценариев после создания двух сценариев

Объект Outline

В общем случае структура — это такой режим работы, который позволяет разбить данные на определенные уровни детализации, а также просматривать только заголовки и подзаголовки документа. Структура наиболее полезна при создании итоговых отчетов, где не требуется чрезмерная детализация. Структуру невозможно создавать на основе произвольной таблицы данных. Ее построение основывается на таблицах с иерархической структурой данных. Объект Outline (структура) по своей иерархии вкладывается в семейство рабочих листов worksheets. Свойство outline рабочего листа возвращает объект Outline. Вручную на рабочем листе структура создается с помощью команды Данные, Группа и структура, Создание структуры (Data, Group and Outline, Auto Outline).

Приведем основные свойства объекта outline.

AutomaticStyles

Допустимые значения: True (структура строится на основе автоматических стилей) и False (в противном случае)

SummaryColumn

Возвращает местоположение итоговых столбцов. Допустимые значения: xiLef t (итоговые столбцы располагаются слева от столбцов, по которым подводятся итоги) и xiRight (итоговые столбцы располагаются слева)

SummaryRow

Возвращает местоположение итоговых строк. Допустимые значения: xiAbove (итоговые строки располагаются выше строк, по которым подводятся итоги) и xiBelow (итоговые строки располагаются ниже)

Обсудим наиболее часто используемые методы объекта outline.

ShowLevels

Отображает указанное число уровней структуры по строкам и столбцам.

Синтаксис:

ShowLevels (RowLevels, ColumnLevels)

Аргументы:

  • RowLevels - устанавливает число отображаемых уровней структуры по строкам
  • ColumnLevels - устанавливает число отображаемых уровней структуры по столбцам

ClearOutline

Удаляет структуру

Приведем соответствие между построением структуры вручную и аргументами методов и свойств объекта outline на примере организации отчета о продаже в виде структуры с двумя уровнями по столбцам и строкам (рис. 4.6). В строках Итого отчета и столбцах 1-й кв. и 2-й кв. вычисляется итоговая информация по продаже компьютеров.

Рис. 4.6. Отчет о продажах

Шаг 1

Выберите команду Данные, Группа и структура, Настройка (Data, Group and Outline, Settings). На экране отобразится диалоговое окно Структура документа (Outline) (рис. 4.7):

  • Флажки в строках под детальными (Summary Rows Below Details) и в столбцах справа от детальных (Summary Columns to Right of Details) устанавливают расположение итоговых данных относительно детальных. В данном случае установите оба флажка.
  • Флажок Автоматические стили (Automatic Styles) устанавливает, будут ли ячейки при создании структуры отформатированы стандартными стилями. В данном случае установите этот флажок.
  • Нажмите кнопку Создать (Create). Описанные выше действия соответствуют следующим двум инструкциям:

ActiveSheet .Outline . AutomaticStyles = True Selection . AutoOutline

Шаг 2

Теперь таблица отструктурирована (рис. 4.8). При выводе структуры по левому и верхнему краю рабочего листа отображаются кнопки, помеченные символами "+" и "-", которые управляют отображением и скрытием уровней детализации структуры, а также номеров уровней. Щелчок на кнопке со знаком плюс приводит к отображению детализации, а на кнопке со знаком минус — к скрытию детализации. Щелчком на кнопке с номером уровня детализации также можно управлять отображением и скрытием всего уровня.Нажмите кнопки со знаком минус — с тем, чтобы скрыть детализацию отчетной таблицы (рис. 4.9). Описанные выше действия соответствуют следующей единственной инструкции:

ActiveSheet. Outline. ShowLevels RowLevels:=l, ColumnLevels : =1


Рис. 4.7. Диалоговое окно Структура документа

Рис. 4.8. Структурированная таблица с детализацией

ШагЗ

Если структуризация листа не требуется, то ее можно отменить, выбрав команду Данные, Группа и структура, Удалить структуру (Data, Group and Outline, Clear Outline). Тот же результат достигается следующей инструкцией:

Selection. ClearOutline

 

Рис. 4.9. Структурированная таблица без детализации

к оглавлению   к 4GL - визуальному программированию

Знаете ли Вы, почему "черные дыры" - фикция?
Согласно релятивистской мифологии, "чёрная дыра - это область в пространстве-времени, гравитационное притяжение которой настолько велико, что покинуть её не могут даже объекты, движущиеся со скоростью света (в том числе и кванты самого света). Граница этой области называется горизонтом событий, а её характерный размер - гравитационным радиусом. В простейшем случае сферически симметричной чёрной дыры он равен радиусу Шварцшильда".
На самом деле миф о черных дырах есть порождение мифа о фотоне - пушечном ядре. Этот миф родился еще в античные времена. Математическое развитие он получил в трудах Исаака Ньютона в виде корпускулярной теории света. Корпускуле света приписывалась масса. Из этого следовало, что при высоких ускорениях свободного падения возможен поворот траектории луча света вспять, по параболе, как это происходит с пушечным ядром в гравитационном поле Земли.
Отсюда родились сказки о "радиусе Шварцшильда", "черных дырах Хокинга" и прочих безудержных фантазиях пропагандистов релятивизма.
Впрочем, эти сказки несколько древнее. В 1795 году математик Пьер Симон Лаплас писал:
"Если бы диаметр светящейся звезды с той же плотностью, что и Земля, в 250 раз превосходил бы диаметр Солнца, то вследствие притяжения звезды ни один из испущенных ею лучей не смог бы дойти до нас; следовательно, не исключено, что самые большие из светящихся тел по этой причине являются невидимыми." [цитата по Брагинский В.Б., Полнарёв А. Г. Удивительная гравитация. - М., Наука, 1985]
Однако, как выяснилось в 20-м веке, фотон не обладает массой и не может взаимодействовать с гравитационным полем как весомое вещество. Фотон - это квантованная электромагнитная волна, то есть даже не объект, а процесс. А процессы не могут иметь веса, так как они не являются вещественными объектами. Это всего-лишь движение некоторой среды. (сравните с аналогами: движение воды, движение воздуха, колебания почвы). Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution