6. Конфликты совместимости Oracle решения с Global 1¶
Формы AS через
super$могут получить доступ только к главной выборке приложения. Формы приложения Global 1, могут быть связаны друг с другомsuper$параметрами. Многие карточки обращаются к вызывающим формам черезsuper$.В
ASстрогая типизация. При несовпадении типов вызывается исключение конвертации типов. АGlobal 1позволяет записывать в параметры значения с не согласованными типами данных.Например, этот код выполнится в
Global 1и вызовет исключение вAS<pascal> AddVar('Param', 'Какая-то строчка', ftFloat); </pascal>
В
Global 1:GetVar('MyDate')вернёт дату, поскольку значение хранится какVariantи не конвертируется. ВAS:GetVar('MyDate')вернёт строковое представления числа, поскольку даты черезJavaScriptпередаются какdoubleи на этапе добавления параметра произойдёт конвертирование double в строку.<pascal> AddVar('MyDate', GetVar('dDate'), ftString); </pascal>
Методы работы с длиной строки
<pascal> a := 's'; setLength(a, 25); // Метод задания длины строки. Не реализован для AS, применение приведет к ошибке. length(a); // в Global 1 вернет 25; в AS вернет 1 strlen(a); // вернет 1 для Global 1 и AS </pascal>
Результат условия
null = 0дляGlobal 1будетtrue, дляASбудетfalse. В паскале (вGlobal 1) происходит преобразование к number, иnullприравнивается к0. В JavaScrit (вAS)null- объект, из-за этого идет преобразование к строкам.Массивы объектов/массивов. При присвоении массива в качестве элемента другого массива, при выполнении в
Global 1, передается значение; вAS– ссылка.В данном примере, при выполнении вAS, все элементы массиваavResultбудут содержать ссылку на последний элемент массиваsomeData¶<pascal> avResult := CreateArray(); avTmp := CreateArray(); // создается объект for i := 1 to 2 do begin avTmp[1] := someData[i]; //объект получает значение avResult[i] := avTmp; // в ``AS`` передается ссылка на один и тот же объект end; </pascal>
Загрузка файлов в базу. В приложении
Global 1, обычно сначала открывается диалог выбора файла, после чего выполняетсяBlobOpen('поле', 'имя файла'). ДляASданный способ не подходит. Процессы выбора файла и загрузки файла на сервер должны выполняться одновременно. Для этого предлагается сделать методBlobOpen()функцией, возвращающей имя загруженного файла.Формировать в сеттере BLOB поля вызов API.SetxxxLOB() метода.
Разделение элементов в фиксированном выпадающем списке. Если в задающей строке будут подстроки и перед символом
"или'будут символы, отличные от разделителя, вGlobal 1происходит игнорирование подстроки.- Пример 1:
Исходная строка
123"A,B"321В
Global 1элементами будут123"A,B"321В
ASэлементами будут123,A,B,321
- Пример 2:
Исходная строка
"A,B"123В
Global 1и вASэлементами будутA,B,123
В
ASнедоступно обращение к детальным выборкам в момент открытия мастера. ВGlobal 1это работает, поскольку, сначала простраивается вся форма, а потом открывается гл. выборка. ВASформа простраивается последовательно (что ускоряет ответ системы), из-за чего в операцииbeforeFirstOpenглавной выборки детали ещё не доступны и параметры в детали не добавляются.В
ASдобавлены свойства атрибутаView.Representation.Attributes.Attribute.Style.highlightLangиView.Representation.Attributes.Attribute.Style.highlightCol, хранящие язык, выделяемый в тексте, и цвет выделения этого языка соответственно.-
В
ASподдерживает размеры строк и колонок, указанные в процентах и какauto. Но поддерживает размеры, указанные в пикселах.Global 1не поддерживаются значения размеровv(они вычисляются относительно полного размера гридпанели).ASучитывает изменения свойствах, влияющих на содержимое и его отображение при рефреше выборки фрейма.Global 1не поддерживает изменения в метаданных.
TbtkScriptSerialPortObjectМетод
TbtkScriptSerialPortObject.RegisterHandler(). В AS указанная операция выполнится на чтение из устройства только в том случае, если выборка, в которой определена эта операция, не закрыта.AS поддерживает свойство
TbtkScriptSerialPortObject.Busy. В Global 1 это свойство не обрабатывается
btkFrame.TbtkLookUpPDFViewFrameВ
Global 1в атрибуте из свойства фрейма FileNameField указывается имя файла или блоб для отображения, в AS возможно только указание блоба