Изменение визуальных форм

Материал из Википедия ЭТИМа (ETIM Wikipedia)
Версия от 15:55, 28 января 2019; Michael (обсуждение | вклад) (Расширенное управление элементами с помощью "ExtParams")
Перейти к навигации Перейти к поиску

Общие сведения

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

Изменения размеров, цветов и др. на экранных формах производится через соответствующие файлы настроек. Текст файлов подчиняется стандартным правилам формирования XML файлов.

Местоположение файлов настроек:

/"Каталог-программы"/Settings

Стандартные каталоги программы: "/opt/R1Sensor" для ОС Linux и "c:/R1Sensor" для ОС Windows.

Правила формирования имен файлов:

Forms-X-Y.xml

Где:

X – название алгоритма работы (A0, A1 и т.д.).

Y – разрешение экрана (1024x768, 800х600 и т.д.),

Например для алгоритма А1 и разрешения 1024x768 имя будет: "Forms-A1-1024x768.xml"

Разрешение экрана может отсутствовать в имени файла - тогда данный файл будет использоваться для всех разрешений.

Пример вида папки с настройками

Это основной файл, который должен содержать описание всех форм используемых в выбранном алгоритме работы.

Все описания в файле записаны внутри тега AclasSelfServiceFormSettingsData, а описание форм находится внутри тега Forms:

<AclasSelfServiceFormSettingsData LastModify="22.08.2016 12:00:00" DBVersion="1.0.0">
  <Forms>
    …
  </Forms>
</AclasSelfServiceFormSettingsData>

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

  <Include File="Forms-A1-1024x768_Groups.xml"/>
  <Include File="Forms-A1-1024x768_SubGroups.xml"/>
  <Include File="Forms-A1-1024x768_Goods.xml"/>

В каждом файле структура тегов соответствует основному файлу.

Например, при установке программного обеспечения, для редактирования внешний вид кнопок на экране выбора товара нужно редактировать файл: "Forms-A1-1024x768_Goods.xml"

При использовании весового модуля LS215 (обычно с этим модулем используется персональный компьютер с тач-экраном на базе x86 совместимого процессора под управлением ОС Windows или Lixnux) формы в первую очередь ищутся в подкаталоге "LS215" каталога настроек. Подобное поведение связано с тем, что в настольных версиях ОС Windows или Linux визуальные размеры шрифтов отличаются от таких же шрифтов в ОС Embedded Linux, которая используется управляющих компьютера на базе процессоров ARM совместно с весовыми модулями LS515.

Описание форм 

Формы описываются только внутри тега Forms и только на один уровень внутрь, т.е. невозможно вложенное описание форм.

Для задания формы (как и для задания многих других элементов) используется тег Item.

Тип формы задается атрибутом Type.

Например:

<AclasSelfServiceFormSettingsData LastModify="22.08.2016 12:00:00" DBVersion="1.0.0">
  <Forms>
    <Item Name="GroupForm-Algoritm-A11" Type="13" Version="0.0.1.0" Created="19.03.2015">
      … Здесь будет описание элементов формы … 
    </Item>
  </Forms>
</AclasSelfServiceFormSettingsData>


Атрибуты Name, Version и Created - необязательны и служат для более удобного восприятия файлов с описанием.

Типы форм 

Тип формы Назначение формы Примечание
10 Форма с обычными группами товаров
11 Форма с подгруппами обычными
12 Не используется  
13 Форма с группами и вводом номера товара  
14 Форма с пользовательским вводом номера товара
15 Форма для режима фасовки  
16 «Плавающая» форма пользовательского ввода номера товара
17 Форма для режима работы без групп товаров
18 Форма с автоматическими цифровыми группами
19 Форма с автоматическими алфавитными группами
20 Форма со списком товаров
40 Форма для вывода системных сообщений
Системное сообщение «Идет загрузка ПО» Подтип: MessageType=Loading
Системное сообщение «Критическая ошибка» Подтип: MessageType=CriticalError
Системное сообщение «Весы заблокированы» Подтип: MessageType=LockScale
Системное сообщение «Вызов продавца» Подтип: MessageType=CallService
Системное сообщение «Весы не работают» Подтип: MessageType=OutOfOrder
Системное сообщение «Нет связи с весовым модулем» Подтип: MessageType=NoLink
Системное сообщение «Ошибка печати» Подтип: MessageType=CommonPrintError
Системное сообщение «Не закрыта крышка принтера» Подтип: MessageType=ClosePrinterCover
Системное сообщение «Не установлена кассета» Подтип: MessageType=NoCassette
Системное сообщение «Установлена неверная кассета» Подтип: MessageType=BadCassette
Системное сообщение «Закончились этикетки» Подтип: MessageType=OutOfPaper
Системное сообщение «Не снята этикетка» Подтип: MessageType=RemoveLabel
Системное сообщение «Необходима калибровка принтера» Подтип: MessageType=NeedRecalibrate
41 Описание вывода веса/цены/стоимости
42 Форма с выводом информации о товаре перед/после печати этикетки
43 Описание вывода веса/цены/стоимости для системного меню
50 Форма для вывода рекламных сообщений для основного экрана
51 Форма для вывода рекламных сообщений для дополнительного экрана
52 Форма для вывода рекламных сообщений для дополнительного экрана в режиме фасовки
55 Форма обрасной связи. Используется для вывода контактов для связи.

Используемые теги и их иерархия

Название тега Описание Примечание
<Form><Item>       
  Width      
  Height      
  StyleSheet      
  BackgroundColor      
  BackgroundPicture      
  ButtonsZone      
  Item      
  StyleSheet     
    ExtParams    
  StyleSheet      
  ExtParams      
  Pictures        
  Item       
  ExtParams     
  StaticTexts        
  Item       
  ExtParams     
  StyleSheet    
  Buttons        
  Item       
  ExtParams     
  StyleSheet    
  ErrorMessage        
  StyleSheet    
  ServiceZones        
  Item       
  Weight        
  StyleSheet    
  Price        
  StyleSheet    
  Total        
  StyleSheet    
  ModeMessage       Для режима фасовки
  StyleSheet    
  StateMessage       Для режима фасовки
  StyleSheet    
  InfoMessage       Для режима фасовки
  StyleSheet    
  ProgressBar       Только для экрана загрузки
  Counter       Только для экрана загрузки
  ProgressPictures       Только для экрана загрузки
  Item       
</Item></Form>      

       

Дополнительные теги для изменения внешнего вида и поведения элементов

Название тега Описание Примечание
StyleSheet Тег описывающий визуальное представление элемента. Цвета, шрифт и т.д. Для задания используется тип CDATA. Например: <![CDATA[border-left: 3px; border-style: solid; border-left-color: black; ]]>
ExtParams  Тег задающий дополнительные параметры для элемента. Содержимое элемента задается в формате JSON.

Для элемента "InputString": "empty-text" : "текст при отсутствии введенного номера" и "empty-text-style-sheet" : "стиль текста при отсутствии введенного номера" Для текстов, кнопок: "autohide" : "true/false" и "autoshow" : "true/false"


Атрибуты-описатели визуальных элементов

Название атрибута Описание Возможные значения Примечание
Type Тип элемента  
Enabled Разрешение/запрещение вывода элемента true/false
Top Координаты верхней границы элемента число если число от 0 – координата.

если число < 0 – координата   отсчитывается от противоположной границы родительского элемента.

Left Координаты левой границы элемента число если число от 0 – координата.

если число < 0 – координата   отсчитывается от противоположной границы родительского элемента.

Width Ширина элемента число если задано значение "0", тогда происходит увеличение размера по правой стороне до конца родительского элемента
Height Высота элемента число если задано значение "0", тогда происходит увеличение размера по нижней границе до конца родительского элемента
VAlign Выравнивание содержимого элемента по вертикали
HAlign Выравнивание содержимого элемента по горизонтали
Scaled Разрешение/запрещение растягивания содержимого элемента true/false если элемент является картинкой, включение данного атрибута позволяет растянуть загружаемую картинку до размеров элемента.
Tracing Обводка текста альтернативным цветом число если задано значение "0" - обводки нет
TracingColor Обводка текста альтернативным цветом Цвет обводки
WordWrap Перенос слов по словам true/false
Scaled Пропорциональное растягивание картинок. true/false
ScaledContent Непропорциональное растягивание картинок и текста. true/false

Типы визуальных элементов

Тип элемента Возможные атрибуты Описание Примечание
Group Описание блока с кнопками групп товаров. Кнопки распологаются внутри блока в сетке.

Размеры кнопок вычилсяются автоматически в зависимости от заданного количества и максимальных/минимальных размеров.

Enabled Включение/выключение видимости элемента без удаления его из файла описания формы.  
Rows Количество рядов в сетке кнопок групп (кнопок по вертикали).  
ButtonInRow Количество колонок в сетке кнопок групп (кнопок по горизонтали).  
Top, Left, Width, Height Координаты блока верхнего левого угла и размер по ширине и высоте.  
MaxWidthButton, MaxMaxHeight, MinWidthButton, MinMaxHeight Максимальные и минимальные размеры кнопки.  
BackgroundPicture Фоновая картинка для каждой кнопки. Картинка расположена в самом нижнем слое.

Картинка растягивается пропорционально по всей кнопке. Размеры места под картинку соответствуют размеру кнопки.

MiddlePicture Дополнительная картинка для каждой кнопки. Картинка расположена над картинкой группы.

Картинка растягивается пропорционально по всей кнопке. Размеры места под картинку соответствуют размеру кнопки.

ForegroundPicture Картинка верхнего уровня для каждой кнопки. Картинка расположена в самом верхнем слое.

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

 
 
 
 
 
DigitGroup  
Name  
Number  
Picture  
DisplayNumber  
Price  
Action  
BackgroundText  
BackgroundPicture  
Back  
Forward  
Text  
TimeDate  
 
 
 
 
 
 

Типы кнопок (Buttons)

Если аттрибут "Type" элемента из группы "Buttons" равен указанному в таблице значению, то элемент приобретает соответствующие возможности.


Тип кнопки Описание Примечание
MainMenu Переход на первоначальный экран.  
ResetPrinter Сброс (калибровка) принтера.  
AlphaGroups Переход на экран с алфавитными группами.  
DigitGroups Переход на экран с цифровыми группами.  
NameGroups Переход на экран с группами товаров.  
PackingUserScreen Переход на экран с набором кода товара.  
PackingSplashScreen Показ всплывающего экрана с набором кода товара.  
PrintCopyLabel Печать копии последней этикетки.  
FeedPaper Промотка этикетка. Построчная.  
PrintTestLabel Печать тестовой этикетки.  
Close Закрыть текущую форму. В данный момент не используется.
Retry Повтор последней операции. В данный момент не используется. 
PrintLabel Печать этикетки, если есть набранный (выбранный) код товара.  
PreviousGroup Переход на предыдущую группу товаров.  
NextGroup Переход на следующую группу товаров.  
BackGoodsPage Переход на предыдущую страницу товаров в пределах одной группы.  
ForwardGoodsPage Переход на слудующую страницу товаров в пределах одной группы.  
SystemMenu Показать системное меню.  
Feedback Показать форму обратной связи (тип формы = 55).  

Типы текстовых полей (StaticText)

Если аттрибут "Type" элемента из группы "StaticText" равен указанному в таблице значению, то элемент приобретает дополнительные возможности.


Тип поля Описание Примечание
Text Вывод простого текста.  
DateTime Вывод текущего времени/даты В поле "text" находится шаблон для вывода времени/даты, состоящий из элементов:

dd - день; ММ - месяц; yyyy - год; hh - часы; mm - минуты; ss - секунды. Другие символы выводятся в неизменном виде.

GroupName Название текущей группы товаров.  
GroupPicture Основная картинка текущей группы товаров.  
GroupSecondPicture Дополнительная картинка текущей группы товаров.  
Weight Вывод текущего веса. В поле "text" наносится шаблон для вывода следующего типа:

{%total%} - полное значение; {%int%} - целая часть; {%fract%} - дробная часть.

Price Вывод цены товара. В поле "text" наносится шаблон для вывода следующего типа:

{%total%} - полное значение; {%int%} - целая часть; {%fract%} - дробная часть.

Total Вывод общая сумма (цена * вес). В поле "text" находится шаблон для вывода следующего типа:

{%total%} - полное значение; {%int%} - целая часть; {%fract%} - дробная часть.

QRCode Вывод QR кода.

Порядок вывода визуальных элементов на формы

  1. Фоновая картинка формы
  2. Статичные тексты
  3. Статичные картинки
  4. Поля веса/цены/стоимости
  5. Кнопки
  6. Поле с выбором товаров
  7. Поля для входа в системное меню

Элементы, которые выводятся на экране позднее перекрывают ранее выведенные элементы.

Расширенное управление элементами с помощью "ExtParams"

Для элемента "Inputstring"

Имя тега Тип данных Описание Используется в алгоритмах
empty-text string Строка выводимая, когда не введен номер товара А11, А12, А13
empty-text-style-sheet string Стить строки ввода, когда не введен номер товара А11, А12, А13

Для элемента "Weigth"

Имя тега Тип данных Описание Используется в алгоритмах
enable-blink-on-error string
weight-not-stable-color string
weight-error-color string
weight-not-stable-style-sheet string
weight-over-flow-style-sheet string
weight-error-style-sheet string
weight-overflow-text string Текст на который заменяется вес в случае перегрузки весов AdPicturePackingSecondScreen, ScaleInfo

Для элемента "Keyboard"

Имя тега Тип данных Описание Используется в алгоритмах
keyboard-map string

Для элемента "PackingKeyboard"

Имя тега Тип данных Описание Используется в алгоритмах
keyboard-map string

Для элемента "Groups"

Имя тега Тип данных Описание Используется в алгоритмах
autohide bool
autoshow bool

Для элемента "StaticText"

Имя тега Тип данных Описание Используется в алгоритмах
autohide bool
autoshow bool

Для элемента "Pictures"

Имя тега Тип данных Описание Используется в алгоритмах
autohide bool
autoshow bool
movie bool

Для элемента "Progress"

Имя тега Тип данных Описание Используется в алгоритмах
showtext bool

Для элемента "PopularGoods"

Имя тега Тип данных Описание Используется в алгоритмах
enable-buttons bool


Для элемента "QRCode"

Имя тега Тип данных Описание Используется в алгоритмах
prescaler int Количество пикселей на бит полученного кода По умолчанию 1
error-correction int Уровень коррекции ошибок От 0 (lowest) до 3 (highest). По умолчанию 1.

Level L (Low): up to 7% damage Level M (Medium): up to 15% damage Level Q (Quartile):up to 25% damage Level H (High): up to 30% damage

smooth-transformation bool Режим масштабирования Если текст есть, он заменяет генерируемое системой значение в коде
keep-aspect-ratio bool Соблюдение пропорций при масштабировании Если текст есть, он заменяет генерируемое системой значение в коде
encode-mode int Режим кодирования информации в коде От 0 до 7
text string Текст для кодирования в коде Если текст есть, он заменяет генерируемое системой значение в коде

Для элемента "Item"

Имя тега Тип данных Описание Используется в алгоритмах
show-time int Время показа формы Используется в форме "Feedback" для ограничения времени вывода

Дополнительное описание

Вот здесь