21.08.2015 12:10
genyas
 
Добрый день , кто-нибудь может мне объяснить как работает этот FastReport, накатал я скрипт , в plsql все на ура работает . Загоняю его в FRep и понеслось , то слишком длинный идентификатор , то его вовсе нет ... ничего не понимаю .
Вот скрипт

select total.article,total.today,total.prev,smc.name ,total.PriceToday,total.PricePrev from supermag.smcard smc ,

(select n.article,n.today,p.prev,n.PriceToday,p.PricePrev
from
(select sms.article,sum(sms.quantity) as today ,sum(sms.totalprice) as PriceToday from supermag.smdocuments smd, supermag.smspec sms
where smd.doctype='CS' and smd.createdat between '01/08/2015' and '20/08/2015' and smd.id=sms.docid
group by sms.article) n
left join
(select sms.article,sum(sms.quantity) as prev ,sum(sms.totalprice) as PricePrev from supermag.smdocuments smd, supermag.smspec sms
where smd.doctype='CS' and smd.createdat between '01/08/2014' and '20/08/2014' and smd.id=sms.docid
group by sms.article) p
on n.article=p.article) total
where total.article=smc.article
order by total.article
21.08.2015 14:49
akonev
 
я два года назад, после нескольких недель развлечений, решил для себя, что на 100% работает только один вариант:

сделать хранимую процедуру.
в коде отчета сначала вызвать эту процедуру и передать ей параметры, чтобы она внутри базы отработала все хитрые селекты и нужные данные отобрала во временную таблицу.

уже из временной таблицы тянуть данные для отображения в отчете.
21.08.2015 15:23
vdm
 
А где этот запрос прописан. Тут была тема, что сложные запросы FR не переваривает, но их можно динамически формировать, а в "основной" подставлять заглушку.
21.08.2015 15:48
genyas
 
Сейчас уже для теста пробую через код делать вставку sql .

namespace FastReport
{
public class ReportScript
{

RepHost host;

string sLocTitle;

private void _StartReport(object sender, EventArgs e)
{
host = new RepHost(Report);

string sSQL = SqlFormat("select name from supermag.smcard");
host.TableDataSourcePreInit("RepData", sSQL);

}

}
}

Потом тяну все их временной таблице ,
select
'' name
from dual


И все равно все пусто , хотя карт в базе хоть отбавляй .
21.08.2015 15:56
genyas
 
Все , разобрался , это я идиот . Функцию сделал , а запустить её забыл :))) Ну,а кодик останется как пример :)))
Часовой пояс GMT +3, время: 23:36.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.