Фокспро поиск по шаблону

Фокспро поиск по шаблону

Объектно-ориентированный и процедурный язык программирования систем управления реляционными базами данных, разработанный корпорацией Microsoft.

Новости

Visual FoxPro 9 позволяет создавать ещё более производительные приложения баз данных. Двадцатиление FoxPro! Microsoft принимает поздравления. Visual FoxPro Toolkit for .NET — более 225 функций VFP 7.0, для языков .NET (подробнее)

Функция LOCFILE( )

Ищет файл на диске и возвращает имя файла вместе с его путем.

LOCFILE( cFileName [, cFileExtensions ] [, cDialogCaption ] [, cCreatorType ])

Задает имя файла, который нужно найти. Если cFileName содержит только имя файла, функция LOCFILE( ) сначала будет искать в каталоге Visual FoxPro, используемом по умолчанию. Если там файла не окажется, начнется просмотр пути Visual FoxPro. Для задания пути Visual FoxPro пользуйтесь коман ой SET PATH.

Если cFileName вместе с именем файла содержит путь, будет просматриваться заданная область. Если там файл не будет найден, LOCFILE( ) перейдет к поиску в каталоге Visual FoxPro, используемом по умолчанию, а затем к поиску по пути Visual FoxPro.

Если файл найден, LOCFILE( ) возвращает его имя и путь.

Задает расширения имени для искомого файла. Если имя файла, заданное аргуме том cFileName , не включает расширение, Visual FoxPro дополняет его расширениями из списка cFileExtensions и продолжает поиск файла.

Аргумент cFileExtensions также задает расширения имен файлов, которые будут отображаться в диалоговом окне Open в случае, когда заданный файл не удается найти. Список расширений име файлов Visual FoxPro и соответствующих типов создающих их приложений см. в азделе Расширения имен файлов и типы файлов.

cFileExtensions можно задавать в разных видах:

Если cFileExtensions содержит одно расширение (например .PRG), отображаются только файлы с данным асширением имени.

cFileExtensions может содержать список расширений имен файлов, разделенных точкой с запятой. Например, если задать PRG;FXP, будут отображены все файлы с расширениями имен .PRG и .FXP.

Если у файлов одинаковые имена, но разные расширения (например CUSTOMER.PRG и CUSTOMER.FXP), будет отображен только тот из этих файлов, расширение имени кото ого стоит первым в списке cFileExtensions .

cFileExtensions может содержать список расширений имен файлов, разделенных вертикальными ли иями (например, PRG|FXP). В этом случае отображаются все файлы с любым из данных расширений, даже если у них одинаковые имена.

Если в качестве cFileExtensions задана просто точка с запятой (;), отображаютс все файлы, не имеющие расшире ия имени.

Если cFileExtensions пустая строка, а аргумент cCreatorType опущен, отображаются все файлы текущего каталога.

cFileExtensions может также включать символы подстановки (* и ?). Будут отображены все файлы, расширения имен которых удовлетворяют данному критерию с учетом символов по становки. Например, если в качестве cFileExtensions задать ?X?, отображаются все файлы с расширениями имен .FXP, .EXE и .TXT.

Задает текст, который вы намерены использовать в качестве приглашения для по ьзователя. Этот текст фигурирует в диалоговом окне Open.

Допустимо только в FoxPro для Macintosh.

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

Список расширений имен файлов Visual FoxPro и соответствующих типов создающих их приложений см. в разделе Расширения имен файлов и типы файлов.

Диалоговое окно Open отображается в том случае, когда файл не удалось найти в каталоге, используемом по умолчанию, в каталогах пути Visual FoxPro или в точно указанном месте. Диалоговое окно Open можно использовать для поиска файла. Ког а в диалоговом окне Open выбирается файл, его имя возвращается вместе с путем к нему.

Если выйти из диалогового окна Open, нажав кнопку Cancel или клавишу Esc , или кнопку Close меню Control, Visual FoxPro сгенерирует сообщение об оши ке, а LOCFILE( ) не возвратит никакого значения.

Он-лайн самоучитель Visual FoxPro

ГЛАВА 9
Запросы к базе данных

Например, вам необходимо выбрать из таблиц информацию о клиентах, проживающих в Москве и Московской области, или сформировать список клиентов, купивших в последний месяц товаров на сумму свыше 5000 рублей, и упорядочить их в алфавитном порядке по полю, содержащему фамилии клиентов. Для решения таких задач предназначен конструктор запросов и команда SELECT языка Visual FoxPro.

С помощью конструктора запросов Visual FoxPro вы можете формировать различной сложности критерии для выбора записей из одной или нескольких таблиц, указывая при этом, какие поля должны быть отображены в запросе. Над полями, выбираемыми из таблиц с помощью запросов, можно выполнять различные вычисления.

Рис. 9.1. Ввод условия выборки в мастере запросов

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

  1. На вкладке Data (Данные) конструктора проекта выберите группу Queries (Запросы).
  2. Нажмите кнопку New (Новый).
  3. В открывшемся диалоговом окне New Query (Новый запрос) нажмите кнопку New Query (Новый запрос). Открывается диалоговое окно выбора таблиц Add Table or View (Добавить таблицу или представление данных).
  4. В этом диалоговом окне выберите таблицы, данные из которых хотите использовать в запросе, и с помощью кнопки Add (Добавить) перенесите их в окно конструктора запросов.
  5. Завершив выбор таблиц, нажмите кнопку Close (Закрыть).

На экране появляется окно конструктора запросов (рис. 9.2), которое содержит названия выбранных таблиц, а в основном меню появляется пункт Query (Запрос). Можно приступать к формированию условий запроса.

Для открытия ранее созданного запроса в окне конструктора запросов на вкладке Data (Данные) окна проекта в группе Queries (Запросы) найдите модифицируемый запрос, установите на него курсор и нажмите кнопку Modify (Модифицировать).

Далее, открывая в конструкторе запросов необходимые вкладки, вы выполняете следующие действия:

  • выбираете поля результирующей таблицы запроса;
  • формируете вычисляемые поля;
  • указываете критерии для выборки, группировки и упорядочения данных;
  • задаете, куда выводить результат выборки.

В верхней части окна конструктора запросов расположена панель, на которой отображаются используемые в запросе таблицы. Ниже находятся вкладки, предназначенные для выбора полей запроса и формирования условий выборки. Назначение этих вкладок приведено в табл. 9.1.

Читайте также:  Asus ap bank что это за программа

Рис. 9.2. Окно конструктора запросов с выбранной таблицей клиентов

Таблица 9.1. Назначение вкладок окна конструктора запросов

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

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

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

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

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

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

Третий, стандартный способ — использовать класс _frx2html (_internet.vcx). Пример : . SamplesVfp98SolutionFfcdohtml.scx

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Автонумерация рисунков в ворде

Могу предложить Вашему вниманию свободно распространяемый инсталятор для программ 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 файлами.
  • Инсталяция и деинсталяция в ускоренном режиме (без диалогов, окон, сообщений).
  • Настройка деинсталятора.

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

* если бы в поле числа были не в псевдодесятичном виде (20 в 16 с/с = 32 в 10 с/с), эта функция была бы не нужна

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

(Игнатенко Алёша )

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

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

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

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

Я было, сначала разделил 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)"

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

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

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

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

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

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

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

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

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

Читайте также:  Смартфон не видит сеть 5 ггц

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

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

См. Using the MAPI Controls в MSDN.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ссылка на основную публикацию
Adblock detector