القضاء على مجموعة تذييل الصفحة استراحة قبل التقرير تذييل الصفحة

StackOverflow https://stackoverflow.com/questions/1144694

سؤال

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

مثال على ما يشبه طباعة التقرير وليس التصميم. يحتوي تقريري فقط على رأس مجموعة واحدة ومجموعة تذييل واحدة:

رأس تقرير

مجموعة بيانات المجموعة 1 رأس التفاصيل تفاصيل التفاصيل مجموعة بيانات مجموعة 1 تذييل 1 تذييل

مجموعة بيانات المجموعة 2 تفاصيل رأس التفاصيل مجموعة groupdata مجموعة 2 تذييل! أنا لا أريد هذا!

تذييل التقرير (عالق في الصفحة الأخيرة من خلال نفسه)

نشر على مجلسهم: http://community.devexpress.com/forums/t/78705.aspx.

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

المحلول

هذا يحدد متى توصلت إلى نهاية التقرير وتوقف تذييل الصفحة من كسر الصفحة. يفترض أن خاصية صفحة تذييل مجموعتك تم تعيينها بالفعل إلى PageBreak.Afterband.

private void Report_DataSourceRowChanged(object sender, DataSourceRowEventArgs e) {
    if (e.CurrentRow == this.RowCount - 1)
        GroupFooter.PageBreak = PageBreak.None;
}

بدلا من ذلك، يمكنك تعيين خاصية صفحات رأس المجموعة الخاصة بك ومجموعة التذييل إلى PageBreak.none. ثم عندما تقوم بطباعة المجموعة الأولى، قم بتعيينها على استراحة الصفحة قبل كل الفرقة رأس المجموعة مثل:

private void GroupFooter_BeforePrint(object sender, DataSourceRowEventArgs e) {
    if (GroupHeader.PageBreak == PageBreak.None)
        GroupHeader.PageBreak = PageBreak.BeforeBand;
}

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top