YAPS on Dynamic PageBreaks: Mixing up the Groups

by Lisa Nicholls Sun, February 14 2010 16:15

Karthik asks

My actual task is to display totals of each group at the end of page breaks which are further grouped on count of 1000. I don't know how to proceed with this issue. I have also queried the same at MSDN forums at the following links but haven't been getting any responses at all.

social.technet.microsoft.com/.../b3ea0253-bb5a-463d-82e8-4e9d1d9eed3a

Could you please provide any tips/suggestions on the way to deal with this task?

This is actually a tough one, but luckily I brought grenades.  Today's Karthik's day in TechSpoken Court...

Why is this so hard?

Let's  quickly recap the problem.  I will demonstrate Karthik's scenario using the City table in my standard SqlWorld sample db. 

SELECT id, countrycode, district, name, LEFT(name,1) AS NameInitial, population
FROM city
ORDER BYcountrycode,district,name

Karthik has three "real" groupings and aggregation levels in his report, which we will model using CountryCode, District, and the first initial of the city name (that's why the ORDER BY clause).

Typically, you put a conditional or dynamic page break instruction on an outer group.  In this case Karthik has used CEILING(RowNumber(NOTHING)/1000) as his outermost group instruction. 

When an outer group breaks, each inner group breaks too; they are "child" groups, or nested aggregates.  Karthik's problem occurs when one of his "real" groups has more than 1000 rows.  Karthik doesn't want to see his sums or other aggregates until the "real" groups are actually finished.

Since my sample doesn't really have more than 1000 rows in any one set, and to test properly, I've made the "Break on" figure configurable, with a default value of 3 rows.  I've illustrated the problem like this:

 

The AGO country code grouping that starts on page 2 doesn't finish on page 2.  Therefore, even though a group break is forced by the outer group every 3 detail rows, we shouldn't have totals for AGO on page 2.

The report is doing what we said, but it isn't doing what we meant.

What not to try

I first tried to solve this problem using a "remove the groups" strategy, which I've used successfully in other scenarios before.  It quickly turned into a nightmare.  I'll cut to the chase and say... don't bother.

Inner dynamic group breaks

I realized that the right thing to do was to move the dynamic break group inside the ones that might have more members and shouldn't show aggregates until they legitimately ended.  This is the right solution, but it turned out to be a little more complicated than expected.

Before I explain, the usual caveats.  In this case, there are two things to keep in mind:

1. My analysis may be better than my solution. Read what's involved, because I've done this part right. Maybe you'll think of a better way to handle what needs to be done.

2. I'm only moving one level of grouping inwards, because that's all that's necessary to show you what's involved -- even though, as you'll see, the District group could also "overflow" the test break value of three rows that I'm using in these screen shots is so small. However, if Karthik or you have more than one additional level that could have more rows than the explicit page breaks you want to create, it doesn't change the problem. Whatever solution you use -- whether mine or your improved version -- the thing-to-fix, and how it works, remain exactly the same.

The unkindest cut

We start, as explained  by moving the outermost group with the special "CEILING" expression one level inward.  You can try taking Karthik's expression and just moving it, as-is, if you want to play along.  Here's the error you'll get:

A group expression for the grouping 'Standard Page Break' uses the RowNumber function with a scope that is not valid.  When used in a group expression, the value of the scope parameter of RowNumber must equal the name of the group directly containing the current group.

Ouch. Note: this is the error message I get in RS 2008 using the Report Designer; it might be slightly less explicit using ReportBuilder or RS 2005, but I imagine the engine rules are the same.

You can try to do the obvious thing and use the scope suggested in this error message (in my case, that would be RowNumber("table1_CountryCode")).  This may seem to work for you -- for me, it didn't have the desired results.   Maybe I should have perservered, but I think that different sort orders, on different levels, may interfere. So, instead, I thought about how I could mimic the desired behavior of RowNumber(Nothing) without actually using the forbidden syntax.

The second cut

I did a number of things with Code functions, counting rows myself, which seemed to sort-of-work.  But the behavior seemed a bit flakey, especially when rendering to HTML and flipping back and forth between pages. 

In the end, I took the more reliable route of creating my own row counter in SQL, like this: 

SELECT
Name,CountryCode, District, Population, ID,
ROW_NUMBER() ORDER BY CountryCode,District,Name)
FROM City
ORDER BY CountryCode,District,Name

-- the new group break expression is:
-- =CEILING(Fields!RowNum.Value/Parameters!BreakOn.Value)

... and that sort-of worked. I mean, it worked for most pages.

But now I had a new problem. On pages where the CountryCode (outer) group break and the pagebreak limit (Parameters!BreakOn.Value) coincided exactly, no page break occurred.  Apparently, the fact that the outer group said "no page break" countermanded the inner group's explicit page break instructions. 

This behavior was consistent in different renderers, and seemed to have nothing to do with margins, sort orders, or anything else I could tweak.  So, clearly, more effort was required.

Giving myself a break

By the time I figured out the pattern of the mysterious pages that didn't work as expected, I wanted to solve this in a very literal-minded fashion and get it over with already.  I already had a way to say "do a page breaks without unwarranted group header and footers", that was inner.  But now I needed to say "Also break at the same time as group headers and footers are warranted".  So, I realized I needed a second way to break -- outermost, where it would be the highest-level authority on whether a page break was called for.

 

What would be the proper group break expression for the new group, though?

I knew I wanted to to give the group these instructions: "Only break when (a) you've hit the right number of rows and (b) you've also hit the CountryCode group break". 

Again, thinking literally, I knew that the second condition could be satisfied by checking the current CountryCode against the previous row's CountryCode.  But, in using the Previous function, I ran into similar limitations in group expressions as I'd faced with the RowNumber() function:

A group expression includes the aggregate function 'Previous'.  Previous cannot be used in group expressions.

Ouch squared.

I tried a lot of ways to get around this expression, as I did earlier (because I am stubborn), by writing code to compare the values myself, but in the end I took the somewhat more controllable path of adding the value directly into my SQL query, like this:

SELECT curr.*, prev.CountryCode AS PrevCountryCode
FROM 
  
(
    S
ELECT TOP 100 PERCENT ROW_NUMBER() Over  
      (ORDER BY CountryCode,District,Name) AS RowNum, 
    RTRIM(Name) AS Name,CountryCode, District, Population, ID  
    FROM City 
    ORDER BY countrycode,district,name
   ) curr
LEFT JOIN
   (
   SELECT TOP 100 PERCENT ROW_NUMBER() Over
     (ORDER BY CountryCode,District,Name) AS RowNum, CountryCode 
   FROM City  
   ORDER BY countrycode,district,name
   ) prev
ON curr.RowNum-1 = prev. RowNum

... and, while it may be possible to handle the resulting evaluation in a direct group break expression, I found it easiest to set up a function to do it, like this:

Ignore the Intellisense failure (annoying isn't it?) which just indicates that Intellisense isn't very... intelligent... about custom code. 

And you can ignore the ShowIssue parameter, which I only needed to show you the problem that occurs when this break behavior isn't included in my sample report.

The report script looks like this (as you can see it's very simple and literal-minded):

Dim CurrBreakNum As Integer = 0  
Dim CurrCeiling As Integer = 0  
 
Function GetBreak( _  
   ByVal showIssue As Boolean, ByVal thisCeiling As Integer , _  
   ByVal currCode As String, ByVal prevCode As String) As Integer
 
   If showIssue Then

      ' never break, we want to show the issue


   ElseIf
 prevCode Is Nothing OrElse Len(prevCode) = 0 Then

      ' first row, there is no previous value

      CurrBreakNum = 1

   ElseIf
(CurrCeiling <> thisCeiling) AndAlso (currCode <> prevCode) Then

      ' if we've hit the special situation where
      ' a break is called for and the "outer" group
      ' breaks on the same row, we have to force 
      ' an external break...
      CurrBreakNum += 1

   End
If

   CurrCeiling = thisCeiling

   Return CurrBreakNum  

End Function

See?

Simple, literal-minded, and rather brute-force-ish.  And of course I tried all kinds of ways to be clever first.

But... when you think about it, you'll see that this approach makes sense and fits "what's really going on" in the engine. And, more importantly, it works.

Tags:

Reporting | SQL Server | YAPS

Comments (127) -

2/16/2010 3:10:53 AM #

Karthik

Hi Lisa,

First of all thanks a lot for this wonderful and highly informative post. After today's discussion ,re-working on the solution with the same code I was able to successfully insert the page breaks in the report. I don't know why it created problems yesterday in the studio. I wish it could have worked yesterday and the misunderstanding could have been avoided. Am sorry again for that. I should have first been on record. Smile Here are few things that I have observed.


(1) Page break was occurring for a group having less than 1000 records. For example, in the Customer Type group 'Electronic Invoicing' is appearing on two pages having total records of 41. And in these two pages, the totals displayed were for the page level i.e. for 21 & 20 records respectively.

(2) Page breaks were also occurring for every change in Customer Type. With a total of 2800 records it should have been total 3 pages whereas I am currently seeing 6 pages. Type1(3 pgs), Type2(1 pg), Type3(2 pgs) and Total Sum in the last page along with the type3 in last page.

(3) Exporting such report into excel I see total of 9 sheets, the behavior of which I am not able to understand.

What I have done -

With the new dataset query of prev and current, first I tested with only the inner grouping with the group expression for page break -  =CEILING(Fields!RowNum.Value/1000). Doing only this I was getting the totals as desired for all the groups but the issue (3) persists and I am getting 5 sheets.

I have then added the OuterGroup with the Code.GetBreak function as Group expression and having only 'Page break at End' checkbox value ticked. I hope that is what you have meant when you say - "proper group break expression" and the above issues have been observed.

Firstly please do let me know if I have gone overboard expressing these observations and I shall try to see on how to resolve taking one at a time. I am also trying in the meantime though.

Secondly, as explained my real issue is to deal with exporting report data which has more than 65,536 records. On searching we realized the only solution to this is by having a page break expression. In our current environment though we are having only 2800 records. Doing this we saw that the totals were accumulating for individual pages rather than the group as a whole (the essence of the problem). Resolving this we wanted to mimic the same behavior with a page break of 65000.

Thanks again.

Karthik India

2/16/2010 10:12:10 AM #

&gt;L&lt;

Hi Karthik,

If you're getting page breaks where you should not have them, then there is something wrong with the way you're setting the page breaks.  I may have missed a step in this walkthrough/explanation but I don't think so... or you may have missed a step in the implementation.

* or * -- and this is possible -- the problem may be that I was testing in 2008 and you were using 2005.  If this is so, then the behavior I'm seeing, where the outer group countermanded the instructions of the StandardGroupBreak, might not be occuring in 2005, and you just don't need the extra outer group break at all.  If that's the case, you should be able to get exactly what you want without the extra complexity, problem solved.

I haven't had time to test in both environments, and didn't think this was a behavior that would be new in 2008. I don't have 2005 available to me right now. It would be interesting to see this and I could try next weekend.

The behavior of Excel makes perfect sense; it will break in every case where an explicit page break is called for, regardless of what that happens to be.  Again, I did not see this, but I was working in 2008.  It is absolutely true that the Excel renderer changed a lot in 2008 (and is slated to change again with R2).  

Where the real problem is with a particular rendition, the most important thing is that the desired renderer behaves as you want; the rest of the versions of the output really don't matter.  So let's look at the proper ways to fix your real issue!

1 - Use XML, not Excel, and use XSLT to get the Excel you want as SSML.  This is something I've discussed in a number of other posts. Get your page breaks wherever you want, and noplace else, plus name your tabs how you want, etc, etc.

2 - Use XML and write some code to export to Excel 2007 where the restriction to 65k records will not exist.

3 - Accept the limitations of Excel and tell your users that this report requires some type of limitation of the contents (I'm not sure if this is possible with your data or your user set, but if they insist on using Excel 2003, these are the limitations).  Instead of experimenting with breaks on 1000, ask them what they would prefer, given this limitation.  

You may be surprised at the answer, and it may radically change your implementation.  For example, they may say they would prefer one sheet (because of the use they are making of the Excel output), no matter what.  Offer them a TOP N parameter in this case, with an appropriate ORDER BY (TOP N does work with a variable in 2005, right?  If not, you'll need a little dynamic SQL).  

With this kind of response, usually users are intent on analysis with Excel, so you can also suggest that they use CSV instead. Never mind the fancy formatting. (
I don't know if you're using ReportViewer or ReportManager or grabbing the report output via code or a schedule, but you *can* hide Excel as an output type if you need to.  )

Alternatively, they might say "We didn't realize that was a problem, let's have a page break on every CustomerType group", in which case you'll know what to do Wink. You can expose this as a separate report for them, "Excel-Centric".

You may have already taken this route, but I want to make sure that you and everybody else who might be reading understand that you should not leave users out of the discussion, just in case.

IMHO a page break of 65k is not really a useful resolution for most user scenarios, and it's best to let them think about how they will use the data, before deciding for them.  It's important to understand *why* users export to Excel, not just make sure it doesn't break -- just as it's important for me to understand *why* you have your requirement before answering your question.

>L<

>L< United States

2/18/2010 2:48:53 AM #

Emma Watson

oh wow great poat and amazing site...thanks for sharing Smile


please keep this good work up!!!

Regards
Emma

Emma Watson Germany

2/20/2010 12:02:36 PM #

&gt;L&lt;

Hey Karthik,

It turns out to be a lot easier in 2005 -- and works exactly the way I expected it should. Sigh.  I will write a new post and explain.

>L< United States

3/10/2010 6:12:55 PM #

Dugun Organizasyon

oh wow great poat and amazing site...thanks for sharing

Dugun Organizasyon Turkey

3/11/2010 3:47:34 PM #

Mr Rolex

>l< thats really helped me, ive been stuck with a similar problem to Lisa but id nearly pulled all the hair from my head trying to work around it. Ive got some new ideas now, thankyou Smile

Mr Rolex United Kingdom

4/4/2010 9:03:26 AM #

outsource medical billing

definatly working on dynamic pages with mixing groups.

outsource medical billing United States

4/12/2010 8:23:08 AM #

Australian

YAY! thank you so much!!!! I have been looking for help and a friend gave me the link here, Off to give it a go. Smile

Australian Australia

4/13/2010 2:29:11 AM #

Cheap Dedicated Hosting

Hi Lisa and Karthik,
thank you for providing such a great article about YAPS on dynamic pagebreaks.
It's a helpful information.

Cheap Dedicated Hosting United States

4/13/2010 4:43:17 AM #

Humor Blogger

Karthik and Lisa thanks sooooo much!
Great helpful post with ideas I can't wait to test out

Humor Blogger United States

4/13/2010 5:42:26 AM #

Best Anti Aging

I would like to thank Lisa and Karthik for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well.

Best Anti Aging United States

4/13/2010 5:48:59 AM #

Cool Motorcycles

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on YAPS. It is extremely helpful for me.

Cool Motorcycles United States

4/13/2010 5:53:22 AM #

Mortgage and Laon

Hi. I wanted to drop you a quick note to express my thanks. I've been following your blog for a month or so and have picked up a ton of good information as well as enjoyed the way you've structured your site.

Mortgage and Laon United States

4/13/2010 5:57:52 AM #

Dream Cars

Hi, good post. I've problem concerning a similar issue myself with report and YAPS.
Thanks for sharing.

Dream Cars United States

4/13/2010 6:01:32 AM #

Blu Ray Player

Valuable information and excellent design you got here! I would like to thank you for sharing your thoughts and time into the stuff you post!! Thumbs up

Blu Ray Player United States

4/18/2010 10:58:26 PM #

Carpet Mesa

This really helped fix my problem.  Thanks.

Carpet Mesa United States

4/23/2010 6:12:07 AM #

Pregnancy Miracle Book Scam

From this paragraph of yours, I got this question.

You say "Accept the limitations of Excel and tell your users that this report requires some type of limitation of the contents (I'm not sure if this is possible with your data or your user set, but if they insist on using Excel 2003, these are the limitations).  Instead of experimenting with breaks on 1000, ask them what they would prefer, given this limitation"

Does this mean that it's not a problem when you use Excel 2007? Thanks!

Pregnancy Miracle Book Scam United States

4/26/2010 5:49:52 AM #

block porn sites

This was very useful. Thanks

block porn sites United States

4/26/2010 9:21:13 AM #

hypertufa recipe

Thx for a very helpful post - sure helped me out. Please keep up your effort.

hypertufa recipe Denmark

5/2/2010 11:10:41 PM #

Erotikshop

Nice to read that this problem isn't still a problem and there is a solution of it. Sometimes it takes a little bit time to get the perfect solution. I really like you blog and your very detailed information and examples!

Erotikshop Switzerland

5/6/2010 9:44:30 AM #

Best Websites

This was very useful information. Thanks for sharing.

Best Websites United Kingdom

5/7/2010 2:35:03 AM #

Download Filmes

Finally, after all those years, this problem has been come up with a great solution. Great article and you did a great job on illustrating examples and explaining these things in detail. Keep it up!

Download Filmes United States

5/8/2010 7:57:55 AM #

carpet cleaning london

I stopped on Excell 97 relase (((: it`s possibilities are far enough for me but probably move to the new relase soon hope it is really better.

carpet cleaning london United Kingdom

5/11/2010 5:54:19 PM #

Funny Shirts

Great post, thanks for this nicely detailed guide!

Funny Shirts United States

5/11/2010 9:57:23 PM #

Translation

Yes, I agree that it changes in the year 2008. But unlike all changes it is not for the better. It is harder to understand and use unlike way back in 2005.

Translation United States

5/13/2010 2:36:23 AM #

uhlsport goalkeeper glove

wow this is really a complicated matter. Hope you solve it.

uhlsport goalkeeper glove United States

5/15/2010 12:25:56 AM #

binary options trading

to the administrator. thank you for the script you provided in this site. The topic was very helpful for programmers like me. More power and God Bless.

binary options trading United States

5/16/2010 8:44:18 AM #

weight loss formula

Excell possibilities are incredible, we are using them maybe in 5%

weight loss formula United States

5/16/2010 12:11:16 PM #

depilacja laserowa

Thanks for providing this script, I will forward it to my programmer ,he can handle one thing and hope he could resolve the problem now.

depilacja laserowa Poland

5/16/2010 2:33:59 PM #

LSN

Nancy O:
>>Does this mean that it's not a problem when you use Excel 2007? Thanks!

Yes, the number of rows and columns are greatly increased in Excel 2007.  Hope this helps.

LSN United States

5/20/2010 2:22:19 AM #

Farmville Expert

I have read the script and its been useful for me. effective manner in both the ways used.

Farmville Expert United States

5/21/2010 6:03:28 AM #

16gb flash usb

well i had no problems so far, but not using excel too often, maybe i'm missing something. but anyhow, thank you for info

16gb flash usb United Kingdom

5/21/2010 8:03:21 PM #

internet shops

Great post.!!!I like how you present the topic and you have explained it well. Your topic was well established and I thank you for the effort of explaining it and presenting it just the way you have done.

internet shops United States

5/23/2010 12:31:47 PM #

Max Laughter

Thanks for this great post it was very informative and helped me with my own project I am attempting to complete.

If you have any other tips for Excel I would greatly appreciate it...you have a great way of laying out the solution!!

Max Laughter United States

5/28/2010 12:19:54 PM #

Astral Projection

I think using "Inner dynamic group breaks" is too complicated solution for such a simple problem!

Astral Projection United States

5/29/2010 2:48:53 PM #

england football fixtures

to the man in charge. thank you for the script you provided in this site. The topic was very helpful for programmers like me. More power and God Bless.

england football fixtures United Kingdom

5/31/2010 11:32:36 AM #

apple media players

finally someone exeptionally well explained this subject. i'll be coming back for updates as well.

apple media players

5/31/2010 3:01:41 PM #

Becca makeup

On searching we realized the only solution to this is by having a page break expression. In our current environment though we are having only 2800 records. Doing this we saw that the totals were accumulating for individual pages rather than the group as a whole (the essence of the problem).

Becca makeup

6/1/2010 11:40:29 AM #

blog mode homme

Karthik and Lisa thanks so much!

Great helpful post with ideas I can't wait to check on out

blog mode homme United States

6/1/2010 6:45:02 PM #

replica phones

Superb posting ,Your information is bread and butter for me,I got A lot more useful information from your blog,I will bookmark your post ,so continue writing,Thanks

replica phones People's Republic of China

6/2/2010 7:20:40 AM #

chaussettes

An exellent article, I will try to implement for myself

chaussettes France

6/6/2010 6:56:38 AM #

Peter @ brother hl-2170w

Ah, finally I found a good tutorial on this. Thank you. Smile It works great.

Peter @ brother hl-2170w

6/7/2010 8:29:49 AM #

cisco 3560 reviews

nothing else i wpuld add to that myself, Lisa. thank you for that piece of info

cisco 3560 reviews

6/7/2010 11:09:01 AM #

best betting site

Great info. How do I subscribe to your blog?

best betting site Russia

6/17/2010 10:42:58 PM #

neukfilms

Superb posting, admiring the time you put into it.

neukfilms Sweden

6/18/2010 12:53:59 PM #

acne treatment for adults

Thanks for explaining.
This was really hard to understand

acne treatment for adults Sweden

6/20/2010 7:41:26 AM #

scorpion motorcycle helmet

I found it from yahoo. I've been following your blog for 3 days now, and i should say i am starting to like your post and now how do i subscribe to your blog?

scorpion motorcycle helmet Indonesia

6/28/2010 1:40:42 PM #

iPod Free

I've found this slightly easier with Office 2007 and Office 2010 but your tutorial has helped me overcome some hurdles.

iPod Free United Kingdom

6/29/2010 8:15:53 AM #

Linda Cashmir

At first, the tutorial is difficult to follow but once you get it, you'll get the hang of it. thanks for posting the screen shots too.

Linda Cashmir United States

6/29/2010 10:32:04 PM #

Amy Fox

I agree with you Linda, but I was able to learn the way around it too.

Amy Fox United States

7/1/2010 12:23:20 AM #

Trellis

Great post! I was able to edit my work. I was able to include the pagebreaks.

Trellis United States

7/2/2010 8:16:40 AM #

Malaysian Tour

I found this easier with 2010 office version but this post is a big help too. thanks.

Malaysian Tour United States

7/2/2010 1:56:44 PM #

Transport mobila

If you know how to use it, this might be the best way.

Transport mobila Romania

7/2/2010 7:31:29 PM #

Hotels Rhodes Island Greece

I found this easier now and I have become more comfortable with page breaks this time.

Hotels Rhodes Island Greece United States

7/6/2010 1:17:58 AM #

christian louboutin

In the begining, I can't understand the Office 2007 and Office 2010 but your tutorial has helped me overcome some difficulties.

christian louboutin Liechtenstein

7/9/2010 4:46:02 PM #

Maxi Dress

I love how people have spammed this blog but tried to make it look like they have read the article!!

Maxi Dress United Kingdom

7/10/2010 8:37:27 AM #

pergola awning

I found your post from google, this is my first read to your post and will be read again later. Thanks

pergola awning United States

7/12/2010 3:56:29 AM #

Black Eyeliner

I've been having a lot of trouble with this. I get frustrated easily too ... :-(

Black Eyeliner United States

7/13/2010 3:04:33 AM #

DVD RENTAL CANADA

I rare see the blog without spams and this blog comes in spam free list....

DVD RENTAL CANADA United States

7/14/2010 1:47:28 AM #

vibramfivefingers

Wow,good post!Thanks for sharing this great post. It is very informative and help me to do my own project I am attempting to complete better.Many thanks!

vibramfivefingers People's Republic of China

7/14/2010 6:05:31 AM #

grooms speech

Lisa you are a complete hero.  Seems easy enough even for an idiot like me!  Will let you know how I get on.

grooms speech United States

7/17/2010 2:13:38 AM #

Private Label Rights

Hey Lisa,

Thanks for such an awesome article about YAPS on dynamic page breaks.

It's helpful information especially with the images.

Private Label Rights United States

7/18/2010 9:38:22 PM #

Inchirieri masini

Will get to use it the same way. It seems more clear than the others and I don't know what else to use.

Inchirieri masini Romania

7/19/2010 2:42:05 AM #

corsets basques

YAPS and dynamic page breaks = totally above my head!

corsets basques United Kingdom

7/30/2010 4:40:17 AM #

Rugby Betting

Fun with groups eh?  I always find it is better to draw it on paper to understand it.

Rugby Betting United Kingdom

7/31/2010 9:24:12 PM #

FAG Bearings

Lisa you are a complete hero.  Seems easy enough even for an idiot like me!  Will let you know how I get on.

FAG Bearings People's Republic of China

8/1/2010 2:33:08 AM #

Upratovanie

Nice a informative post thx !

Upratovanie Slovakia

8/1/2010 1:26:28 PM #

Sildenafil

Karthik received a detailed and complete answer! Thanks to the authors site!

Sildenafil United Kingdom

8/2/2010 7:03:18 AM #

moroccan lanterns

I got the main point. very well explained!

moroccan lanterns United States

8/2/2010 5:34:37 PM #

wash floor tiles

I think I finally got it.  This clears it up a bit for me.  My scripts were giving me headaches.  I guess the learning curve is a bit larger than I thought.  Thanks again!

wash floor tiles United States

8/3/2010 7:12:01 PM #

grinding mill

It's great and Very helpful to all of us !

grinding mill People's Republic of China

8/5/2010 10:14:57 PM #

credit unions Swansea

Very good question kartik. I must say this post is very beneficial to me and hope to others too. The author has shown very nice way to use RS 2008. Thank you for sharing this information.

credit unions Swansea United States

8/12/2010 4:47:02 AM #

Electrolux Ergorapido

Hmm interesting solution for the problem. Yeah i tried the remove groups move my self and didn't yield any results what so ever. Then i went back the good old drawing board. I'm going to try your solution and let you know how it worked out for me.

Electrolux Ergorapido Slovenia

8/13/2010 2:05:32 AM #

house extension costs

Great piece on dynamic page breaks, thanks.

house extension costs United Kingdom

9/3/2010 3:26:03 PM #

Astral Projection

Ok this info was so helpful I think I owe you $100. But really thanks a million!

Astral Projection United States

9/16/2010 12:53:46 PM #

Automobile Transportation

Thanks for this post, you seem to have a habit of churning out useful code and recommendations.

Automobile Transportation United States

9/17/2010 6:04:47 PM #

Lauren Smith

Great post, thanks!

Lauren Smith United States

9/21/2010 8:45:50 AM #

equityrelease

Now that makes a whole lot of sense, I hadn't realized that was the way for dynamic pagebreaks.

equityrelease United Kingdom

9/23/2010 11:13:27 PM #

Anna

Thanks for the good blogSmile

Anna United States

9/23/2010 11:14:17 PM #

Anna

Amazing blog! Thanks a million!

Anna United States

9/24/2010 5:52:55 PM #

commission de surendettement

I am just new to your blog and just spent about 1 hour and 30 minutes lurking and reading. I think I will frequent your blog from now on after going through some of your posts. I will definitely learn a lot from them. Regards

commission de surendettement Australia

10/6/2010 8:12:45 AM #

Buy Pregnancy Miracle

thanks for the great help for the beginner! Such a nice site for me… Thanks for the great info! You give more knowledge about the path I will going through. Hope to see this site successful in the near future.

Buy Pregnancy Miracle Australia

10/7/2010 1:37:18 PM #

psychologist cape town

I really Cant say this loudly enough!!!!! Thank you! Page breaks under my belt.

psychologist cape town United Kingdom

10/8/2010 2:53:09 PM #

Watch Pacquiao vs Margarito

I would agree in your post. Awesome.. Very interesting.

Watch Pacquiao vs Margarito United States

10/9/2010 6:52:44 PM #

ltl Carrier

Thanks for the advice on how to mix it up a bit with Pagebreaks.

ltl Carrier United States

10/11/2010 4:31:50 AM #

ravel Shoes

Hmm interesting solution for the problem. Yeah i tried the remove groups move my self and didn't yield any results what so ever. Then i went back the good old drawing board. I'm going to try your solution and let you know how it worked out for me.

ravel Shoes United Kingdom

10/21/2010 10:04:08 PM #

Free

I have no idea what any of this means.

Free United States

10/26/2010 7:44:19 AM #

Rob

an excellent idea! Thanks

Rob United Kingdom

10/27/2010 8:31:15 AM #

hair extensions kent

wow! Great idea and nicely written. Thanks!

hair extensions kent United Kingdom

10/27/2010 6:19:41 PM #

how to lose man boobs

Thanks for demonstrating  Karthik's scenario so simply. I had a lot of questions using the city cable. Thanks

how to lose man boobs Canada

10/27/2010 6:37:32 PM #

Simon

The second condition could be satisfied by checking the current CountryCode against the previous row's CountryCode

Simon United States

10/28/2010 1:09:12 AM #

buy tile

Awfully insightful appreciate it, I'm sure your readers may perhaps want further stories like that keep up the excellent work.

buy tile United States

10/28/2010 12:59:19 PM #

excel credit report

Hmm, never seen Excel in such a i depth way, thanks Smile


Johnson

Germany

excel credit report Germany

10/28/2010 8:41:34 PM #

Jacinta Jackiewicz

Very nice article, thanks you very much for sharing!

Jacinta Jackiewicz Greece

10/30/2010 8:44:11 AM #

Glass Extensions

very good article I enjoyed reading it.

Glass Extensions United Kingdom

11/4/2010 9:52:33 AM #

Plymouth Window Repairs

This is top notch stuff and very useful. You should be a fulltime lecturer.

Plymouth Window Repairs United Kingdom

11/6/2010 9:23:05 AM #

Federico Mench

Fantastic article - This article really blew my mind, and good website, the layout and design er wonderful.

Federico Mench United States

11/7/2010 10:43:06 PM #

Tigara Electronica

Good info, but do something with the spammers here.

Tigara Electronica United States

11/8/2010 3:45:58 AM #

iPad free

I found your website perfect for my needs. It contains wonderful and helpful posts. I have read most of them and learned a lot from them. You are doing some great work. Thank you for making such a nice website.

iPad free United Kingdom

11/8/2010 4:33:02 AM #

varionet

Awfully insightful appreciate it, I'm sure your readers may perhaps want further stories like that keep up the excellent work.

varionet France

11/8/2010 4:51:05 AM #

JDG

Great solution, but thankfully I generally tap into a framework that helps with pagination.

JDG United States

11/9/2010 7:11:20 AM #

musclegaintruth

Thank you for your effort, your sql query helped me in one of my code i was struggling, surely will visit your blog again.
bookmarked Smile

Bob

musclegaintruth United States

11/10/2010 3:52:30 AM #

Web Design Scotland

Great blog, this has really interested me thanks for posting

Web Design Scotland United Kingdom

11/11/2010 3:32:47 PM #

cars movie

I never found an answer on MSDN forum when I really need a help, unfortunately don`t know the answer on your question but thing the best way of finding them is keep trying to solve it by yourself.

cars movie United States

11/12/2010 6:14:22 AM #

Homemade facial treatments

I always hated Excel, but we really need it sometimes...

Homemade facial treatments United States

11/22/2010 1:27:40 PM #

iPhone 5

But I'm still ending up with page breaks where there aren't meant to be any and I've been through my code with a fine tooth comb. Ah well, back to the drawing board unless you can enlighten me as to where I might have gone wrong?

Thanks
Amy

iPhone 5 United Kingdom

11/26/2010 8:48:48 AM #

Hdmi cat5

I always get in stuck, this kind of sql queries. But after reading your article, I learned some techniques. Thanks

Hdmi cat5 United States

11/28/2010 12:12:43 AM #

brother cs6000i

This is nice, I'm just learning SQL so it's good to see some useful techniques that can be used.

brother cs6000i United States

11/30/2010 4:36:05 AM #

Puritea

well i had no problems so far, but not using excel too often, maybe I'm missing something. but anyhow, thank you for info

Puritea United States

5/8/2011 2:43:38 PM #

iphone 5

found this was easier using Office 2007. stillg etting the hang of SQL but this tutorial is definately helping..  going to stick at it and hopefully something with come of it.

thanks
Victoria

iphone 5 United Kingdom

5/17/2011 4:41:10 AM #

hdmi over cat5

Info is great, but subject is not easy to guess. Because, The solution will be related to your problem. When you have a project with a difficualt request, then your ability will be shown. Anyway, at least some one is spoken about this subject. tahn you for your effort.

hdmi over cat5 United States

5/17/2011 3:17:42 PM #

Garden Supplies

I find Excel really difficult to use, its a very good and helpful application but Im just no good at it unfortunately

Garden Supplies United Kingdom

5/20/2011 1:55:35 AM #

Yorkshire Energy Prices

Ive tried and tried with SQL and I just can't get it. I think i'll stick to designing and leave the coding to someone else :-(

Yorkshire Energy Prices United Kingdom

5/27/2011 10:01:53 AM #

Hypnosis Derby

That was really useful I often struggle with SQL -i need more training

Hypnosis Derby United Kingdom

5/31/2011 11:04:26 AM #

Otterbox Defender

Very nice script

Otterbox Defender United States

6/9/2011 10:37:21 PM #

SEO India

Sorry for asking this but it is not working at my end. I am new to this so if you can please guide what should be done in step by step. It will be great help.

SEO India United States

6/11/2011 1:49:34 PM #

Mike

thanks Lisa! I'm just now learning SQL after far too long so it's good to see some useful techniques that can be used

Mike Canada

6/11/2011 9:54:38 PM #

מרק עדשים

I'm starting to learn SQL for my job in QA and i must say that only after reading this post my penny dropped about the subject. Thank you for this.

מרק עדשים United States

6/16/2011 4:38:06 AM #

Laylajoy

Is this better to use than Microsoft Access? I would love to here some suggestions of yours about it so that I can easily know things better about how I can easily do sql codes, honestly I'm just a beginner so I need help. Thanks to your post, now I just added some knowledge about yaps on dynamic pagebreaks, looking forward to have another post of yours that would help us.
Thanks again.

Laylajoy United States

6/17/2011 12:44:04 PM #

Cisco Training

Thanks. This was very helpful!

Cisco Training United States

6/19/2011 1:50:57 AM #

Free iPhone 5

Cheers for this.. I'm always messing up my page breaks!

Free iPhone 5 United Kingdom

6/21/2011 4:03:11 PM #

punchy

Very technical but I got the gist of it. Thanks.

punchy United States

6/24/2011 10:08:42 AM #

Freebiejeebies

Finally! I have found some good info on this! Thank you so much!

Freebiejeebies United Kingdom

6/25/2011 12:50:11 PM #

Freebiejeebies

Great post! Thanks! Will be back soon!

Freebiejeebies United Kingdom

11/20/2011 10:04:35 AM #

lisa olson

awesome information! thanks to you i saved hours of mindless programming

lisa olson United States

11/30/2011 8:03:13 AM #

Breville JE98XL review

You know the older I get the less worried about small things. It is important for us to take care of ourselves and far too few people realize this. Just need to take our time and find a system that will work.

Breville JE98XL review Azerbaijan

12/17/2011 2:24:15 PM #

Bradenton Fence

Hey, at least it works!  That's the important thing.

Bradenton Fence United States

Pingbacks and trackbacks (12)+

Add comment




  Country flag
biuquote
  • Comment
  • Preview
Loading