Форум » Для флейма » Помогите протестировать первую xHarbour систему » Ответить

Помогите протестировать первую xHarbour систему

AndreyZh: Уважаемые профи! Наконец перевёл систему на xHarbour (терминальный режим). Если не сложно помогите найти ошибки в её работе (сам уже тестил). Если есть желание, то с удовольствием приму критику в любом виде и отвечу на все вопросы. Система содержит исходный код (+ база очень крупной оптовки за 4 месяца) и варианты Clipper (нужна настройка ОС) и xHarbour (Win32) программ. Для установки скачать в любой каталог и распаковать архив. Все виды паролей - 11. Для создания индексов clipper (s_repair.bat), harbour (srepharb.bat). Справка F1 в любом режиме, инструкции в каталоге document. Для принудительного запуска st.bat (clip)/sth.bat (harb). По системе печати, если интересно - отдельно. Состав комплекса: 1. Оперативная программа. ls.exe (clip)/hls.exe (harb) 2. Администратор и бухгалтерия. la.exe (clip)/hla.exe (harb) 3. Аналитический контур. ldust.exe (clip)/hld.exe (harb) Буду очень благодарен за найденные ошибки и критику в любой форме! Скачка с учётом исправлений всех замечаний на 04.04.2010 (5.92) http://get.freesoft.ru/?id=108083

Ответов - 182, стр: 1 2 3 4 5 6 7 8 9 10 All

Pasha: Я нашел этот глюк. Самодостаточный пример: Local cChar := ' ', n := 1 Local GetList := {} cls @ 1,0 say 'Char' get cChar read @ 2,0 say 'number' get n picture "9" read wait Причина глюка: soruce/rtl/tget.prg, line 715: IF ::Type=="N" .AND. ::hasfocus .AND. (::DecPos=NIL .OR. ::DecPos > ::nMaxLen ) .AND. ( LastKey()=Asc(',') .OR. LastKey()=Asc('.') ) Я написал в devlist, пусть Эдуардо Фернандес исправляет PS. С Днем Победы !

AndreyZh: Pasha Супер! Я восхищён! Надеюсь сам когда нибудь научусь так разбираться в исходниках системы разработки...

Петр: Самодостаточный пример: В Harbour все OK.


Pasha: Эдуардо уже исправил этот глюк

AndreyZh: Эдуардо уже исправил этот глюк Оперативно! Но зачем то приведённый Вами "...IF ::Type=="N" .AND. ::hasfocus .AND..." фрагмент исходника создавался? Интересно какой в нём смысл? Для общего развития (в htm инструкции не нашёл): 1. Какая максимальная длина массива в xHarbour? 2. До кучи, что означают :: в фрагменте кода?

Pasha: Устранялась какая-то несовместимость с picture, точно не скажу какая, это было несколько лет назад. То есть, намерения были самыми благими, но реализация неудачной - внесен другой глюк. Максимальный размер массива для 32-битных систем - теоретически - 2^32 степени, т.е. 4 млрд. элементов, для 64-битных систем - 2^64 степени. Практически конечно меньше. Этот фрагмент кода - метод display класса get, а символ "::" - обращение к полям и методам объекта класса get. Такой синтаксис ООП в харборе.

AndreyZh: Pasha Спасибо за конкретный и полный ответ!

AndreyZh: Добрый день! Прикол: Описанная проблемка xHarbour с обработкой READ и исправлением кодом READ IF ReadKey() == K_CTRL_O KEYB Chr(K_ENTER) WAIT "" LOOP ENDI Выявило, что данный "глюк" тянется из Clipper - данный блок не даёт считать цифру 1 (устройство - принтер) - происходит "зацикливание", если все вопросы формы подтверждать Enter (код клавиши 13, а не 15). Другие цифры (устройства) или подтверждение клавишей PgDown обрабатывается корректно. Могет кому-то это интересно.

Andrey: Вообще то всегда нужно делать чистку буфера клавиатуры после обработки.... Тогда глюков не будет. Я такие конструкции даже и не создаю, после граблей еще на 5.01

Stim: Andrey пишет: Вообще то всегда нужно делать чистку буфера клавиатуры после обработки.... А как ты это делаешь, если не секрет?

Dima: Stim пишет: А как ты это делаешь, если не секрет? Вероятно командой CLEAR TYPEAHEAD

Stim: Dima пишет: Вероятно командой CLEAR TYPEAHEAD Точно! Thanks!

gustow: Я иногда (уж не помню теперь из каких резонов) делал не просто CLEAR TYPEAHEAD, а еще после нее втыкал KEYBOARD CHR(0) ... Видимо, от чего-то нежелательного помогало: или CLEA TYPE не до конца все что надо зачищал, или просто чтобы, например, функция пользователя в DBEDIT() "вхолостую" отработала... не помню... но помню, что от чего-то "излечивало". И, кстати, перед командой ожидания нажатия клавиши (перед INKEY(0) или READ) тоже буфер клавиатуры чистил.

AndreyZh: Добрый вечер господа! clea type не работает с данными "глюками". До кучи cmonth не руссифицирован, т.е. пришлось сделать свою функашку. Кроме того, не понятно почему users утверждает, что периодически программа на xHarbour вылетает без сообщений и логов на тех Пк не обнаружил. Продолжается неспешное тестирование практически у всех пользователей (резких шагов не предпринимая до "отпуска") постепенно переводя множество других программ комплекса на xHarb с целью выявления Clipper багов. Спасибо за внимание к теме!

Dima: AndreyZh пишет: До кучи cmonth не руссифицирован А если так попробовать. [pre] Proc main REQUEST HB_LANG_RU866 HB_LANGSELECT("RU866") ? cmonth(date()) return [/pre]

Dima: AndreyZh Как дела с переходом на (X)Harbour , или забил на это ? Просто интересно.

AndreyZh: Спасибо Dima за внимание! Неспешно система тестируется пользователями. Находятся мелкие глюки исправляемые без обращения к уважаемому сообществу. При этом немножко "зарылся" в задачках поставлемых государственными ведомствами, в частности по алкоголю и новом внедрении. Но на ряде предприятий (не критичных) система на xHarbour уже работает в реальном режиме. Серьёзные внедрения по всем конторам скорее всего начнуться с конца сентября. Вот тогда останеться надеяться на оперативную помощь специалистов данного форума.

AndreyZh: Добрый день! Небольшой отчётик о попытках продвижения системы УС Land реализованной на xHarbour в "широкие массы": I. Перевод "старых" пользователей идёт крайне туго... Из десятка магазинов, где перевёл (а это мизер) со скандалом отказались 4 магазина мотивируя: 1. Невозможностью использовать полный экран 2. Активным невосприятием шрифта 3. Якобы (мне так и не показали) периодическим временным подвисанием (на 0.5-2 секунды) программ во время оперативной работы 4. Неудобством Win переключением шрифтов и прочие надуманные причины. II. Перевод у "основного спонсора" должен делать их ИТ отдел. Под него пришлось переписать на xHarb ещё 4 уникальные программы, но они не торопятся переводить: 1. И так ништяк 2. Слишком много настроек переделывать 3. Гемор с прочими бизнес задачами... А для меня переход их на УС Land был бы мощнейшем аргументом для остальных пользователей... Так, что когда смогу спокойно работать только с одной системой разработки - уже не знаю. Спасает несколько моментов: 1. Клиппер и Харбоур системы используют единный исходный код и таблицы, т.ч. переходы вперед-назад решаются только переиндексацией 2. Пользователи из Интернет в основном юзают систему на xHarb присылая замечания по ошибкам, которые периодически исправляются (в обоих системах) Думаю будет интересно. Очередная партия исправленных несовместимостей: 1. Упоминалось. Разный подход к оформлению пользовательских функций в memoedit. 2. Изменил шрифт программ и сейчас размер шрифта (окна Win-dows) адаптируется к разрешению экрана. 3. К окнам добавлены иконки соответствующих программ. 4. Глобальная проблемка (исправил) – при выводе в файл (несмотря на предупреждение делали имена файлов русскими – система это игнорировала) - УС Land не воспринимал русские имена файлов. 5. Отсутствие функции анализа готовности принтера PrintReady – теперь программы печатают на любое устройство печати системы, а так решил проблему печати на матричный принтер (устройство – 1 Принтер). 6. Вылет программы, если она требовала для работы передачи внешнего параметра, но ничего не передавалось. Сейчас задаю «параметр по умолчанию». 7. Название месяца/недели. Данные наименования давались «аглицком» - сейчас по-русски. 8. Решена «потенциальная» проблема. Вылет программы по ошибке при некоторых последовательностях операций в режиме списания товаров (более строгая работа с БД). 9. Переделаны (созданы) под «нюансы» xHarbour ВСЕ программы комплекса. А именно: - HLO – система «внешних» заказов. - HLVZ – эмулятор систем КПК на персональных компьютерах. - HLKPK – интерфейс к системе «МТ – Мобильная торговля». - HLRA – интерфейс к системе мобильной торговли «Оптиум». - HLSM – ограниченный (для ГНИ) вариант «оперативной» программы. При желании "последнюю" версию системы можно скачать со страницы Версия УС Land - Август.2010 года

Pasha: А не пробовали использовать letodb ? По крайней мере был бы аргумент "стало намного быстрее", уж не говоря об остальном Из своего опыта использования letodb: там, где БД небольшая и скорость некритична, переход от DBFCDX к LETO прошел для пользователей почти незаметно. На большой БД, где мне постоянно жаловались на медленную работу, а так оно и было, и я ничего не мог поделать, после установки letodb поиск и выборки стали в разы быстрее, что сразу было заметно. Была у меня и замена ADS на LETO. Вечером, после работы, я сделал все необходимые изменения в настройках, остановил ADS, запустил LETO. Утром пользователи включились, и.. никаких изменений не увидели, будто ничего не произошло.

Pasha: AndreyZh пишет: 1. Упоминалось. Разный подход к оформлению пользовательских функций в memoedit. Я тоже когда-то бодался с несовместимостями в memoedit, пока не сказал себе: а зачем мне все эти архаизмы, тяжелое наследие summer'87, эти странные пользовательские функции И стал использовать нативные средства харбора, класс HBEditor Примерно так: oEd := HBEditor():New( ct, nTop, nLeft, nBottom, nRight, .t., nLen, nTab ) oEd:RefreshWindow() while ! oEd:lExitEdit nKey := Inkey(0, 255) if bUser # nil nKey := Eval(bUser, nKey) endif oEd:Edit( nKey ) enddo



полная версия страницы