|
| Text limit |
 |
Thu, 24 Jan 2008 19:03:14 +000 |
Hi
I seem to have hit a limit of 32k bytes in a text control on a report.
I can't see that documented anywhere. Is it real, or is it me?
|
| Post Reply
|
| Re: Text limit |
 |
Sun, 27 Jan 2008 23:27:40 -050 |
Hi Bruce,
> I seem to have hit a limit of 32k bytes in a text control on a report. I
> can't see that documented anywhere. Is it real, or is it me?
I've done some investigating and, so far, I have not found any hard coded
limit to the size of a Text object's
value property. Internally, dBASE is just using a dBASE variable with
character data stored to it.
It should have the same capacity as any other dBASE character string
variable - which should
only be limited by available memory (or 2^32 bytes) - whichever comes first.
Any idea if your computer was short on available RAM when you tested your
report?
- Marty -
Martin Kay
dataBased Intelligence, Inc.
|
| Post Reply
|
| Re: Text limit |
 |
Mon, 28 Jan 2008 15:38:34 +000 |
Marty Kay wrote:
> I've done some investigating and, so far, I have not found any hard coded
> limit to the size of a Text object's
> value property. Internally, dBASE is just using a dBASE variable with
> character data stored to it.
> Any idea if your computer was short on available RAM when you tested your
> report?
No reason to think so. The aim of the exercise was to print the
contents of an editor control. The process I followed was to output
the .value to a text file, then store the contents of the text file (in
fact, the contents of a series of text files, concatenated) to a memo
field on a single-row table, then to print that memo field to a text
control on a report.
It has worked fine for years with less data. But in a new project I
was sending an unusually large editor control .value (> 50kb) to the
process. I found the report output (which stretched over several
pages of report output) to have been truncated, and crude multiplication
pointed to 32kb. The memo field was complete so I blamed the text
control.
Does that suggest anything else to you, before I do more experiments?
Bruce
|
| Post Reply
|
| Re: Text limit |
 |
Mon, 28 Jan 2008 22:46:39 +000 |
Marty Kay wrote:
>> I seem to have hit a limit of 32k bytes in a text control on a report.
I
>> can't see that documented anywhere. Is it real, or is it me?
>
> I've done some investigating and, so far, I have not found any hard coded
> limit to the size of a Text object's
> value property. Internally, dBASE is just using a dBASE variable with
> character data stored to it.
> It should have the same capacity as any other dBASE character string
> variable - which should
> only be limited by available memory (or 2^32 bytes) - whichever comes
first.
Here's a turnkey that suggests the capacity is about 29,400 chars.
Bruce
***************
* tmemo.rep
* Shows the limit of a report text control to be about 29400 chars.
private t
t = "testmemo.dbf"
if file(t)
delete file (t)
endif
create table "&t." (header char(50), memo1 blob)
q = new query([select * from testmemo"])
q.rowset.beginappend()
q.rowset.fields["memo1"].value = ""
local s, r
s = 0
do while s < 500
s ++
q.rowset.fields["memo1"].value = ;
q.rowset.fields["memo1"].value + str(s*80, 7) + " "
;
+ repl("1234567890 ", 7) + chr(13)
enddo
q.rowset.save()
q.active = false
s = 0
do while s < 10
s ++
local r
r = new tmemoReport()
r.startpage := s
r.render()
r.reportViewer.form.text = "Page " + s
r.reportViewer.form.width = 1000
enddo
return
** END HEADER -- do not remove this line
//
// Generated on 28/01/2008
//
local r
r = new tmemoReport()
r.render()
class tmemoReport of REPORT
with (this)
autoSort = false
endwith
this.QUERY1 = new QUERY()
this.QUERY1.parent = this
with (this.QUERY1)
left = 8610.0
top = 495.0
sql = "select * from testmemo"
active = true
endwith
with (this.printer)
duplex = 1 // None
orientation = 1 // Portrait
paperSource = 15
paperSize = 9
resolution = 0 // Default
color = 1 // Monochrome
trueTypeFonts = 2 // Download
endwith
this.PAGETEMPLATE1 = new PAGETEMPLATE(this)
with (this.PAGETEMPLATE1)
height = 16837.0
width = 11905.0
marginTop = 930.0
marginLeft = 1095.0
marginBottom = 1230.0
marginRight = 1065.0
gridLineWidth = 0
endwith
this.PAGETEMPLATE1.STREAMFRAME1 = ;
new STREAMFRAME(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.STREAMFRAME1)
height = 11592.0
left = 360.0
top = 1365.0
width = 9360.0
form.STREAMFRAME1 = form.pagetemplate1.streamframe1
endwith
this.STREAMSOURCE1 = new STREAMSOURCE(this)
with (this.STREAMSOURCE1.detailBand)
height = 250.0
endwith
with (this.reportGroup.headerBand)
height = 300.0
endwith
this.reportGroup.headerBand.TEXTMEMO11 = ;
new TEXT(this.reportGroup.headerBand)
with (this.reportGroup.headerBand.TEXTMEMO11)
height = 300.0
left = 60.0
top = 360.0
width = 9135.0
variableHeight = true
prefixEnable = false
text = {||this.form.query1.rowset.fields["memo1"].value}
endwith
this.reportGroup.headerBand.TEXTHEADER1 = ;
new TEXT(this.reportGroup.headerBand)
with (this.reportGroup.headerBand.TEXTHEADER1)
height = 300.0
left = 75.0
top = 30.0
width = 4680.0
variableHeight = true
prefixEnable = false
text = {||this.form.query1.rowset.fields["header"].value}
endwith
with (this.reportGroup.footerBand)
height = 250.0
endwith
this.firstPageTemplate = this.form.pagetemplate1
this.form.pagetemplate1.nextPageTemplate = this.form.pagetemplate1
this.form.pagetemplate1.streamframe1.streamSource = ;
this.form.streamsource1
this.form.streamsource1.rowset = this.form.query1.rowset
endclass
|
| Post Reply
|
|
|
|
|
|
|
|
|
|