powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Коверкание DBF - файлов
11 сообщений из 11, страница 1 из 1
Коверкание DBF - файлов
    #33076588
Доброго времени суток!

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

вывожу я в такой форме, т.е. прямо из 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
Коверкание DBF - файлов
    #33076644
Фотография ГенГрум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какие проблемы с гридом? Ты че не можешь в нем прописать поле 2 на позиции 1 или ты используешь "BROWSE LAST" всесто грид на форме?
...
Рейтинг: 0 / 0
Коверкание DBF - файлов
    #33076692
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так у него же задача "развернуть" таблицу. Т.е. значения строк должны стать именами столбцов. А имена столбцов - значениями строк.

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

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

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

VFPXTAB.PRG

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

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

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

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

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

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

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

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

столбцов не более, чем 23 будет..
т.е. 10,20,30,...,100 + Name = 11 - столбцов
...
Рейтинг: 0 / 0
Коверкание DBF - файлов
    #33078891
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Коверкание DBF - файлов
    #33079675
\\ Igor Korolyov


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

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

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

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

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

красота !!

спасибо!

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

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

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


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