вторник, сентября 30, 2008

Views: Columns

теперь напишу про свойства столбцов представления, и вывода их значений

Представления (Views): Intro

Вот создали вы документ, ну, допустим, анкету, вот заполнило некоторе количество людей эти самые анкеты, а просматривать их вообще как непонятно - как выбирать-то?

Вот тут и возникают представления. по сути говоря, представление - это таблица, со столбцами, т.н. обрабатывающими данные из всех выбранных документов (т.е. одна строка - один документ) в столбцах таблицы может выводиться как просто значение поля, так и какая-нибудь дополнительная информация, либо информация, основанная на содержании нескльких полей - тут на что хватит фантазии впринципе)

основное окно и свойства представлений:

Fields: Dialog list Field

при активации данного поля высвечивается окошко с выбором либо одного варианта (если флажок Allow multiple values не установлен) либо нескольких (в обратном случае) - в виде строк и флажков справа: 

элементы (строки) данного диалога могут задаваться разными способами:

при использовании @-формулы, указаная формула должна возвращать текстовый список, а со столбцами представления ещё не разбирался - сам отлько что узнал =))))

Fields: Date/Time Field

Служит для ввода даты и времени, особое внимание заслуживает внешний стиль Calendar/Time Control (устанавливается на первой закладке), который позволяет отобразить поле в виде календаря или шкалы времени:

Fields: Text Field

наименование поля - это имя поля, по которому вы будете в последствии обращаться к этому полю, так что давайте осознаные имена для полей, на английском

внешний стиль - как это поле будет выглядеть (некоторые поля не позволяют выбирать внешний стиль, а у некоторых смена стиля, наоборот. улучшает способ отображения и восприятия информции, соаржащейся в этом поле). В данном случае (Text field) перекючение на Native OS style позволяет задать полю ширину, высоту и тип рамки (на второй закладки), а так же добавляет возможность многострочного ввода текста

строка-список-строка

преобразование строки в список

@Explode( string ) - разбивает строку string на элементы, "разделителем" в данном случае является пробел, символы табуляции и новой строки, а так же спец-символы
@Explode( string ; separators ) -
разбивает строку string на элементы,  испльзуя в качестве "разделителя" символы из строки separators
@Explode( string ; separators ; includeEmpties ) -
как и предыдущая функция, но если параметр  includeEmpties true (1), то  в возвращаемом списке пустые строки не будут исключены (по умолчанию параметр includeEmpties равен false)
@Explode( string ; separators ; includeEmpties ; newlineAsSeparator ) - 
как предыдущая функция, параметр newLineAsSeparator, будучи true указывает, что символ новой строки так же является "разделителем" (по умолчанию - true (1))

ex @Explode("Здравствуйте, товарисчи!"); вернёт "Здравствуйте":"товарисчи!"; @Explode("hello, world!";", ";1); вернёт "hello":"":"world!"

преобразование списка в строку

@Implode( textList ) - объединяет элементы текстового списка textList в строку, разделяя пробелами каждый элемент
@Implode( textList ; separator ) - работает так же, как и предыдущий, разделяя каждый элемент строкой separator

ex @Implode("hello":"world"); вернёт строку "hello world";  @Implode("a":"b":"c";", "); вернёт строку "a, b, c"


длина списков (количество элементов)

есть две функции, показывающие длину списка - @Count(list) и @Elements(list), обе они возвращают количество элементов списка list, одно лишь отличие - для того случая, когда list - не список вовсе, либо список, но пустой - @Count в этом случае вернёт 1, а @Elements - 0

Списки в @Formula

списки в собако-формуле это что-то типа массива и списка одновременно, соответственно элементы одного списка должны быть одинаковы! вот как-то так =) элементы списка задаются через двоеточие ex 2:3:4:5 - числовой список; "hello":"world" - строковый список, допускается список дат и времени

соединение списков также происходит через двоеточие ex list_a:"new element"; list_a:list_b;

сложение списков

одиночное сложение element+list  - к каждому элементу списка прибавится element ex "new_"+"a":"b":"c" даст в результате список "new_a":"new_b":"new_c"; 2+3:4:5 даст 5:6:7

парное сложение list+list -  сложение двух списков - обычно производятся со списками одинаковой длины, элемент первого списка складывается с аналогичным элментом второго списка ex "Bill":"Linus"+"Gates":"Torvalds" даст нам "Bill Gates":"Linus Torvalds"; 10:15+3:5 даст 13:20

по-парное сложение list*+list - каждый элемент складывается с каждым ex "a":"b"*+"c":"d" даст "ac":"ad":"bc":"bd"; 2:3*+5:10 даст 7:12:8:13

(sic!) для числовых списков также доступны операции деления, умножения и вычитания одиночного, парного и по-парного вариантов

удаление лишних пробелов

@Trim(string) - удаляет из строки string начальные, конечные, а также повторяющиеся пробелы; ex @Trim("   превед,            медвед!      !           "); вернёт "превед, медвед! !"

преобразования регистра

@LowerCase(string) - преобразование всех символов строки string к нижнему регистру ex @LowerCase("АдинАдиН!!ЧепяКА"); вернёт "адинадин!!чепяка"

@UpperCase(string) - преобразование всех символов строки string к верхнему регистру ex @UpperCase("не капси!!"); вернёт "НЕ КАПСИ!!"

@ProperCase(string) - преобразование первых символов каждого слова строки string к верхнему регистру, а остальных символов - к нижнему (слово - набор букв без пробелов, разделителем является дефис, пробел и прочие спец-символы) ex @ProperCase("салтыков-щедрИН никиФОР ИВАНЫЧ"); вернёт "Салтыков-Щедрин Никифор Иваныч"

Выделение строки слева и справа

@Left - выдление строки слева направо

@Left( stringToSearch ; numberOfChars ) - стандартное выделение, возвращает подстроку строки stringToSearch, слева длиной numberOfChars; ex @Left("hello, world!", 4); вернёт  "hell"

@Left( stringToSearch ; subString ) - функция посложней, она возвращает подстроку строки stringToSearch слева и до найденного значения subString; если subString не найден - вернёт пустую строку; ex @Left("Make love, no war!","no"); вернёт "Make love, "

@Right 

аналогичен @Left, но ищет справа, приведу примеры:

@Right("Hello, world!",6); вернёт "world!"

@Right("Make love, no war!", "love"); вернёт ", no war!"

@Formula

@Formula intro

собака-формула - шустренький, достаточно простой язык для работы с текстом, числами, ячейками и прочим

все функции @F начинаются с символа at - @, отсюда и название =)

разделителем параметров является точка с запятой, а не запятая, как (сужу по себе) многие привыкли, в конце строки также ставится точка с запятой; флаги указываются в [квадратных скобках], но обычно это есть в хелпе есичё =)

Field - параметры

Field  визуальные свойства*

name - имя поля

type (первый список)  позволяет выбрать вид поля и тип хранимых данных

text - для хранения текста

date/time - хранения даты/времени

number - хранение чисел

dialog list - появляется диалог с выбором варианта/тов 

check box - список значений с множественным выбором

radiobutton - список значений с единственным выбором

listbox - список значений 

rich text - форматированный текст

password - поле для ввода пароля (вводимый текст маскируется звёздочками)

type (второй список) задаёт "назначение" поля

editable - поле для ввода данных пользователем

"вычисляемые поля" - поля, значения которых вычисляются по заданным формулам, пользователь не может их изменить

computed -  значение вычисляется каждый раз при сохранении документа. сохраняется в документе

computed for display - значение вычисляется лишь при открытии/обновлении документа, т.е. значение поля не доступно, когда документ закрыт

computed when composed - значение вычисляется при создании докумена.  хранится в документе.

на второй закладке отображаются "визуальные свойства", т.н. высота поля, ширина и прочее

третья закладка определяет за дополнительные возможности содержимого поля (наличие подсказок, тип разделителя строк)

четвёртая закладка определяет параметры шрифа, используемый для отображения текста в поле

пятая - выравнивание

шестая закладка даёт возможность скрывать абзац

*свойства, задаваемые в найстройках поля (при выделенном поле нажмите alt+enter)

Field - описание

Field

это основное хранилище, ячейка данных - служит, как и для ввода данных пользователем, так и для каких-либо вычислений, имеет кучу настроек и видов - от простго текстового поля до календарного вида

вся система значений построена именно на этой маленькой хреновине, содержащей довольно-таки обширные возможности

Form - заголовок формы


form/window title

пока единственное свойство формы, что мы удосужились изучить) отвечает за заголовок документа

то есть если в данном поле вы введёте какой-либо текст, либо напишите формулу, возвращающую текстовое значение, оно будет в заголовке формы. Учтите, что если это просто текст, то он должен быть взят в кавычки (одинарные или двойные - не важно)

Form - описание

форма - это типа контейнер для всяческой шняги типа полей, таблиц, текста, основное окно, с которым так или иначе прийдётся работать