এসকিউএল সার্ভার রিপোর্টিং পরিষেবাগুলির প্রতিবেদনে বিকল্প সারির রঙ যুক্ত করুন


141

কোনও এসকিউএল সার্ভার রিপোর্টিং পরিষেবাদির প্রতিবেদনে আপনি কীভাবে বিকল্প সারিগুলি ছায়া করবেন?


সম্পাদনা: ভাল নীচে তালিকাভুক্ত উত্তর একটি গুচ্ছ আছে - থেকে দ্রুত এবং সহজ করার জন্য জটিল এবং ব্যাপক । হায়, আমি কেবল একটি বেছে নিতে পারি ...


2
= IIf (RowNumber (কিছুই না) মোড 2 = 0, "রঙ নেই", "# ডিডিইবিএফ 7")
স্টিফান স্টেইগার

আপনি যদি একাধিক কক্ষ নির্বাচন করেন তবে আপনি পাঠ্যবক্সের বৈশিষ্ট্যগুলি সম্পাদনা করতে পারবেন না, তবে আপনি বৈশিষ্ট্য প্যানেলে রঙ পূরণ করতে পারবেন এবং সেখানে একটি এক্সপ্রেশন সেট করতে পারবেন!
kitsu.eb

উত্তর:


213

টেবিল সারির ব্যাকগ্রাউন্ড কালার সম্পত্তিটিতে যান এবং "এক্সপ্রেশন ..." চয়ন করুন

এই অভিব্যক্তিটি ব্যবহার করুন:

= IIf(RowNumber(Nothing) Mod 2 = 0, "Silver", "Transparent")

এই কৌশলটি প্রতিবেদনের অনেক ক্ষেত্রে প্রয়োগ করা যেতে পারে।

এবং নেট নেট 3.5+ আপনি ব্যবহার করতে পারেন:

= If(RowNumber(Nothing) Mod 2 = 0, "Silver", "Transparent")

প্রতিনিধি খুঁজছি না - আমি কেবল এই প্রশ্নটি নিজেই গবেষণা করেছিলাম এবং ভেবেছিলাম আমি ভাগ করে নেব।


10
এটি নির্দিষ্ট পরিস্থিতিতে বিশেষত টেবিল এবং ম্যাট্রিক্স অবজেক্টগুলিতে প্রচুর উপ-যোগফল সহ ব্যর্থ হয়। Catch22 এর প্রতিক্রিয়ার একই সীমাবদ্ধতা নেই। এছাড়াও, ক্যাচ 22 এর পদ্ধতিটি ম্যাট্রিক্সে কলামগুলিকে জোর করে বিকল্প কলামের রঙগুলি ব্যবহার করতে ব্যবহার করা যেতে পারে যা একবার নীল চাঁদে একবার কার্যকর useful
ব্যবহারকারী

16
আমি সর্বদা নিশ্চিত হয়েছি যে নিজের প্রশ্নের উত্তর দেয় এমন কাউকে উজ্জীবিত করতে। প্রায়শই, প্রশ্নকারী নিজে থেকে একটি উত্তর খুঁজে পায় এবং তারপরে আর কখনই ফিরে আসে না, আমাদের বাকী যারা অন্ধকারে একই প্রশ্ন থাকতে পারে তা রেখে। স্যার, আপনার জন্য এক গলদ
ম্যাট ডিট্রলিও

4
আমি যখন উপরের কোডটি ব্যবহার করি তখন আমি একটি সতর্কতা বার্তা পাই যা [rsInvalidColor] The value of the BackgroundColor property for the textbox ‘active’ is “Transparent”, which is not a valid BackgroundColor. দেখে মনে হয় সঠিক অভিব্যক্তিটি হবে =IIf(RowNumber(Nothing) Mod 2 = 0, "Silver", Nothing)। যদিও টিপটির জন্য ধন্যবাদ।
রাসেল বি

2
এটি গ্রুপিং এবং বিশদ দেখার ক্ষেত্রে সমস্যাটি দেয়

3
কিছু ব্রাউজার "স্বচ্ছ" বা "কিছুই না" পরিচালনা করতে পারে না। সেরা বাজি "হোয়াইট" ব্যবহার করা হবে
নট এস

89

আইআইএফ (রওনম্বার ...) ব্যবহারের ফলে সারিগুলি গোষ্ঠীকরণের সময় কিছু সমস্যা দেখা দিতে পারে এবং অন্য বিকল্পটি রঙ নির্ধারণ করার জন্য একটি সাধারণ ভিবিএস স্ক্রিপ্ট ফাংশন ব্যবহার করা হয়।

এটি কিছুটা বেশি প্রচেষ্টা কিন্তু যখন মৌলিক সমাধানটি যথেষ্ট হয় না, তখন এটি একটি দুর্দান্ত বিকল্প।

মূলত, আপনি নীচে রিপোর্টে কোড যুক্ত করুন ...

Private bOddRow As Boolean
'*************************************************************************
' -- Display green-bar type color banding in detail rows
' -- Call from BackGroundColor property of all detail row textboxes
' -- Set Toggle True for first item, False for others.
'*************************************************************************
Function AlternateColor(ByVal OddColor As String, _
         ByVal EvenColor As String, ByVal Toggle As Boolean) As String
    If Toggle Then bOddRow = Not bOddRow
    If bOddRow Then
        Return OddColor
    Else
        Return EvenColor
    End If
End Function

তারপরে প্রতিটি কক্ষে, নীচের মত ব্যাকগ্রাউন্ড কালার সেট করুন:

=Code.AlternateColor("AliceBlue", "White", True)

সম্পূর্ণ বিবরণ এই Wrox নিবন্ধ হয়


উপরের কোডটি রিপোর্টের কোড বিভাগে যুক্ত করা হয়েছে বা ভিবি.এনইটি প্রকল্পে একটি কোড-পেছনের পৃষ্ঠায় সংকলিত হয়েছে এবং একটি ডিএলএল হিসাবে বিধান হিসাবে উল্লেখ করা হয়েছে deployed আপনি সাধারণত প্রতিবেদনগুলিতে অসংখ্য রিপোর্টে এটি উল্লেখ করার কারণে এটি একটি dll হিসাবে স্থাপনের জন্য অতিরিক্ত প্রচেষ্টা করার পরামর্শ দিচ্ছি।
ব্যবহারকারী

গ্রুপিং সমস্যা হ্যান্ডল করার জন্য এটি আমার পছন্দের উপায়, আরও কয়েকটি হ্যাক চেষ্টা করার পরে। ইন্টারেক্টিভ বাছাই করা কলামে প্রয়োগ করার সময় এটি ভেঙে যায় না। +1 এবং অনেক ধন্যবাদ।
রেক্স মিলার

রঙগুলি অফসেট হয়ে যায় যখন আপনার কাছে বিজোড় সংখ্যক সারি থাকে।
কে রিচার্ড

20
প্রথমটির পরে সারিতে থাকা সমস্ত কলামের জন্য "সত্য" "ভুয়া" তে পরিবর্তন করতে ভুলবেন না, অন্যথায় আপনি একটি চেকবোর্ডের প্রভাব দেখতে পাবেন! সমাধানের জন্য ধন্যবাদ - এটি দুর্দান্ত কাজ করে!
পিটার মুলারায়ান

পিটার মুলারিয়েন: আমার এই সমস্যা হচ্ছে, আপনি কীভাবে এটি ঠিক করবেন তা ব্যাখ্যা করতে পারেন?
বিল সফটওয়্যার ইঞ্জিনিয়ার

64

আমি যখন ক্যাচ 22 এর সমাধানটি ব্যবহার করলাম তখন আমি দাবা প্রভাবটি পেয়েছিলাম, আমি মনে করি কারণ আমার ম্যাট্রিক্সের নকশায় একাধিক কলাম রয়েছে। এই অভিব্যক্তিটি আমার পক্ষে ভাল কাজ করেছে:

=iif(RunningValue(Fields![rowgroupfield].Value.ToString,CountDistinct,Nothing) Mod 2,"Gainsboro", "White")

13
এই উত্তরটি আরও বেশি মনোযোগের দাবি রাখে - এটি একটি পরিষ্কার সমাধান যা সারির দল এবং কলামগুলির গোষ্ঠীগুলির সাথে ম্যাট্রিক্সে পুরোপুরি কাজ করে এবং কাজ করার জন্য কোনও কাস্টম কোডের প্রয়োজন নেই। সুন্দর!
স্টিফান মোহর

9
প্রকৃতপক্ষে, এটি একাধিক কলামের জন্যও ঠিক কাজ করে - তবে যদি আপনার কোনও গ্রুপিংয়ে "অনুপস্থিত" ডেটা থাকে not সুতরাং আপনার যদি 2007 সালে 12 মাসের ডেটা ডেটা রয়েছে তবে 2006 সালে কোনও জানুয়ারির ডেটা নেই এবং কলামগুলিতে সারি এবং বছরের সাথে এক মাসের মধ্যে দলবদ্ধ হয় 2006 এর রঙিনটি একে একে বন্ধ হয়ে যাবে কারণ রানিংভ্যালু অফসাইঙ্ক হয়ে যায় কারণ সেখানে থাকা সত্ত্বেও এখনও "জানুয়ারী 2006" জন্য ম্যাট্রিক্স একটি বক্স আছে ডেটাসেটে কোনও ডেটা এবং RunningValue একই, কোন রঙ পরিবর্তন, ইত্যাদি রয়ে
কাইলি হালে

2
@ আহমাদ এটি এত কাছে আমি খালি বাক্সগুলি বিপরীত রঙ ব্যবহার করে সেখানে সমস্যা হচ্ছে। আমি কীভাবে নিশ্চিত করব যে খালি বাক্সগুলি সঠিকভাবে রঙিন হয়েছে?
FistOfFury

@ কাইলহলে আপনার কি অনুপস্থিত বক্স রঙের জন্য কোনও সমাধান আছে?
FistOfFury

2
@ ফিস্টঅফফুরি আমার জানা একমাত্র সমাধান হ'ল হারানো ডেটার জন্য মান নির্ধারণ করা (সাধারণত 0) হয় তা নিশ্চিত করা।
কাইল হেল

20

আমি @ Catch22 এর সমাধানটি কিছুটা পরিবর্তন করেছি কারণ আমি যদি সিদ্ধান্ত নিই যে আমি রঙগুলির মধ্যে একটি পরিবর্তন করতে চাই তবে প্রতিটি ক্ষেত্রে যেতে হবে এমন ধারণাটি আমি পছন্দ করি না। এটি এমন প্রতিবেদনে বিশেষত গুরুত্বপূর্ণ যেখানে রঙগুলি পরিবর্তনশীল হওয়া দরকার এমন অনেকগুলি ক্ষেত্র।

'*************************************************************************
' -- Display alternate color banding (defined below) in detail rows
' -- Call from BackgroundColor property of all detail row textboxes
'*************************************************************************
Function AlternateColor(Byval rowNumber as integer) As String
    Dim OddColor As String = "Green"
    Dim EvenColor As String = "White"

    If rowNumber mod 2 = 0 then 
        Return EvenColor
    Else
        Return OddColor
    End If
End Function

লক্ষ্য করা যায় যে আমি যে একটিকে রঙগুলি গ্রহণ করতে ব্যবহার করে তার মধ্যে রঙগুলি গ্রহণ করে এমনটি থেকে আমি ফাংশনটি পরিবর্তন করেছি।

তারপরে প্রতিটি ক্ষেত্রে যোগ করুন:

=Code.AlternateColor(rownumber(nothing))

এটি প্রতিটি ক্ষেত্রের পটভূমির রঙের ম্যানুয়ালি রঙ পরিবর্তন করার চেয়ে অনেক বেশি দৃust়।


1
এই থ্রেডে দুর্দান্ত সংযোজন! আমি প্রতিটি কলামে "সত্য" বা "মিথ্যা" সেট না করা পছন্দ করি। আমি "Mod 3" বিকল্পটিও পছন্দ করি যাতে আমি প্রতি 3 য় সারিতে ছায়া দিতে পারি।
বাওদাদ

আমি এই সমাধানটিও পছন্দ করি। তবে আমি যখন সারি গ্রুপিং ব্যবহার করি তখন এটি আমার পক্ষে কার্যকর হয় না। উপরের @ আহমাদের সমাধানটি আমার পক্ষে কাজ করেছে।
বাওদাদ 22'16

আপনি যদি আপনার ডেটাসেটে অতিরিক্ত ক্ষেত্র যুক্ত করতে না চান তবে এটি একটি টাবলিক্সের জন্য দুর্দান্ত সমাধান!
ক্ল্যামচোদা

16

একটি জিনিস আমি লক্ষ্য করেছি যে শীর্ষ দুটি পদ্ধতির কোনওটিরই ধারণা নেই যে প্রথম সারিতে কোন গ্রুপের রঙ হওয়া উচিত; গ্রুপটি কেবল পূর্ববর্তী দলের শেষ লাইন থেকে বিপরীত রঙের সাথে শুরু করবে। আমি চাইছিলাম আমার গোষ্ঠীগুলি সর্বদা একই বর্ণের সাথে শুরু হয় ... প্রতিটি গোষ্ঠীর প্রথম সারিটি সর্বদা সাদা এবং পরবর্তী সারির রঙিন হওয়া উচিত।

মূল ধারণাটি ছিল প্রতিটি গ্রুপ শুরু হওয়ার সাথে সাথে টগলটি পুনরায় সেট করা, সুতরাং আমি কিছুটা কোড যুক্ত করেছি:

Private bOddRow As Boolean
'*************************************************************************
' -- Display green-bar type color banding in detail rows
' -- Call from BackGroundColor property of all detail row textboxes
' -- Set Toggle True for first item, False for others.
'*************************************************************************
Function AlternateColor(ByVal OddColor As String, _
         ByVal EvenColor As String, ByVal Toggle As Boolean) As String
    If Toggle Then bOddRow = Not bOddRow
    If bOddRow Then
        Return OddColor
    Else
        Return EvenColor
    End If
End Function
'
Function RestartColor(ByVal OddColor As String) As String
    bOddRow = True
    Return OddColor
End Function

সুতরাং আমার কাছে এখন তিন ধরণের সেল ব্যাকগ্রাউন্ড রয়েছে:

  1. ডেটা সারির প্রথম কলামে = কোড রয়েছে lআল্টারনেট কালার ("এলিসব্লিউ", "হোয়াইট", ট্রু) (এটি পূর্বের উত্তরের মতোই))
  2. অবশিষ্ট ডেটা সারির কলামগুলিতে = কোড রয়েছে lআল্টারনেট কালার ("এলিসব্লিউ", "সাদা", মিথ্যা) (এটিও পূর্ববর্তী উত্তরের মতো))
  3. গোষ্ঠীকরণের সারির প্রথম কলামে = কোড রয়েছে est রিস্টার্টক্লোর ("এলিসব্লিউ") (এটি নতুন)
  4. গ্রুপিং সারিটির অবশিষ্ট কলামগুলিতে = কোড রয়েছে lআল্টারনেট কালার ("এলিসব্লিউ", "সাদা", মিথ্যা) (এটি আগে ব্যবহৃত হয়েছিল, তবে সারি গোষ্ঠীকরণের জন্য এটির কোনও উল্লেখ নেই))

এটি আমার পক্ষে কাজ করে। আপনি যদি গ্রুপিং সারিটি অ রঙিন বা অন্যরকম রঙের করতে চান তবে এটি কীভাবে এটি পরিবর্তন করা যায় তা এ থেকে মোটামুটি স্পষ্ট হওয়া উচিত।

এই কোডটি উন্নত করার জন্য কী করা যেতে পারে সে সম্পর্কে দয়া করে বিনা দ্বিধায় মন্তব্য করুন: আমি এসএসআরএস এবং ভিবি উভয়ের জন্যই একেবারে নতুন, তাই আমি দৃ strongly়ভাবে সন্দেহ করি যে উন্নতির জন্য প্রচুর জায়গা রয়েছে, তবে প্রাথমিক ধারণাটি সাউন্ড বলে মনে হচ্ছে (এবং এটি কার্যকর ছিল) আমার জন্য) তাই আমি এটিকে এখানে ফেলে দিতে চাই।


এই উত্তরে বর্ণিত প্রতিটি গ্রুপের জন্য আপনি সারি নম্বরটিও পুনরায় সেট করতে পারেন ।
স্ট্যাকওভারথ্রো

10

গ্রুপ শিরোলেখ / পাদচরণের জন্য:

=iif(RunningValue(*group on field*,CountDistinct,"*parent group name*") Mod 2,"White","AliceBlue")

আপনি প্রতিটি গ্রুপের মধ্যে সারি রঙ গণনা "পুনরায় সেট করতে" এটি ব্যবহার করতে পারেন। আমি প্রতিটি উপ গোষ্ঠীর প্রথম বিশদ সারিটি হোয়াইট দিয়ে শুরু করতে চেয়েছিলাম এবং এই সমাধানটি (বিশদ সারিতে ব্যবহৃত হলে) এটি হওয়ার অনুমতি দেয়:

=IIF(RunningValue(Fields![Name].Value, CountDistinct, "NameOfPartnetGroup") Mod 2, "White", "Wheat")

দেখুন: http://msdn.microsoft.com/en-us/library/ms159136(v=sql.100).aspx


7

মাইকেল হরেনের সমাধানটি আমার পক্ষে ভাল কাজ করে। তবে আমি একটি সতর্কতা পেয়েছিলাম যে প্রাকদর্শন করার সময় "স্বচ্ছ" বৈধ ব্যাকগ্রাউন্ড কালার নয়। এসএসআরএসে প্রতিবেদনের উপাদানগুলির ব্যাকগ্রাউন্ড কালার সেট করা থেকে একটি দ্রুত সমাধান পাওয়া গেছে । "স্বচ্ছ" এর পরিবর্তে কিছুই ব্যবহার করবেন না

= IIf(RowNumber(Nothing) Mod 2 = 0, "Silver", Nothing)

হোয়াইট আরও ভাল হবে তবে কিছুই না।
নাট এস

6

ভিবি ব্যবহার না করে এটি সমাধানের একমাত্র কার্যকর উপায় হ'ল সারি গ্রুপিংয়ের (এবং কলামের গোষ্ঠীকরণের বাইরে) সারি গোষ্ঠীকরণের মডুলো মান "সঞ্চয়" করা এবং এটি আপনার কলামের গোষ্ঠীকরণের মধ্যে স্পষ্টভাবে উল্লেখ করা। আমি এই সমাধানটি খুঁজে পেয়েছি

http://ankeet1.blogspot.com/2009/02/alternating-row-background-color-for.html

তবে অঙ্কিত কী হচ্ছে তা ব্যাখ্যা করার সর্বোত্তম কাজটি করে না এবং তার সমাধানটি একটি ধ্রুবক মানের উপর একটি দলবদ্ধকরণ তৈরি করার অপ্রয়োজনীয় পদক্ষেপের পরামর্শ দেয়, সুতরাং এখানে একটি একক সারির গোষ্ঠী রো গ্রুপের সাথে ম্যাট্রিক্সের জন্য আমার ধাপে ধাপে প্রক্রিয়াটি দেওয়া হয়েছে:

  1. রোগ্রুপ 1 এর মধ্যে একটি নতুন কলাম তৈরি করুন। এর জন্য পাঠ গ্রুপকে পুনর্নবীকরণ করুন রাউগ্রুপ কলারের মতো কিছুতে।
  2. রোগ্রুপ কলারের পাঠ্যবাক্সের মান এতে সেট করুন

    =iif(RunningValue(Fields![RowGroupField].Value ,CountDistinct,Nothing) Mod 2, "LightSteelBlue", "White")

  3. আপনার সমস্ত সারি কোষের পটভূমির রঙের বৈশিষ্ট্য এতে সেট করুন

    "=ReportItems!RowGroupColor.Value"

  4. রাউগ্রুপ কালার কলামের প্রস্থকে 0pt এ সেট করুন এবং এটি ক্লায়েন্টের কাছ থেকে লুকানোর জন্য ক্যানগ্রোকে মিথ্যাতে সেট করুন।

ভাল খবর! এটি এই থ্রেডে উল্লিখিত প্রচুর সমস্যাও সমাধান করে:

  • উপগোষ্ঠী জন্য স্বয়ংক্রিয় রিসেট: শুধু যে rowgroup জন্য একটি নতুন কলাম যোগ, একটি করণ RunningValue উপর তার গ্রুপ মান।
  • সত্য / মিথ্যা টগলস নিয়ে চিন্তা করার দরকার নেই।
  • সহজেই পরিবর্তনের জন্য রঙগুলি এক জায়গায় রাখা হয়েছিল।
  • সারি বা কলামের গ্রুপগুলিতে বিনিময়যোগ্যভাবে ব্যবহার করা যেতে পারে (প্রস্থের পরিবর্তে কেবল উচ্চতায় 0 সেট করুন)

এসএসআরএস যদি পাঠ্য বাক্সগুলিতে মান ছাড়াও বৈশিষ্ট্যগুলি প্রকাশ করে তবে এটি দুর্দান্ত। আপনি সারি গ্রুপের পাঠ্যবাক্সগুলির একটি পটভূমি রঙের সম্পত্তিতে এই ধরণের গণনাটি স্টাফ করতে পারেন এবং তারপরে এটিকে অন্যান্য প্রতিবেদনের মধ্যে রিপোর্টআইটেম হিসাবে চিহ্নিত করুন!

আহ্, আমরা স্বপ্ন দেখতে পারি ...


5

আমার সমস্যাটি হ'ল আমি চেয়েছিলাম যে সারিবদ্ধভাবে সমস্ত কলাম একই পটভূমি হয়। আমি সারি এবং কলাম দ্বারা উভয়কেই দলবদ্ধ করেছিলাম এবং শীর্ষস্থানীয় দুটি সমাধানের সাথে আমি এখানে রঙিন ব্যাকগ্রাউন্ড সহ 1 কলামে সমস্ত সারি পেয়েছি , কলাম 2-এ সমস্ত সারি একটি সাদা ব্যাকগ্রাউন্ড সহ, 3 টি কলামের সমস্ত সারি রঙিন ব্যাকগ্রাউন্ড সহ পেয়েছি , ইত্যাদি। এটি যেমন RowNumberএবং bOddRow(ক্যাচ 22 এর সমাধান) আমার কলামের গোষ্ঠীতে সেটিকে উপেক্ষা করার পরিবর্তে এবং কেবল একটি নতুন সারি দিয়ে বিকল্প পরিবর্তনের দিকে মনোযোগ দেয়।

আমি যা চেয়েছিলাম তা হল সারি 1 এর সমস্ত কলামগুলির সাদা পটভূমি, তারপরে সারি 2 এর সমস্ত কলামের রঙিন পটভূমি থাকতে হবে, তারপরে 3 সারিতে থাকা সমস্ত কলামগুলিতে একটি সাদা ব্যাকগ্রাউন্ড থাকবে and নির্বাচিত উত্তরটি ব্যবহার করে আমি এই প্রভাবটি পেয়েছি তবে পাস Nothingকরার পরিবর্তে RowNumberআমি আমার কলামের গোষ্ঠীর নামটি পাস করেছি, যেমন

=IIf(RowNumber("MyColumnGroupName") Mod 2 = 0, "AliceBlue", "Transparent")

ভেবেছিল এটি অন্য কারও পক্ষে উপকারী হতে পারে।


4

আমি মনে করি এই কৌশলটি এখানে আলোচনা করা হয়নি। সুতরাং এটি এখানে,

যেকোন ধরণের জটিল ম্যাট্রিক্সে, আপনি যখন সারি ওয়াইজ বা কলাম অনুযায়ী বিকল্প কক্ষের রঙ চান, তখন কার্যক্ষম সমাধানটি হয়,

যদি আপনি কোলুমান অনুযায়ী কোষগুলির বিকল্প রঙ চান তবে,

  1. "কলাম গ্রুপগুলি" তে একটি প্রতিবেদনের নকশার দৃশ্যের নীচের ডানদিকে, "ফেকপ্যারেন্টগ্রুপ" নামে একটি ভুয়া অভিভাবক গোষ্ঠী তৈরি করুন (অভিব্যক্তি ব্যবহার করে)।
  2. তারপরে, প্রতিবেদনের নকশায়, এমন কক্ষগুলির জন্য যা বিকল্পভাবে রঙিন হতে পারে, নিম্নলিখিত ব্যাকগ্রাউন্ড বর্ণের এক্সপ্রেশন ব্যবহার করুন

= IIF (রানিংভ্যালু (ক্ষেত্রসমূহ! [কলামগ্রুপফিল্ড]। মূল্য

এখানেই শেষ.

বিকল্প রঙের সারি অনুসারে একই, কেবল আপনাকে সেই অনুযায়ী সমাধান সম্পাদনা করতে হবে।

দ্রষ্টব্য: এখানে, কখনও কখনও আপনাকে সে অনুযায়ী কোষগুলির সীমানা নির্ধারণ করতে হবে, সাধারণত এটি অদৃশ্য হয়ে যায়।

এছাড়াও আপনি ভুয়া অভিভাবক গোষ্ঠী তৈরি করার সময় পিকের মধ্যে আসা প্রতিবেদনে মান 1 মুছে ফেলতে ভুলবেন না।


1
এই উত্তরটি তাদের পক্ষে অবশ্যই জটিল অনুসন্ধানগুলিতে সারি ব্যান্ডিং তৈরি করতে হবে তাদের জন্য দুর্দান্ত একটি অনুসন্ধান! যদি কোনও বিদ্যমান প্যারেন্ট গ্রুপ থাকে তবে এটি ব্যবহার করুন। অন্যথায়, ফেকপ্যারেন্টগ্রুপ তৈরি করুন। ট্যাবলেটিক্সগুলিতে হারিয়ে যাওয়া মানগুলি যাতে কলাম এবং সারি উভয় গ্রুপই সাধারণত ফর্ম্যাটিংটি ছুঁড়ে দেয়। আমার উত্তরটি দেখুন যা প্রথম কক্ষে অনুপস্থিত মানগুলির জন্য অ্যাকাউন্টে @ আদিত্য এর উপর ভিত্তি করে।
আরপিআইজি

2

যদি পুরো প্রতিবেদনের জন্য আপনার একটি বিকল্প রঙের প্রয়োজন হয় তবে আপনি যে ট্যাব্লিক্সের প্রতিবেদনের উপরে একটি রিপোর্ট-বিস্তৃত পরিচয় রনবার্টের জন্য আবদ্ধ তা ডেটাসেটটি ব্যবহার করতে পারেন এবং এটি রোএনবার ফাংশনে ব্যবহার করতে পারেন ...

=IIf(RowNumber("DataSet1")  Mod 2 = 1, "White","Blue")

2

@ আদিত্যের উত্তর দুর্দান্ত, তবে উদাহরণ রয়েছে যেখানে সারিটির প্রথম কক্ষে (সারি পটভূমির বিন্যাসের জন্য) অনুপস্থিত মান (কলাম / সারি গোষ্ঠী এবং অনুপস্থিত মান সহ জটিল ট্যাবিলিক্সে) থাকে না তবে ফর্ম্যাটিং বন্ধ হয়ে যায়।

@ আদিত্যের সমাধানটি একটি টব্লিক্স (সারি) গোষ্ঠীর মধ্যে সারি সংখ্যা সনাক্ত করতে চতুরতার countDistinctসাথে runningValueফাংশনের ফলাফলকে উপকৃত করে। যদি আপনার প্রথম ঘরে সারণী সারণী অনুপস্থিত থাকে তবে ফলন runningValueহবে না countDistinctএবং এটি পূর্ববর্তী সারির নম্বরটি ফিরিয়ে দেবে (এবং, সুতরাং, সেই ঘরের বিন্যাসকে প্রভাবিত করবে)। তার জন্য অ্যাকাউন্ট করতে, আপনাকে countDistinctমানটি অফসেট করার জন্য একটি অতিরিক্ত শব্দ যুক্ত করতে হবে । আমার গ্রহণটি হ'ল সারি গোষ্ঠীতে প্রথম চলমান মানটি পরীক্ষা করা ছিল (নীচে স্নিপেটের লাইন 3 দেখুন):

=iif(
    (RunningValue(Fields![RowGroupField].Value, countDistinct, "FakeOrRealImmediateParentGroup")
    + iif(IsNothing(RunningValue(Fields![RowGroupField].Value, First, "GroupForRowGroupField")), 1, 0)
    ) mod 2, "White", "LightGrey")

আশাকরি এটা সাহায্য করবে.


ধন্যবাদ @ আরপিহিজ, এটি সেই সমাধান যা আমার বহু-সারির গোষ্ঠীর পক্ষে একটি সাধারণ পিতামাতার সারি গ্রুপের রিপোর্টের সাথে কাজ করেছিল!
নিয়াল্লটি

1

নীচের কোডে (ক্ষেত্রের উপরের অংশে) বাকী ক্ষেত্রগুলিকে মিথ্যে পরিণত করার পিছনে যুক্তি কী কেউ ব্যাখ্যা করতে পারেন?

একটি জিনিস আমি লক্ষ্য করেছি যে শীর্ষ দুটি পদ্ধতির কোনওটিরই ধারণা নেই যে প্রথম সারিতে কোন গ্রুপের রঙ হওয়া উচিত; গ্রুপটি কেবল পূর্ববর্তী দলের শেষ লাইন থেকে বিপরীত রঙের সাথে শুরু করবে। আমি চাইছিলাম আমার গোষ্ঠীগুলি সর্বদা একই বর্ণের সাথে শুরু হয় ... প্রতিটি গোষ্ঠীর প্রথম সারিটি সর্বদা সাদা এবং পরবর্তী সারির রঙিন হওয়া উচিত।

মূল ধারণাটি ছিল প্রতিটি গ্রুপ শুরু হওয়ার সাথে সাথে টগলটি পুনরায় সেট করা, সুতরাং আমি কিছুটা কোড যুক্ত করেছি:

Private bOddRow As Boolean
'*************************************************************************
'-- Display green-bar type color banding in detail rows
'-- Call from BackGroundColor property of all detail row textboxes
'-- Set Toggle True for first item, False for others.
'*************************************************************************
'
Function AlternateColor(ByVal OddColor As String, _
                  ByVal EvenColor As String, ByVal Toggle As Boolean) As String
         If Toggle Then bOddRow = Not bOddRow
         If bOddRow Then 
                Return OddColor
         Else
                 Return EvenColor
         End If
 End Function
 '
 Function RestartColor(ByVal OddColor As String) As String
         bOddRow = True
         Return OddColor
 End Function

সুতরাং আমার কাছে এখন তিন ধরণের সেল ব্যাকগ্রাউন্ড রয়েছে:

  1. ডেটা সারির প্রথম কলামে = কোড রয়েছে lআল্টারনেট কালার ("এলিসব্লিউ", "হোয়াইট", ট্রু) (এটি পূর্বের উত্তরের মতোই))
  2. অবশিষ্ট ডেটা সারির কলামগুলিতে = কোড রয়েছে lআল্টারনেট কালার ("এলিসব্লিউ", "সাদা", মিথ্যা) (এটিও পূর্ববর্তী উত্তরের মতো))
  3. গোষ্ঠীকরণের সারির প্রথম কলামে = কোড রয়েছে est রিস্টার্টক্লোর ("এলিসব্লিউ") (এটি নতুন)
  4. গ্রুপিং সারিটির অবশিষ্ট কলামগুলিতে = কোড রয়েছে lআল্টারনেট কালার ("এলিসব্লিউ", "সাদা", মিথ্যা) (এটি আগে ব্যবহৃত হয়েছিল, তবে সারি গোষ্ঠীকরণের জন্য এটির কোনও উল্লেখ নেই))

এটি আমার পক্ষে কাজ করে। আপনি যদি গ্রুপিং সারিটি অ রঙিন বা অন্যরকম রঙের করতে চান তবে এটি কীভাবে এটি পরিবর্তন করা যায় তা এ থেকে মোটামুটি স্পষ্ট হওয়া উচিত।

এই কোডটি উন্নত করার জন্য কী করা যেতে পারে সে সম্পর্কে দয়া করে বিনা দ্বিধায় মন্তব্য করুন: আমি এসএসআরএস এবং ভিবি উভয়ের জন্যই একেবারে নতুন, তাই আমি দৃ strongly়ভাবে সন্দেহ করি যে উন্নতির জন্য প্রচুর জায়গা রয়েছে, তবে প্রাথমিক ধারণাটি সাউন্ড বলে মনে হচ্ছে (এবং এটি কার্যকর ছিল) আমার জন্য) তাই আমি এটিকে এখানে ফেলে দিতে চাই।


1

আমি এই সমস্ত সমাধান সারি স্পেস সহ একটি গ্রুপযুক্ত তাবলিক্সে চেষ্টা করেছিলাম এবং পুরো প্রতিবেদনটিতে কোনওটিই কাজ করে না। ফলাফলটি হ'ল রঙিন সারিগুলির অনুলিপি এবং অন্যান্য সমাধানের ফলে বিকল্প কলামগুলির ফলাফল হয়েছিল!

আমি এখানে ফাংশনটি লিখেছি যা একটি কলাম গণনা ব্যবহার করে আমার জন্য কাজ করেছে:

Private bOddRow As Boolean
Private cellCount as Integer

Function AlternateColorByColumnCount(ByVal OddColor As String, ByVal EvenColor As String, ByVal ColCount As Integer) As String

if cellCount = ColCount Then 
bOddRow = Not bOddRow
cellCount = 0
End if 

cellCount  = cellCount  + 1

if bOddRow Then
 Return OddColor
Else
 Return EvenColor
End If

End Function

7 টি কলামের ট্যাব্লিক্সের জন্য আমি সারি (ঘরগুলির) ব্যাককালারের জন্য এই প্রকাশটি ব্যবহার করি:

=Code.AlternateColorByColumnCount("LightGrey","White", 7)


0

আমার ম্যাট্রিক্স ডেটাতে এতে মূল্যবোধ ছিল না, তাই আমি কাজ করার জন্য আহমাদের সমাধান পেতে সক্ষম হইনি, তবে এই সমাধানটি আমার পক্ষে কাজ করেছে

প্রাথমিক ধারণাটি হ'ল রঙ ধারণকারী আপনার অন্তর্নিহিত গোষ্ঠীতে একটি শিশু গ্রুপ এবং ক্ষেত্র তৈরি করা। তারপরে সেই ক্ষেত্রের মানের উপর ভিত্তি করে সারির প্রতিটি কক্ষের জন্য রঙ সেট করুন।


ম্যাট্রিক্সে অনুপস্থিত মানগুলি হ্যান্ডেল করার জন্য @ আদিত্য এবং আমার উত্তর দেখুন। আপনার যদি ইতিমধ্যে পিতা বা মাতা গোষ্ঠীটি (বা জাল তৈরি করতে ইচ্ছুক) থাকে তবে দরকারী। আপনাকে সেভাবে আলাদা ক্ষেত্র তৈরি করতে হবে না।
আরপিএইচ

0

এখান থেকে অন্যান্য উত্তরগুলির সামান্য পরিবর্তন যা আমার পক্ষে কাজ করেছিল। আমার গোষ্ঠীর দুটি গ্রুপে বিভক্ত হওয়ার জন্য দুটি মান রয়েছে, সুতরাং আমি এগুলিকে সঠিকভাবে বিকল্পে আনার জন্য এগুলি উভয়কে প্রথমে একটি যুক্তি দিয়ে রাখতে সক্ষম হয়েছি

= Iif ( RunningValue (Fields!description.Value + Fields!name.Value, CountDistinct, Nothing) Mod 2 = 0,"#e6eed5", "Transparent")

0

সারি এবং কলাম উভয় গ্রুপ ব্যবহার করার সময়, আমার একটি সমস্যা ছিল যেখানে রঙগুলি একই সারি সত্ত্বেও কলামগুলির মধ্যে বিকল্প হবে। আমি একটি বিশ্বব্যাপী ভেরিয়েবল ব্যবহার করে এটি সমাধান করেছি যা কেবল সারি পরিবর্তিত হলেই বিকল্প হয়:

Public Dim BGColor As String = "#ffffff"

Function AlternateColor() As String
  If BGColor = "#cccccc" Then
    BGColor = "#ffffff"
    Return "#cccccc"
  Else
    BGColor = "#cccccc"
    Return "#ffffff"
  End  If
End Function

এখন, সারির প্রথম কলামে আপনি বিকল্প করতে চান, বর্ণটি এখানে সেট করুন:

= Code.AlternateColor ()

-

অবশিষ্ট কলামগুলিতে, এগুলি সমস্তকে এতে সেট করুন:

= Code.BGColor

এটি প্রথম কলামটি আঁকার পরে রঙগুলিকে বিকল্প আকারে তৈরি করা উচিত।

এটি (অবিশ্বাস্যভাবে) কর্মক্ষমতাও উন্নত করতে পারে, যেহেতু প্রতিটি কলামের জন্য এটি গণিতের গণনা করার দরকার নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.