0
استفاده از پروسیجر sql در گزارش استیمول
باسلام خدمت دوستان.
من در sql این پروسیجر رو نوشتم:
ALTER proc [dbo].[s_repgeneralfactorlist]
@fromdate nvarchar(10),
@todate nvarchar(10),
@accode int
as
(select factor.creatdate,
case factor.typefactor when 1 then N'خرید' when 2 then N'فروش' when 3 then N'مرجوعی خرید' when 4 then N'مرجوعی فروش'end,
factor.factornumber,
factor.debtor,
factor.creditor,
factor.accountbalance
from factor
where factor.creatdate between @fromdate and @todate and factor.accountcode=@accode
union select factordetail.goodsname,
case factordetail.typefactor when 1 then N'خرید' when 2 then N'فروش' when 3 then N'مرجوعی خرید' when 4 then N'مرجوعی فروش'end,
factordetail.number,
factordetail.productcode,
factordetail.saleprice,
factordetail.total
from factor inner join factordetail on factor.factornumber=factordetail.factornumber and factor.accountcode=@accode)
union select tblwpcash.creatdate,
tblwpcash.status,
tblwpcash.getcode,
tblwpcash.debtor,
tblwpcash.creditor,
tblwpcash.accountbalance
from tblwpcash where tblwpcash.creatdate between @fromdate and @todate and tblwpcash.accountcode=@accode and tblwpcash.getcode=5 and tblwpcash.status=N'دریافت نقدی'
union select tblwpcash.creatdate,
tblwpcash.status,
tblwpcash.paycode,
tblwpcash.debtor,
tblwpcash.creditor,
tblwpcash.accountbalance
from tblwpcash where tblwpcash.creatdate between @fromdate and @todate and tblwpcash.accountcode=@accode and tblwpcash.paycode=6 and tblwpcash.status=N'پرداخت نقدی'
union select tblwpcash.creatdate,
case tblwpcash.status when N'پرداخت انتقالی حساب معین' then N'پرداخت انتقالی' end,
tblwpcash.paycode,
tblwpcash.debtor,
tblwpcash.creditor,
tblwpcash.accountbalance
from tblwpcash where tblwpcash.creatdate between @fromdate and @todate and tblwpcash.accountcode=@accode and tblwpcash.paycode=6 and tblwpcash.status=N'پرداخت انتقالی حساب معین'
union select tblwpcash.creatdate,
case tblwpcash.status when N'پرداخت انتقالی حساب معین' then N'دریافت انتقالی' end,
tblwpcash.getcode,
tblwpcash.debtor,
tblwpcash.creditor,
tblwpcash.accountbalance
from tblwpcash where tblwpcash.creatdate between @fromdate and @todate and tblwpcash.accountcodet=@accode and tblwpcash.getcode=5 and tblwpcash.status=N'پرداخت انتقالی حساب معین'
union select tblcheckpay.creatdate,
tblcheckpay.checkstatus,
tblcheckpay.paynum,
tblcheckpay.debtor,
tblcheckpay.creditor,
tblcheckpay.accountbalance
from tblcheckpay where tblcheckpay.creatdate between @fromdate and @todate and tblcheckpay.accountcode=@accode and tblcheckpay.paynum=8
union select tblcheckpay.creatdate,
tblcheckpay.checkstatus,
tblcheckpay.paychback,
tblcheckpay.debtor,
tblcheckpay.creditor,
tblcheckpay.accountbalance
from tblcheckpay where tblcheckpay.creatdate between @fromdate and @todate and tblcheckpay.accountcode=@accode and tblcheckpay.paychback=10
union (select tblcheckpay.creatdate,
tblcheckpay.checkstatus,
tblcheckpay.paynum,
tblcheckpay.debtor,
tblcheckpay.creditor,
tblcheckpay.accountbalance
from tblcheckpay
where tblcheckpay.creatdate between @fromdate and @todate and (tblcheckpay.accountcode=@accode and tblcheckpay.paynum=8)
union select tblcheckreceipt.creatdate,
case tblcheckreceipt.checkstatus when N'خرج شده' then N'چک پرداختی' end as 'وضعیت',
tblcheckreceipt.chspent,
tblcheckreceipt.debtor,
tblcheckreceipt.creditor,
tblcheckreceipt.accountbalance
from tblcheckreceipt
where tblcheckreceipt.creatdate between @fromdate and @todate and (tblcheckreceipt.accountcoder=@accode and tblcheckreceipt.chspent=11))
union select tblcheckreceipt.creatdate,
tblcheckreceipt.checkstatus,
tblcheckreceipt.getnum,
tblcheckreceipt.debtor,
tblcheckreceipt.creditor,
tblcheckreceipt.accountbalance
from tblcheckreceipt where tblcheckreceipt.creatdate between @fromdate and @todate and tblcheckreceipt.accountcode=@accode and tblcheckreceipt.getnum=7
union select tblcheckreceipt.creatdate,
tblcheckreceipt.checkstatus,
tblcheckreceipt.getchback,
tblcheckreceipt.debtor,
tblcheckreceipt.creditor,
tblcheckreceipt.accountbalance
from tblcheckreceipt where tblcheckreceipt.creatdate between @fromdate and @todate and tblcheckreceipt.accountcode=@accode and tblcheckreceipt.getchback=9
و در اجرا این رکوردهارو برمیگردونه که درسته:
حالا اگه بخوام تو استیمول کانکشن جدید درست کنم و این پروسیجر رو بعنوان datasource انتخاب کنم باید همه فیلدهایی که تو select های پروسیجر نوشتم رو بعنوان ورودی دیتاسورس تعریف کنم؟ خیلی از فیلدها تکراریه، تو استیمول خطا نداره؟
2 پاسخ
0
سلام، وقت بخیر. مهم فیلدهایی هست که تو خروجی SP تولید میشن و قراره داخل گزارش نمایش داده بشه.
0
سلام مجدد. من چون از چندتا جدول اطلاعات رو دارم نشون میدم و چندتا فیلدش تکراریه، تو استیمول که متغیرهارو تعریف کردم، خطا داشت...