Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
Программа написана на MS Visual FoxPro 8.0 Создается свободная табличка, в которую падают записи, потом эти записи уходят на кассовый аппарат и после успешной печати чека падают в таблицу БД! Так вот иногда (по словам пользователей причин этому внешних нет ;-) данные не попадают из свободной таблички в таблицу БД, хотя чек распечатывается. С БД могут работать несколько пользователей, происходит это не часто, но есть еще ньанс каждый чек оформляется как документ и детализация чека (2 таб. соотвественно). Так вот последний раз он прекрасно писал в таб. документов, но в датализацию не писал. По данным создано за 1,5 часа много документов и ни одной детализации. В чем может быть причина незаписи в таблицу детализации? Один из вариантов, ФоксПро не сбросил буфера, но не понятно тогда почему документы появлялись и доугой пользователь-касса работал и детализация фиксировалась.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 15:20 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
Не было ли конфликтов совместного доступа? Два пользователя сгенерили одинаковое значение ключа или поля, по которому есть индекс типа Candidat или Primary? Есть какой-нибудь лог ошибок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 15:32 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
Пользователи говорят, что небыло ни одной мессаги с ошибками имено поэтому они и продолжали работать как ни в чем ни бывало... Индексы в детализации расхода: все Regular, только id - Primary ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 15:38 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
DanilПользователи говорят, что небыло ни одной мессаги с ошибками имено поэтому они и продолжали работать как ни в чем ни бывало... Таким высказываниям очень мало веры. Иногда пользователи или боятся сказать, что же они сделали или действительно не помнят! Нужно предусматривать запись лога ошибок! Какой принцип генрации id? Как осуществляется добавление записей в базу данных из временных таблиц? Имею в виду генерация внешнего ключа для подчиненной таблицы. Есть ли Referential Integrity между таблицами и по какому принципу настроен триггер Insert? Есть ли Rule на поля и на запись на подчиненную таблицу? Короче, у меня сильное подозрение, что произошел конфликт совместного доступа. Т.е. при "одновременном" добавлении записей разными пользователями ты что-то где-то не предусмотрел и произошел отказ в создании записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 15:46 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
Лично я применяю в таких случаях транзакции или пишу все в одну таблицу и только после записи печатаю чек... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 15:48 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Какой принцип генрации id? Как осуществляется добавление записей в базу данных из временных таблиц? Имею в виду генерация внешнего ключа для подчиненной таблицы. Есть ли Referential Integrity между таблицами и по какому принципу настроен триггер Insert? Есть ли Rule на поля и на запись на подчиненную таблицу? Короче, у меня сильное подозрение, что произошел конфликт совместного доступа. Т.е. при "одновременном" добавлении записей разными пользователями ты что-то где-то не предусмотрел и произошел отказ в создании записи. ID- автоинкремент +1, причем нет разрывов в значениях ID. Внешний ключ: Вначале добавляется дапись в таб. документы, от туда получаем documents.id, значение которого и попадает в детализацию документа. Тригера INSERT нет и нет Rule! Sergey Ch Лично я применяю в таких случаях транзакции или пишу все в одну таблицу и только после записи печатаю чек... Нередко в кассовом аппарате закончилась лента или еще что-то...хотя для этого транзакция и нужна... Информация о транзакциях на фоксе скудна в доке, ощущение такое что транзакция может заблокировать работу остальных пользователей при добавлении записи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 07:55 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
Приведи код сброса информации из временных таблиц в базу данных. Не видя кода трудно сказать что-то определенное. И еще по структуре: Если ты не получил значение documents.id будет ли произведена запись в подчиненную таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 09:12 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
ВладимирМПриведи код сброса информации из временных таблиц в базу данных. Не видя кода трудно сказать что-то определенное. И еще по структуре: Если ты не получил значение documents.id будет ли произведена запись в подчиненную таблицу? SELECT (m_alias) SCAN INSERT INTO expenses (doc_id,rcpt_id,cnt,log,ruser_id,fullprice, closed,money_cards) ; VALUES (documents.id,&m_alias..rcpt_id,&m_alias..cnt,&m_alias..log,goAPP.ccurrentuserid,round(&m_alias..price-(&m_alias..price*(thisform.m_discount_percent/100)),2), .T.,iif(thisform.chkMoneyCards.Value=1,.T.,.F.)) m_str=m_str+"'"+ALLTRIM(&m_alias..name) + "' "+STR(&m_alias..cnt) + IIF(&m_alias..log=0,' уп.',' шт.') + " * "+ STR(&m_alias..price,10,2) +" руб. = "+ str(&m_alias..cnt*&m_alias..price,10,2) + " руб."+CHR(13)+ chr(10) IF thisform.chkRenting.Value=1 AND thisform.chkModeReturn.Value=1 &&возврат проката REPLACE exp_id WITH EVALUATE(m_alias+'.exp_id') IN expenses ENDIF ENDSCAN =MESSAGEBOX(m_str,0,IIF(thisform.chkModeReturn.Value=0,"ЧЕК","ВОЗВРАТ"),3000) Если не получил doc_id, все равно добавление происходит в детализацию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 10:14 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
В данном контексте сброса не будет если в рабочей области m_alias нет ни одной записи. Нет предмета для сканирования (SCAN...ENDSCAN). Или же на область m_alias наложен такой фильтр, который исключает все записи. Т.е. по хорошему, надо бы так: select (m_alias) SET FILTER TO SET ORDER TO SET DELETED OFF SCAN ... ENDSCAN Сам смотри, в чем проблема. Может, у тебя где-то переопределние значение переменной m_alias происходит и ты ссылаешся уже не на ту рабочую область. И еще, использование синтаксиса REPLACE ... IN ... Не есть хорошо. Сильно он глючный. Лучше явно переходить в нужную рабочую область не используя опции IN в команде REPLACE select expenses REPLACE exp_id WITH EVALUATE(m_alias+'.exp_id') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 10:58 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
К сказанному Владимиром трудно что либо добавить... Если Вы автор и можете поменять программу, то я могу немного поделиться опытом программ для кассовых аппаратов... Мне в корне не нравится подход в приведенном Вами примере (очень ненадежная идеология для кассовых чеков)... Если есть желание получть совет, то какую марку кассы или фискального регистратора вы применяете... P.S. Извините, ежели что не так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 11:07 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
Sergey ChК сказанному Владимиром трудно что либо добавить... Если Вы автор и можете поменять программу, то я могу немного поделиться опытом программ для кассовых аппаратов... Мне в корне не нравится подход в приведенном Вами примере (очень ненадежная идеология для кассовых чеков)... Если есть желание получть совет, то какую марку кассы или фискального регистратора вы применяете... P.S. Извините, ежели что не так... Феликс РФ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 11:56 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
sorry, за оффтопик. Но в чем заключается глючность replace in? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 11:59 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
ВладимирМВ данном контексте сброса не будет если в рабочей области m_alias нет ни одной записи. Нет предмета для сканирования (SCAN...ENDSCAN). ............ Чуть выше у меня точно такой же SCAN..ENDSCAN который перебирает все записи таблички m_alias и формирует позиции в чеке, чек на кассовом аппарате выходит и все в порядке... но не записывается в детализации расхода :-/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 12:07 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
lesha_spbsorry, за оффтопик. Но в чем заключается глючность replace in? В том, что иногда он просто не делает присвоения. Т.е. не срабатывает команда REPLACE в указанной рабочей области. Ошибка плавающая, но всегда связана с IN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 12:08 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
Danil ВладимирМВ данном контексте сброса не будет если в рабочей области m_alias нет ни одной записи. Нет предмета для сканирования (SCAN...ENDSCAN). ............ Чуть выше у меня точно такой же SCAN..ENDSCAN который перебирает все записи таблички m_alias и формирует позиции в чеке, чек на кассовом аппарате выходит и все в порядке... но не записывается в детализации расхода :-/ Ну, так и смотри, что ты там делаешь в этом предыдущем SCAN. Может записи удаляешь, может фильтры какие настраиваешь. Может по окончании цикла меняешь значение переменной m_alias или вообще пероткрываешь таблицу в другом алиасе. Да мало ли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 12:10 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
Попробуй перед endscan поставить SELECT (m_alias). А между таблицами таб. документов и датализацией нет ли relation ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 14:17 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
joricПопробуй перед endscan поставить SELECT (m_alias). А между таблицами таб. документов и датализацией нет ли relation ??? Чем может помощь в цикле SCAN использование select (m_alias) до ENDSCAN? Да связь есть: documents.id->expenses.doc_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 14:53 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
Сама функция печати чека на фискальном регистраторе находится в отдельном prg файле... весь его приводить смысла нет вероятно... он принимает аргументом название таблицы из которой брать наименвоание товаров и их цену... нигде не переопределяется... часть со SCAN-ом: *продаем (в цикле по всем товарам) lcOldAlias=ALIAS() SELECT (m.tcTableName) SCAN objFR.Quantity=ABS(cnt) objFR.Price=ABS(price) objFR.StringForPrinting=ALLTRIM(name) &&ограничение в 18 символов objFR.Department=IIF(division=0,m.tnDepartment,division) DO CASE CASE M.TNtYPE=1 objFR.Sale() CASE m.tnType=2 objFR.ReturnSale() ENDCASE llIsErrorFree=objFR.ResultCode=0 IF NOT m.llIsErrorFree EXIT ENDIF ENDSCAN IF LEN(m.lcOldAlias)>0 SELECT (m.lcOldAlias) ENDIF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 14:59 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
DanilФеликс РФ OK знакомая техника... Я делаю на кассе пять локальных таблиц - куда вносится товар (то есть можно обслуживать одновременно до 5 покупателей одновременно). Структура таблиц соответствеут структуре подробной проводке, которая потом будет хранится в базе... Итак, продовец забил эту маленькую локальную таблицу, далее: - печать чека по этой таблице - подсчет итогов - начало транзакции - пересылка данных на сервер - закрытие трнзакции - если успешно - пересылка итогов в фискальную память - иначе откат (С выдачей сообщения на весь экран продавцу, записью протокола т.д.)... И все... Все работает очень быстро и очень надежно проверено в течении многих лет в разных магазинах... Удачи! Используйте сильные стороны FoxPro - ибо это идеальный продукт для обслуживания розничной торговли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 23:39 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
Sergey Ch Итак, продовец забил эту маленькую локальную таблицу, далее: - печать чека по этой таблице - подсчет итогов - начало транзакции - пересылка данных на сервер - закрытие трнзакции - если успешно - пересылка итогов в фискальную память - иначе откат (С выдачей сообщения на весь экран продавцу, записью протокола т.д.)... И все... Все работает очень быстро и очень надежно проверено в течении многих лет в разных магазинах... Удачи! Используйте сильные стороны FoxPro - ибо это идеальный продукт для обслуживания розничной торговли 1. Чек мы напечатали, а транзакция откатилась в самом ФР продажа зарегистрировалась. Что делать в таком случае? 2. Для чего подсчет итогов? Имеется ввиду совокупная стоимостть всех позиций в чеке? 3.Вот более или менее я знаком с транзакциями на ms sql server 2k, а насчет foxpro не знаю специфики и возможностей... если не затруднит дай те ссылку на стетейку по транзакциям на foxpro (желательно на русском) 4. "Пересылка итогов в фискальную память - иначет откат", ;-/ мы же в 1-ом пукте уже напечатали чек?! Я не сильен в ФР (другой программист писал), но не понимаб, что значит "откатить".. транзакцияю понятно откатить можно, а как откатить в ФР? Поясните пожалуйста... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 07:04 |
|
||
|
FoxPro не добавляет записи в таблицу иногда...
|
|||
|---|---|---|---|
|
#18+
Danil 1. Чек мы напечатали, а транзакция откатилась в самом ФР продажа зарегистрировалась. Что делать в таком случае? 2. Для чего подсчет итогов? Имеется ввиду совокупная стоимостть всех позиций в чеке? 3.Вот более или менее я знаком с транзакциями на ms sql server 2k, а насчет foxpro не знаю специфики и возможностей... если не затруднит дай те ссылку на стетейку по транзакциям на foxpro (желательно на русском) 4. "Пересылка итогов в фискальную память - иначет откат", ;-/ мы же в 1-ом пукте уже напечатали чек?! Я не сильен в ФР (другой программист писал), но не понимаб, что значит "откатить".. транзакцияю понятно откатить можно, а как откатить в ФР? Поясните пожалуйста... 1. Вы прочитали не внимательно - если транзакция завершилась - то передаем данные в фискалку (или закрываем продажу см п 2) 2. Да - здесь есть два способа - передавать в ФР каждую продажу, а затем закрыть ее с пересылкой итогов в ФР - либо все Вам печатать самому (рисовать чек) а затем подсчитать сумму и уже ее передать в фискальную память (тут есть еще ньюанс с КЛЗ) 3. Здесь очень просто (похоже как и в MS SQL Server): -begin transaction - end transaction - rollback Есть описание и в документации в FoxPro (да и на FoxClub это кажется было). Я еще использую буферизацию... 4. Печать чека не означает передачу данных в фискальную память - для пересылки туда - надо использовать специальную команду (вот ее то и надо подавать после успешного завершения транзакции)... Обсудите ваши проблемы с тем, кто писал ФР (хотя можете и сами все сделать - работать с ФР очень просто) Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 11:14 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32636159&tid=1596029]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 453ms |

| 0 / 0 |
