The XML Report Engine



  • I just stumbled across this monstrosity.  We had a feature request to be able to select multiple states on a report.  Easy enough, right?  WRONG.  The entire report, as well as a dozen others in our system, is all done via a combination of Stored Procedures, XML and XSLT that gets output to a label control on an ASPX web page.

    For example, this particular report is generated via a method that calls a one-thousand-line stored procedure that is technically 8 reports in one, determined via a "SubReport" parameter and returned as XML.  This XML is then transformed via an XSLT file. and returned as a StringBuilder, which is then output to the label.

    The mind is boggled how anyone could think this was a good idea for anything and yet every report in the system uses this style of being generated.  The report in question simply displays some columns (with the column names changing based on the SubReport) and the count of those columns (although some are calculated in the stored proc and are not simply SQL COUNT()s).

    Coupled with over 1,100 stored procedures (they are used for everything - this company has a serious fetish with relying on the database for anything and everything), an unwillingness to do anything other than hack code out as fast as possible, and no understand of what the business' actual revenue generation is and thinking that fancy features can make up for a clunky and broken workflow, I want to shoot myself.



  • Just show them your version of the report, written in 5 minutes in SSRS and they will be blown away by the features such as 'bold text', headings and auto calculated totals!!



  • @Charleh said:

    Just show them your version of the report, written in 5 minutes in SSDS and they will be blown away by the features such as context search, video, and random!!

     

    SSTFY

     



  • @Justice said:

    @Charleh said:

    Just show them your version of the report, written in 5 minutes in SSDS and they will be blown away by the features such as context search, video, and random!!

     

    SSTFY

    What's the point with the Swiss Sheep Dog Society?

     



  • I almost thought you were an ex-colleague, but where I worked everything was done with Crystal (shudder) Reports. For the rest, the similarities are striking: 1000 line report functions, check, many, too many stored procedures, check...



  • For my money, Crystal Reports is a decent reporting tool[1]. SSRS is essentially Microsoft's ripoff of CR but with a lot of improvements (such as the distribution functionality) and some minor WTFs fixed.

    There's also quite a number of open-sauce reporting engines, as well as many proprietry ones. I've never understood the mentality behind trying to build your own or - worse still - using something like Excel/Access as a reporting tool.

    [1] provided it's used correctly. Most of the detractors of this tool I've come across often haven't been formally trained in its use, struggle with their unfamiliarity then blame the tool for not having an idiot-proof "do everything wizard" button. For what it does, it's not bad.



  • Some people, when presented with a problem, think "I know, I'll use XML."

    <Problem:Worsening>

    <Problem:TimeDescription>Now</Problem:TimeDescription>

    <Problem:Posessive>they have</Problem:Posessive>

    <Problem:Quantity>many, many</Problem:Quantity>

    <Problem:WorseningDescription>more problems</Problem:WorseningDescription>

    </Problem:Worsening>



  • @Mason Wheeler said:

    Some people, when presented with a problem, think "I know, I'll use XML."

    <Problem:Worsening>


    <Problem:TimeDescription>Now</Problem:TimeDescription>

    <Problem:Posessive>they have</Problem:Posessive>


    <Problem:Quantity>many, many</Problem:Quantity>

    <Problem:WorseningDescription>more
    problems</Problem:WorseningDescription>

    </Problem:Worsening>

    I'm sorry, I can't parse that. Do you have a DTD?



  • @Mason Wheeler said:

    Some people, when presented with a problem, think "I know, I'll use XML."

    Not sure why they think that. XML is simply a markup language, not a solution to a problem. I understand how XML may feature within the solution, but the solution shouldn't be dependent upon a specific data format.

    @spamcourt said:

    I'm sorry, I can't parse that. Do you have a DTD?

    XSD all the way, bitch!


  • @Cassidy said:

    For my money, Crystal Reports is a decent reporting tool[1]. SSRS is essentially Microsoft's ripoff of CR but with a lot of improvements (such as the distribution functionality) and some minor WTFs fixed.

    Some minor? Must be another version. I think we had version 9 or so, and it crashed frequently when editing. Trying to align labels, columns, etc. was a time-consuming pain. And there was some weird bug where under certain conditions it would display 92.3% as 9.23e+38%. And then there was the problem with packages and schema names in Oracle which meant an humongous amount of clicking every time a new client was added, or worse, when reports needed a minor change.

    I've tried some of the OSS alternatives, but the only one that installed without any problems (Jasper, I think) was about as lousy, but with less functionality.

    And now that you mention it, the company was indeed considering to roll its own...



  • @TGV said:

    Some minor? Must be another version. I think we had version 9 or so, and it crashed frequently when editing.

    Not seen nor experienced that behaviour with 8.5, 9 nor 11 (unpatched).

    @TGV said:

    Trying to align labels, columns, etc. was a time-consuming pain.

    It will be if you don't use guidelines and grids.

    @TGV said:

    And there was some weird bug where under certain conditions it would display 92.3% as 9.23e+38%.

    There are some reported issues with the currency symbol stuck on "$" and summarising a row of integers results in a number formatted to 2 decimal places (as though all numbers are treated as currency). many of those niggles vanished in later versions, as though they took onboard these faults and corrected them as time wore on.  Doesn't mean they didn't introduce new bugs/undocumented behaviour, mind...

    @TGV said:

    And then there was the problem with packages and schema names in Oracle which meant an humongous amount of clicking every time a new client was added, or worse, when reports needed a minor change.

    Not sure what you mean by "new client added" - is this a fault of CR or of Oracle? Note: I know CR comes with a number of ODBC connections for database connectivity, none of which are as good as the vendor-provided ODBC drivers. I honestly got the impression Seagate were treading into territory they didn't fully understand when it came to connectivity issues.

    @TGV said:

    I've tried some of the OSS alternatives, but the only one that installed without any problems (Jasper, I think) was about as lousy, but with less functionality.

    I trialed one that looked pretty much like a CR rip-off and got on with it okay, but can't remember its name - didn't spend much time with it, though, since I was also messing around with logrep server and some other reporting systems at the time.



  • @ObiWayneKenobi said:

    For example, this particular report is generated via a method that calls a one-thousand-line stored procedure that is technically 8 reports in one

    Only one thousand? I have a stored procedure open in front of me which is fourteen thousand lines long, and we have three of these abominations.



  • @ObiWayneKenobi said:

    a combination of Stored Procedures, XML and XSLT that gets output to a label control on an ASPX web page.
     

    Guy knows XSLT, but no .Net, and not too much SQL.

    Guess this is what you get, then.


Log in to reply