BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Главная  / Поддержка  / Форум  / Публичные форумы  / Программирование приложений  / Программирование файла заказа для Атола

Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Программирование файла заказа для Атола
 
В расходе по безналу или прочих в реестре документов вызывать функцию формирования файла заказа описанного в "РУКОВОДСТВЕ ИНТЕГРАТОРА" стр 81-82
Его примерный вид взять со старого форума (с)

Цитата
Файл Order888.opn:
888;0;12/03/05;8:30:07 AM;100.00;;888;
1;30001;1;10.00;10.000;;


Проблем с выводом 1 строки т.е шапки из текущей записи mdoc нет
Вот что пока получается

Цитата
LOCAL cNumDoc:=''
LOCAL p, f
LOCAL aSet
altd()
aSet:=SaveSet()
cNumdoc:=ALLTRIM(MDOC->NUMDOC)
//*************************************************
p:=loadpath()+'ORDER'+cNumdoc+'.opn'
IF FILE(p)=.T.
f:= FOPEN(p)
ELSE
f:= FCREATE(p)
ENDIF
FWRITE(f,cNumdoc)
FWRITE(f,';')
FWRITE(f,cNumdoc)
FWRITE(f,';')
FWRITE(f,cNumdoc)
FCLOSE(f)
//*************************************************

RESTSET(aSet)

RETURN nil



Проблема с выводом связанных записей из mdocm (строк дукумента), т.к. я понял что соответствующая связь установлена. Спасибо
 
Вам нужно открыть алиас по mdocm
утсановить скоб по параметрам из шапки с помощью
SetScope()
И перебором через DBEVAL()
или через DO WHILE
Во втором случае в алиасе следует установить курсор
на первую запись через DBGOTOP() или DBSEEK()
 
вот выдержка из доки
Внешние заказы
Файл-заказ – это файл с данными для регистрации в РМК и именем вида: orderXXX.YYY, где
XXX – любые символы (например, номер заказа), при этом количество символов может быть любым;
.YYY – расширение, использующееся для идентификации состояния заказа.

Файл-заказ состоит из двух частей: шапки заказа и тела заказа. В шапке заказа располагаются данные, используемые для идентификации заказа на кассе. В
теле заказа находятся данные о заказанных для регистрации товаров.

В процессе работы с заказами файл-заказ находится в следующих состояниях:
активный – заказ готов к обработке на кассе. В этом состоянии файлы - заказы имеют расширение .opn.
обрабатывается – заказ уже находится в процессе обработки на одной из касс. В этом состоянии файлы-заказы имеют расширение .prc.
закрыт – заказ уже был закрыт в РМК. В этом состоянии файлы-заказы имеют расширение .cls.

РМК может производить загрузку только «активных» файлов-заказов (с расширением .opn). После успешной загрузки заказа, РМК меняет расширение файла-заказа с .opn на .prc.

При закрытия чека РМК меняет расширение файла-заказа на .cls. Если чек будет отменен, то у файла-заказа, который был загружен в РМК расширение снова станет .opn.

Шапка заказа представляет собой первую строку с полями, разделенными знаком «;». Поля и их назначение приведены в таблице:
№ поля Тип поля Назначение
1 Строка 100 Наименование заказа
2 Целое «Код документа»*
3 Дата Дата формирования заказа
4 Время Время формирования заказа
5 Дробное 8.2 Сумма, на которую сформирован заказ
6 Строка 30 Штрих-код заказа
7 Строка 30 Идентификатор заказа, записываемый в
таблицу транзакций
8 Строка Коды значений разрезов на чек через
запятую

* – Код документа, установленного в списке «Виды документов» в настройках РМК (см. документ «Руководство администратора»).
Тело заказа представляет собой строки с полями, разделенными знаком «;».Поля и их назначение приведены в таблице:
№ поля Тип поля Назначение
1 Целое Тип идентификатора товара/купюры:
1 – код;
2 – артикул;
3 – штрих-код
(для документов «Внесение» и
«Выплата» – только 1)
2 Строка 30 Идентификатор товара/купюры
3 Строка Коды значений разрезов через запятую
4 Дробное 8.2 Цена/Достоинство.
Если не указана, то берется из
справочника.
5 Дробное 7.3 Количество
6 Дробное 8.2 Сумма.
Если не указана, то рассчитывается как
Цена*Количество.
Живому всё хорошо.
 
Цитата
nordk пишет:
Вам нужно открыть алиас по mdocm
утсановить скоб по параметрам из шапки с помощью
SetScope()
И перебором через DBEVAL()
или через DO WHILE
Во втором случае в алиасе следует установить курсор
на первую запись через DBGOTOP() или DBSEEK()


С базой mdocm получается вот что:

Цитата
DBPUSH("MDOCM", "MDOCM", "MDOCM->NUMDOC=MDOC->NUMDOC")
DO WHILE .NOT. EOF()
aAdd(aMsg, MDOCM->NNUM)
SKIP
ENDD
DBPOP()
View(aMsg)


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

1. открыть Mdocm в новой области
2. установить индекс
3. найти записи по номерку дока
4. сделать цикл пока номер дока

похожий код на фоксе
Цитата
cNumdoc=mdoc.numdom
use mdocm in 0 alia mdocm2
set order to mdocm
select mdocm2
seek сNumdoc
scan while numdoc=cNumdoc
****
endscan

Разьясните использование
Цитата
И перебором через DBEVAL()

не могу найти описание с примером.
Спасибо!
Изменено: olegue olegue - 05.07.2008 22:02:13
 
Еще раз.
Пожалуйста не делайте через DBPUSH()
Набор нужных Вам функций я написал.
1. Оставьте в покое mdocm и откройте таблицу в новом алиасе
2. Не надо накладывать фильтр наложите через SetScope()
Скорость будет высокой
3.DBEVAL() типовая функция клиппера - есть описание в WEG
Одно из преимуществ на фоксом - это умение работать с
блоками кода. По сути когда вы пишете
xmdocm->(DBEVAL([блок кода]} )
Вам больше ничего не надо. Никаких циклов и прочее.
Страницы: 1
Читают тему (гостей: 2)