سؤال

وأواجه مشكلة مع التعبيرات ضمن التقارير. أنا تلوين خلفية النص ضمن جدول اعتمادا على قيمة داخلها. النص في الحقل يتعلق النسخ الاحتياطي لSQL خادم. القيمة هي إما التاريخ أو النص "لم يتخذ بعد". إذا كان التاريخ هو أكثر من 2 أيام من العمر، أريد الخلفية ليكون أصفر. إذا كان لها أكثر من أسبوع من العمر أو إذا كانت قيمة تاريخ هي "لم يتخذ بعد" أريد الخلفية لتكون حمراء. وإلا، فإنه سوف يكون الأخضر.

والمشكلة لقد كان لديها منذ أن بدأت مع تقارير عن SSRS (قبل بضعة أسابيع) هو أنه يبدو لي تعبيرات للحصول على تقييمها بشكل كامل. سوف بيان IF يكون كل القيم الحقيقية والكاذبة التي تقيم على الرغم من واحدة منها فقط سيتم استخدامها.

وهذا يصبح مشكلة لأن "ليس بعد المحصلة" من الواضح أن ليس تاريخا والعمل مع تواريخ ولست بحاجة لتحويل سلسلة تاريخ إلى تاريخ. هنا هو رمز لدي حاليا:

=IIF(Fields!LastBackUpTaken.Value = "Not Yet Taken","Red", IIF( IsDate(Fields!LastBackUpTaken.Value) = true,
  IIF( CDate(Fields!LastBackUpTaken.Value).AddDays(Parameters!DaysTillExpiry.Value).CompareTo(NOW()) = 1,
          "GreenYellow",
      IIF( CDate(Fields!LastBackUpTaken.Value).AddDays(7).CompareTo(NOW()) = 1, "Yellow", "Red")),
  "Red"))

وذلك في الأساس، والتعبير عن ما يلي: "إذا LastBackUpTaken.Value =" لم يتخذ بعد "، وعودة اللون الأحمر. إذا لم يكن" لم يتخذ بعد "، تحقق لمعرفة ما إذا كانت السلسلة تاريخ. إذا كان يسن 'ر موعد، وعودة اللون الأحمر. إذا كان موعد لا حسابات، والعائد اللون المناسب.

وهذا التعبير يعمل من أجل كل حقول النص التي ليس لديها "لم يتخذ بعد" كنص لها. للحقول التي لا يكون "ليس بعد المحصلة" كنص لها ليس لديهم أي مجموعة اللون.

وتحرير: أنا أيضا الحصول على خطأ التحويل التي نسيت أن أذكر، كلما كان النص "ليس بعد المحصلة"

وأي أفكار؟

هل كانت مفيدة؟

المحلول

وكتابة وظيفة VB للعودة سلسلة اللون في علامة التبويب مدونة خصائص التقرير. هنا يمكنك استخدام التركيبات اللغوية كنت مرتاحا مع (بيانات الحالة، العادية إذا كانت تصريحات، وما إلى ذلك). المنطق يكون من الأسهل قراءة مرة أخرى كذلك.

Public Function GetBackgroundColor(ByVal DateString as String) As String
    'plain old vb syntax here
End Function

في التعبير عن الممتلكات لون الخلفية:

=Code.GetBackgroundColor(Fields!LastBackUpTaken.Value)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top