[reportlab-users] Flowing onto second column
Jim Steil
jim at qlf.com
Thu Feb 14 12:05:34 EST 2008
Jim Steil wrote:
> Robin Becker wrote:
>> Jim Steil wrote:
>>> Robin Becker wrote:
>>>> Jim Steil wrote:
>>>>> Tim Roberts wrote:
>>>>>> Jim Steil wrote:
>>>>>>>
>>>>>>> Is there an easy way to get data to flow to a second column the
>>>>>>> way you can get it to flow to multiple pages with Platypus?
>>>>>>
>>>>>> Sure. You just create multiple frames, one for each column, and
>>>>>> add the collection of frames when you create the PageTemplate.
>>>>>>
>>>>>> Here's a web page that shows an example:
>>>>>> http://www.hoboes.com/Mimsy/?ART=558
>>>>>>
>>>>> Ok, I'm trying to get my report working per the instructions at
>>>>> the link above. However, I've changed it a bit because instead of
>>>>> having paragraphs display in my columns, I have tables that I want
>>>>> to snake around the columns. So, where this doc refers to
>>>>> paragraphs in the 'items' list, I'm appending tables. But, when I
>>>>> get to the document.build(posts) statement, I get the following dump:
>>>>>
>>>>> Traceback (most recent call last):
>>>>> File "C:\PyWork\Motion\motion\utility\priceSheet.py", line 187,
>>>>> in <module>
>>>>> priceSheets(filename)
>>>>> File "C:\PyWork\Motion\motion\utility\priceSheet.py", line 178,
>>>>> in priceSheets
>>>>> go(doc, c)
>>>>> File "C:\PyWork\Motion\motion\utility\priceSheet.py", line 167,
>>>>> in go
>>>>> doc.build(allData)
>>>>> File
>>>>> "c:\python25\lib\site-packages\reportlab\platypus\doctemplate.py",
>>>>> line 749, in build
>>>>> tr.srcFile,
>>>>> AttributeError: Field instance has no attribute 'srcFile'
>>>>>
>>>>> I'm stumped as to where I should look for the problem. Can anyone
>>>>> give me any clues?
>>>> .......
>>>> well tr is obtained because the erroneous flowable was given some
>>>> sort of _traceInfo. That should be an object with the following
>>>> attributes
>>>>
>>>> srcFile,startLineNo,endLineNo,endLinePos
>>>>
>>>> if it doesn't have those attributes then an error will result. I
>>>> don't think there's any way that _traceInfo can be non None unless
>>>> it's being set somewhere deliberately. Just create a tracing class
>>>> and use that instead of a simple string or whatever. I suppose we
>>>> could consider allowing _traceInfo to be a simple string of your
>>>> choosing and using that rather than a structured object. I have to
>>>> confess I know little (or perhaps have forgotten) about this code.
>>>> I suspect in the modern world we'd just make _traceInfo something
>>>> with a __str__ method (or a str).
>>> So, are you implying that I should be looking into the
>>> doctemplate.py and find a better solution to the reportlab code? I
>>> don't think I have the depth of knowledge necessary to take that
>>> on. Or, are you saying that I'm giving it a bad flowable that is
>>> causing the problem? If so, how could I identify that?
>> ........
>> no I'm saying I don't know how you managed to end up with this
>> tr._traceInfo problem. I just checked most of our code base and the
>> only refs to _traceInfo are in doctemplate.py and flowables.py. Every
>> flowable is supposed to descend from Flowable which has an initial
>> setting of _traceInfo to None. The code in doctemplate is then only
>> supposd to try and refer to x._traceInfo if 1)
>> hasattr(x,'_traceInfo') is True and 2) x._traceInfo is non-zero. If
>> that's the case then we attempt to pull those attributes of the
>> _traceInfo object and incorporate them into the current traceback.
>> That's so we get a more detailed error message when a particular
>> flowable is putting this _traceInfo onto itself with some meaninful
>> info (like which file it came from and where etc etc).
>>
>> So is there anywhere in your code where _traceInfo is mentioned?
> No, there is not. I'm making some changes to the code now. I think I
> may have not been wrapping things in a list exactly as the sample had
> done. I'm verifying/fixing that now and will be back once I find the
> result. Thanks for helping out on this.
>
> -Jim
> _______________________________________________
> reportlab-users mailing list
> reportlab-users at reportlab.com
> http://two.pairlist.net/mailman/listinfo/reportlab-users
Robin: I just ran my code, but modified a bit so that it doesn't
include the table in the flowables to include in the column. Now, it
only has a paragraph, and everything works. When I put the code back in
to include the Table, I get the error mentioned. Is what I'm doing
something that cannot be done, or am I missing something here? What I
want to be able to do is to display tables (similar, but one right after
another) in a two-column page, and have the tables wrap to the next
column when the current column fills up. I'm using the example sited by
Tim as my basis. I have modified it to include Tables as well as
Paragraphs.
-Jim
More information about the reportlab-users
mailing list