Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Пожалуйста подскажите / 8 сообщений из 8, страница 1 из 1
28.08.2003, 00:25
    #32249421
petroff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста подскажите
Уважаемые люди !
Пожалуйста, подскажите как решить такую задачу
Есть *.dbf 261 метров, там три столбца с ФИО.
Задача : нужно выдрать один тока столбец с фамилиями и экспортировать в Ехель, для последущей печати.
Но! экспорт у меня не получаеться, вернее тока по 16000 записей, а как бы сделать чтобы все сразу?
И второе, после экспорта, список ставиться по алфавиту, а мне нужно в разнобой,
У меня есть foxPro 6.0 (англ), подскажите плиз, подробную последовательность выполнения операций(было хорошо с примером) , если такое возможно.
О БД имею очень слабое представление((
Спасибо за любые советы.
С Уважением Петрофф
...
Рейтинг: 0 / 0
28.08.2003, 00:59
    #32249429
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста подскажите
16000 это, IMHO, ограничение фоксовского экспорта. Попробуй свой файл открыть средсвами Excell-я - он неплохо умеет открывать DBF-ки. Но все равно максимальное количество строк в Excell-е - 65536. Если в таблице строк больше - ничего не получится... А что мешает распечатать инфу средсвами самого Фокса? Для такого простого отчета хватит - встроеного визарда - Tools->Wizard->Report и дальше по подсказкам. Потом открыть отчет в дизанере и привести его к тому виду, к какому нужно
...
Рейтинг: 0 / 0
28.08.2003, 09:56
    #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
28.08.2003, 10:27
    #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
28.08.2003, 11:02
    #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
28.08.2003, 11:59
    #32249848
Aijik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста подскажите
Off: Кстати, всё вышеперечисленное есть наглядный пример отношения MS к фоксу и его популяризации. Родной продукт не может понять формат родного продукта (хотя для этого, я уверен, нужно было пальцем пошевелить - не понимаю, какие тут могут быть принципиальные сложности)... Так бы все юзеры Excel, Access хотя бы понятие имели, что есть такой продукт как MS Visual FoxPro и у него есть свой формат, легко интегрируемый в продукты MS Office... Нонсенс, блин...
...
Рейтинг: 0 / 0
28.08.2003, 12:16
    #32249882
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста подскажите
2Aijik
Согласен, но кое-что MS все таки сделал.
Тот же твой пример передачи массива в Excel начиная с VFP7.
В VFP8 COPY TO поддерживает все 65000 элементов...
...
Рейтинг: 0 / 0
28.08.2003, 13:25
    #32250017
petroff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста подскажите
Большое спасибо всем за помощь!

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


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