2010-10-06 7 views
5

नमस्ते मैं एक रिपोर्ट बनाने की कोशिश कर रहा हूं जो हमारे रिपोर्ट सर्वर पर सभी सब्सक्रिप्शन सूचीबद्ध करता है, वे जिस रिपोर्ट पर हैं, वे कितने दिन चल रहे हैं, और रिकवरी। अब तक मैं रिपोर्ट की रिपोर्ट और शेड्यूल की एक सूची प्राप्त करने में सक्षम हूं। मुझे समझ में नहीं आ रहा है कि अनुसूची तालिका में मूल्य और कॉलम का क्या अर्थ है।ReportServer.dbo.Schedule तालिका

यदि कोई इन कॉलम और उनके मूल्यों को समझने के तरीके पर कुछ प्रकाश डाल सकता है, तो मैं वास्तव में इसकी सराहना करता हूं। यह अब तक की क्वेरी है।

उपयोग रिपोर्ट सर्वर;

चयन Users.UserName
, c.Name के रूप में रिपोर्ट
, Subscriptions.Description
, अनुसूची। GO *
/*, Schedule.RecurrenceType
, Schedule.MinutesInterval
, अनुसूची। DaysInterval
, Schedule.WeeksInterval
, Schedule.DaysOfWeek
, Schedule.DaysOfMonth
, अनुसूची। [महीना]
, Schedule.MonthlyWeek */
से
[सूची] के रूप में सी अंदरूनी सदस्यता शामिल हों
c.ItemId पर = Subscriptions.Report_OId
अंदरूनी शामिल हों उपयोगकर्ता
Subscriptions.OwnerId पर Users.UserId =
अंदरूनी पर Subscriptions.SubScriptionId = ReportSchedule.SubScriptionId
अंदरूनी ReportSchedule
शामिल हों पर ReportSchedule.ScheduleId = Schedule.Sch शामिल हों अनुसूची
eduleId

धन्यवाद,
क्रिस

उत्तर

1

यहाँ एक आंशिक जवाब नहीं है ...

DaysOfWeek द्विआधारी सेटिंग में जहां से संबंधित हैं:

रविवार है बिट 0: 1 सोमवार मूल्य सा है 1: 2 का मूल्य मंगलवार 2 है: 4 का मूल्य बुधवार 3 है: 8 का मूल्य गुरुवार 4 है: 16 का मूल्य शुक्रवार 5 है: 32का मूल्यशनिवार बिट 6: तो अगर रिपोर्ट हर सोमवार और बुधवार चलाया जाता है 64

का मूल्य, DaysOfWeek 2 + 8 या 10

हो जाएगा मैं वर्तमान में अपने आप को इस पर काम कर रहा हूँ तो मैं जोड़ देगा इसके लिए मैं और अधिक खोजता हूं।

1

मेरे पास इसका एक समाधान है क्योंकि यह एक रिपोर्ट के लिए आया है जिसे मैं लिख रहा हूं।

create function [dbo].[calendarlist](@Value_in as int,@Type as int) returns varchar(200) 
as 
begin 

/* 
This code is to work out either the day of the week or the name of a month when given a value 
Wrriten by S Manson. 
31/01/2012 
*/ 

declare @strings as varchar(200) 
declare @Count int 

if @Type = 2 --Months 
    Begin 
     set @Count =12 
    end 
else if @Type = 1 --Days of Week 
    Begin 
     Set @Count = 7 
    End 
else --Days of Month 
    Begin 
     Set @Count = 31 
    End 

set @strings = '' 

while @Count<>0 
begin 
    if @Value_in>=(select power(2,@count-1)) 
     begin 
      set @Value_in = @Value_in - (select power(2,@count-1)) 
      If @Type=2 
       Begin 
        set @strings = (SELECT DATENAME(mm, DATEADD(month, @count-1, CAST('2008-01-01' AS datetime)))) + ',' + @strings 
       end 
      else if @Type = 1 
       begin 
        set @strings = (SELECT DATENAME(dw, DATEADD(day, @count-1, CAST('2012-01-01' AS datetime)))) + ',' + @strings 
       end 
      else 
       begin 
        set @strings = convert(varchar(2),@Count) + ', ' + @strings 
       end 

     end 
    set @count = @count-1 
end 
if right(@strings,1)=',' 
    set @strings = left(@strings,len(@strings)-1) 

return @strings 

end