Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Создание отчета с выборкой / 25 сообщений из 26, страница 1 из 2
25.09.2008, 14:31
    #35559592
Снифф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
Hi всем!
помогите нам разобраться с созданием Report
по нашей идее хотим, чтоб при запуске отчета делалсь несколько выборок всего из одной таблицы
из каждой выборки присваивалось переменным значение RECCOUNT(), ну а дальше переменные раскидывались бы на странице отчета
не знаем, как сделать, чтобы сначала делались выборки и присваивались значения. это ведь должно происходить при запуске REPORT-файла
спасиба

з.ы. fox 9-ка
...
Рейтинг: 0 / 0
25.09.2008, 14:42
    #35559640
Создание отчета с выборкой
В отчетах тоже есть переменные.
...
Рейтинг: 0 / 0
25.09.2008, 14:47
    #35559657
Снифф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
проходящий.В отчетах тоже есть переменные.
конечно есть. но выборку то как запустить?
...
Рейтинг: 0 / 0
25.09.2008, 14:47
    #35559658
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
авторэто ведь должно происходить при запуске REPORT-файла
спасиба


до запуска
report form ....

вы должны подготовить все курсоры и необходимые переменные,
сам репорт не должен ничего выбирать(хотя это можно реализовать в ДЕ)
...
Рейтинг: 0 / 0
25.09.2008, 14:49
    #35559668
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
авторно выборку то как запустить


select * from tt
into myCursor

report form ...


отчет будет строиться по myCursor
...
Рейтинг: 0 / 0
25.09.2008, 14:51
    #35559676
Снифф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
12345зайчикдо запуска report form ....
вы должны подготовить все курсоры и необходимые переменные,
сам репорт не должен ничего выбирать(хотя это можно реализовать в ДЕ)
т.е. репорту переменные заданные в какой то форме являются действующими? а определять их PUBLIC?
...
Рейтинг: 0 / 0
25.09.2008, 14:52
    #35559679
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
авторделались выборки и присваивались значения

private pnCount1, pnCount2...

select *
from ....
pnCount1 = _tally

select *
from ....
pnCount2 = _tally


report form

и в репорте поля делаете с pnCount1, pnCount2
...
Рейтинг: 0 / 0
25.09.2008, 14:52
    #35559680
Снифф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
даже получается, что репорт будет видеть этот курсор? так?
...
Рейтинг: 0 / 0
25.09.2008, 14:53
    #35559682
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
автора определять их PUBLIC

они должны быть объявлены приватно
...
Рейтинг: 0 / 0
25.09.2008, 14:54
    #35559686
Снифф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
спасиба! завтра сутра попробуем )))
...
Рейтинг: 0 / 0
25.09.2008, 14:55
    #35559690
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
авторчто репорт будет видеть этот курсор?

да, до репорта создаете курсоры
и в репорте не трогаете тычку использовать приват.датасессию
...
Рейтинг: 0 / 0
26.09.2008, 11:41
    #35561645
Снифф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
УПС!!
проба
объявили в LOADE формы приватную переменную pnU1, в INIT присвоили ей знчение
далее в REPORT рисуем Field, в нем прописываем nU1
запускаем форму, в нем кликаем кнопку печати отчета и тут выскакивает
Variable 'PNU1' not found
что сделано не так?
...
Рейтинг: 0 / 0
26.09.2008, 11:50
    #35561688
Создание отчета с выборкой
СниффУПС!!
проба
объявили в LOADE формы приватную переменную pnU1, в INIT присвоили ей знчение
далее в REPORT рисуем Field, в нем прописываем nU1
запускаем форму, в нем кликаем кнопку печати отчета и тут выскакивает
Variable 'PNU1' not found
что сделано не так?
Вот это:
авторобъявили в LOADE формы приватную переменную pnU1, в INIT присвоили ей знчение
Init вызывается не из Load, а значительно позже него. Потому-то ваша приватная переменная уже прекратила существование. В ините присвоено значение приватной инитовской переменной, а не той, что создана в Load, и которая тоже благополучно скончалась после выхода из инита. Ведь из инита репорт не вызывается, не так ли?
...
Рейтинг: 0 / 0
26.09.2008, 11:54
    #35561706
Снифф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
проходящий.Init вызывается не из Load, а значительно позже него. Потому-то ваша приватная переменная уже прекратила существование. В ините присвоено значение приватной инитовской переменной, а не той, что создана в Load, и которая тоже благополучно скончалась после выхода из инита. Ведь из инита репорт не вызывается, не так ли?
((
логично объяснили
и репорт вызывается конечно не из INIT
щас переделаем подругому
...
Рейтинг: 0 / 0
26.09.2008, 12:06
    #35561765
Снифф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
да, заработало!! )))))))))))))
большое спасибо не просто за подсказку, а за логический расклад нашей ошибки

я тогда еще один вопрос задам.
запускается из формы отчет наверно секунд 10, хотя сейчас в нем мы проставили всего одну переменную, а сам расчет всех переменых в форме занимает доли секунды. почему?
и еще. сам конструктор отчетов работает крайне медленно. передвинешь Detail или Page Footer - можно не торопясь достать сигарету из пачки и прикурить пока все передвинется. и закрывается конструктор медленно до жути
P-IV 2800, памяти 512 мб
ну почему?
...
Рейтинг: 0 / 0
26.09.2008, 14:19
    #35562225
Снифф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
так, разобрались в одном случаи
когда отчет запускается, то он пытается эти переменные забабахать на 8 тыс. с лишним страниц, т.е. по числу записей в курсоре
как этот можно обойти?
поставили RANGE, но в PREVIEW количество страниц осталось тоже
...
Рейтинг: 0 / 0
26.09.2008, 14:32
    #35562269
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
Вы троите отчет по курсору, содержащему 8 тыс записей?

Вам оно нужно? или Вы желаете что-то другое на самом деле?

нарисуйте сюда Ваш курсор из 10 записей
и расскажите, что желаете сделать на самом деле.
...
Рейтинг: 0 / 0
26.09.2008, 14:41
    #35562308
Снифф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
12345зайчикнарисуйте сюда Ваш курсор из 10 записей
и расскажите, что желаете сделать на самом деле.
да и рисовать то незачем. есть таблица. нужно подсчитать в ней количество записей для разных категорий людей. вот мы делали поочереди выборку одного и тогоже названия с WHERE field1=... , делали реккаунт для каждой выборки, дальше мы все писали
...
Рейтинг: 0 / 0
26.09.2008, 14:45
    #35562320
Создание отчета с выборкой
Снифф 12345зайчикнарисуйте сюда Ваш курсор из 10 записей
и расскажите, что желаете сделать на самом деле.
да и рисовать то незачем. есть таблица. нужно подсчитать в ней количество записей для разных категорий людей. вот мы делали поочереди выборку одного и тогоже названия с WHERE field1=... , делали реккаунт для каждой выборки, дальше мы все писали
То есть отчет должен быть только из переменных?
...
Рейтинг: 0 / 0
26.09.2008, 14:49
    #35562338
Создание отчета с выборкой
Снифф 12345зайчикнарисуйте сюда Ваш курсор из 10 записей
и расскажите, что желаете сделать на самом деле.
да и рисовать то незачем. есть таблица. нужно подсчитать в ней количество записей для разных категорий людей. вот мы делали поочереди выборку одного и тогоже названия с WHERE field1=... , делали реккаунт для каждой выборки, дальше мы все писали

1. а Group by в Select-SQL Вы не пробовали?! "Попробуй! Райское наслаждение" (с)
но если хотите, то можно:
2. В стандартном Фоксовом отчете надо оставить только группировку и убрать "тело" группы...
В группировке можно подсчитать количество и вывести его в конце группы...
...
Рейтинг: 0 / 0
26.09.2008, 15:02
    #35562387
Создание отчета с выборкой
Станислав С...кий Снифф 12345зайчикнарисуйте сюда Ваш курсор из 10 записей
и расскажите, что желаете сделать на самом деле.
да и рисовать то незачем. есть таблица. нужно подсчитать в ней количество записей для разных категорий людей. вот мы делали поочереди выборку одного и тогоже названия с WHERE field1=... , делали реккаунт для каждой выборки, дальше мы все писали

1. а Group by в Select-SQL Вы не пробовали?! "Попробуй! Райское наслаждение" (с)
но если хотите, то можно:
2. В стандартном Фоксовом отчете надо оставить только группировку и убрать "тело" группы...
В группировке можно подсчитать количество и вывести его в конце группы...
Мой сарказм исходит из предположения, выдвинутого независимо от меня проходящим
проходящийТо есть отчет должен быть только из переменных?
Если же случай более сложный и группы должны быть расшифрованы
например:
Всего по данной категории: 1024
- ффф 100
- ввв 1000
...
, то приношу свои извинения...
...
Рейтинг: 0 / 0
26.09.2008, 15:22
    #35562464
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
блин

снис с нуфриком, опять в блудняк всех ввели


lntt = reccount("1курсор")
lnpp = reccount("2курсор")
....

ну или что-то что Вы там считаете куда-то

далее

create cursor RESULT (tt i, pp i ...)
insert into rezult values (lntt , lnpp ...)

* в репорте должны быть поля tt, pp ...
report form
...
Рейтинг: 0 / 0
26.09.2008, 15:29
    #35562493
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create cursor tt (id i autoinc, name v( 10 ), catname v( 10 ))
insert into tt (name, catname) values ('Вася', 'пионер')
insert into tt (name, catname) values ('Катя', 'доярка')
insert into tt (name, catname) values ('Миша', 'рабочий')
insert into tt (name, catname) values ('Аня',  'пионер')
insert into tt (name, catname) values ('Надя', 'доярка')

select catname, cnt(*) as cntCat ;
	from tt ;
	group by catname ;
	into cursor result

report form result ....

понятно, что по-хорошему в tt вместо названий должны лежать ключи на справочник категорий
...
Рейтинг: 0 / 0
26.09.2008, 15:38
    #35562514
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create cursor catNames (catid i autoinc, catname v( 10 ))
insert into catNames (catname) values ('пионер')
insert into catNames (catname) values ('рабочий')
insert into catNames (catname) values ('доярка')

create cursor tt (id i autoinc, name v( 10 ), catid i)
insert into tt (name, catid) values ('Вася',  1 )
insert into tt (name, catid) values ('Катя',  3 )
insert into tt (name, catid) values ('Миша',  2 )
insert into tt (name, catid) values ('Аня',   1 )
insert into tt (name, catid) values ('Надя',  3 )

select c.catname, cnt(*) as cntCat ;
	from tt t ;
		left join catNames c on c.catid =t.catid ;
	group by t.catid, c.catname ;
	into cursor result

курсор result будет содержать набор записей для отчета
в репорте нужно указать поля курсора result, которые Вы желаете напечатать
...
Рейтинг: 0 / 0
29.09.2008, 09:24
    #35564466
Снифф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание отчета с выборкой
блин! во всех грехах обвинил
ну извините. мы с другом не семи пядей в лбу
сгруппировали. получили 38 записей
теперь отчет пытается расоложиться на 38 страницах
может легче данные выбороки в эксель кинуть?
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Создание отчета с выборкой / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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