powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Пожалуйста подскажите
8 сообщений из 8, страница 1 из 1
Пожалуйста подскажите
    #32249421
petroff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые люди !
Пожалуйста, подскажите как решить такую задачу
Есть *.dbf 261 метров, там три столбца с ФИО.
Задача : нужно выдрать один тока столбец с фамилиями и экспортировать в Ехель, для последущей печати.
Но! экспорт у меня не получаеться, вернее тока по 16000 записей, а как бы сделать чтобы все сразу?
И второе, после экспорта, список ставиться по алфавиту, а мне нужно в разнобой,
У меня есть foxPro 6.0 (англ), подскажите плиз, подробную последовательность выполнения операций(было хорошо с примером) , если такое возможно.
О БД имею очень слабое представление((
Спасибо за любые советы.
С Уважением Петрофф
...
Рейтинг: 0 / 0
Пожалуйста подскажите
    #32249429
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
16000 это, IMHO, ограничение фоксовского экспорта. Попробуй свой файл открыть средсвами Excell-я - он неплохо умеет открывать DBF-ки. Но все равно максимальное количество строк в Excell-е - 65536. Если в таблице строк больше - ничего не получится... А что мешает распечатать инфу средсвами самого Фокса? Для такого простого отчета хватит - встроеного визарда - Tools->Wizard->Report и дальше по подсказкам. Потом открыть отчет в дизанере и привести его к тому виду, к какому нужно
...
Рейтинг: 0 / 0
Пожалуйста подскажите
    #32249621
karly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Burn
Не совсем так. Fox экспортирует в формат Excel'95,
а вот у него уже ограничение - 16 тыс. строк.
В Excel'97 максимальное количество строк увеличили
до указанных 65тыс. с хвостиком.

2Petroff
Кроме совершенно здравой идеи распечатать
через фоксовский Report Designer могу предложить
только экспортировать порциями по 16 тыс.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Go top
N =  0 

Do while not eof()

 lcFileName =  "File"  + transform(N)
 copy to (lcFileName) type xl5 next  16000 
 N = N +  1 

EndDo
...
Рейтинг: 0 / 0
Пожалуйста подскажите
    #32249673
Aijik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 karly

не совсем так

Ограничение на экспорт из фокса в эксель только 16,384 записей связано даже не с форматом экспорта, а с внутренним ограничением команд COPY TO и EXPORT в VFP3-7... Это ограничение было убрано из фокса только в 8-й версии


Number of Rows for Exporting Data Cursors
Visual FoxPro raises the maximum from 16,384 to 65,535 rows when exporting a data cursor to an Excel spreadsheet. The new limit includes one row reserved for the field header. For more information, see EXPORT Command, COPY TO Command, and The Process of Exporting Data.


(с) Behavior Changes Since Visual FoxPro 7.0
MSDN
...
Рейтинг: 0 / 0
Пожалуйста подскажите
    #32249738
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того, чтобы Excel смог "нормально" открыть DBF-таблицу эта таблица должна быть в формате FOX2X причем в кодовой странице 866. Все прочие форматы будут отображать "закорючки" вместо русских символов.

Как организовать случайный порядок следования записей зависит от того как именно записаны данные в твоей таблице. Если их физический порядок следования и так случаен, то ничего специально предпринимать не надо. А вот если они как-то упорядочены, тогда следует предпринять ряд действий.

Предположим, твоя таблица имеет имя MyTab и поле с фамилией называется SurName. Также предполагаю, что записи физически упорядочены по алфавиту. Тогда процесс разбивается на 2 этапа:

1 Этап - формирую временную таблицу, где фамилии расположены в произвольном порядке:

RAND(-1) && обязательная команда, чтобы последующие RAND() действительно были случайными

SELECT RAND() as SortOrd, SurName ;
FROM MyTab ;
INTO CURSOR CurTMP NOFILTER ;
ORDER BY 1

2 Этап - экспортирую полученную выборку в специальную DBF-таблицу, которую сможет нормально прочитать Excel

select CurTMP
COPY TO tabExcel FIELDS SurName TYPE FOX2X AS 866

В результате, получится таблица tabExcel.dbf которая без проблем откроется в Excel.
...
Рейтинг: 0 / 0
Пожалуйста подскажите
    #32249848
Aijik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Off: Кстати, всё вышеперечисленное есть наглядный пример отношения MS к фоксу и его популяризации. Родной продукт не может понять формат родного продукта (хотя для этого, я уверен, нужно было пальцем пошевелить - не понимаю, какие тут могут быть принципиальные сложности)... Так бы все юзеры Excel, Access хотя бы понятие имели, что есть такой продукт как MS Visual FoxPro и у него есть свой формат, легко интегрируемый в продукты MS Office... Нонсенс, блин...
...
Рейтинг: 0 / 0
Пожалуйста подскажите
    #32249882
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Aijik
Согласен, но кое-что MS все таки сделал.
Тот же твой пример передачи массива в Excel начиная с VFP7.
В VFP8 COPY TO поддерживает все 65000 элементов...
...
Рейтинг: 0 / 0
Пожалуйста подскажите
    #32250017
petroff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо всем за помощь!

С Уважением Петрофф
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Пожалуйста подскажите
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]