powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / report
19 сообщений из 19, страница 1 из 1
report
    #32749720
SDF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U menua takoy vopros: v tablitse -50000 zapis,structura ddf takaya:

N A1 A2 A3 A4 A5

1 10 13 9 15 12
1 2 6 50 41 3
1 4 8 9 11 15
1 12 14 16 18 25
2 11 15 9 12 18
2 12 13 5 8 9
2 11 15 9 15 18
2 18 19 6 7 9
...........................
...........................
...........................
50000 15 18 12 9 8
50000 11 22 56 8 75
50000 45 78 8 74 56
50000 1 36 8 9 85

To yest kajdiy 4 zapis kasaetsa odnomu dopustim klienta
Takoy otcet doljen poluchit (A3 FORMAT):

Na odnom bumaqe doljen 12 otcet(skolko pomestitsa) i v takom poryadke:

N=1 N=101 N=201 N=301

N=401 N=501 N=601 N=701

N=801 N=901 N=1001 N=1101


kak eto sdelat,obyasnite pojalusta!
...
Рейтинг: 0 / 0
report
    #32750933
SDF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kto to ne vstrechalsa s takoy zadachoy?
...
Рейтинг: 0 / 0
report
    #32751190
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, не понял задачу.

У тебя каждому коду соответсвует 4 записи и тебе надо эти 4 записи распечатать не один под другим, а один рядом с другим?

Это можно сделать через переменные отчета.

Создаешь в отчете группу по коду N. В полосе деталировки вообще ничего не печатаешь. В качестве полосы деталировки используешь подвал этой группы.

Далее создаешь 5 (пять) переменных отчета с областью действия в пределах этой группы:

NumRec = NumRec + 1
Value1 = IIF(NumRec=1,A1,Value1)
Value2 = IIF(NumRec=2,A1,Value2)
Value3 = IIF(NumRec=3,A1,Value3)
Value4 = IIF(NumRec=4,A1,Value4)

В подвале группы выаодишь переменные Value1, Value2, Value3, Value4, которые собственно будут содержать значение поля A1 для 1,2,3 и 4 записей в пределах одного значения N

Правда в этом случае таблица должна быть упорядочена по полю N.
...
Рейтинг: 0 / 0
report
    #32751539
SDF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Da,kajdomu kodu (N) sootvetsstvuet 4 zapisI,nado perviy 4 zapis raspechatat
i ryadom snim raspechatat te zapisi qde n=101, potom ryadom s nim te zapisi
nado rapechatat qde n=201, n=301 i t.d.
i podnimi nado raspechatat te zapisi qde n=401, n=501,n=601 (ryadom) i t.d.
To yest, intervali mejdu zapisyami doljno bit 100.

1,101,201,301 (ryadom)
i podnimi
401,501,601,701 (ryadom)
i podnimi
801,901,1001,1101 (ryadom)
- eto perviy list.

A 2-y list doljno nachinat ot n=2

2,102,202,302 (ryadom)
i podnimi
402,502,602,702 (ryadom)
i podnimi
802,902,1002,1102 (ryadom)
- eto 2-y list.
I T.D.
...
Рейтинг: 0 / 0
report
    #32751844
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi SDF!

Для начала сделай соответствующее упорядочение - лучше всего посредством
SQL-запроса (преобразовав код конечно - например добавив в запрос такое
поле: INT(N/100) + (N%100)*1000 и ORDER BY по нему - сгодится если N<100000)

Для разбиения по страницам используй группировку. Колонки делаются штатно -
тут вроде как вопросов быть не должно.

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
report
    #32751972
mikgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я не русский,
но ето прямо стъдно,
как можно так писать!! Товарищ SDF Пожалуйста что значит

kajduyi 4 zapis
???????????????
давай на АБВ напиши сперва!!!
...
Рейтинг: 0 / 0
report
    #32751973
luser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну-ну, каждый пишет как умеет и отвечает как умеет.
Допустим объяснение проблемы на "латыни" не помешало Игорю Королеву дать дельные советы.
Как говорит древняя пословица: "Не бывает глупых вопросов - бывают глупые ответы"... тем более тут не экзамены сдаюм в гуманитарный ВУЗ, можно и "причетаться".
...
Рейтинг: 0 / 0
report
    #32752136
mikgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
абсолютно правильно !!!
но у нас другая пословица - если глупъй вопрос то получиш глупъй ответ ...(явно когда расходилась по свете немножко поменялась)

если игорь не переспросил опять и дал совет если писал по другому .....
то давай мучайся и жди ответа ...

все равно
дело в том что два года назад я делал подобную вещь правда бъло на другой платформе - мне нужно бъло по подобному представить даннъх,

я просто сделал таблицу где рядъ стали колонки(перевернутая)и сделал поля типа charachter и наполнил ее так как бъ вроде въйдет на репорте вместе с заголовками , я сделал процедуру для insert у котрую бъл counter и если делился соответному число например на 5 то ставил соответнъе даннъ или заголовки а иначе междиннъй counter для каждъй ряд (потому что возможно бъть пустая колонка)
а потом на репорте разделял страниц на каждъх пять рядов

игорь дал намного лучший совет

ваш случай намного сложнее а мой вариант намного глупее, но все таки работает
...
Рейтинг: 0 / 0
report
    #32752186
SDF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MIKGEO,Kajdiy pishet kak umeet i LUSER prav, chto mi ne ekzameni sdayum.
Yesli tak,pomoemu, i u tebya yest oshibka:"stdno", "kotruyu".
No, spasibo za sovet, ya seychas budu postorotsya.
...
Рейтинг: 0 / 0
report
    #32752220
mikgeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извини конечно
не сердись
...
Рейтинг: 0 / 0
report
    #32756241
SDF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ya staralsa sdelat kak VladimirM obyasniyal, no umenya chto-to ne poluchaetsa.
...
Рейтинг: 0 / 0
report
    #32756634
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что все-равно не понятно, что именно тебе нужно. Откуда взялись значения 101,201,301?

Ну, допустим, для первой записи код 1. Во вторую колонку необходимо поместить значение с кодом на 100 больше? А куда девать второе значение с кодом 1?

Вообще-то, универсальным способом решения задачи подготовки отчета является формирование временных таблиц с содержимым максимально близким к внешнему виду отчета. Собственно, именно это тебе и пытался сказать Igor Korolyov

Т.е. создаешь таблицу с примерно такой структурой:

CREATE CURSOR curReport (N i, f1 N(20), f2 N(20), f3 N(20), f4 N(20))

Здесь f1, f2,f3,f4 - это будущие поля отчета.

Далее в коде заполняешь эту таблицу данными из исходной таблицы компануя результаты как тебе надо. И под конец создаешь отчет на основании этой временной таблицы.
...
Рейтинг: 0 / 0
report
    #32758268
SDF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Da, s pomoshi vremenniy tablitsu mojna kak-to eto zadachi reshat.No, ya dumal chto, mojet bit bez etoqo , s pomoshi reporta eto mojna reshit.

Dopustim dlya 1-y zapisi N=1. V perviy kolonka doljna naxoditsa vse 4 zapisi ("Kuda devat 2-yu znachenie s kodom 1") qde N=1.
Vo 2-yu kolonku neobxodimo pomestit s kodom na 100 bolshe.Znachit vo vtorom kolonke doljna naxoditsa vse 4 zapisi qde N=101,
v 3-m kolonke doljna naxoditsa vse 4 zapisi qde N=201,v 4-m kolonke doljna naxoditsa vse 4 zapisi qde N=301.
V 1-y kolonke vo vtorom "stroke" (sleduyushiy 4 zapis) doljna naxoditsa vse 4 zapisi qde n=401.
V 2-y kolonke vo vtorom "stroke" (sleduyushiy 4 zapis) doljna naxoditsa vse 4 zapisi qde n=501. I T.D.

1-y list otcheta:

N=1 (vse 4 zapisi) N=101 (vse 4 zapisi) N=201 (vse 4 zapisi) N=301 (vse 4 zapisi)

N=401 (vse 4 zapisi) N=501 (vse 4 zapisi) N=601 (vse 4 zapisi) N=701 (vse 4 zapisi)

N=801 (vse 4 zapisi) N=901 (vse 4 zapisi) N=1001 (vse 4 zapisi) N=1101 (vse 4 zapisi)


2-y list toje samiy , tolko doljna nacinatsa ot n=2:

N=2 (vse 4 zapisi) N=102 (vse 4 zapisi) N=202 (vse 4 zapisi) N=302 (vse 4 zapisi)

N=402 (vse 4 zapisi) N=502 (vse 4 zapisi) N=602 (vse 4 zapisi) N=702 (vse 4 zapisi)

N=802 (vse 4 zapisi) N=902 (vse 4 zapisi) N=1002 (vse 4 zapisi) N=1102 (vse 4 zapisi)

I T.D.
...
Рейтинг: 0 / 0
report
    #32758397
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без временной таблицы здесь не обойтись.

Дело в том, что генератор отчетов сканирует таблицу "сверху-вниз" один раз. А по условиям твоего отчета надо постоянно "скакать" по таблице вверх-вниз. Чего генератор отчетов сделать в принципе не может.

Точнее, конечно можно, используя пользовательские функции, но дешевле сформировать временную таблицу.
...
Рейтинг: 0 / 0
report
    #32760283
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi SDF!

Не хочешь временной таблицы - создай временный индекс (по выражению) который
упорядочит исходный набор данных так как оно тебе нужно. Можешь даже в
принципе оставить этот индекс как постоянный.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
report
    #32764232
SDF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zdec kak budet etot virajenie - vot eto ya ne ponimayu?
...
Рейтинг: 0 / 0
report
    #32765793
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi SDF!

Точно так-же как и в запросе.
Код: plaintext
INDEX ON INT(N/ 100 ) + (N% 100 )* 1000  TAG MyMadOrder


Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
report
    #32765914
SDF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sposiba IGOR, za sovet, indexsasiya idyet,no s pomoshi indeksa nopomoemu eti zadachi ne reshit.
Navernoe vremenniy tablitsa nado budet sozdavat. Potomu chto dlya reporta mne iz 'table1' nado
poluchit primerno takaya tablitsa kak 'table2'. NO,kak neznayu?
...
Рейтинг: 0 / 0
report
    #32772733
SDF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sposiba IGOR, za sovet, indexsasiya idyet,no s pomoshi indeksa nopomoemu eti zadachi ne reshit.
Navernoe vremenniy tablitsa nado budet sozdavat. Potomu chto dlya reporta mne iz 'table1' nado
poluchit primerno takaya tablitsa kak 'table2'. NO,kak neznayu?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / report
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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