On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение





Пост N: 64
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 03.04.10 20:51. Заголовок: Помогите протестировать первую xHarbour систему


Уважаемые профи!

Наконец перевёл систему на 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

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 182 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]


Администратор




Пост N: 1404
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 16.04.10 14:14. Заголовок: Укажите линкеру опци..


Укажите линкеру опцию -aa

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 118
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 16.04.10 18:09. Заголовок: Укажите линкеру опци..



 цитата:
Укажите линкеру опцию -aa


Спасибо!

Уважаемые господа!

1. Исправил все найденные раннее ошибки.
2. Собрал с терминалом GTWVT.
3. Подготовил новую тестовую базу - мелкооптовая торговая точка или розничный магазин on-line торговли (любыми товарами).

Если не сложно помогите найти ошибки в программах (все пароли 11). Для установки скачать и в любой каталог (c:\harbdist - будут работать все приложенные ярлыки (они же описание программ)), ничего настраивать не нужно. Скачка 2.66mb http://www.zhsoft.nm.ru/demo/USLand.exe

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1587
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.04.10 17:26. Заголовок: Сломал все глаза от..


[IMHO]
Сломал все глаза от такого интерфейса.
По 10 бальной шкале моя оценка 2.
Впрочем на вкус и цвет.......

Скрин одной из моих прог ;)


Прайс лист


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 119
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 17.04.10 20:14. Заголовок: Впрочем на вкус и цв..



 цитата:
Впрочем на вкус и цвет.......

Золотые слова, впрочем у БЭСТ 3/4 интерфес аналогичен (у меня он был разработан раньше в 1990 году) и следует принципу "максимум информации и инструментов на единицу площади экрана). Для примера все программы комплекса:


При этом оператор/аналитик видит всю необходимую ему инфу не углубляясь без нужды в подформы, управление системой для новичков осуществляется клавишами Insert,Tab,Delete,F1,F2,F3,Esc,Enter - все остальные возможности можно вызвать по меню, являющейся справочной системой или нажатием клавиш.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1236
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.04.10 22:10. Заголовок: Dima пишет: Скрин о..


Dima пишет:

 цитата:
Скрин одной из моих прог ;)



Покажи пожалуйста как реализовал вывод картинки и перерисовку экрана ?


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1589
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.04.10 22:27. Заголовок: Andrey пишет: как р..


Andrey пишет:

 цитата:
как реализовал вывод картинки


Wvt_DrawImage( 1,0,23,79, "blabla.jpg" )

Andrey пишет:

 цитата:
и перерисовку экрана


Не очень понял вопрос.
А вообще Wvt_saveScreen , Wvt_RestScreen , хотя это и не совсем верно.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1590
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 17.04.10 23:12. Заголовок: AndreyZh пишет: Зол..


AndreyZh пишет:

 цитата:
Золотые слова, впрочем у БЭСТ 3/4 интерфес аналогичен (у меня он был разработан раньше в 1990 году) и следует принципу "максимум информации и инструментов на единицу площади экрана)


Я конечно понимаю что критику Вы не очень уважаете , но у Вас по моему просто перебор с максимумом информации в менюшках. Это не меню а газета какая то. Писец.....
Молчу уже про убогий браузер.
Впрочем ладно..........Просто хотел дать добрый совет.


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 120
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 18.04.10 07:23. Заголовок: Доброе утро! Пока не..


Доброе утро!
Пока не поехал на огород...

Dima Если есть желание покритиковать саму систему - интерфейс, функционал, механизмы хранения и обработки информации, то может бы заведу отдельную тему. Всё-таки здесь интересны "несовместимости" и ошибки в её работе.



 цитата:
Я конечно понимаю что критику Вы не очень уважаете


Непонятно от куда такие выводы? Если замечание сделано "в любой форме", оно полезно и имеет целью помочь в решении проблемы, то, можете обратить внимание - ему очень благодарен. Если же оно ввиде просто оскорблений брошенных в воздух, то это воспринимается не более как попытка "засрать эфир".



 цитата:
у Вас по моему просто перебор с максимумом информации в менюшках


НЕ ПОНЯЛ. Если это о меню вызова отчётов, то их сотни и вынужден давать подробные пояснения в наименовании пунктов меню, если о меню в оперативных режимах, то количество слов в п.п. минимально необходимое для описания выполняемого действия???


 цитата:
Молчу уже про убогий браузер


Это интересно. Можно подробнее определение или описание механизмов "правильного браузера" - его реализую в какой-нибудь подзадаче и проверю (протестю) на пользователях (им же с этим работать).

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 123
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 05.05.10 18:14. Заголовок: Добрый вечер! Уважа..


Добрый вечер!

Уважаемые реальные и "виртуальные" пользователи моей системы "нарыли" серию ошибок и несовместимостей, которые конечно "с чей-то матерью" исправил. Думаю Вам будет интересно (xHarbour версия от 12.2009). Clipper 5.01R+CT2 без проблем "хавает":

1. При сохранении файлов. Русские имена файлов и каталогов преобразуются в "абракадабру". Лечение - имя (символьные переменные) преобразовывать функцией HB_OEMTOANSI.

2. На клавише F3 висит вызов справочников - вызывается функция, в которой по имени переменной вызывается соответствующий справочник. При нажатии вне команды GET системы возвращают "пустое" имя -- Clipper программа его игнорирует, xHarb пытается вызвать "первый в списке" справочник. Лечение - проверять имя на "пустоту".

3. Поведение xHarb в некоторых случаях зависит от последовательности вызова функция, хотя логически она не должна иметь значения. Например:
hb_gtInfo(GTI_FONTWIDTH, 15)
hb_gtInfo(GTI_FONTSIZE, 32)

Другой порядок приводит к сбоям (спасибо местным гуру, а то бы считал, что ф-ция gtInfo не рабочая). ЭКСПЕРИМЕНТИРУЙТЕ!!!

4. Несовместима функция memoedit. Мой вариант приводил к "зависанию" системы. Спасибо за подсказку обработки функции пользователя:
#include "Inkey.ch"
#include "Memoedit.ch"

FUNCTION myfunc() 
LOCAL nKey := LastKey()
LOCAL nRet := ME_DEFAULT // Критичная добавка
DO CASE
CASE nKey IN { K_ALT_W, K_CTRL_W, K_ESC }
nRet := ME_IGNORE // Критичная добавка // ignore default termination keys
CASE nKey == K_F2
nRet := K_ALT_W // Save with F2
CASE nKey == K_ALT_C
nRet := K_ESC // Cancel with Alt+C
ENDCASE //
RETURN nRet


5. Грубая ошибка xHarbour машины (отошлите, если интересно разработчикам).

Имеем обычную форму ввода, где на последнем вопросе задаётся символ разделитель дробной части:
local getlist:={}, bbb:=spac(50), ccc:=" "
....
@ 1,1 say aaa get bbb
@ 1,2 say sss get ccc
read
....
преобразовывается файл
...
ФОРМА ЗАПРОСА ВЫВОДА НА УСТРОЙСТВО
------------------------
Если ссс - это символ точки, запятой, тире, .... то форма запроса переходит в бесконечный цикл xHarbour пихает всегда Chr(15) -- при других знаках всё работает корректно (~=/\| и т.д.). Лечение:
После READ сразу набор команд
if readkey()==K_CTRL_O
KEYB Chr(K_ENTER)
WAIT " "
LOOP // Переход снова на форму ввода устройства вывода
endif

----------------------------------------------

Вообще спасибо "местным" профи - в темах можно найти ответы на множество проблем. Система исправлена и выложена со всей документацией (4.01 mb) http://www.zhsoft.nm.ru/demo/USLand.exe

Все надеюсь на помощь профи в поиске ошибок


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1434
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 06.05.10 10:54. Заголовок: AndreyZh пишет: Име..


AndreyZh пишет:

 цитата:
Имеем обычную форму ввода, где на последнем вопросе задаётся символ разделитель дробной части:
local getlist:={}, bbb:=spac(50), ccc:=" "
....
@ 1,1 say aaa get bbb
@ 1,2 say sss get ccc
read
....
преобразовывается файл
...
ФОРМА ЗАПРОСА ВЫВОДА НА УСТРОЙСТВО
------------------------
Если ссс - это символ точки, запятой, тире, .... то форма запроса переходит в бесконечный цикл xHarbour пихает всегда Chr(15) -- при других знаках всё работает корректно (~=/\| и т.д.).



А можно уточнить, что имеется в виду: "преобразовывается файл, ФОРМА ЗАПРОСА ВЫВОДА НА УСТРОЙСТВО"
А еще лучше привести фрагмент программы

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 126
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 06.05.10 16:08. Заголовок: Pasha А еще лучше пр..


Pasha

 цитата:
А еще лучше привести фрагмент программы



Добрый день! Прошу прощение за длинный текст, т.к. подход универсальный:

 
* Пример пострения отчёта
STAT PROC pObFins()
LOCA cOldCol:=SetColor(), ....
LOCA cOff:=" "
-----
@ 1,1 SAY "Пожалуйста вв. дату начала ........ конца ........ периода"
@ 6,1 SAY "Разделитель чисел для экспорта в MsOffice или ничего ."
@6,58 GET cOff // Если отлично от пустого, то заменяется разделитель точка на введённый знак в обычном текстовом файле
READ
------
cTxt := zTemp(cdTemp,"TXT",32) // Создаётся текстовый файл, который ниже заполняется
------
IF !Empty(cOff) // Экспорт в офис
? "Оборотная ведомость по "+IF(nCash=1,"кассе",IF(nCash=2,"банку","деньгам"))+" с "+Dtoc(dBeg)+" по "+Dtoc(dEnd)
? " Подпериод времени Ост. на начало Приход Расход Ост.на конец "
DO WHIL !Eof()
------- Заполнения файла из временной таблицы

IF dMove > dD // Перешли в другой подпериод. Отражаем итоги.
? IF(nPer==0,Left(Cmonth(dT)+Spac(17),17)+Str(Year(dT),4),Dtoc(dT)+" - "+Dtoc(dD))+" "+zStr(nBeg,14,2,cOff)+" "+zStr(np,12,2,cOff)+" "+zStr(nr,12,2,cOff)+" "+zStr(nBeg+np-nr,14,2,cOff)
++nStr
ENDI
DbSkip()
ENDD

// Отражаю данные по последнему периоду и общие итоги.
? IF(nPer==0,Left(Cmonth(dT)+Spac(17),17)+Str(Year(dT),4),Dtoc(dT)+" - "+Dtoc(dD))+" "+zStr(nBeg,14,2,cOff)+" "+zStr(np,12,2,cOff)+" "+zStr(nr,12,2,cOff)+" "+zStr(nBeg+np-nr,14,2,cOff)
? Chr(12)
ELSE // Печатаемый формат
ENDI
-----

// Демонстрирую отчет и восстанавливаю состояние среды.
pFileOutDevice(cTxt) // Место появления глюка
pCloseErase("TEMP",{cDbf,cNtx,cTxt})
pinStat(sOp,0)
RETU


И сама функция(ии) вывода на устройства - довольно большая

Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1642
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.05.10 22:26. Заголовок: AndreyZh пишет: под..


AndreyZh пишет:

 цитата:
подход универсальный:


И это называется самодостаточный пример "ГЛЮКА" ?
Проще можно изложить проблему ?


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1436
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.05.10 08:03. Заголовок: я тоже ничего не пон..


я тоже ничего не понял
Дать самодостаточный пример означает, что ничего, не имеющего отношения к глюку, в примере не должно быть.
Скажем, глюк связан с созданием файла ? Если да - в примере должно быть создание файла, если нет - то нет.


LOCA cOldCol:=SetColor()
LOCA cOff:=" "
@ 1,1 SAY "Пожалуйста вв. дату начала ........ конца ........ периода"
@ 6,1 SAY "Разделитель чисел для экспорта в MsOffice или ничего ."
@6,58 GET cOff // Если отлично от пустого, то заменяется разделитель точка на введённый знак в обычном текстовом файле
READ

А дальше ? Кратко изложите, как проявляется глюк

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 127
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 07.05.10 15:29. Заголовок: Добрый день! Эта од..


Добрый день!

Эта одна из многих ситуаций, почему программирование на Harbour назвал "прогулками по минному полю"... Из-за любопытства пытался сделать "простой" пример данной ситуации вне "большого комплекса", НО НЕ СМОГ породить её!!! Но в самом комплексе ситуация "универсальная"!

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

В новой версии исправлена данная проблема добавкой кода (повторюсь):

// Из ЭФ читаем параметры печати. 
@ 5,0 SAY Chr(199)+Repl("-",59)+Chr(182) COLO PosRepl(cOther,Repl(" ",AT("/",cOther)-2)+"N",1)
@ 1,2 SAY "Для печати отчета/документа пожалуйста укажите устройство"
.......
@2,58 GET nDev PICT "9" VALI nDev>=1 .AND. nDev<=7
......
READ
// Обработка глюка xHarb когда посылает код 15, если .,- в формате экспорта в офис
IF ReadKey() == K_CTRL_O
KEYB Chr(K_ENTER)
WAIT ""
LOOP
ENDI


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1440
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.05.10 15:49. Заголовок: Я все-таки не могу п..


Я все-таки не могу понять, в чем заключается глюк
Глюк связан с GET - системой ? После READ (ReadModal) получается неправильное значение односимвольной переменной ? Или после READ возникает какое-то последействие в функцих типа READKEY() ? Или глюк связан с вложенным READ, т.е в обработке READ вызывается еще один READ ? Создание файла существенно, или это просто сопутствующее действие ? Код 15 (ctrl+o) вводится с клавиатуры ?
Попробуйте описать словесно, отбросив все несущественные детали

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 129
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 07.05.10 16:09. Заголовок: Я все-таки не могу п..



 цитата:
Я все-таки не могу понять, в чем заключается глюк



Я тоже ХЗ? На мелкой тестовой эмуляции не сумел породить проблемы, а в "большой" системе она "стабильная", т.е. какая функция xHarbour порождает посылку коммандных кодов пока не понял. Как это проявляется?

1. Запрос ограничителей отчёта. Последний вопрос о знаке разделителе (.,/ порождают глюк, любые другие символы работают корректно).
2. Строится отчетный текстовый файл, где в числах точка заменяется указанным символом.
3. Всё (txt. времянки) закрывается.
4. Запускается функция вывода на устройство (принтер,файл,экран,win система,Excel,редактор,Word) и в ней вызывается форма настройки вывода, т.к. по умолчанию стоит "принтер", то система не переходит в ожидание READ, а циклично тужится отправить на него, если он выключен, то цикличный запрос печати (нормально прерываемый ESC).

// Обработка глюка xHarb когда посылает код 15, если .,- в формате экспорта в офис
IF ReadKey() == K_CTRL_O
KEYB Chr(K_ENTER)
WAIT ""
LOOP
ENDI

Данным кодом я блокирую ситуацию, т.е. "от куда то" посылается код K_CTRL_O (15) и от него ни как не избавится (чистка буфера клавиатуры ничего не даёт), но даёт принудительная посылка K_ENTER, которая "подтверждает" запрос WAIT (что прекращает посылку кодов от xHarbour), после чего читаю форму заново.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1441
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 07.05.10 16:24. Заголовок: т.е., если по Read в..


т.е., если по Read в односимвольную переменную вводится один из символов: .,/
следующий за ним Read не переводит программу в режим ожидания ввода, а зацикливается ? Т.е. в буфере клавиатуры остаются какие-то коды, которые влияют на последующий READ ? Терминал gtwin или gtwvt ? Если gtwin, то для gtwvt этот глюк проявляется ?
А где в программе цикл и какое условие выхода из цикла ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 130
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 07.05.10 16:48. Заголовок: т.е., если по Read в..



 цитата:
т.е., если по Read в односимвольную переменную вводится один из символов: .,/


Да, в конце большого блока запросов.


 цитата:
следующий за ним Read не переводит программу в режим ожидания ввода, а зацикливается ?


В "большой" программе ДА и стабильно (не зависимо от конкретного отчёта), в тестовых мелких программках не смог породить данной ситуации.


 цитата:
Т.е. в буфере клавиатуры остаются какие-то коды, которые влияют на последующий READ ?


В том-то и ... При "придумывании" приведённоё затычки ни чего в буфере клавиатуры не находил. Chr(15) прилетает, как будто из ниоткуда.


 цитата:
Терминал gtwin или gtwvt ?


Последние варианты gtwvt (ссылки даны http://www.zhsoft.nm.ru/demo/USLand.exe ), сейчас проверю на gtwin из ссылки первого сообщения темы (что то плохо качает). В GTWIN теже коки!


 цитата:
А где в программе цикл и какое условие выхода из цикла ?


1. Читаем параметры печати. READ
2. IF LastKey() == K_ESC то выход из цикла.
3. Обработка вывода на требуемое устройство
4. Переход на 1. Реализовано whil .t. <...> end

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

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1645
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.05.10 19:46. Заголовок: AndreyZh пишет: Chr..


AndreyZh пишет:

 цитата:
Chr(15) прилетает, как будто из ниоткуда.


Полтергейст
А попробуй запустить прогу в режиме защиты от сбоев (я про Windows) , будет тот же "Полтергейст" ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 131
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 07.05.10 21:19. Заголовок: Полтергейст? А поп..



 цитата:
Полтергейст?
А попробуй запустить прогу в режиме защиты от сбоев (я про Windows) , будет тот же "Полтергейст" ?



Данный "глюк" людям демонстрировал под (разные конторы) Windows 98/ХР Home/Prof/Windows Server/Windows 7 (сейчас проверил и в режиме защиты от сбоев). К тому же Вы легко можете его увидеть, например:

- Программа hld
- <Динамика> Отражение работы фирмы в динамике
- Любой отчёт данного блока/берёте любой период/остальное соглашаетесь
- На вопрос "знак разделитель экспорта в офис", если возьмёте (.,) получите "барабашку", другой (не все перепроверил) знак - нормальный отчёт

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 182 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет