Использование скриптов в Задачах
Вы можете использовать скрипты в Задачах. Задачи могут запукаться как вручную так и автоматически при старте программы. Задачи могут выполнять определенные действия, например печать или показывать диалоговые окна, например для сканирования штрихкодов и затем печати этикеток для найденных товаров.
Сканирование штрихкода и печать этикеток для найденного товара
Предположим, что у вас есть загруженные данные. Вам нужно сканировать штрихкоды и автоматически печатать этикетки для найденных товаров.
Решение
Добавьте задачу.
JavaScript
Используйте следующий скрипт.
const cMsg_001 = 'Отсканируйте штрих-код или введите его вручную и нажмите [Enter]. Нажмите "Отмена", чтобы выйти.';
const cMsg_002 = 'Не найден товар со штрихкодом "%s".';
function processInput() {
// Показываем диалоговое окно для ввода / сканирования штрихкода
let bc = azureLabel.showInput('', '', cMsg_001, false, false, false);
if (bc === operationCanceledByUser) {
return false;
}
azureLabel.log(bc);
recordsToPrint.clear();
// Ищем запись с данным штрихкодом
let finded = false;
const loadedDataCount = loadedData.count();
for (let i = 0; i < loadedDataCount; i++) {
if (loadedData.getFieldValue(i, barcodeFieldName) === bc){
azureLabel.copyRowFromOneListToAnother(loadedData,
i,
recordsToPrint,
-1)
finded = true;
break;
}
}
// Запись с таким штрихкодом не найдена
if (!finded) {
azureLabel.showMessage('', azureLabel.format(cMsg_002, bc), 0, 0, 0, 2);
return true;
}
// Печатаем этикетки
try {
azureLabel.printLabels( recordsToPrint, -1, '', '', true, showPreview);
}
catch (error) {
azureLabel.showMessage('', error.toString(), 0, 0, 0, 2);
}
return true;
}
// Показывать предварительный просмотр этикеток
const showPreview = false;
// Библиотека AzureLabel необходима чтобы использовать специальный класс ListOfRecords
const ext = require('azurelabel_ext');
// Создаем список записей для передачи в функцию печати этикеток
const recordsToPrint = new ext.ListOfRecords;
// Создаем список записей для хранения данных из Данные для печати этикеток
const loadedData = new ext.ListOfRecords;
// Загружаем в список данные из Данные для печати этикеток
azureLabel.getLoadedData(loadedData);
// Название поля со штрихкодами для версий программы <= 12.27
let barcodeFieldName = 'Barcode';
let operationCanceledByUser = '';
try {
// Если версия программы > 12.27
// Найдем имя поля с признаком 'Это поле штрихкода'
barcodeFieldName = loadedData.getBarcodeFieldName(0);
operationCanceledByUser = 'OperationCanceledByUser';
}
catch (error) {
}
// Цикл получения штрихкода и печати этикеток
while (processInput());
Запустите задачу.
После запуска задачи вы увидите диалоговое окно для сканирования штрихкодов.