Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Базы данных -> FoxPro -> FAQ - Visual Foxpro Club

Вопрос - Ответ

  1. Filer и Fisual FoxPro
  2. Screen=Off в config.fpw
  3. Своя справка в стандартных диалогах VFP
  4. Инсталлятор и VFP
  5. Ошибка в обновлении курсора
  6. Преобразование даты из Character(Двоичный) в Date
  7. Перенос базы данных, созданной в конструкторе
  8. Преобразование Float языка C в Float FoxPro
  9. Налоговая инспекция и регистратор электронных документов
  10. Инкрементальный поиск и ComboBox
  11. Нулевой байт (сигнатура) заголовка DBF
  12. Поиск данных по шаблону
  13. Ограничение в Excel на импорт более чем 16K записей
  14. Подсуммирование данных в отчете
  15. HP LaserJet 1200 и отчеты
  16. Отправка писем в VFP
  17. Сделать окно активным и развернуть на весь экран (WinAPI)
  18. Быстродействие FPD в Win2k
  19. Курс лекций по VFP
  20. "Тормоза" в ListBox
  21. Ошибка деления на "0" в FoxPro 2.5 for Windows для Pentium III-IV в Win2000 & WinXP
  22. Клубы VFP на Украине
  23. Невозможно обновить курсор на команде append blank
  24. Отчет FRX -> HTML
  25. Ошибка в `requery("имя представления")`
  26. Как скопировать открытый файл (.dbf и .idx)
  27. Скроллинг Grid
  28. Автоподсказка в VFP7
  29. Печать отчетов с помощью Set Printer to Name
  30. Снова проблемы с печатью отчетов на HP
  31. Документы в Word
  32. Arj-архивы из под Windows
  33. Глюк при выборе в отчете/форме произвольного набора символов
  34. DLL и необходимая кодовая страница
  35. EXE-файл и скорость работы с DBF-файлами
  36. Древовидное представление данных

Как запретить одновременный запуск нескольких копий одного приложения VFP?

Воспользуйтесь функцией Win32API FindWindow (cWClass,cWinName) , которая возвращает дескриптор окна с заданным заголовком cWinName: если приложение запускается впервые, возвращаемое значение равно нулю.


Как приложению присвоить иконку, отличную от стандартной?

С помощью ImagEdit создайте файл иконки (*.ico) в двух режимах (16x16 для просмотра в режиме Small Icon, панели задач; и 32x32 для просмотра в режиме Large Icon). Добавьте файл в проект на вкладку Other. Откройте диалог Project Info в меню Project/Project Info или с помощью контекстного меню в Project Manager и на первой вкладке "Project" установите галочку в CheckBox "Attach Icon", после чего станет доступной кнопка "Icon". Нажав ее, Вы в диалоге укажете файл иконки. Компилируйте EXE-файл и наслаждайтесь увиденным.


Как прервать выполнение программы до окончания работы внешней программы?

Воспользуйтесь все той же функцией FindWindow Win32API, упомянутой выше. Тогда, проверяя в цикле на наличие дескриптора, равного нулю, ждем, ждем, ждем...


Как передать результаты отчета по Internet?
(Андрей Гусев )

Думаем, все знают о скудных возможностях VFP в этом вопросе : есть только возможность экспорта результатов в текстовые файлы с PostScript-кодами или без оных (с необязательным параметром "ASCII"). Остается писать ручками.

Могу предложить генератор отчетов, написанный на VC++ (имя пользователя - "Admin" и пустой пароль). Эта программа позволяет передавать данные из Dbf-файлов в уже созданный шаблон MS Word.

В ПК "Quant" фирмы "ЛюксСофт" этот вопрос решен несколько шире : есть возможность экспорта отобранных данных в файлы Xls, Dbf, Txt; преобразование результатов отчета в Word и HTML. Отметим, что и в ПК "Квант" под DOS проблема решена должным образом.

Третий, стандартный способ - использовать класс _frx2html (_internet.vcx). Пример : ...\Samples\Vfp98\Solution\Ffc\dohtml.scx


В процессе работы с моим визуальным классом файл .vcx принял "угрожающие" размеры. Что с ним случилось и как с этим бороться ?
(Вячеслав Крикун
krikun@tut.by
)

Наряду с файлами .dbf, такой же формат имеют и файлы с расширениями .dbc, frx, .lbx, .mnx, .pjx, .scx, .vcx. Поэтому Вы можете открыть их (Use) и просмотреть (Browse) в результате чего увидите, что файл "разбух" от записей, помеченных на удаление. Отсюда вывод: откройте файл с параметром Exclusive и упакуйте его.Применительно к проекту можно выбрать пункты меню Project-Clean Up Project.

Другой, более простой способ : открыть файл .vcx в Class Browser и нажать кнопку "Clean Up Class Library".


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

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

Надо уметь выделять различные уровни работы с приложением: интерфейс, обработка данных и прочее. А о том, как это сделать, я отсылаю Вас к языку UML и продуктам Rational Rose и Visual Modeler (Visual Studio).

Со стороны Visual FoxPro могу порекомендовать в свойствах существующего проекта (Project Information, вкладка Project) убрать информацию об отладке (CheckBox "Debug Info"). Также, если такой вариант допустим, использовать вместо единого .EXE файла .FXP файлы с .EXE файлом, включающим в себя "стабильную" часть, ядро программы.

И, как вариант, в Internet есть утилита ASPack (Shareware) и подобные ей, которые значительно уменьшают размер .EXE .


Под Win2k FPD 2.6 захватывает ВСЮ память (и вываливает ее в swap). Как это лечится?
(Игорь

Начну с вопроса, а сколько у Вас физической памяти ? И, на сколько я в общем знаю работу системы, при нехватке физической памяти (если это так - зачем ставить Win2k, лучше поставить Win NT - "одного поля ягода") наоборот, происходит "выброс" в swap-файл программных ресурсов, занимаемых другими, не активными в данный момент, приложениями. Вы, наверное, это хотели сказать ?

В свойствах ярлыка, на вкладке "Память" (это относится к исполняемым файлам, н., Foxpro.exe. Для пакетных файлов можно попробовать это сделать в _default.pif, который находится в папке Winnt) советую отключить память XMS, установить конкретное, исходя из размера БД значение для EMS (4-16 М, только не "auto") и, чтобы увеличить скорость загрузки самой программы (это уже так, по ходу) поставить DPMI минимальным (1024). После подобных манипуляций размер "потребляемой" памяти существенно снизится.

Я (Тюрин Юрий, веду VFP-клуб в рамках сайта НТ ООО "ЛюксСофт") рад, что кто-то откликнулся "со стороны" и написал ответ. Я не совсем согласен с мнением отвечающего, т.к. на моей машине под 2000-м таких проблем не возникало, а рекомендации мои носили, скорее, "оптимизационный" характер. Но и высказываний против у меня особых нет - по теории как бы все верно.

Владимир Фабер: "На данный вопрос вы даёте неправильный ответ. FPD по умолчанию "забирает" под себя ВСЮ доступную физическую память. И никакими установками в .pif файлах это не лечится. Для выделения нужного кол-ва памяти следует смотреть на параметр MEMLIMIT файла config.fp. ...

Этот вопрос неоднократно обсуждался в конференциях по фоксу, кроме как через Memlimit проблема захвата фоксом памяти не решается. "


Начинаю изучать Vis ual FoxPro и к своем у неудовольствию отмечаю, что не могу вызвать утилиту "Filer", которой было удобно пользоваться в FPD

Filer никуда не делся, просто он преобразился - теперь это COM-объект (в старых обозначениях - нечто вроде ActiveX) со своими свойствами и методами ("Filer.dll" - так ищите описание его в MSDN). А это значит, что теперь его можно использовать в любых приложениях (Office, VB, VC++), которые поддерживают корректную работу с COM-объектами.

Вы можете его вызывать програмно, создавая объектную переменную: oMyFiler = CREATEOBJECT('Filer.FileUtil').

Если по-прежнему осталось желание работать с ним в "интерактиве" - воспользуйтесь формой
HOME(1) + 'Tools\Filer\Filer.scx'
, которую вы можете изменить на свой вкус.


Просматривали примеры на VFP и в файле Config.fpw встретили строку "SCREEN=OFF". Что делает эта команда ?

Эта команда скрывает главное окно VFP. Для использования каких-либо стандартных средств VFP это окно может понадобиться: например, для просмотра или печати отчета. В этом случае необходимо его показать (_SCREEN.SHOW), а после выполнения просмотра - опять скрыть (_SCREEN.HIDE).


Скажите, можно ли в стандартных диалогах VFP вызвать свою справку ?

Можно и нужно, т.к. малоинформативный английский язык :) не много скажет нашему обычному пользователю, да и своя програмная специфика может просматриваться. В этом деле самая большая трудность - знать HelpContextID для конкретного диалога. В этом нам поможет функция sys(1023) (включить режим диагностирования помощи). Включите вызов этой функции перед открытием интересуемого Вами диалога, откройте диалог и нажмите на заветную кнопку "Help", после чего Вы можете спокойно переписать необходимый идентификатор. Естественно, что в Вашем проекте справки в Map-файле (.h) Вы должны использовать идентификатор с этим номером.


У меня проблемы с распространением своей программы. Хотел, было, с помощью Setup Wizard-a "состряпать" инсталляционную програмку, но наткнулся на стену непонимания :-( (со стороны мелкософта). Нашел в Inete ссылки на некоторые инсталляторы: GkSetup с обрезанными функциями, Microsoft Windows Installer требует PID зарегистрированного Visual Studio, а где я его возьму ;)) ; Wise Installation System говорят, хорошая штука, да тоже Trial и "весит" много - дорого скачивать. Может, кто подскажет какую-нибудь ссылочку, а ?

Могу предложить Вашему вниманию свободно распространяемый инсталятор для программ Windows Inno Setup v.2.0.18. Особенности его работы следуюшие:

  • Inno Setup полностью бесплатная программа, даже для создания инсталяторов коммерческих программ (слышать это так же приятно, как и слышать школьнику новость о том, что его школа сгорела ;-)).
  • Поддержка всех 32-битных версий Windows:Windows 95, 98, 2000, XP, Me, NT 4.0. Поддержка NT 3.51 также может быть включена.
  • Поддержка создания одного инсталяционного файла для online-дистрибьюции. Разбивка на диски также поддерживается.
  • Стандартный интерфейс в духе мастера 2000/XP (в т.ч.на русском языке).
  • Создание различных типов установки: полный, минимальный, другой.
  • Копирование файлов: встроенное сжатие файлов (метод .zip и.bzip2). Инсталятор может сравнивать версии файлов
  • Регистрирование DLL/OCX.
  • Создание ярлыков в любых папках, включая меню Пуск, Quick Launch и Рабочий стол.
  • Работа с реестром и .INI файлами.
  • Инсталяция и деинсталяция в ускоренном режиме (без диалогов, окон, сообщений).
  • Настройка деинсталятора.

Подскажите люди добрые!!! При создании exe-шника ошибок нет, при запуске его срабатывает ошибка "невозможно обновить курсор" на команде append blank.
(FOXER)

Имеется БД в которой в одном из полей типа Character(Двоичный) хранится дата в виде кодов (не символов), например такая : 02 20 19 04, т.е. 4 байта ( это 19 апреля 2002). Как преобразовать такой тип в тип Date ?
(GOGOL)

Как заниматься шаманством с преобразованием типов не подскажу, поэтому предлагаю "ручной"способ борьбы:

     ? ConvertToDate(Char_bin)
Function ConvertToDate
 lpara cStr
 local y1,y2,m,d
 y1=Dec2Hex(asc(subs(cStr,2,1)))  && старшая цифра года
 y2=Dec2Hex(asc(subs(cStr,1,1)))  && младшая цифра года
 m =Dec2Hex(asc(subs(cStr,4,1)))  && месяц 
 d =Dec2Hex(asc(subs(cStr,3,1)))  && день
 retu ctod(m+"."+d+"."+y1+y2)   && значение типа Date
* если бы в поле числа были не в псевдодесятичном виде (20 в 16 с/с = 32 в 10 с/с), эта функция была бы не нужна
 Function Dec2Hex
 LPARAMETER nDec
 LOCAL nnDec, nOst, cOst, cHex, nnn
 cHex = ""
 nnDec = nDec
 DO WHILE nnDec > 0
       nOst = MOD(nnDec, 16)
       nnDec = INT(nnDec / 16)
       IF BETW(nOst,10,15)
           cOst = CHR(nOst + 55)
       ELSE 
           cOst = STR(nOst,1)
       ENDIF
       cHex = cOst + cHex
 ENDDO
 RETURN IIF(MOD(LEN(cHex),2)==1, "0","") + cHex

Будем надеяться, что кто-нибудь предложит более умное решение.


База данных, созданная в "Конструкторе баз данных", при открытии на другом компьютере автоматически сортируется (все таблицы располагаются рядами и становятся одинаковыми по размеру). Как это отключить, если это возможно? Где хранятся координаты месторасположения таблиц в Конструкторе БД?
(Игнатенко Алёша )

Не знаю, обрадую Вас или нет, но данные о размере и расположении таблиц в схеме данных (извиняюсь, название перешло со мной из Access) хранятся в FoxUser. В этом причина ваших "локальных" бед. ;-)). Структура FoxUser.dbf примерно такова:

Имя поля Описание
TYPE тип данных, хранящихся в записи: PREVW и DATAW - для VFP. Причем PREVW отвечает за размеры и позиции окон
ID категория для каждого типа: для PREVW - BROWWIND, WINDMODIFY и проч.
NAME уникальное имя объекта
READONLY ясно из названия
CKVAL контрольная сумма для проверки целостности данных
DATA Memo-поле с собственно данными (за объяснениями по формату обращайтесь к мелкософту)
UPDATED дата последнего изменения

Из таблицы Вам будет теперь понятно, что собака порылась в поле типа PREVW, а простые сравнения измененного и предварительно сохраненного FoxUser.dbf (напимер, с помощью Windows Commander) удовлетворят Вашу жажду знаний.


Как преобразовать значение переменной типа стандартного Float языка С (четыре байта в 16-ричном коде) в значение Float FoxPro ?
(GOGOL)

1. Какие требования предъявляются налоговой инспекцией к программам на FoxPro работающим с регистратором электронных документов.
2. Можно ли использовать один регистратор для нескольких ПК. (а-ля клиент-сервер, для выдачи номеров и пр.)
(babilus)

Есть ComboBox, прикрепленный к dbf. Как сделать, чтобы при наборе первого значения автоматически искалось значение в таблице и отображалось в Combobox?
(Бризбанк г.Иркутск)

Как я понял, основная проблема связана с "автоматическим" поиском значения. Самый простой способ его реализовать - установить свойство Style ComboBox-а в "2" (Dropdown List).


В документации по VFP6 встретил строку в которой говорится ,что принадлежность таблиц к той или иной версии Foxpro определяется информацией в нулевом байте заголовка таблицы, изменяя информацию этого байта можно скрыть информацию от других приложений. Прошу рассказать каким способом изменить этот байт заголовка с тем чтобы данное приложение понимало этот файл. И возможно ли сделать так чтобы включая таблицу в базу данных автоматически изменялась информация этого байта на установленную ?
Vik
Как изменить нулевой байт заголовка таблиц с тем чтобы другие приложения не могли прочитать информацию из этой таблицы а база данных в которую входит таблица могла работать ?
Vik

Я было, сначала разделил 2 вопроса выше, а после решил отвечать на оба одним махом, т.к. ноги у них растут с одного и того же места (не буду уточнять c какого ;))

Во-первых, я хотел бы увидеть те строки сам воочию.
Тут, похоже, встает старый философский вопрос о том, что первично : яйцо или курица. Дело в том, что 0-вой байт не управляет, а "сигнализирует" VFP о том, как системе воспринимать расположенную в DBF информацию. Смею заверить, что между значением этого байта и содержимым файла однозначное соответствие. Этот байт должен автоматически принимать отличное от имеющегося значение в случае изменения структуры соответствующим образом.
В MSDN сказано (цитирую как Библию ;)) : VFP не изменяет заголовок файла DBF в формате 2.x до тех пор, пока не была добавлена ни одна из следующих характеристик:

  • поддержка значения Null
  • типы данных DateTime, Currency и Double
  • 2-чные Char- или Memo-поля
  • таблица добавлена в файл БД (.dbc)

Что касается скрытия информации, так ведь формат VFP не будет читаться в FPD; или, если таблица принадлежит одной БД (VFP), то она недоступна, пока мы явно не откроем эту БД или система (VFP) сама не сделает это автоматически по обратной связи (см. структуру заголовка), где хранится ссылка на эту БД, что, впрочем, никак не мешает доступу к информации.

От старожил слышал, что в Clipper-е (кое-кто еще пользуется им) была возможность расположения в файле дополнительной информации, недоступной вне программы. А так, если необходимо "укрыться", надо придумывать либо что-то искусственное, либо использовать SQL-сервера и/или другие системные "штучки".

Единственный случай, когда я прибегаю к модификации этого байта (кстати, с помощью обычных низкоуровневых функций FOpen, FWrite, ...) - есть восстановление заголовков файла с помощью написанной мною утилиты .

Цитируемый топик MSDN - "Table File Structure (.DBF, .VCX, .DBC, .SCX, .LBX, .MNX, .PJX, .FRX)"


Кто-нибудь подскажет, каким символом обозначить условное знакоместо при поиске в FoxPro2.5? Во многих программах это звездочка(*). В Fox-е этот номер не проходит.
Cykloid

К сожалению, автор вопроса не указал, какой именно поиск он имел в виду: в отдельно взятой строке либо по таблице данных. Предположу, что вопрос относится к последнему варианту.

В FoxPro в командах поиска (Locate и Seek) такие возможности не реализованы. Есть команды Like() и LikeC() (для Unicode-кодировки), которые позволяют определить по шаблону наличие данных в строке. Применимо к поиску по записям эти функции можно использовать в цикле.

Поэтому для исполнения Ваших желаний советую воспользоваться набором SQL-команд, широко используемых в языке. Здесь (в команде SELECT) в шаблоне используются следующие символы:

    1. "%" - аналог "звездочки" (*)
    2. "_" - аналог знака "?"

Для полноты знаний смотрите топик MSDN "SELECT - SQL" и примеры к нему.


Здравствуйте! При импорте файла dbf в Excel выгружается не более 16383 записи, а надо больше. Как быть?
Бронникова Елена

Что тут сказать, есть такое ограничение, вернее сказать было, по заявлениям Microsoft. Но на практике (VFP7.0 SP1) я вижу, что ситуация не изменилась: при экспорте (команда EXPORT) число строк в Excel действительно ограничивается 16K. Все, что я могу пока посоветовать - открыть файл .DBF в Excel с помощью COM/ActiveX, а далее - программно сохранить файл как .XLS. Я так писать - не писал, но вижу, что при открытии .DBF Excel показывает 64K записей - всё лучше.

P.S. Хотелось бы все-таки узнать, что Вы будете делать с этим числом записей в Excel ? :)))


Хотелось бы спросить об отчетах. Я делаю отчет, в базе несколько строк. Надо просуммировать их по какому-ибудь полю. Ставлю переменную, по которой суммирую, ставлю в Calculations-Sum и запускаю отчет. Сумму выдает в конце страницы, а надо, чтобы после последней строчки отчета. Можно ли получить желаемое?
vlad

Вопрос, конечно, для начинающих. Можно было бы просто ответить, а не "высвечивать" его здесь, но вдруг он возникнет у кого-нибудь еще... ;))

Если данные никак логически не подразделяются, выберите Report / Title Summary и checkbox "Summary band". В макете появится новая линейка "Summary". Перетяните и поставьте ваше вычисляемое поле над ней.

Если данные необходимо группировать и получать частные суммы, добавьте группировку (Report / Data Grouping), перетяните подсуммируемое поле над Group Footer в разметке отчета, а в окне "Calculated Field" в Combobox-е выберите появившийся новый пункт .


Программа работает в среде VFP6.0 / Win98. После просмотра / печати отчетов на HP Laserjet 1200 приложение может зависать в самых неожиданных местах. Проверено с различными компьютерами, принтерами, пользователями ;-). Говорят, что проблему можно решить с помощью SP5. Если это так, просьба: "Минчане, откликнитесь, у кого есть этот SP на диске, т.к. качать такой огромный файл с Internet тяжеловато..."
Прохоренко Cветлана Cеменовна

Как отправить приаттаченный файл по Email из VFP 6.0
Vlad

Если найти описание какого-нибудь почтового клиента, то с ним очень можно поговорить, не прислоняя его к стенке (по совету А.Райкина ;)). Вот пример с Microsoft Outlook:

* открытие экземпляра приложения oOutlook=CREATEOBJECT("Outlook.Application") * ссылка на объект "сообщение" oEMes = oOutlook.CreateItem(0) oEMes.To = "vlad@svb.mv.ru" oEMes.Subject = "Тема письма" oEMes.Body = "Тело письма" * Заветное подключение файла oEMes.Attachments.Add("c:\text.txt") oEMes.Send

Обрабатывать почтовые сообщения можно так же через классы MAPI (The messaging application program interface) прямо в форме. В настройке VFP на вкладке Controls установите селектор на ActiveX controls, в списке Selected отметьте классы на "Microsoft MAPI ..." ; в форме в панели Controls нажмите на кнопку ViewClasses, выберите ActiveX Controls; выберите нужные элементы управления и настройте их для работы.

См. Using the MAPI Controls в MSDN.


Привет всем. У меня вопрос насчет программирования. Напишите пример программы которая делает окно активным + разворачивает его на весь экран по Handle (Знаю что это можно сделать при помощи SetForegroundWindow из WinAPI)
Андрей

Имеется база (сетевая) на фокспро, написана 10 лет назад для работы под ДОС. Если установить её на win2000prof (и клиентская часть и серверная) то запросы, обрабатывавющиеся на той же тачке, но под win98 за 2 сек, будут обрабатаваться 20-30 минут. Вопрос: как настроить win2000 , чтобы база работала нормально? (модифицировать базу нельзя) заранее благодарен за любые советы.
Павел

Наши клиенты работают под разными ОС, в том числе и в Win2000, но такого "безобразия" мы не наблюдали. Чтобы давать какие-то конкретные советы входной информации недостаточно. Поэтому пробегусь "в общем, по верхам" в направлении увеличения важности:

  • Логический раздел с данными и ОС должен быть ближе к началу физического диска.
  • Файл подкачки желательно располагать в начале диска с оптимальным размером (устанавливается опытным путем, но лучше его сделать в несколько раз больше количества ОП)
  • Включить DMA дисков;
  • В файловой системе NTFS при открытии файла система обновляет метку последнего доступа к файлу, что замедляет работу (не говоря уже о том, что NTFS - вещь хоть и хорошая, но медленная). Для снятия обновления в реестре по адресу HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> FileSystem cоздаём ключ типа DWORD под названием NtfsDisableLastAccessUpdate, после чего ставим его в 1.;
  • Активный антивирус снижает быстродействие;
  • Если помимо FoxPro работают еще какие-нибудь резидентные программы с маленьким интервалом обновления, их "прожорливость" к процессорному времени можно поубавить с помощью утилиты ResFree, которая позволяет определять после какого по счету прерывания от клавиатуры отдать ресурс процессора системе;
  • Очень важно!!! Если ярлык создан на файл .bat, в котором есть строка с вызовом FoxPro, последняя ("лиса") будет работать в нерасширенном режиме, что крайне отрицательно скажется на производительности. Лучше создавать ярлык на .exe или отредактировать файл _default.pif (см. вопрос №7 выше);

Где можно прослушать курс лекций по Visual Foxpro и по переходу на него c Foxpro под DOS?
Калицкий Юрий

К сожалению, в Беларуси таких мест немного. Одно из них - фирма "ЛюксСофт" ;)). Ранее свою готовность выказывали наши коллеги из Гродненского университета, но как нынче обстоят у них дела - нам не известно. А вообще, мы были бы очень рады, если бы кто-то сообщил о других учебных центрах Беларуси.


Использую элемент управления ListBox для выбора значений из поля таблицы.При движении курсора с помощью стрелок клавиатуры "вверх,вниз" при выборе из списка происходит замедление движения или проскакивание на несколько позиций. Выбор при помощи мыши происходит нормально.Замечено, что такое происходит не на всех ПК и это не зависит от типа ПК. Подозреваю, что дело в Windows. Заранее благодарен.
Vik

Что-то конкретное сказать здесь затрудняюсь. Может, срабатывает психологический момент, когда мы от клавиатуры ждем более быстрой работы (все знают, что с клавиатурой в принципе работать быстрее). При этом забываем о том, что когда строка в списке выделена и мы с помощью стрелок перемещаемся, автоматически происходит выделение новой строки. При действиях мышью мы только скроллируем список. А вообще, багов в VFP предостаточно.


Не могу запустить систему Foxpro 2.5 под Windows на комьютерах с процессорами Pentium III, Pentium IV, на которых установлены операционные системы Windows 2000 , Windows XP. Возникает ошибка деления на ноль или переполнения. На комьютерах с процессором Pentium II и более раннмми процессорами, на которых установлены те же операционные системы, Foxpro 2.5 запускается нормально. Подскажите, что нужно сделать, чтобы Foxpro 2.5 работала на комльютерах c процессором Pentium III, Pentium IV ?
Тюрников М.В.

Здравствуйте, господин президент! Мне посоветовали обратиться к Вам с вопросом об адресе украинского аналогичного клуба. Помогите, пожалуйста если есть такая возможность.
Николай.

К сожалению, ссылок по Украине в Internet-е нами найдено не было, что кажется довольно странным. Обращайтесь с вопросами к нам или на множество российских сайтов (см. "Ссылки на ресурсы по теме") .


При создании exe-шника ошибок нет, при запуске его срабатывает ошибка "невозможно обновить курсор" на команде append blank.
foxer

Причина видится в тривиальном - снимите флаг Read Only с обрабатываемого файла.


Как преобразовать отчет, подготовленный в VFP в формат HTML с сохранением всех прибамбасов: фонты, рамки и.т.д.
D.E.I.

Никак. После преобразования в HTML все навороты, в том числе графика, теряются. Так что пишите конвертер ручками или обратите свой взор на наш Quant for Windows. В ближайшие дни (сегодня 01.10.2002) он будет выложен на сайт фирмы "ЛюксСофт" в новом, обновленном состоянии.


Подскажите из-за чего может возникать ошибка 1449 после выполнения
= requery("имя представления")
Grig

Как скопировать открытый файл (.dbf и .idx)
Иванеко Алексей

Я так понял, Вы хотите решить вопрос "горячего" архивного копирования. По моему разумению, так делать нельзя, потому что, если Вы в программе не используете периодически сброс буферов на диск с помощью flush(), в памяти могут оставаться не сохраненные данные.

А в принципе, если файл открыт в режиме Shared, то вопрос можно решить с помощью:

  1. Выполнения команды DOS - Run copy <имя исходного файла dbf> <имя конечного файла или просто путь>
  2. Создать конечный файл аналогичной структуры и выполнить находясь на нем Append From <исходный файл dbf>
  3. Более изощренный способ через низкоуровневые операции: fopen(), fcreate(), fread(), fwrite().

Если файл открыт монопольно, то никак.


Создаю при помощи построителя обьект Grid для вывода данных из таблицы. При просмотре работы скроллинг Grid при действии мыши работает нормально. Вношу корректировки в обьект Grid (размеры колонок, надписи колонок, фонты и т.д). При последующем запуске в работу, скроллинг Grid при помощи мыши прекращает работу и вообще на мышь не реагирует, хотя, если стать на строку, то при помощи стрелок можно продвигаться по строкам. С благодарностью
Vik.

Как убрать Авто-подсказку в редакторе VFP7 ? расшифрую: При наборе ключевых фраз VFP дописывает оператор не дожидаясь вашего набора, при этом под руками мельтешит полная врсия всего оператора. Например вы хотите написать "sele 0" vfp вам выдаст полное описание select SQL закрыв пол экрана. Это что, шутки Гейтса ?
Дмитрий Передистый

В системном меню выберите Tools/IntelliSense Manager. Все остальное - по вкусу...


Команда SET PRINT TO NAME ... не однозначно отрабатывает на машинах различных пользователей, хотя на машине где производится "сборка" проекта все нормально. Использование GETPRINTER() - нежелательно, поэтому использую APRINTERS(m), а затем SET PRINT TO NAME m(i,1). Например: ... APRINTERS(m), SET PRINT TO NAME m(1,1) REPORT FORM F1 SET PRINT TO NAME m(2,1) REPORT FORM F2 ... Программа откомпилирована с формами отчетов. Формы отчетов специально созданы при отсутствии установленных принтеров на машине "сборки" проекта. Версия VFP 5.0. Если можете, подскажите. Заранее Вам благодарен.
Евгений Дорошенко

Мне не доводилось много печатать под VFP, но когда-то я писал на Access-e и наблюдал подобные картины, когда один и тот же отчет на разных принтерах вел себя по-разному ("неправильно" ;-)). Это и естественно, т.к. контекст устройства (DC, Device Context - термин из C++ MFC) у каждого из устройств свой: будь то экран или разновидности принтера. Составленный отчет без учета этих особенностей может быть непредсказуем.

Возможно, сказывается старая (5-я) версия VFP и в последующих версиях этот "баг" исправлен.

Может, я и заблуждаюсь. В этом случае остается надеяться, что Вам напишут по указанному мною выше адресу.


Программа работает на VFP6.0 под Win98. Из-за специфики работы поставили лазерный принтер HP Laser Jet 1000. После печати 1 документа из программы на принтер комп намертво зависает , приходится перезагружать кнопкой Reset. Драйвера к принтеру стоят родные. Получается что фокс конфликтует с драйверами HP ?
Veronika

Подобная проблема была у Прохоренко Светланы Семеновны, писавшей нам ранее. К сожалению, никто не ответил на ее вопрос и человек был вынужден разрешать его самостоятельно. А сделала она это заменой "родного" для принтера драйвера на более общий HP LaserJet.


Требуется создать документы в Word, в которых используются данные из таблиц Visual FoxPro. Эти документы будут использовать приложение, написанное на VFP. Конструктор отчетов (Report в VFP) для создания таких документов не подходит. Какими средствами лучше воспользоваться ?
Svetlana Matuk

Вы сами почти ответили на вопрос: нужно лишь создать документ-шаблон в Word с полями, куда будут подставляться значения из VFP-программы. Примеры для Word и Excel хорошо описаны в книге "Использование VFP 6" М.Базияна (глава 21)


Меня достало досовое окно при разархивации arj-файла. Хочется встроить разархивацию (именно arj!) в свою прогу. Есть-ли какой выход. В качестве подсказки - имеется СИшный код unarj.
Колипов В.Г.

А меня "достало" также и архивация arj в DOS-сессии ;-)). И эту проблему решить еще труднее, потому что найти в Inet-е распаковщик гораздо проще, чем архиватор. Если вернуться к "нашим баранам", могу посоветовать в данной ситуации или программно вызывать WinArj (есть такой "зверь", но мне он не симпатичен), или, при наличии исходных текстов на СИ, скомпоновать библиотеку для Foxpro и счастливо ею пользоваться.


У Label на форме есть есть property - character_set т.е. есть возможность выбирать набор символов из множества : Кириллица, Центральноевропейский и т.д. Вот и попробуйте выбрать в Report в диалоге Format/Font какой-нибудь другой набор символов для Label.Он берет по умолчанию Кириллицу. Там вообще этот список недоступен для редактирования. А мне очень нужно. Может кто знает , но сдается мне что это глюк и обойти его нельзя.
Павел

При создании Multi-Threaded DLL-ки функция CPCURRENT возвращает 1251, а при работе DLL-ки - 1252. Поэтому, когда DLL-ка пишет в таблицу с кодировкой 1251 русский текст, в таблице появляются символы другой кодировки. CPCONVERT() при этом не работает. Что нужно сделать, чтобы DLL-ка возвращала CPCURRENT()=1251?
Павлов А.А.

Так сложилось что программа на VFP 7.0 пользует SQL сервер и лежащие на другом сервере таблицы DBF. Когда из фоксины проект запускаешь - все нормально, а когда собираешь exe файл - начинаются страшенные тормоза при работе как раз с DBF таблицами. Ответы лучше по почте.
Vyacheslav Turin

На предприятии существует множество отделов (заранее не известно сколько) необходимо их отображать поредством раскрывающихся вкладок (папок). Может кто уже делал, подскажите идею.
Sergik

Фирмой "ЛюксСофт", на сайте которого располагается VFP-клуб, данный вопрос уже давно решен, как в DOS, так и в Windows вариантах. Для произвольной таблицы (набора связанных таблиц) можно построить дерево по заданным выражениям (полям) группировки (классификации). Причем, подобных деревьев для набора данных можно построить множество (разные "разрезы"). Если заинтересовало, скачайте версию под DOS и/или под Windows.



 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.