I think you can do this with style sheets.


This is just off my head, and completely untested (I'm writing it into this email as I think of it).


What you want to do is create your panels as you want them to print them in <div> blocks.  Then tell these <div> blocks to float left.  What will happen is that if there is not enough room for the next <div> to fit to the right of the previous one, it will fall to below it in line.  This works on the screen and on a printer.  We did something like this for a telephone directory, we set the names into groups that would output in columns when printed.


Don't forget you can define a print style sheet with different properties then your screen.  Makes it very easy to make your display look good both on screen and paper.


Some code snippets.
<style media="print">
div
{
    width: 8in;
    float: left;
}
</style>


<cfset sec = 1>
<div id="Panel1-#sec#"
<cfloop over data by dates>
    OUTPUT RESULTS


    <cfif Columns greater then 5>
        <cfset sec = sec + 1>


        </div>
        <div ID=Panel1-#sec#>
    </cfif
</cfloop>
</div>


I'm sure this will take quite a bit of refinement, but hopefully it gets you started.  If you need more specific help let me know.


--------------
Ian Skinner
Web Programmer
BloodSource
www.BloodSource.org
Sacramento, CA

"C code. C code run. Run code run. Please!"
     - Cynthia Dunning
[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]

Reply via email to