Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Коверкание DBF - файлов / 11 сообщений из 11, страница 1 из 1
20.05.2005, 11:44:55
    #33076588
Коверкание DBF - файлов
Доброго времени суток!

Заказчику не нравится форма выдачи информации.

вывожу я в такой форме, т.е. прямо из DBF файла:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
ID|Name | S  | P
 10    ФТ     4      0 
 10    АМ     2      1 
 20    АМ     3      1 
 30    КЛ     5      3 
.      .      .    .
.      .      .    .
.      .      .    .


а надо вот так( 1 ):

Name|  10   |   20  |  30 
ФТ     4 - 0     0 - 0    0 - 0 
АМ     2 - 1     3 - 1    0 - 0 
КЛ     0 - 0     0 - 0     5 - 3 

ну или вот так( 2 ):

Name|  10   |  20   |  30   |
ФТ     4        0        0 
       0        0         0 
___________________
АМ   2        3         0 
      1        1          0 
___________________
КЛ    0        0         5 
       0        0        3 
___________________

... ну или в другой похожей на эти форме..

* 10, 20, 30 - шапки, зависящие от ID

Желательно, что б это все хранилось в массиве или в dbf, т.к. мне придется загонять данные в грид и в репорт превью.

может у кого-то есть какие-нибудь идей ??

п.с. в голову ничего не лезит =)
...
Рейтинг: 0 / 0
20.05.2005, 12:03:26
    #33076644
ГенГрум
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коверкание DBF - файлов
А какие проблемы с гридом? Ты че не можешь в нем прописать поле 2 на позиции 1 или ты используешь "BROWSE LAST" всесто грид на форме?
...
Рейтинг: 0 / 0
20.05.2005, 12:16:21
    #33076692
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коверкание DBF - файлов
Так у него же задача "развернуть" таблицу. Т.е. значения строк должны стать именами столбцов. А имена столбцов - значениями строк.

Для начала, есть системное ограничение: количество полей (столбцов) не может быть больше 254.

Есть гарантия, что количество уникальных значений поля ID не превысит эту величину?

В FoxPro такие вещи называются "кросс-таблицы". В поставке FoxPro есть такая программа

VFPXTAB.PRG

Она лежит в корневом какталоге FoxPro.

Открой этот файл на редактирование и в заголовке этого файла почитай как именно его вызвать

MODIFY COMMAND (_GenXTab)
или
MODIFY COMMAND (HOME()+"VFPXTAB.PRG")

То же самое можно сделать через Wizard (пункт главного меню Tools - Wizards - Query - выбрать Cross Tab Wizard)

Это не совсем то, что тебе нужно, но как образец для "разворачивания" таблицы сойдет
...
Рейтинг: 0 / 0
20.05.2005, 12:22:00
    #33076712
Коверкание DBF - файлов
to ГенГрум :

Да проблема не с гридом.

мне надо переделать файл, так, что бы записи 10, 20, 30 стали полями
...
Рейтинг: 0 / 0
20.05.2005, 12:34:07
    #33076759
Коверкание DBF - файлов
to ВладимирМ
спасибо, почитаем !

столбцов не более, чем 23 будет..
т.е. 10,20,30,...,100 + Name = 11 - столбцов
...
Рейтинг: 0 / 0
20.05.2005, 13:04:27
    #33076868
Коверкание DBF - файлов
to ВладимирМ
спасибо, почитаем !

столбцов не более, чем 23 будет..
т.е. 10,20,30,...,100 + Name = 11 - столбцов
...
Рейтинг: 0 / 0
22.05.2005, 04:10:27
    #33078891
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коверкание DBF - файлов
Hi Евгений!

Если столбцов всегда фиксированное количество, то можно сделать "облегчённый" кросс-запрос - используя IIF() в качестве выражения для этих "новых колонок".
SELECT tbl.Name, ;
SUM(IIF(tbl.ID=10, tbl.P, 00000)) AS p10, ;
SUM(IIF(tbl.ID=10, tbl.S, 00000)) AS s10, ;
...
GROUP BY Name

Если P и S надо в одной строке сцепить - то вторым запросом. Если лучше чтоб по разным строкам были - то по UNION 2 запроса сцепи, в одном подсчитывая P а во втором S-ы.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
23.05.2005, 11:55:01
    #33079675
Коверкание DBF - файлов
\\ Igor Korolyov


ID - варьируется

в том то и дело - нужно "слить" значения, и, желательно разделяя их дефисом.
вторым запросом - это каким ??
...
Рейтинг: 0 / 0
24.05.2005, 01:54:57
    #33081083
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коверкание DBF - файлов
Hi Евгений!

> в том то и дело - нужно "слить" значения, и, желательно разделяя их дефисом.
> вторым запросом - это каким ??

SELECT Name, PADR(TRANSFORM(p10) + "-" + TRANSFORM(s10), 30) as a10, ...

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
25.05.2005, 11:05:51
    #33083419
Коверкание DBF - файлов
to Igor Korolyov

красота !!

спасибо!

а можно этот запрос сделать универсальным..так, что б можно было подключать файл-справочник, используя ID, - как ключ ??
...
Рейтинг: 0 / 0
27.05.2005, 00:26:32
    #33086381
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Коверкание DBF - файлов
Hi Евгений!

Этот - нет. (Он на то и написан чтобы показать простую, но _неуниверсальую_ альтернативу монстру типа vfpxtab) Универсально (более-менее) это делает vfpxtab - посмотри как он это делает, и если не очень нравится - меняй. Также я встречал ссылку на fastxtab - какой-то самописный вариант кросс-генератора, по идее он должен быть лучше (по крайней мере быcтрее :) ) чем штатный - поищи и ты его (в районе universalthread.com)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Коверкание DBF - файлов / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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