Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

preview.wfm - pagination not consistent with actual printout

0 views
Skip to first unread message

Alan Dechert

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
Good news: I got my reports to print duplex by installing a new printer
driver.

Bad news: Preview.wfm do not give us the same pagination as the printout.
The preview gives fewer lines per page than the printout.

(worse, I often get GPF using preview.wfm especially when I try to view last
page--I will post a separate bug report on that problem).

I uploaded a datafile (flat file I use just for reports called workfile.dbf)
in binaries to use in case someone (Hi Ken!) wants to try it out.

** END HEADER -- do not remove this line
//
// Generated on 06/27/2000
//
local r
r = new WORK2Report()
r.render()

class WORK2Report of REPORT
set procedure to "C:\Program Files\dBASE\Visual dBASE
75\Custom\REPORT.CC" additive
with (this)
title = "Workfile"
metric = 3 // Inches
autoSort = false
endwith


this.PEDOC1 = new DATABASE()
this.PEDOC1.parent = this
with (this.PEDOC1)
left = -0.0104
top = -0.0104
databaseName = "PEDOC"
active = true
endwith


this.WORKFILE1 = new QUERY()
this.WORKFILE1.parent = this
with (this.WORKFILE1)
left = -0.0104
top = -0.0104
database = form.pedoc1
sql = "select * from workfile.dbf"
requestLive = false
active = true
endwith


this.PAGETEMPLATE1 = new PAGETEMPLATE(this)
with (this.PAGETEMPLATE1)
height = 8.5
width = 11
marginTop = 1
marginLeft = 0.3
marginBottom = 0
marginRight = 0.3
gridLineWidth = 0
endwith


this.PAGETEMPLATE1.STREAMFRAME1 = new STREAMFRAME(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.STREAMFRAME1)
height = 5
left = 0.0104
top = 1.45
width = 10.4
form.STREAMFRAME1 = form.pagetemplate1.streamframe1
endwith


this.PAGETEMPLATE1.TEXT2 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT2)
height = 0.1563
left = 0
top = 0
width = 0.7709
prefixEnable = false
fontSize = 9
text = {||Date()}
form.TEXT2 = form.pagetemplate1.text2
endwith


this.PAGETEMPLATE1.LINE1 = new LINE(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.LINE1)
left = 0
right = 10.3924
top = 1.4236
bottom = 1.4236
width = 1
form.LINE1 = form.pagetemplate1.line1
endwith


this.PAGETEMPLATE1.TEXT1 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT1)
height = 0.2083
left = 0
top = 0.9965
width = 0.6146
prefixEnable = false
fontSize = 9
text = "Number"
form.TEXT1 = form.pagetemplate1.text1
endwith


this.PAGETEMPLATE1.TEXT3 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT3)
height = 0.2083
left = 1.0868
top = 1.0069
width = 0.4271
prefixEnable = false
fontSize = 9
text = "Sheet"
form.TEXT3 = form.pagetemplate1.text3
endwith


this.PAGETEMPLATE1.TEXT4 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT4)
height = 0.3229
left = 1.566
top = 0.9965
width = 0.448
prefixEnable = false
fontSize = 9
text = "<p>Serial </p><p>No.</p>"
form.TEXT4 = form.pagetemplate1.text4
endwith


this.PAGETEMPLATE1.TEXT5 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT5)
height = 0.2083
left = 2.1354
top = 0.9965
width = 0.6771
prefixEnable = false
fontSize = 9
text = "Title"
form.TEXT5 = form.pagetemplate1.text5
endwith


this.PAGETEMPLATE1.TEXT6 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT6)
height = 0.2083
left = 6.2639
top = 0.9965
width = 0.5521
prefixEnable = false
fontSize = 9
text = "Vendor"
form.TEXT6 = form.pagetemplate1.text6
endwith


this.PAGETEMPLATE1.TEXT7 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT7)
height = 0.3438
left = 5.5521
top = 0.9965
width = 0.3438
prefixEnable = false
fontSize = 9
text = "<p>Dwg</p><p>Type</p>"
form.TEXT7 = form.pagetemplate1.text7
endwith


this.PAGETEMPLATE1.TEXT8 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT8)
height = 0.2083
left = 6.9757
top = 0.9965
width = 0.75
prefixEnable = false
fontSize = 9
fontBold = true
text = "Submittal"
form.TEXT8 = form.pagetemplate1.text8
endwith


this.PAGETEMPLATE1.TEXT9 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT9)
height = 0.2083
left = 4.1285
top = 0
width = 0.5833
prefixEnable = false
fontBold = true
text = "Contract"
form.TEXT9 = form.pagetemplate1.text9
endwith


this.PAGETEMPLATE1.TEXT10 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT10)
height = 0.2083
left = 3.7014
top = 0.2847
width = 2.1667
prefixEnable = false
fontBold = true
text = "Asbuilt Drawing Status List"
form.TEXT10 = form.pagetemplate1.text10
endwith


this.PAGETEMPLATE1.TEXT11 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT11)
height = 0.3438
left = 7.8299
top = 0.9965
width = 0.3438
prefixEnable = false
fontSize = 9
fontBold = true
text = "<p>Type</p><p>Code</p>"
form.TEXT11 = form.pagetemplate1.text11
endwith


this.PAGETEMPLATE1.TEXT12 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT12)
height = 0.3438
left = 8.2569
top = 0.9965
width = 0.3958
prefixEnable = false
fontSize = 9
fontBold = true
text = "<p>Action</p><p>Code</p>"
form.TEXT12 = form.pagetemplate1.text12
endwith


this.PAGETEMPLATE1.TEXT13 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT13)
height = 0.2083
left = 8.8264
top = 0.9965
width = 0.5833
prefixEnable = false
fontSize = 9
fontBold = true
text = "Submittal"
form.TEXT13 = form.pagetemplate1.text13
endwith


this.PAGETEMPLATE1.PAGENUMBER1 = new PAGENUMBER(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.PAGENUMBER1)
height = 0.1389
left = 9.9653
top = 0
width = 0.434
form.PAGENUMBER1 = form.pagetemplate1.pagenumber1
endwith


this.PAGETEMPLATE1.TEXT14 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT14)
height = 0.3438
left = 9.5382
top = 0.9965
width = 0.3333
prefixEnable = false
fontSize = 9
fontBold = true
text = "<p>Type</p><p>Code</p>"
form.TEXT14 = form.pagetemplate1.text14
endwith


this.PAGETEMPLATE1.TEXT15 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT15)
height = 0.2083
left = 7.4028
top = 0.7118
width = 1.1458
prefixEnable = false
fontSize = 9
fontBold = true
text = "Initial Submittal"
form.TEXT15 = form.pagetemplate1.text15
endwith


this.PAGETEMPLATE1.TEXT16 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT16)
height = 0.1771
left = 9.2535
top = 0
width = 0.5104
prefixEnable = false
fontSize = 9
text = "Page No"
form.TEXT16 = form.pagetemplate1.text16
endwith


this.PAGETEMPLATE1.TEXT17 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT17)
height = 0.3438
left = 9.9653
top = 0.9965
width = 0.3958
prefixEnable = false
fontSize = 9
fontBold = true
text = "<p>Action</p><p>Code</p>"
form.TEXT17 = form.pagetemplate1.text17
endwith


this.PAGETEMPLATE1.TEXT18 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXT18)
height = 0.2083
left = 9.3958
top = 0.7118
width = 0.75
prefixEnable = false
fontSize = 9
fontBold = true
text = "Final"
form.TEXT18 = form.pagetemplate1.text18
endwith


this.PAGETEMPLATE1.TEXTCONTRACT1 = new TEXT(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.TEXTCONTRACT1)
height = 0.2083
left = 4.8403
top = 0
width = 0.5
variableHeight = true
prefixEnable = false
fontBold = true
text = {||this.form.workfile1.rowset.fields["contract"].value}
form.TEXTCONTRACT1 = form.pagetemplate1.textcontract1
endwith


this.PAGETEMPLATE1.LINE2 = new LINE(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.LINE2)
left = 8.784
right = 10.3986
top = 0.9194
bottom = 0.9194
width = 2
form.LINE2 = form.pagetemplate1.line2
endwith


this.PAGETEMPLATE1.LINE3 = new LINE(this.PAGETEMPLATE1)
with (this.PAGETEMPLATE1.LINE3)
left = 6.9299
right = 8.6278
top = 0.9194
bottom = 0.9194
width = 2
form.LINE3 = form.pagetemplate1.line3
endwith


this.STREAMSOURCE1 = new STREAMSOURCE(this)

this.STREAMSOURCE1.GROUP1 = new GROUP(this.STREAMSOURCE1)
with (this.STREAMSOURCE1.GROUP1)
groupBy = "vendor"
endwith

this.STREAMSOURCE1.GROUP1.headerBand.TEXT1 = new
TEXT(this.STREAMSOURCE1.GROUP1.headerBand)
with (this.STREAMSOURCE1.GROUP1.headerBand.TEXT1)
height = 0.2083
left = 0
top = 0.1354
width = 0.6458
prefixEnable = false
colorNormal = "b+"
text = ""
endwith


this.STREAMSOURCE1.GROUP1.headerBand.TEXT2 = new
TEXT(this.STREAMSOURCE1.GROUP1.headerBand)
with (this.STREAMSOURCE1.GROUP1.headerBand.TEXT2)
height = 0.3958
left = 0
top = 0
width = 5.6354
prefixEnable = false
colorNormal = "b+"
text = {||"<H4> " +
this.parent.parent.parent.rowset.fields["vendor"].value + "</H4>"}
endwith


this.STREAMSOURCE1.GROUP1.headerBand.LINE1 = new
LINE(this.STREAMSOURCE1.GROUP1.headerBand)
with (this.STREAMSOURCE1.GROUP1.headerBand.LINE1)
left = 0
right = 10.3924
top = 0
bottom = 0
width = 1
endwith


with (this.STREAMSOURCE1.detailBand)
height = 0.1
endwith


this.STREAMSOURCE1.detailBand.TEXTNUMBER1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTNUMBER1)
height = 0
left = 0
top = 0
width = 1.0521
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["number"].value}
endwith


this.STREAMSOURCE1.detailBand.TEXTSHEET1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTSHEET1)
height = 0
left = 1.0972
top = 0
width = 0.3958
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["sheet"].value}
endwith


this.STREAMSOURCE1.detailBand.TEXTSERIAL_NO1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTSERIAL_NO1)
height = 0
left = 1.566
top = 0
width = 0.5
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["serial_no"].value}
endwith


this.STREAMSOURCE1.detailBand.TEXTTITLE1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTTITLE1)
height = 0
left = 2.1354
top = 0
width = 3.25
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["title"].value}
endwith


this.STREAMSOURCE1.detailBand.TEXTDWG_TYPE1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTDWG_TYPE1)
height = 0
left = 5.5521
top = 0
width = 0.3958
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["dwg_type"].value}
endwith


this.STREAMSOURCE1.detailBand.TEXTVENDORCODE1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTVENDORCODE1)
height = 0
left = 6.2639
top = 0
width = 0.3542
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["vendorcode"].value}
endwith


this.STREAMSOURCE1.detailBand.TEXTSUBMITTAL1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTSUBMITTAL1)
height = 0
left = 6.9757
top = 0
width = 0.4896
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["submittal"].value}
endwith


this.STREAMSOURCE1.detailBand.TEXTTYPECODE1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTTYPECODE1)
height = 0
left = 7.8299
top = 0
width = 0.1771
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["typecode"].value}
endwith


this.STREAMSOURCE1.detailBand.TEXTACTIONCODE1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTACTIONCODE1)
height = 0
left = 8.3993
top = 0
width = 0.1563
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["actioncode"].value}
endwith


this.STREAMSOURCE1.detailBand.TEXTF_SUBMITTAL1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTF_SUBMITTAL1)
height = 0
left = 8.8264
top = 0
width = 0.5208
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["f_submittal"].value}
endwith


this.STREAMSOURCE1.detailBand.TEXTF_TYPECODE1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTF_TYPECODE1)
height = 0
left = 9.5382
top = 0
width = 0.1875
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["f_typecode"].value}
endwith


this.STREAMSOURCE1.detailBand.TEXTF_ACTIONCODE1 = new
TEXT(this.STREAMSOURCE1.detailBand)
with (this.STREAMSOURCE1.detailBand.TEXTF_ACTIONCODE1)
height = 0
left = 9.9653
top = 0
width = 0.1979
variableHeight = true
prefixEnable = false
fontName = "Courier New"
fontSize = 8
text = {||this.form.workfile1.rowset.fields["f_actioncode"].value}
endwith


with (this.printer)
duplex = 3 // Horizontal
orientation = 2 // Landscape
paperSource = 15
paperSize = 1
resolution = 4 // High
color = 1 // Monochrome
trueTypeFonts = 3 // Substitute
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.workfile1.rowset
endclass

Ken Mayer [dBASE, Inc.]

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
"Alan Dechert" <al...@go2zero.com> wrote:

>Good news: I got my reports to print duplex by installing a new printer
>driver.
>
>Bad news: Preview.wfm do not give us the same pagination as the printout.
>The preview gives fewer lines per page than the printout.

This is due to the fact that the screen resolution is not necessarily
the same as the printer resolution, and so you are not likely to get
the same results. You probably wouldn't get the same results if you
printed to two different printers, either.

>(worse, I often get GPF using preview.wfm especially when I try to view last
>page--I will post a separate bug report on that problem).

As noted in the bug-reports newsgroup, please do not post datafiles
unless explicitly requested.

Ken
---
Ken Mayer [dBASE, Inc.]
** Please respond ONLY in the newsgroups **

"Think OOP"

dBASE, Inc. website: http://www.dbase.com

Alan Dechert

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
Alan Dechert <al...@go2zero.com> wrote in message
news:8jddpu$7qq$1...@news.dbase2000.com...

> Bad news: Preview.wfm do not give us the same pagination as the printout.
> The preview gives fewer lines per page than the printout.
>

Oh, I just noticed.... this problem is not specific to preview.wfm. It
happens also when I run the report without preview.wfm and view it on
screen. Pagination is wrong. Probably, this report belongs in the bug list
but I suspect it may already be there.

--Alan Dechert

Alan Dechert

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
Ken Mayer [dBASE, Inc.] <kma...@dbase.com> wrote in message
news:ptfklsk2udna7er90...@4ax.com...

> "Alan Dechert" <al...@go2zero.com> wrote:
>
> >Good news: I got my reports to print duplex by installing a new printer
> >driver.
> >
> >Bad news: Preview.wfm do not give us the same pagination as the printout.
> >The preview gives fewer lines per page than the printout.
>
> This is due to the fact that the screen resolution is not necessarily
> the same as the printer resolution,
>

I don't buy this. Screen resolution has nothing to do with it. I get the
same pagination no matter what the screen resolution.

> and so you are not likely to get
> the same results. You probably wouldn't get the same results if you
> printed to two different printers, either.
>

The problem is that if I fix a problem that shows up on page 20 in my
report, I cannot simply re-print page 20 (after fixing the data) using
preview.wfm or any other method I know of.

In most any application that has a print preview feature, I believe it is
expected that if you're looking at page 20 in the preview, that's what you
will see on page 20 of the printout. In the example cited, it's not even
close. The printout has 50 pages. The preview shows 63 pages.

--Alan Dechert

Ken Mayer [dBASE, Inc.]

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
David Kerber <ns_dk...@ids.net> wrote:

>I agree about the print preview. they are normally designed so you can
>see exactly how your printout will look when it's on paper, not just a
>screen version of the report. There's not much reason for a print
>preview to exist if it doesn't look like your printed output.

Well, while there may not be "much reason" for such, this is a known
issue with the reportViewer object in dBASE.

>With respect to the 'different printers' comment, your print preview
>should still show how it will look on each of those different printers,
>even if they are different results. The preview is supposed to take
>into account the printer's characteristics.

Same as above ...

David Kerber

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
Jumping in here....

Alan Dechert wrote:

> > >Good news: I got my reports to print duplex by installing a new printer
> > >driver.

Glad to hear it.

> > >Bad news: Preview.wfm do not give us the same pagination as the printout.
> > >The preview gives fewer lines per page than the printout.
> >

> > This is due to the fact that the screen resolution is not necessarily
> > the same as the printer resolution,
> >
>
> I don't buy this. Screen resolution has nothing to do with it. I get the
> same pagination no matter what the screen resolution.
>
> > and so you are not likely to get
> > the same results. You probably wouldn't get the same results if you
> > printed to two different printers, either.
> >
>
> The problem is that if I fix a problem that shows up on page 20 in my
> report, I cannot simply re-print page 20 (after fixing the data) using
> preview.wfm or any other method I know of.
>
> In most any application that has a print preview feature, I believe it is
> expected that if you're looking at page 20 in the preview, that's what you
> will see on page 20 of the printout. In the example cited, it's not even
> close. The printout has 50 pages. The preview shows 63 pages.

I agree about the print preview. they are normally designed so you can
see exactly how your printout will look when it's on paper, not just a
screen version of the report. There's not much reason for a print
preview to exist if it doesn't look like your printed output.

With respect to the 'different printers' comment, your print preview


should still show how it will look on each of those different printers,
even if they are different results. The preview is supposed to take
into account the printer's characteristics.


--

Dave Kerber
Edit the return address by removing the ns_ before e-mailing
REAL programmers write self-modifying code!

Alan Dechert

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
Ken Mayer [dBASE, Inc.] <kma...@dbase.com> wrote in message
news:ofjklsgsl0arkkmo4...@4ax.com...

> David Kerber <ns_dk...@ids.net> wrote:
>
> >I agree about the print preview. they are normally designed so you can
> >see exactly how your printout will look when it's on paper, not just a
> >screen version of the report. There's not much reason for a print
> >preview to exist if it doesn't look like your printed output.
>
> Well, while there may not be "much reason" for such, this is a known
> issue with the reportViewer object in dBASE.
>

Yes, an ummm issue. Or, some would say "BUG!"

I imported this data file into Access and recreated the report. The preview
works as expected there.

Really, Ken. This is unacceptable. My clients are not that dumb. They
know how print preview is supposed to work. They are not interested in any
explanation of why it doesn't work.

--Alan Dechert

David Kerber

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to

"Ken Mayer [dBASE, Inc.]" wrote:
>
> David Kerber <ns_dk...@ids.net> wrote:
>
> >I agree about the print preview. they are normally designed so you can
> >see exactly how your printout will look when it's on paper, not just a
> >screen version of the report. There's not much reason for a print
> >preview to exist if it doesn't look like your printed output.
>
> Well, while there may not be "much reason" for such, this is a known
> issue with the reportViewer object in dBASE.

I didn't know that. Thanks for the info, and now I'm sorry I jumped
in.

At least it wasn't too high, so I didn't splatter completely when I hit
bottom <G>.

David Kerber

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to

Alan Dechert wrote:
>
> Ken Mayer [dBASE, Inc.] <kma...@dbase.com> wrote in message
> news:ofjklsgsl0arkkmo4...@4ax.com...

> > David Kerber <ns_dk...@ids.net> wrote:
> >
> > >I agree about the print preview. they are normally designed so you can
> > >see exactly how your printout will look when it's on paper, not just a
> > >screen version of the report. There's not much reason for a print
> > >preview to exist if it doesn't look like your printed output.
> >
> > Well, while there may not be "much reason" for such, this is a known
> > issue with the reportViewer object in dBASE.
> >
>

> Yes, an ummm issue. Or, some would say "BUG!"
>
> I imported this data file into Access and recreated the report. The preview
> works as expected there.
>
> Really, Ken. This is unacceptable. My clients are not that dumb. They
> know how print preview is supposed to work. They are not interested in any
> explanation of why it doesn't work.

In my experience, when Ken says it's an 'issue', that usually seems to
mean that dBase is treating it as a something which needs to be fixed at
some point. Not quite a bug, but something where the design (as in WAD)
is not as good as it should be (which seems to apply in this case).
Give them a chance, and I'll bet it will be fixed.

Alan Dechert

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
David Kerber <ns_dk...@ids.net> wrote in message
news:395A5792...@ids.net...

>
> In my experience, when Ken says it's an 'issue', that usually seems to
> mean that dBase is treating it as a something which needs to be fixed at
> some point.
>

In another thread (in binaries) Ken said he will make sure it's in the bug
database.

> Not quite a bug,
>

This is a bug.


>but something where the design (as in WAD)
> is not as good as it should be (which seems to apply in this case).
>

Politely put... but this is a bug.

> Give them a chance, and I'll bet it will be fixed.
>

In the application I'm presently working on, VdB was the choice of the
client. It's up to the client to decide to give dBASE a chance. And, it
will up to them to decide to use something else if they find these types of
problems unacceptable.

--Alan Dechert

Ken Mayer [dBASE, Inc.]

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
"Alan Dechert" <al...@go2zero.com> wrote:

>In another thread (in binaries) Ken said he will make sure it's in the bug
>database.
>
>> Not quite a bug,
>>
>
>This is a bug.

No, it's working as designed. It's just not a good design. This is one
of the things we inherited from Borland ...

>Politely put... but this is a bug.

Just because you believe it to be a bug does not make it a bug. <G>

Ken Mayer [dBASE, Inc.]

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
David Kerber <ns_dk...@ids.net> wrote:

>> Well, while there may not be "much reason" for such, this is a known
>> issue with the reportViewer object in dBASE.
>

>I didn't know that. Thanks for the info, and now I'm sorry I jumped
>in.
>
>At least it wasn't too high, so I didn't splatter completely when I hit
>bottom <G>.

No need to apologize for jumping in ... seriously.

Alan Dechert

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
Ken Mayer [dBASE, Inc.] <kma...@dbase.com> wrote in message
news:6vnkls0877741u72t...@4ax.com...

> "Alan Dechert" <al...@go2zero.com> wrote:
>
> >In another thread (in binaries) Ken said he will make sure it's in the
bug
> >database.
> >
> >> Not quite a bug,
> >>
> >
> >This is a bug.
>
> No, it's working as designed. It's just not a good design.
>

A bit oxymoronic, wouldn't you say?


> This is one
> of the things we inherited from Borland ...
>

I know all about that one. I was there too, don't forget. I didn't work on
VdB 7 but I did work a bit on 5.5 and I know a lot of the people involved in
VdB. Most of all, I remember the mentality ("Usability testing? What's
that? We make Developer's Tools.") at Borland.

> >Politely put... but this is a bug.
>
> Just because you believe it to be a bug does not make it a bug. <G>
>

I heard that once or twice (or more) when I was at Borland. The main
problem here is that my client *KNOWS* that it's a bug. Any debate between
QA and development over this issue doesn't matter to my client. I cannot
and will not try to explain to my users that it is not a bug.

If QA accepts development's position, you both lose. Eventually, the client
will simply say, "we're not going to use this product anymore--too many
bugs."

--Alan Dechert

Ken Mayer [dBASE, Inc.]

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
"Alan Dechert" <al...@go2zero.com> wrote:

>> No, it's working as designed. It's just not a good design.
>>
>
>A bit oxymoronic, wouldn't you say?

No. It is completely possible that it was designed a specific way, but
not enough thought wasn't put into it, so that the design is not a
good one ...

>> Just because you believe it to be a bug does not make it a bug. <G>
>>
>
>I heard that once or twice (or more) when I was at Borland. The main
>problem here is that my client *KNOWS* that it's a bug. Any debate between
>QA and development over this issue doesn't matter to my client. I cannot
>and will not try to explain to my users that it is not a bug.

I understand. However, I have to state it's not a bug. That said, as
noted, I put it into our system as a serious usability issue ...

>If QA accepts development's position, you both lose. Eventually, the client
>will simply say, "we're not going to use this product anymore--too many
>bugs."

Alan -- please keep in mind -- we're not Borland. In cases where
Borland didn't do things properly, we're trying to avoid acting like
them, too ... believe it or not, QA is on your side ... actually, so
is R&D -- the only "side" here is "get it right".

The problem here is that we have a variety of things that we got from
Borland that need fixing, and we're also enhancing the product.
There's a lot to do, and limited time.

Bowen Moursund (dBASE, Inc.)

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
> If QA accepts development's position, you both lose. Eventually, the
client
> will simply say, "we're not going to use this product anymore--too many
> bugs."

When are they abandoning Windows for Linux? :-)

--
Bowen Moursund (dBASE, Inc.)

Don Wellsand

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
Excellent question!

--
Don Wellsand [vdb7.5]
dBASE Charter Member
Creative Custom Software

Bowen Moursund (dBASE, Inc.) <newsg...@dbase.com> wrote in message
news:8jdqcp$b11$1...@news.dbase2000.com...

Alan Dechert

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
Ken Mayer [dBASE, Inc.] <kma...@dbase.com> wrote in message
news:0hqkls0shk9ffbivu...@4ax.com...

> "Alan Dechert" <al...@go2zero.com> wrote:
>
> >> No, it's working as designed. It's just not a good design.
> >>
> >
> >A bit oxymoronic, wouldn't you say?
>
> No. It is completely possible that it was designed a specific way, but
> not enough thought wasn't put into it, so that the design is not a
> good one ...
>

Not to belabor the point, but.... if I accept this argument, then there must
be no such thing as a design bug. If something is designed badly, it's not
a bug but a design issue. I don't think your view is widely accepted in the
field of software testing. Of course, partly this is semantical. "Design
problem" might be considered by some to be a euphemism.

When I was at Intel, all the software QA Engineers had to attend a course in
software testing. It was taught by a fellow by the name of Cem Kaner (I
think that's the last name... the first name is pronounced "Kem"... sort of
like "Ken" but different) who was co-author of a book on software testing.

Cem's position on this was at the other end of the pole from yours. I am
middle-of-the-road by comparision. His attitude was that *anything* the
user thinks is a bug, *is* a bug: software should work like the user expects
and in an obvious and intuitive way. Of course, there are limits. We can't
expect a receptionist to run an engineering application performing finite
element analysis. But as long as the user is part of the intended audience
for the application, anything the user finds problematic should be logged as
a bug.

I worked on 8 commercial software products and each product had it's own
team and it's own attitude about bugs. Some were quite aggressive about
closing bugs with "As Designed" and no further action. On the other hand,
some teams never closed bugs without serious investigation and usually some
action being taken. In retrospect, I'd say there was a direct correlation
in the ultimate quality of the software. Without doubt, the most successful
product I worked on had a team where no developer ever got away with closing
a bug with "As Designed" and nothing more. Worst case, if nothing could be
done immediately the bug report was left open and addressed thoroughly in
the next release. But nobody went around saying, "it's not a bug." If it
was an open report in the system, it was a bug.
..............


>
> The problem here is that we have a variety of things that we got from
> Borland that need fixing, and we're also enhancing the product.
> There's a lot to do, and limited time.
>

I realize that and I think you're doing a great job. My intent here is to
document some of the very serious problems we're encountering with the dBASE
product because we need these fixed. If a user shows me a print preview
from one of the office products--Word, Excel, Access, etc--and says, "see,
that's the way print preview should work...there's a BUG in the dBASE
application" I have to agree.

--Alan Dechert

Alan Dechert

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
Ken Mayer [dBASE, Inc.] <kma...@dbase.com> wrote in message
news:ta0lls08f3iljrfhg...@4ax.com...
> "Alan Dechert" <al...@go2zero.com> wrote:
>
>
> Alan -- if the specification for the reportViewer said "it will be
> done this way", and the developer developed it that way, and it works
> *as it was designed* to work, then there's no bug.
>

**WRONG**

Of course, I have the luxury of not having to go to bug meetings and arguing
with developers about it.


> I am sorry you can't see it that way, but that's the case. I can see
> no further use in continuing the discussion ...
>

That's fine.

> As I noted earlier, this *has* been put into our change system and
> specifically noted as a "Serious Usability Issue" (that's a fairly
> high priority ... not as high as a GPF or data loss, but right after
> those).
>

Okay, that sounds good. I consider this support for my notion of how it may
be largely a matter of semantics (i.e., avoiding the term "bug" in this
context).

If you have one database that has GPF reports as well as "Serious Usability
Issue" reports I wonder if you call it the "Issues Database" or the "Bug
Database" (or "change system"? ) or something else. I suppose as long as
you don't call it the BUG Database, nobody will say you are contradicting
yourself. And, if it's the "change system"... Voila! There are no bugs.

I respect all the major religions.... really.

--Alan Dechert

Ken Mayer [dBASE, Inc.]

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
"Alan Dechert" <al...@go2zero.com> wrote:

>> No. It is completely possible that it was designed a specific way, but
>> not enough thought wasn't put into it, so that the design is not a
>> good one ...
>>
>
>Not to belabor the point, but.... if I accept this argument, then there must
>be no such thing as a design bug. If something is designed badly, it's not
>a bug but a design issue. I don't think your view is widely accepted in the
>field of software testing. Of course, partly this is semantical. "Design
>problem" might be considered by some to be a euphemism.

Alan -- if the specification for the reportViewer said "it will be


done this way", and the developer developed it that way, and it works
*as it was designed* to work, then there's no bug.

I am sorry you can't see it that way, but that's the case. I can see


no further use in continuing the discussion ...

As I noted earlier, this *has* been put into our change system and


specifically noted as a "Serious Usability Issue" (that's a fairly
high priority ... not as high as a GPF or data loss, but right after
those).

Ken

Romain Strieff [dBVIPS]

unread,
Jun 29, 2000, 3:00:00 AM6/29/00
to
In article <8jddpu$7qq$1...@news.dbase2000.com>, Alan Dechert politely
paraphrased ...

> Good news: I got my reports to print duplex by installing a new printer
> driver.
>
> Bad news: Preview.wfm do not give us the same pagination as the printout.
> The preview gives fewer lines per page than the printout.
>
BTW whatever it's worth, www.fineprint.com has a utility to preview any
printout and handle the printing with lots of nice stuff (multiple pages
per sheet, watermarks, booklets, duplex on non-duplex printers etc, so if
that can help you....

--
Romain Strieff [dBVIPS]
News group posting guidelines at
http://www.dbase.com/cnt/newsguid.htm

Ivar B. Jessen

unread,
Jun 29, 2000, 3:00:00 AM6/29/00
to
On Wed, 28 Jun 2000 15:19:42 -0700 , in dbase.reports , Re:
preview.wfm - pagination not consistent with actual printout , "Alan
Dechert" <al...@go2zero.com> wrote:


>Cem's position on this was at the other end of the pole from yours. I am
>middle-of-the-road by comparision. His attitude was that *anything* the
>user thinks is a bug, *is* a bug: software should work like the user expects
>and in an obvious and intuitive way. Of course, there are limits. We can't
>expect a receptionist to run an engineering application performing finite
>element analysis. But as long as the user is part of the intended audience
>for the application, anything the user finds problematic should be logged as
>a bug.

According to "Managing The Testing Process" by Rex Black, Microsoft
Press, page 351, Glossary,

BUG: A problem present in the system under test that causes it to fail
to meet reasonable expectations. "Reasonable" is usually defined by
iterative consensus or management fiat if it is not obvious or defined
( in the specifications or requirements ). Notice that the the test
team usually sees only the failure ( the improper behaviour ); the bug
itself is the flaw that causes the failure.

Ivar B. Jessen

Alan Dechert

unread,
Jun 29, 2000, 3:00:00 AM6/29/00
to
Ivar B. Jessen <bergi...@it.dk> wrote in message
news:395b5da9...@news.dBASE2000.com...

>
> According to "Managing The Testing Process" by Rex Black, Microsoft
> Press, page 351, Glossary,
>
> BUG: A problem present in the system under test that causes it to fail
> to meet reasonable expectations.
>

I like this part--quite liberal. Note that it does not say "fail to work as
described in the specification." It says, "fail to meet reasonable
expectations."


> "Reasonable" is usually defined by
> iterative consensus or management fiat if it is not obvious or defined
> ( in the specifications or requirements ).
>

This part is problematic, IMO. It implies that what is "defined" ( in the
specifications or requirements ) is, by definition, "reasonable." I've seen
things in specs that were unreasonable which, if implemented, would cause
the software to "fail to meet reasonable expectations" and cause users to
cry, "BUG!"

I don't think this definition will resolve any disputes. But thanks anyway,
Ivar!

--Alan Dechert


Ivar B. Jessen

unread,
Jun 29, 2000, 3:00:00 AM6/29/00
to
On Thu, 29 Jun 2000 09:13:31 -0700 , in dbase.reports , Re:

preview.wfm - pagination not consistent with actual printout , "Alan
Dechert" <al...@go2zero.com> wrote:

>I don't think this definition will resolve any disputes. But thanks anyway,
>Ivar!
>

Alan,

I hope you enjoyed it. The definition is rather narrow as it only
refers to the various parties within a software company and the tools
they use. Of course this is what the book is about. Sadly it also is
written in such a way that the software company at any time can
absolve itself from any responsibility for problems due to the bug.

The problems caused by the bug should rather be measured against the
users expectations as expressed so well by your teacher Cem Kaner.

Ivar B. Jessen

Alan Dechert

unread,
Jun 29, 2000, 3:00:00 AM6/29/00
to
Ivar B. Jessen <bergi...@it.dk> wrote in message
news:395b9de1...@news.dBASE2000.com...

> On Thu, 29 Jun 2000 09:13:31 -0700 , in dbase.reports , Re:
> preview.wfm - pagination not consistent with actual printout , "Alan
> Dechert" <al...@go2zero.com> wrote:
>
> >I don't think this definition will resolve any disputes. But thanks
anyway,
> >Ivar!
> >
>
> Alan,
>
> I hope you enjoyed it.
>

I did. Thanks.

> The definition is rather narrow as it only
> refers to the various parties within a software company and the tools
> they use.
>

Yes. I put this part into code:

> "Reasonable" is usually defined by
> iterative consensus or management fiat if it is not obvious or defined
> ( in the specifications or requirements ).
>

consensus = false
management_fiat = false
obvious = false
defined = true

reasonable = iif(obvious or defined, true, consensus or management_fiat)

?reasonable

**** eop

Besides what you said, this goofy logic doesn't work very well because any
of these four parameters may not be so clearly assigned a true or false
value.

In the end, it's completely arbitrary.

> Of course this is what the book is about. Sadly it also is
> written in such a way that the software company at any time can
> absolve itself from any responsibility for problems due to the bug.
>
> The problems caused by the bug should rather be measured against the
> users expectations as expressed so well by your teacher Cem Kaner.
>

Agreed,

--Alan Dechert

0 new messages