[содержание]

7. Работа с файлами

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

Программа, драйвер для весов CAS LP

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

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

В весах серии CL5000, CL3000 сообщения называются как "Состав продукта"

Возможно добавление данных из файла к уже имеющимся данным в памяти.

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

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

Аналогичным образом работает чтение, запись данных для сообщений.

Данные в файлах представлены в формате TXT, что позволяет Вам использовать их для передачи данных в программу (затем в весы) из другого программного обеспечения.

Пример содержимого файла TXT:

// Внимание! в этом файле могут быть данные как по Товару так и по Сообщениям весов
// Данные по товару, по состоянию на 11.05.2006 13:36:09
// Универсальная Программа для весов CAS v1.5, v1.6 (Ethernet, RS-232) (c) LavrSoft, ver 05.04.2006, E-Mail: support@lavrsoft.ru
// "Весы Фасовка Гипер (IP 192 168 66 150)" протокол v.1.6; IP адрес 192.168.66.150; порт 7; № весов 1; таймаут 2000;
; // РазделительПолей
| // РазделительСтрок
// R1: 1; R2: 1000; Loaded: 352; Empty: 648;
// Ниже использованы следующие поля:
// TypeRecord; PLU, Code, Align, Name, Image, LabelImage, Price, LifeDate, LifeDays, Tare, GroupCode, MessageStr, RO_DateErase, RO_TtlSumma, RO_TtlWeight, RO_TtlCount
// поле TypeRecord для товара всегда 1
1;1;170408;0;ШЕЙКА СТОЛИЧНАЯ В/К В/УП | ВКУСМАН СВЕТЛЫЙ РОССИЯ;0;;30300;30.12.1899;0;0;0;0;01.05.2006 18:26:35;62116;2050;5;
1;2;170405;0;МОСКОВСКИЙ РУЛЕТ В/К В/УП | ВКУСМАН СВЕТЛЫЙ РОССИЯ;0;;25820;30.12.1899;0;0;0;0;16.08.2005 10:59:34;332873;11892;18;
1;3;170396;0;ГРУДИНКА ЛЮБИТЕЛЬСКАЯ В/К | В/УП ВКУСМАН СВЕТЛЫЙ РОССИЯ;0;;28410;30.12.1899;0;0;0;0;08.02.2006 19:28:33;0;0;0;
1;4;140101;0;БЕКОН АНГЛИЙСКИЙ В/УП ИМКО | ИЖЕВСК;0;;24570;30.12.1899;0;0;0;0;11.04.2006 17:49:25;4668;190;1;
1;5;140001;0;ШЕЙКА ПЕТРОВСКАЯ В/УП ИМКО | ИЖЕВСК;0;;26880;30.12.1899;0;0;0;0;25.11.2005 17:08:41;335676;12488;41;
1;6;139125;1;КАРБОНАТ АНДРЕЕВСКИЙ В/УП ИМ | ИЖЕВСК;0;;35380;30.12.1899;0;0;0;0;28.03.2006 17:41:37;57315;1620;5;
1;7;653151;1;СВИНИНА МИХАЙЛОВСКАЯ К/З В/У | ИМКО ИЖЕВСК;0;;28980;30.12.1899;0;0;0;0;11.04.2006 17:50:14;31298;1080;4;
1;8;139126;0;ОРЕХ МЯСНОЙ ЛАДОЖСКИЙ В/УП | ИМКО ИЖЕВСК;0;;28980;30.12.1899;0;0;0;0;11.04.2006 17:47:38;49498;1708;6;
1;9;30445;0;МОЙВА С/М КРУПНАЯ ЖИРНАЯ | ;0;;4350;30.12.1899;60;0;0;0;25.03.2006 19:14:01;656238;148856;257;
1;10;300224;2; СЕЛЬДЬ С/М ;0;;5190;30.12.1899;60;0;0;0;24.03.2006 16:47:32;227914;41914;78;
1;11;300549;0;КЕТА С/М | РОССИЯ;0;;8160;30.12.1899;60;0;0;0;16.04.2006 13:32:14;213565;26172;8;
1;12;105902;0;ГОРБУША С/М Б/Г 1КГ | РОССИЯ;0;;7560;30.12.1899;60;0;0;0;22.03.2006 12:40:04;354654;45912;69;
1;13;652415;0;РУЛЕТ СЕМЁНОВСКИЙ В/К В/УП | ИМКО ИЖЕВСК;0;;24910;30.12.1899;0;0;0;0;04.05.2006 17:54:08;17088;686;2;
1;14;139510;0;БАЛЫК РОМАНОВСКИЙ В/УП | ИМКО ИЖЕВСК;0;;32660;30.12.1899;0;0;0;0;04.05.2006 17:40:56;34816;1066;4;
1;15;145747;0;ГРУДИНКА ДОМАШНЯЯ Б/К В/У | ИМКО ИЖЕВСК;0;;25170;30.12.1899;0;0;0;0;12.03.2006 19:21:34;0;0;0;
1;16;170397;0;КАРБОНАТ ЮБИЛЕЙНЫЙ В/К В/УП | ВКУСМАН СВЕТЛЫЙ РОССИЯ;0;;30100;30.12.1899;0;0;0;0;01.05.2006 18:24:25;57612;1914;6;
1;17;169884;0;КАПУСТА СВЕЖАЯ | МАЛАЯ ПУРГА РОССИЯ;0;;1200;30.12.1899;0;0;0;0;03.05.2006 15:36:12;438397;364326;403;
1;18;140315;0;КАРТОФЕЛЬ | МАЛАЯ ПУРГА РОССИЯ;0;;1200;30.12.1899;0;0;0;0;04.05.2006 18:25:14;544967;453136;125;
1;19;300379;0;ЛУК | ;0;;1700;30.12.1899;0;0;0;0;06.05.2006 18:45:04;177500;103412;68;
1;20;300753;0;МОРКОВЬ | ;0;;1500;30.12.1899;0;0;0;0;04.05.2006 19:07:15;34707;22138;36;
1;21;300378;0;СВЕКЛА | М.ПУРГА;0;;1800;30.12.1899;0;0;0;0;21.04.2006 10:37:18;57485;31936;48;
1;22;755264;0;СЕМЯ ПОДСОЛНЕЧНИКА | ;0;;2700;30.12.1899;0;0;0;0;08.12.2005 19:59:59;1417424;522968;1144;
1;23;132291;0;СТАВРИДА | ;0;;6240;30.12.1899;0;0;0;0;10.06.2005 11:12:34;455930;70066;59;
1;24;167339;0;ПЕЛЯДЬ ВЯЛЕНАЯ АСТРАХАНЬ | ;0;;12540;30.12.1899;0;0;0;0;10.06.2005 11:49:17;79779;4362;31;
1;25;198168;0;ТЕША ЛОСОСЁВЫХ Х/К | ИНТЕРРЫБПРОДУКТ;0;;20000;30.12.1899;0;0;0;0;10.06.2005 18:28:43;135240;3762;

// Данные по сообщениям, по состоянию на 11.05.2006 13:36:09
// Универсальная Программа для весов CAS v1.5, v1.6 (Ethernet, RS-232) (c) LavrSoft, ver 05.04.2006, E-Mail: support@LavrSoft.ru
// "Весы Фасовка Гипер (IP 192 168 66 150)" протокол v.1.6; IP адрес 192.168.66.150; порт 7; № весов 1; таймаут 2000;
; // РазделительПолей
// R1; 1; R2; 75; Loaded;30; Empty; 45;
// Ниже использованы следующие поля:
// TypeRecord; Number, S1, S2, S3, S4, S5, S6, S7, S8
// поле TypeRecord для сообщений всегда 2
2;1; Состав: говядина.; Пищевая ценность 100гр.продукта:белок 20,4гр.,; жир 2,5гр;углеводы 0,00гр Калорийность 104,0 Ккал; Срок хранения:при температуре -10С-7суток; при температуре +4-2С-48 часов; ТУ 9214-016-59186520-04;;
2;2; dslfksdalkf jas; sad fsadjf ksajldf;lksadf; sad flksadj flkjsadflkjawe;lrk; g ldksfgjl;skdfjg lsdk jfg;ldsfg;
2;3; Состав: свинина.; Пищевая ценность 100гр продукта:белок-6,3г,; жир-19,9г,углеводы-0,00г. Калорийность-204,3 Ккал; Срок хранения:при температуре-10С- 7суток; при температуре+2-6С- 24часа; ТУ 9214-016-39406563-04;;;
2;4; Состав: свинина.; Пищевая ценность 100гр.продуктов:белок 15,0гр.,жи; 27,2гр.,углеводы0,00гр,.Калорийность 305,0 Ккал.; Срок хранения:при температуре -10С- 7суток; при температуре 4+,-2С -48часов; ТУ 9214-016-59186520-04;;;
2;5; Состав:свинина.; Пищевая ценность 100гр. продукта: белок 6,3гр.,жи; 19,9гр., углеводы 0,00гр. Калорийность 204,3Ккал; Срок хранения:при температуре 10С- 7суток; при температуре 4+,-2 - 24часа; ТУ 9214-016-59186520-04;;;
2;6; Состав:говядина; Пищевая ценность 100гр продукта:белок; 17,8гр,жир10,0гр,углеводы0,00гр.Калорийность; 162,0Ккал.; Срок хранения:при температуре -10С- 7суток; при температуре+4+,-2С - 12часов; ТУ 9214-016-59186520-04;;
2;7; Состав:говядина,свинина; Пищевая ценность 100гр.продукта:белок14,5гр,жир; 25,9гр,углеводы 0,00гр.Калорийность 291,5 ККал.; Срок хранения:при температуре-10С- 7суток; при температуре+4+,-2С- 12часов; ТУ 9214-016-59186520-04;;;
2;8; Состав:свинина.; Пищевая ценность 100гр.продукта:белок 11,4гр.,жир; 41,7.,углеводы 0,00гр.Калорийность 343,0 Ккал.; Срок хранения:при температуре-10С- 7суток; при температуре+4+,-2С - 12суток; ТУ 9214-016-59186520-04;;;

Список (подсказка) используемых полей приводятся в самом файле в порядке их следования. При передаче данных из других приложений для записи в весы, значения полей RO_DateErase, RO_TtlSumma, RO_TtlWeight, RO_TtlCount можно не указывать.

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

RO_DateErase - дата с начала которой идет подсчет данных;
RO_TtlSumma - сумма продаж, по данной позиции товара;
RO_TtlWeight - общий вес продаж;
RO_TtlCount - общее количество продаж.

Для весов серии CL5000, CL3000 при формировании текстового файла для выгрузки в весы рекомендуется сперва задавать список сообщений (состав продукта), а за ним список товаров, так как в эти весы сообщения выгружаются только с самим товаром.

 

7.1 Описание формата файла данных

Файл с данными содержит записи данных, одна запись - одна строка файла, строка содержит поля с данными, где указываются сами данные в порядке следования полей, данные в полях разделяются разделителем полей, по умолчанию это ";". Какой будет в данном файле разделитель полей, можно указать в самом файле. Например, для использования разделителя ";" в начало файла вставляем строку "; // РазделительПолей". Какой разделитель по умолчанию будет использоваться в программе указывается в меню "Настройки", пункт "Параметры программы". Данные полей должны строго соответствовать порядку их следования, иначе файл будет считаться как файл с неверным форматом данных, о чем выйдет соответствующая ошибка, дальнейшая загрузка файла будет прервана. Если в качестве данных в поле указывать нечего, тогда указывается пробел, поле так же закрывается разделителем поля ";". Строки начинающиеся на "//" не обрабатываются, при загрузке файла данные строки выводятся в окно сообщений.

Список полей (в порядке их следования), с описанием, для данных по Товару:

TypeRecord - целое число, указывает тип записи (1 - данные по Товару);
PLU - PLU, целое число;
Code - код товара, целое число;
Align - выравнивание: 0-по центру, 1-по левому краю, 2-оставить как есть;
Name - название товара, строка;
Image - код картинки, число: 0-без картинки, 1-РОСТЕСТ, 2-другая;
LabelImage - строка под картинку, четыре символа (обычно это строки под РОСТЕСТ);
Price - цена, целое число (например, цена 12р.42к. будет как целое число 1242);
LifeDate - дата (DD.MM.YYYY) срока годности, либо 0;
LifeDays - срок годности, число дней, либо 0;
Tare - тара, целое число (например, вес 2кг.420г. будет как целое число 2420);
GroupCode - код группы, целое число;
MessageStr - номер сообщения, целое число;
TypeGoods - тип товара, целое число; добавлено 04.2015 для весов CAS CL XXXX; 0 или 1 - весовой, 2 - штучный, 3 - счетный; для других весов ставить 0 (или пустое поле);

В поле "Name" для разделения строк на верхнюю и нижнею используется разделитель строк, по умолчанию это знак "|". Какой будет в данном файле разделитель строк, можно указать в самом файле. Например, для использования разделителя "|" в начало файла вставляем строку "| // РазделительСтрок". Разделение строк разделителем не обязательно, программа разделит строку на две по словам самостоятельно, главное чтобы длина строки не превышала 56 символов или 48 если используется картинка (Image не равен 0). Какой разделитель по умолчанию будет использоваться в программе указывается в меню "Настройки", "Параметры программы". Помните, что количество символов в поле "Name" в каждой строке (а их две) 28, а когда используется картинка (Image не равен 0) тогда количество символов 24.

Список полей (в порядке их следования), с описанием, для данных по Сообщению:

TypeRecord - целое число, указывает тип записи (2 - данные по Сообщению);
Number - номер сообщения, целое число;
S1 - 1-ая строка сообщения;
S2 - 2-ая строка сообщения;
S3 - 3-ая строка сообщения;
S4 - 4-ая строка сообщения;
S5 - 5-ая строка сообщения;
S6 - 6-ая строка сообщения;
S7 - 7-ая строка сообщения;
S8 - 8-ая строка сообщения;

В строках сообщения разделитель строк, как в наименовании товара не используется.

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

В качестве примера смотрите "Пример содержимого файла TXT".

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

[назад] [содержание] [вперед]