Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Советы по переходу с VFP6.0SP5 на VFP8.0SP1
|
|||
|---|---|---|---|
|
#18+
Не давно перевел свой проэкт с VFP6.0SP5 на VFP8.0SP1. Хочу уважаемым колегам дать следующие советы (проблемы какие были с переходом и как их быстро решить). 1. Шрифты. С проэкте я ставил обэктам шрифт Times New Roman Cyr или Courier New CYR и т.д.. VFP8 не умеет автоматом их различать и поэтому если открыть форму или отчет в VFP8, он их заменит на default, короче будет не то что "хотел разработчик". Нужно было в VFP6.0 ставить Times New Roman, Courier New и т.д. БЕЗ Cyr или CYR!!!! Для правки был написан следующий скрип *Заміна в формах і отчетах шрифта на інший CLEAR myStartDir = 'e:\buhnet\' public oldstr,newstr oldstr='Times New Roman CYR' newstr='Times New Roman' DO _chenge_all_dir WITH myStartDir *-----------------рекурсивна процедура------------------- PROCEDURE _chenge_all_dir PARAMETER myDir LOCAL i,n LOCAL ARRAY arrFile(64000) n = ADIR(arrFile, myDir+'\*', 'D') FOR i = 1 TO n *? arrFile(i,5) *пошук піддиректорій if (arrFile(i,5)='....D') if AT('.',arrFile(i,1))=0 DO _chenge_all_dir WITH (myDir +'\'+arrFile(i,1)) endif endif *пошук файлів if arrFile(i,5)='.A...' do case case AT('.FRX',arrFile(i,1))>0 DO _chenge_file1 WITH myDir+'\',arrFile(i,1) case AT('.SCX',arrFile(i,1))>0 or AT('.VCX',arrFile(i,1))>0 DO _chenge_file2 WITH myDir+'\',arrFile(i,1) endcase endif ENDFOR ENDPROC *------------------------------------------------ *---------------процедура заміни стрічок------------------- PROCEDURE _chenge_file1 PARAMETERS chDir,chFile use (chDir+chFile) Scan If oldstr$Fontface ? chDir+chFile Replace Fontface With Strtran(Fontface,oldstr,newstr) Endif Endscan use ENDPROC *-------------------------------------------- *---------------процедура заміни стрічок------------------- PROCEDURE _chenge_file2 PARAMETERS chDir,chFile use (chDir+chFile) Scan If oldstr$Properties ? chDir+chFile Replace Properties With Strtran(Properties,oldstr,newstr) Endif Endscan use ENDPROC не судите строго, но рабатае , вызываеш для все типов таких шрифтов. 2. SQL- запросы не работают, надо с начале проэкта написать: SET ENGINEBEHAVIOR 70 3. Отчеты как-то нетак печатают Открываеш каждый отчет в VFP8 в меню Report Printer Environment забираеш галочку. Поставить в каждом отчете TTOPTION=1 (там стоит теперь TTOPTION=3 и шрифты заменяться на зашитые в принтер, правда и печатает быстро, но не всегда кирилицей :)). Для этого написан скрип CLEAR myStartDir = 'e:\buhnet\' public oldstr,newstr oldstr='TTOPTION=3' newstr='TTOPTION=1' DO _chenge_all_dir WITH myStartDir *-----------------рекурсивна процедура------------------- PROCEDURE _chenge_all_dir PARAMETER myDir LOCAL i,n LOCAL ARRAY arrFile(64000) n = ADIR(arrFile, myDir+'\*', 'D') FOR i = 1 TO n *? arrFile(i,5) *пошук піддиректорій if (arrFile(i,5)='....D') if AT('.',arrFile(i,1))=0 ? myDir +'\'+arrFile(i,1) DO _chenge_all_dir WITH (myDir +'\'+arrFile(i,1)) endif endif *пошук файлів if arrFile(i,5)='.A...' do case case AT('.FRX',arrFile(i,1))>0 DO _chenge_file1 WITH myDir+'\',arrFile(i,1) ? myDir+'\'+arrFile(i,1) endcase endif ENDFOR ENDPROC *------------------------------------------------ *---------------процедура заміни стрічок------------------- PROCEDURE _chenge_file1 PARAMETERS chDir,chFile use (chDir+chFile) Scan If oldstr$Expr Replace Expr With Strtran(Expr,oldstr,newstr) Endif Endscan use ENDPROC *-------------------------------------------- 3. Проблема с Иконками. С 8 проэктов в двух была. Поясню конкретнее. Есть иконка проэкта (нормальная!!!!), делаеш build проэкта и когда запускаеш, а иконки нет, вместо нее значок винды, притом для любой иконки. Решаеться созданием нового проэкта поверх старого, добавляеш в него класы, формы, отчеты и т.д. и ставиш туже иконку и все работает. 4. Codepage 1252 По умолчанию 6- ср1251, а 8 -1252 Поэтому пришлось включить в проэкт файлы Foxpro.int и Config.fpw, а в нем написать CODEPAGE=1251 (програмно не нашел как переключить кодовую страницу) 5. Раньше игрался с файлами ресурсов, теперь не работает (ну и бог с ним), делал для того чтобы забрать значек принтера если человеку можно смотреть отчет, а печатать нельзя. if m.lndruk=0 * Запоминаю старый файл ресурсов LOCAL lcResource lcResource=SYS(2005) SET RESOURCE TO NoPrint.dbf * Выполняю отчет report form cl_prih noconsole to NUL preview SET RESOURCE TO (m.lcResource) else report form cl_prih preview endif 6. Масивы Теперь слово DIMENSION забрали с лексикона и заменили на Array раньше я писал Public DIMENSION a[2],DIMENSION b[5] то теперь надо public array a[2],b[5] P.S. Еще раз не судите строго это те проблемы с которыми столкнулся я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 13:47 |
|
||
|
Советы по переходу с VFP6.0SP5 на VFP8.0SP1
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 18:24 |
|
||
|
Советы по переходу с VFP6.0SP5 на VFP8.0SP1
|
|||
|---|---|---|---|
|
#18+
vklepko Не знаю, пока проблем нет, но на 6 тоже иногда у меня писало "exeption code C000005", замедления работы вообще не заметил, правда у меня связка MSSQL2K-FoxPro. поэтому возможно и нет тормозов. Я долго не переходил, пропустил 7, пропустил 8, а перед 9 надумал переходить (начал часто работать с ActiveX и грид в 8 получше). Я месяц тому перешел с MSSQL7.0 на MSSQL2K тоже читал что MSSQL2K более тормозной, а не скажите у меня скорость возросла раза в 2-3. Поэтому и решил перейти с 6 на 8, врода как даже быстрее работает. А про SET TABLEVALIDATE TO 0 не знал, не знал .... наверное потому что нет у меня ни локально ни глобально таблиц, все беру с сервера с помощью хранимых процедур. А другим должно пригодиться 7. SET TABLEVALIDATE TO 0 (от vklepko ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 19:31 |
|
||
|
Советы по переходу с VFP6.0SP5 на VFP8.0SP1
|
|||
|---|---|---|---|
|
#18+
1. Шрифты. С проэкте я ставил обэктам шрифт Times New Roman Cyr или Courier New CYR и т.д... рабатает , вызываеш для все типов таких шрифтов. Это следствие недостатков архитектуры. Все было бы проще, если бы контролы изначально реализовывались на субклассах базовых классов VFP, как, по-идее, и надо было делать с самого начала. При этом для проведедния описанных массовых изменений, Вам бы потребовалось изменить шрифт всего лишь нескольких классов контролов, лежищих в корне иерархии класссов проекта, всё остальное изменилось бы автоматически по наследованию. ЗЫ На такое народ уже нарывался в VFP 8 Beta, когда фокс некорректно проставлял FontCharset и глючила кириллица. Те, кто субклассированием не пользовался - тоже такие скрипты писали 2. SQL- запросы не работают, надо с начале проэкта написать: SET ENGINEBEHAVIOR 70 Нет, как раз-таки теперь они правильно работают, в соответствии со стандартами SQL 3. Проблема с Иконками. С 8 проэктов в двух была. Поясню конкретнее. Есть иконка проэкта (нормальная!!!!), делаеш build проэкта и когда запускаеш, а иконки нет, вместо нее значок винды, притом для любой иконки. Решаеться созданием нового проэкта поверх старого, добавляеш в него класы, формы, отчеты и т.д. и ставиш туже иконку и все работает. Всё, опять же, проще. Это известный баг VFP8. Иконка исчезает при заполненном Version Info проекта. Лечится прямым присвоением _SCREEN.Icon в коде. 3. Отчеты как-то нетак печатают По этому поводу сюда: Проблемы с отчетами в VFP 8 4. Codepage 1252 По умолчанию 6- ср1251, а 8 -1252 Поэтому пришлось включить в проэкт файлы Foxpro.int и Config.fpw, а в нем написать CODEPAGE=1251 (програмно не нашел как переключить кодовую страницу) По-умолчанию 1252 стало еще в VFP7, а вот Foxpro.int стал не нужен еще в VFP6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2004, 09:26 |
|
||
|
Советы по переходу с VFP6.0SP5 на VFP8.0SP1
|
|||
|---|---|---|---|
|
#18+
8. CDOW() W2KSRUS+SP4, W2KPRUS+SP4 6 возвращает в среде Monday в ехе Monday 8 возвращает в среде Monday в ехе Понедельник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2004, 13:43 |
|
||
|
Советы по переходу с VFP6.0SP5 на VFP8.0SP1
|
|||
|---|---|---|---|
|
#18+
Александр Третьяков8. CDOW() W2KSRUS+SP4, W2KPRUS+SP4 6 возвращает в среде Monday в ехе Monday 8 возвращает в среде Monday в ехе Понедельник Вас интересует почему или как это побороть? Если почему - то в ехе используется билиотека исполнения, переводящая корректно все на русский (а в среде исполнения она не используется и поддержки Русского интерфейса там нет по определению)... Как с этим бороться? Тут много вариантов - я использую номер дня а затем из массива пишу по Русски :) Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2004, 14:02 |
|
||
|
Советы по переходу с VFP6.0SP5 на VFP8.0SP1
|
|||
|---|---|---|---|
|
#18+
Спасибо Sergey Ch, я так и подумал и поэтому перешел тоже на номер дня недели, а про CDOW() и этот топик в часности создал для того чтобы тот кто переходит с 6 на 8 не нарвался на "подводные" камни уже в процесе использования, а убрал их еще в начале. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2004, 16:49 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32666652&tid=1595923]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 366ms |

| 0 / 0 |
