Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Простейшая задача, раньше делал, но забыл, выдача из DBF файла / 25 сообщений из 26, страница 1 из 2
24.06.2016, 07:26
    #39261487
p672
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
Имеется в наличии DBF файл всего с ОДНИМ полем, примерно такой структуры, с несколькими записями упорядоченными(отсортированными):

imja
----
саша
саша
саша
иван
иван
иван
иван
федор
федор
федор
ольга
ольга
ольга

Стоит задача: выдать все одинаковые строки(записи) в цикле из этого DBF файла в файлы EXCEL
Это будет небольшая программа около 10 строк примерно такой структуры с циклом:

do while !eof()
...
export to &имя all for имя=file.imja
...
enddo

Раньше я точно такое делал, но забыл, не могу вспомнить, нужен пример.
Заранее благодарен.
...
Рейтинг: 0 / 0
26.06.2016, 18:41
    #39262593
psj69
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
p672,

SET TALK OFF
SET SAFETY OFF
SET ENGINEBEHAVIOR 70
SELECT imja,COUNT(*) as cnt FROM table1 GROUP BY 1 ORDER BY 1 INTO CURSOR tmp_name
SELECT TMP_NAME
GO TOP

SCAN
SCATTER MEMVAR
WAIT WINDOW imja +STR(m.cnt) NOWAIT
SELECT TABLE1
ON ERROR WAIT WINDOW "ERROR EXPORT : "+imja timeout 3
EXPORT TO ALLTRIM(m.imja)+'.XLS' TYPE XLS FOR ALLTRIM(imja)==ALLTRIM(m.imja)
ON ERROR
SELECT TMP_NAME
ENDSCAN

WAIT clear
CLOSE TABLES

Вот только создвать таблицы с одним полем не солидно.
Нужен еще хотя бы идентификатор.
...
Рейтинг: 0 / 0
28.06.2016, 11:42
    #39263577
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
psj69SELECT imja,COUNT(*) as cnt FROM table1 GROUP BY 1 ORDER BY 1 INTO CURSOR tmp_nameа distinct чем плох?
...
Рейтинг: 0 / 0
29.06.2016, 21:04
    #39265030
psj69
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
tanglir,
Не плох.Но мне хотелось посмотреть сколько по каждому имени записей.
...
Рейтинг: 0 / 0
30.06.2016, 15:32
    #39265614
p672
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
psj69

Всё получилось как надо, я удовлетворён, БЛАГОДАРЮ, вы очень помогли.
Ваш код написан не зря, востребован и пригодится еще.



Примерно подобную программу можно сделать еще меньшим объёмом , я делал точно , но забыл как.
Помню только что через конструкцию DO WHILE !EOF() ENDDO и намного проще.
Там совсем маленькая программа получается.
...
Рейтинг: 0 / 0
30.06.2016, 15:38
    #39265623
p672
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
На самом деле в DBF файле несколько полей но по существу программой используется только одно поле.
...
Рейтинг: 0 / 0
30.06.2016, 15:57
    #39265649
p672
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
Я собирался примерно вот в таком виде программу сделать, но где-то есть ошибка:

fin - таблица
zakaz - поле

текст программы (НЕ работает) что-то в этом роде:

USE fin IN 0
GO top
a=fin.zakaz
b=0
DO WHILE !EOF()
IF b=0
EXPORT TO &a XLS ALL FOR a=fin.zakaz
b=1
endif
skip
IF a#fin.zakaz
a=fin.zakaz
b=0
ENDIF
ENDDO
...
Рейтинг: 0 / 0
01.07.2016, 06:05
    #39266001
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select distinct zakaz from fin into cursor qwe
select qwe
scan
  lcname=qwe.zakaz
  select fin
  EXPORT TO (lcname) XLS ALL FOR zakaz=lcname
  select qwe
endscan

безо всяких а, бэ, ифов, дуев и гоутопов
...
Рейтинг: 0 / 0
01.07.2016, 07:23
    #39266012
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
Если таблица отсортирована, то так
Код: sql
1.
2.
3.
4.
5.
6.
7.
USE fin IN 0
lnPrev=-1 && Заведомо несуществующее значение
sele fin
scan for lnPrev!=fin.zakaz
     lnPrev=fin.zakaz
     EXPORT TO (lnPrev) XLS ALL WHILE lnPrev=fin.zakaz
endscan
...
Рейтинг: 0 / 0
02.07.2016, 21:20
    #39266883
p672
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
Спасибо большое за примеры.
Циклом scan endscan не пользовался, но теперь буду знать как проще такие задачи решать.

Тяжело мне, запутался в трёх соснах, голова не варит последнее время, хотя на VFP давно пишу.
Большое спасибо всем.

И если есть еще варианты как решить такую задачу то приму и буду рад.
...
Рейтинг: 0 / 0
06.07.2016, 02:57
    #39268419
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
не понял - а зачем тут цикл?
Запросом всё гораздо быстрее и проще.
...
Рейтинг: 0 / 0
07.07.2016, 06:16
    #39269376
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
982183,

ну давай, создай в запросе энное количество йоксель-файлов...
...
Рейтинг: 0 / 0
08.07.2016, 02:19
    #39270226
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
Подразумевалось, что запросом в данном случае гораздо удобнее выбрать нужные строки, чем циклом.
...
Рейтинг: 0 / 0
08.07.2016, 09:47
    #39270301
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
982183,

а файлы, файлы-то как потом создавать?
...
Рейтинг: 0 / 0
11.07.2016, 03:41
    #39271523
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
EXPORT TO
...
Рейтинг: 0 / 0
11.07.2016, 07:45
    #39271553
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
982183EXPORT TOв запросе?
...
Рейтинг: 0 / 0
11.07.2016, 09:19
    #39271591
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
после запроса
...
Рейтинг: 0 / 0
11.07.2016, 11:51
    #39271683
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
982183после запроса
а теперь смотрим сюда 19357714
а потом сюда 19373430
и задаёмся вопросом - зачем давать туманный совет, если уже есть рабочий код?
...
Рейтинг: 0 / 0
12.07.2016, 02:09
    #39272120
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
Именно об этом и говорю.
От SCAN надо отходить.
...
Рейтинг: 0 / 0
12.07.2016, 06:02
    #39272137
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
982183От SCAN надо отходитьТогда опять встаёт вопрос - как будем создавать энное количество эксель-файлов? Что "запросом" их не создать, вроде уже выяснили.
...
Рейтинг: 0 / 0
12.07.2016, 14:18
    #39272432
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
tanglir982183От SCAN надо отходитьТогда опять встаёт вопрос - как будем создавать энное количество эксель-файлов? Что "запросом" их не создать, вроде уже выяснили.В общем-то, если вы не в курсе, фокс поддерживает в списке выбора команды Select sql юзерские функции, в которых, как ни странно, можно и файлики создавать. :)
...
Рейтинг: 0 / 0
13.07.2016, 02:09
    #39272747
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
Пускай он поддерживает всё что угодно.
Но если человек хочет дальше развиваться,
переходить на другие платформы,
то SQL - это более удобная/стандартная/масштабируемая вещь
...
Рейтинг: 0 / 0
13.07.2016, 07:21
    #39272774
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
правильный проходящий.,

я в курсе, но такое знатное извращение мне в голову просто не приходило :)
...
Рейтинг: 0 / 0
14.07.2016, 02:38
    #39273470
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
Извращение конечно чудное, но иногда необходимое.
Но крайне редко.
...
Рейтинг: 0 / 0
15.07.2016, 03:15
    #39274229
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая задача, раньше делал, но забыл, выдача из DBF файла
Сглазили ....
Встала задача со SCAN.....
Надо не создавать табличку, а менять данные в существующих...
Карма.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Простейшая задача, раньше делал, но забыл, выдача из DBF файла / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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