Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аварда с точки зрения чайника.doc
Скачиваний:
19
Добавлен:
06.03.2016
Размер:
274.94 Кб
Скачать

Скрипт.

Для правильного написания любого скрипта, хоть в форме, хоть в отчете, хоть в алгоритме надо немного. Во первых – немного знать паскаль, надеюсь, что с этим у Вас проблем нет. Во вторых – соблюдать стилевые требования.

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

  • Перед и после знаков операций должны быть пробелы.

  • После знаков препинания надо ставить пробел.

н

program show;

uses

doc,find;

var

lid:integer;lname:string;

begin

lid:=2025;lname:= '';

end.

апример, так плохо:

то же самое, исправлено:

program show;

uses

doc, find;

var

lid: integer; lname: string;

begin

lid := 2025; lname := '';

end.

  • Один оператор на одной строчке. (После точки с запятой сразу новая строка)

т

program show;

uses

doc, find;

var

lid: integer;

lname: string;

begin

lid := 2025;

lname := '';

end.

о же самое, еще раз исправлено:

  • При переносе простого оператора на вторую строку (например, после := или then) отступ два пробела.

т

if lid = 0 then

lid := FindGetIntField('LID');

ак плохо:

т

if lid = 0 then

lid := FindGetIntField('LID');

ак хорошо:

  • Ключевые слова - в нижнем регистре.

  • В составном операторе begin - с новой строки без отступа, после begin сразу новая строка и отступ два пробела, end - на одном уровне с соответствующим begin.

п

if (flag = 3) AND (concept = 200) then

BEGIN lname := 'найден';

id := lid;

END

else BEGIN lname := 'отсутствует';

id := id - 1001;

END;

ример с ошибками:

то же, исправлено:

if (flag = 3) and (concept = 200) then

begin

lname := 'найден';

id := lid;

end

else

begin

lname := 'отсутствует';

id := id - 1001;

end;

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

Ткаченко А. В. Стандарт стилевого оформления исходного кода DELPHI.

http://www.delphikingdom.com/article/coderules.htm

Вячеслав Колдовский. Стандарты написания исходного кода в Delphi

http://www.delphiplus.org/articles/delphi/source_code_standards/index.html

Алгоритмы.

Существует очень много типов алгоритмов в AVARDA. Для начала работы необходимо уметь обращаться с тремя - “Dll на шапку документа” KID=28040, “Выбор из журнала” KID=28050, “Скрипт” KID=28112. Остальные или редко встречаются, или похожи на один из этих трех.

“Скрипт”(28112) он и есть скрипт, собственно из скрипта он и состоит. Как его писать – в разделе “Скрипт”.

Алгоритм 28040 – на самом деле позволяет запустить форму из документа, или из меню, или откуда надо. Почему он называется “Dll на шапку документа”? Не буду писать, что я вас попрошу сделать, если Вы это выясните. Для работы алгоритма нужно просто указать ему какую форму он будет запускать.

Алгоритм 28050 Выбор из журнала. Позволяет запустить из нужного места журнал. Для работы алгоритма нужно просто указать ему какой журнал он будет запускать.

Если Вы возьмете за правило при создании алгоритма сразу задавать ему кнопку и картинку, то избежите замечаний по этому поводу.

Форма.

Форма, она же Дизайн-форма, она же Форма TW5. Позволяет делать почти все, что угодно. Запускается, как правило, алгоритмом “Dll на шапку документа”(28040), имеет форму и скрипт. Ага, я догадываюсь, что Вы немного запутались в этом месте, по поводу кто же кого имеет. Ничего страшного, в системе AVARDA названия объектов часто дублируются, и одно слово в разном контексте имеет разное значение, давайте распутываться.

Итак, разделим понятия, и запомним что:

  1. Алгоритм “Скрипт” и скрипт формы это совершенно разные понятия. Алгоритм “Скрипт” это самостоятельный объект системы, а скрипт формы – объект формы. Хотя и то и другое пишется на одном языке, но даже в написании есть различия, не все операции, которые можно сделать в алгоритме-скрипте получится сделать в скрипте формы и наоборот, соответственно, не все операции, которые можно сделать в скрипте формы получится сделать в алгоритме-скрипте. Что в каком скрипте можно делать, это вопрос тонкий, отнеситесь к нему с вниманием, почитайте в документации, там это есть. Надо еще упомянуть, что у отчетов тоже есть скрипт. Обычно, когда говорят просто «скрипт», то имеют в виду алгоритм-скрипт, про иные скрипты говорят «скрипт формы» или «скрипт отчета».

  1. По поводу того, как форма может иметь форму. Это еще проще. Наверно, будет достаточно сказать, что у формы есть объект Form, и все сразу станет ясно. Обычно так и говорят и пишут, «форма» и «form».

  1. Кроме объекта «Форма», в конфигураторе существуют объекты «Форма поиска» и «Форма действия», это совершенно разные объекты.

При оформлении form формы надо помнить несколько простых правил:

  1. Form.Name должен иметь значение ‘Form’ + IDформы. Это потому, что имена form в конфигурации должны быть уникальными, иначе могут возникнуть ошибки.

  1. Шрифт контроллов на форме и самой формы Arial.

  1. Если нет особой необходимости для того, чтобы пользователь мог менять размеры формы, то Form.BorderStyle должен иметь значение bsDialog.

  1. Если Ваша форма должна просто сделать что-то, не показываясь пользователю на глаза, например запустить отчет, то поставьте Form.Hide в значение True.

  1. Шрифт надписей(Label) на форме обычно жирный, подчеркнутый.

  1. Цвет надписей зависит от того, какой принят стандарт в конкретной конфигурации, мне встречались два цвета - стандартный черный и цвет Navy.

  1. Форма должна быть разумно поджата. С боков, сверху, снизу не должно быть большого свободного пространства.

Отчет.

Отчеты делают на FastReport. На том, как их делают на FastReport-2 я, с Вашего позволения, останавливаться не буду, что было – то было, и даст Бог, быльем поросло. Поговорим про отчеты FR3.

Во первых, возникает вопрос, как его, собственно, создать? Создаем, понимаешь ли, отчет, ищем куда нажать, чтобы стал он FR3, а что ни жмем - все без толку, как был старый отчет, так он и остается. Ничего, зайдите в редактирование, и поставьте в KID1 число 3. Ах тройка, птица – тройка… но что-то это я отвлекся. А собственно уже и все, отчет уже FR3.

Замечание. Не пытайтесь таким образом перевести уже готовый отчет из FR2 в FR3, многие пытались, да ничего пока из этого ни у кого не вышло, только отчет запортите.

Во вторых, как отчет запускать? Дело в том, что отчет FR3 нельзя ни из меню вызвать, ни на документ навесить. Стандартная последовательность действий:

  1. Создаем отчет.

  1. Создаем форму, которая будет вызывать отчет.

  1. Создаем алгоритм 28040, который будет вызывать форму, которая будет вызывать отчет.

  1. Читаем стихотворение «Дом который построил Джек».

  1. Впрочем, пункт 4. можно и не выполнять.

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

В третьих, как передать в отчет параметры? А просто, параметры собираются формой и передаются в отчет через SetParam/GetParam, см. рис. 5.1 и 5.2. Диалог ввода параметров можно построить прямо в отчете, но, насколько мне известно, этой возможностью пользуются редко. Через форму удобнее.

Хорошее правило – связанным отчету, форме и алгоритму давать имена одинаковые, или, по крайней мере, похожие. Иначе трудно обратный поиск делать. Дело в том, что в конфигураторе легко определить по алгоритму, какую форму он запускает, но совершенно невозможно определить по форме, каким алгоритмом (какими алгоритмами) она запускается. Аналогично, по форме легко определить, какой отчет она вызывает, и невозможно определить по отчету, из какой формы (из каких форм) он вызывается. Чтобы не лезть каждый раз в IBExpert, и не писать поисковый запрос удобно искать по совпадению имен.

Если Вы делаете отчет впервые, то обязательно проверьте точно ли совпадают поля и не налезают ли они друг на друга. Как не странно, это одна из распространеннейших ошибок. И очень желательно проверить отчет на реальной печати на бумагу.

Еще тонкость, в PageFooter отчета рекомендуется написать: «Документ подготовлен программой "AVARDA" . Разработчик - ООО "АВАРДА Консалтинг". +7 (495) 781-8464 www.avarda.ru Напечатано: [DATE] [TIME] Стр.[PAGE#». Ну, или что-то подобное, что будет актуально на момент разработки.