Для чего необходим режим оффлайн на ТСД?
Нередки случаи когда wi-fi сеть не покрывает полностью рабочую зону работу с терминалом сбора данных (ТСД).
В таких случаях используется режим работы с устройством — Оффлайн.
В данном обзоре пойдет речь о реализации работы с ТСД на ОС Андроид в режиме оффлайн.
Для работы с документами в ПО AllegroClient-prof под андроид используется база данных SQL lite.
База данных имеет наименование — «allegroDb». В базе содержится перечень готовых таблиц для хранения документов и справочной информации.
Перечень таблиц и их наименование:
- Основная таблица документа — «table_doc_header»
- Табличная часть документа — «table_doc_table»
Структура таблиц и перечень полей таблиц:
Перечень полей и наименование таблицы «table_doc_header»:
- «doc_number» – тип String
- «doc_type»– тип String
- «doc_date»– тип String
- «attribute1″– тип String
- «attribute2″– тип String
- «attribute3″– тип String
- «attribute4″– тип String
- «attribute5″– тип String
Перечень полей и наименование таблицы «table_doc_table»:
- «doc_number»– тип String
- «doc_type»– тип String
- «row_number»– тип String
- «attribute1″– тип String
- «attribute2″– тип String
- «attribute3″– тип String
- «attribute4″– тип String
- «attribute5″– тип String
- «attribute6″– тип String
- «attribute7″– тип String
-
Работа с таблицами документов.
Для работы с таблицами справочников используется JavaScript.
Обзор по работе с JavaScript представлен в данной статье: Выполнение кода на клиенте.
Для работы с данными таблиц можно использовать произвольный код поддерживаемый JavaScript. Для получения ссылки на базу данных необходимо использовать статическую переменную — Main.dbAllegro. Для упрощения поиска, добавления, изменения данных в таблицах предусмотрены предопределенные функции.
AllegroModule.AddDocumentHeader — Добавляет значения в таблицу «table_doc_header». В параметре необходимо передавать строку со значениями, разделенные «;».
public static void AddDocumentHeader(String values)
AllegroModule.AddDocumentRows— Добавляет значения в таблицу «table_doc_table». В параметре необходимо передавать строку со значениями,
разделенные «;».
public static void AddDocumentRows(String values)
AllegroModule.DeleteDocumentHeader — Удаляет значения из таблицы «table_doc_header». В параметрах необходимо передавать номер документа и тип документа.
public static void DeleteDocumentHeader(String NumberDoc,String DocType)
AllegroModule.DeleteDocumentRows — Удаляет значения из таблицы «table_doc_table». В параметрах необходимо передавать номер документа и тип документа.
public static void DeleteDocumentRows(String NumberDoc,String DocType)
AllegroModule.DeleteDocuments — удаляет все значения из таблиц «table_doc_header» и «table_doc_table» по типу документа
public static void DeleteDocuments(String DocType)
AllegroModule.GetDocumentHeader— получить строки из таблицы «table_doc_header». В параметрах указывается HashMap (структура) в которой указывается номер колонки(нумерация с 0) и значение поиска. Таким образом, можно указать множественные значения поиска по нескольким значениям в колонках. И так же указывается поле сортировки.
public static List GetDocumentHeader(Map filters,String sort)
AllegroModule.GetDocumentRows — получить строки из таблицы «table_doc_table». В параметрах указывается HashMap (структура) в которой указывается номер колонки(нумерация с 0) и значение поиска. Таким образом, можно указать множественные значения поиска по нескольким значениям в колонках. И так же указывается поле сортировки.
public static List GetDocumentRows(Map filters,String sort)
AllegroModule.UpdateDocumentHeader — изменить строки в таблице «table_doc_header» (реквизиты документа). В параметрах указывается две HashMap (структуры). В первой структуре указывается номер колонки(нумерация с 0) и значение для вставки в изменяемые строки. Во второй указывается фильтр по строкам, которые будут изменены, первое значение номер колонки(нумерация с 0) и значение отбора.
public static boolean UpdateDocumentHeader(Map fields,Map filters)
AllegroModule.UpdateDocumentHeader — изменить строки в таблице «table_doc_table» (строки документа). В параметрах указывается две HashMap (структуры). В первой структуре указывается номер колонки(нумерация с 0) и значение для вставки в изменяемые строки. Во второй указывается фильтр по строкам, которые будут изменены. Первое значение номер колонки(нумерация с 0) и значение отбора.
public static boolean UpdateDocumentRows(Map fields,Map filters)
Команды для загрузки документов с севера
ADDDOCUMENT — для загрузки данных в таблицу «table_doc_header». Данные для записи идут после команды через разделитель «;»
«ADDDOCUMENT;000000001;Doc;22.07.2020;Создан;НТЦ Нанотроника»
ADDDOCUMENTROW — для загрузки данных в таблицу «table_doc_table». Данные для записи идут после команды через разделитель «;»
«ADDDOCUMENTROW;000000001;Doc;1;0001;Комбайн MOULINEX A77 4C;2;0»
DELETEDOCUMENTHEADER — удаление данных из таблиц «table_doc_header». После команды через разделитель «;» идут данные с номером документа и типом документа.
«DELETEDOCUMENTHEADER;000000001;Doc»
DELETEDOCUMENTROWS — удаление данных из таблиц «table_doc_table». После команды через разделитель «;» идут данные с номером документа и типом документа.
«DELETEDOCUMENTROWS;000000001;Doc»
DELETEDOCUMENT — удаление данных из таблиц «table_doc_header» и «table_doc_table». После команды через разделитель «;» идут данные с номером документа и типом документа.
«DELETEDOCUMENT;000000001;Doc»
Работа с документами представлена в обучающей обработке в операции «РаботаСДокументамиОффлайн» Обучающая обработка под андроид.
Наши специалисты всегда готовы ответить на любые вопросы по настройке и помочь в доработке.
Остались вопросы?
Оставьте свои данные и мы свяжемся с Вами