|
|
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
Добрий день, у нас к базе акцес (97) подключены эти два ЭККА (см. сабж) все время с ними проблемы, зависание базы при печати чеков, ошыбки ... Производитель драйверов говорит что проблема в нашей базе, так как у других клиентов на 1С все ок. В программе у нас все просто, должно работать, незнаю может я чего не так делаю? Буду благодарен за пример работы с ЭККА на VBA, или советы. Зарание спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 13:52 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
Может быть ты действительно что-то не так делаешь... Проблема в том, что уважаемой публике неизвестно, что ты делаешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 13:57 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
(Vsevolod V) запостить код что б вы посмотрели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:08 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
Как хочешь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:10 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
Если на других компьютерах тоже самое работает, то: 1. Сжать/восстановить базу данных 2. Если не помоголо 1-е: создать новую базу и импортировать туда все из этой 3. п.2 не помого: дело видимо в другом.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:13 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
Это функция инициализации драйвера запускается при запуске базы Function InitEcr() As Boolean On Error GoTo Err_InitEcr ' Initialize dll Dim ErrN As Variant Set mini = CreateObject("MiniServer.MiniServ.1") If CompName = "KASA1" Then m_aEcrType = 22 InitEcr = -mini.InitEcr(m_aChannel, m_aEcrType, m_aMaxUsedPLU, m_aIsAsyncModeT) ElseIf CompName = "MAGAZYN-1" Then m_aEcrType = 7 InitEcr = -mini.InitEcr(m_aChannel, m_aEcrType, m_aMaxUsedPLU, m_aIsAsyncModeF) Else GoTo Exit_InitEcr End If If mini.GetRoundType <> m_aRoundType Then ' Set RoundType mini.SetRoundType (m_aRoundType) End If If mini.GetPriceType <> m_aPriceType Then ' Set PriceType mini.SetPriceType (m_aPriceType) End If mini.SetVatType (m_aVatType) Exit_InitEcr: Exit Function Err_InitEcr: ErrN = mini.GetErrorCode MessageError (ErrN) GoTo Exit_InitEcr End Function это функция для печати чека Function PrintCheck() As Boolean ' Prints current operation on Cash Register. On Error GoTo Err_PrintCheck Dim ErrN As Variant Dim dbs As Database, rst As Recordset, U_Reply As String, U_ReplyDate As String Dim qd As QueryDef, SQL_ As String, GName As String, Good_B As Variant, Kurs As Variant Dim Tr As Long Dim Help As Integer SumCarry "MatC" SQL_ = "SELECT Sum(Spec.Qty) As SQty, [_Goods].DNam, Spec.GPrice, [_Goods].PriceSt, [Good_Name]" SQL_ = SQL_ + " FROM _Goods INNER JOIN (_Inv_Good INNER JOIN Spec ON [_Inv_Good].Inv_Good_ID = Spec.Inv_Good_ID) ON [_Goods].Good_Name = [_Inv_Good].Good_ID" SQL_ = SQL_ + " GROUP BY [_Goods].DNam, Spec.GPrice, [_Goods].PriceSt, Spec.Trans_ID, [Good_Name]" SQL_ = SQL_ + " HAVING Trans_ID=" + Format$([Forms]![MatC]![Trans_ID]) ' Prepare recordset Set dbs = Workspaces(0).Databases(0) Set rst = dbs.OpenRecordset(SQL_, dbOpenSnapshot, dbReadOnly) If rst.RecordCount = 0 Then ' Test Number of records MsgBox "В чеку нема жодної позицiї!", vbCritical, "Помилка" GoTo Err_PrintCheck End If ' Check short name rst.FindFirst "DNam = '' Or IsNull(DNam)" If Not (rst.NoMatch) Then MsgBox "Неможливо роздрукувати чек через вiдсутнiсть скороченої назви на товар" + Chr$(13) + Chr$(13) + rst![Good_Name], vbCritical, "Помилка" GoTo Err_PrintCheck End If ' Check Price rst.FindFirst "GPrice = 0 Or IsNull(GPrice)" If Not (rst.NoMatch) Then MsgBox "Неможливо роздрукувати чек через вiдсутнiсть ціни на товар" + Chr$(13) + Chr$(13) + rst![Good_Name], vbCritical, "Помилка" GoTo Err_PrintCheck End If ' Check PriceSt rst.FindFirst "PriceSt = 0 Or IsNull(PriceSt)" If Not (rst.NoMatch) Then MsgBox "Неможливо роздрукувати чек через вiдсутнiсть магазинної ціни на товар" + Chr$(13) + Chr$(13) + rst![Good_Name], vbCritical, "Помилка" GoTo Err_PrintCheck End If ' Check GPrice > Cost Good_B = 0 Kurs = DLookup("[Last_Kursac]", "Курси") If (Not Efficiency_Off) Then Good_B = DCount("[Good_ID]", "MD_C", "([GPrice]-([Cost]*[Kurs]))/IIf(IsNull([Cost]),0.01,[Cost])<" + Format$(Efficiency)) If Good_B > 0 Then U_Reply = MsgBox("В проводці є товари (" + Format$(Good_B) + " шт.), " + Chr$(13) + " які продано нижче рентабельності " + Format$(Efficiency, "0%") + "!" + Chr$(13) + Chr$(13) + "Продовжити друк чеків - Yes," + Chr$(13) + "Відмінити друк - No.", vbInformation + vbDefaultButton2 + vbYesNo) If U_Reply = vbNo Then ' Edit GoTo Err_PrintCheck End If End If End If rst.FindFirst "SQty = 0" If Not (rst.NoMatch) Then MsgBox "Неможливо роздрукувати чек через вiдсутнiсть кількості проданого товару" + Chr$(13) + Chr$(13) + rst![Good_Name], vbCritical, "Помилка" GoTo Err_PrintCheck End If rst.MoveFirst mini.OpenCheck ("") While Not rst.EOF ' Cycle over sold Goods GName = IIf(IsNull(rst!DNam), left$(rst![Good_Name], 11), rst!DNam) Help = -mini.RegCheckPos(GName, CDbl(rst!PriceSt), CDbl(rst!SQty), m_aVatNum, CDbl(0)) rst.MoveNext Wend If MsgBox("Закрити чек?" + Chr$(13) + Chr$(13) + " Yes - закрити чек," + Chr$(13) + " No - анулювати чек.", vbDefaultButton1 + vbYesNo + vbQuestion, "Друк чеку") = vbYes Then Call CloseCheck ' Lock opearation If IsFormLoaded("MatC") Then Forms![MatC]![Buh] = 2 Call SecurityMATC(5) Tr = [Forms]![MatC]![Trans_ID] DoCmd.SetWarnings False DoCmd.RunSQL "Delete * From TimerTab Where TransID = " & Tr & ";" DoCmd.RunSQL "INSERT INTO TimerTab ( TransID, TimerT, UserName ) SELECT [Forms]![MatC]![Trans_ID], Timer(), CurrentUser();" DoCmd.SetWarnings True End If Else mini.CancelCheck End If Exit_PrintCheck: rst.close Set dbs = Nothing Exit Function Err_PrintCheck: ErrN = mini.GetErrorCode MessageError (ErrN) GoTo Exit_PrintCheck End Function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:14 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
Какие ошибки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:18 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
(Vsevolod V) это я делаю регулярно, думаю проблема в другом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:18 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
иногда база зависает намертво, иногда акцес выполнил недопустимую оперецию и будет закрыт, иногда на ЭККА ошыбка 14 (недопустимая операция) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:21 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
Windows 98??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:22 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
А какой смысл в вот этом: Set dbs = Workspaces(0).Databases(0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:24 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
2kvova а в 1С смотрел как там у них сделано? При определеной фантазии - даже можно что-то понять :) По моему: или баг у тебя (сравнивай с 1С) или у Акеса, которому не нравиться "MiniServer.MiniServ.1". Кстати почему именно позднее связывание через CreateObejct? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:25 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
2000 и 98, на 98 виснет, а на 2к акцес в коврик сворачивается, вот такая не веселая история... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:27 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
>акцес в коврик сворачивается ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:32 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
Exit_PrintCheck: rst.close Set dbs = Nothing Exit Function Err_PrintCheck: ErrN = mini.GetErrorCode MessageError (ErrN) GoTo Exit_PrintCheck End Function а если всё-таки так: rst.close Set rst = Nothing dbs.close Set dbs = Nothing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:33 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
В догонку Татьяне Set mini=Nothing возможно у mini есть свой оператор деинициализации. Надоть смотреть в доки. == Так все же почему позднее связывание??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:38 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
1с код смотрел (я больше 1с-ом занимаюсь), ничего особенного не увидел.. >Кстати почему именно позднее связывание через CreateObejct? не понял вопрос, сначала подключаем библиотеку драйвера Set mini = CreateObject("MiniServer.MiniServ.1") потом инициализиция ЭККА, вроде все верно. >А какой смысл в вот этом: >Set dbs = Workspaces(0).Databases(0) не знаю, этот код не я писал и в vba я неочень силен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:39 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
'Check short name rst.FindFirst "DNam = '' Or IsNull(DNam)" И что это значит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:45 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
(Vsevolod V) извени, в коврик значит програма выполнила недопустимую операцию и будет закрыта (TatianaT)спасибо, так сделаю, но надо время что б понять помогло или нет >возможно у mini есть свой оператор деинициализации. Надоть смотреть в доки. да есть запускаю при закрытии базы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:46 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
типа "тяп-ляп"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:46 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
>не понял вопрос, сначала подключаем библиотеку драйвера Set mini = CreateObject("MiniServer.MiniServ.1") потом инициализиция ЭККА, вроде все верно. Можно через ссылки подключить этот "драйвер" - это будет называться ранними связывание (рекомендуется с точки зрения скорости). Другие плюсы: по F2 сможешь видеть всю структуры драйвера, будет работать IntelliMouse (это когда после точки выскакивает список объектов, а после написание имени функции - ее состав) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:49 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
(VIG) проверяет заполнен ли реквизит DNam у всех товаров, это наименование товаров для печати чеков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:51 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
Я имел в виду что там синтаксис неправильный Наверно надо так 'Check short name rst.FindFirst "DNam = 0' Or IsNull(DNam)" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:54 |
|
||
|
Украина работа с ЭККА Mini 600.01 и Mini 600.05
|
|||
|---|---|---|---|
|
#18+
(Senin Viktor) а если через ссылки подключать мне надо будет, на всех станциях (которые работают с базой) этот драйвер регистрировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 14:56 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32228807&tid=1680081]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 425ms |

| 0 / 0 |
