John Bartow
john at winhaven.net
Fri Apr 16 10:59:43 CDT 2010
A.D.,
Thank you so much!
Exactly what I was looking for. Modified it to fit my situation and
everything works great!
John B.
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of A.D. Tejpal
Sent: Thursday, April 15, 2010 7:37 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] changing report caption via code for display in print
que
John,
It is observed that if a report is printed directly by opening in normal
view, the caption assigned programmatically in report's open event does not
get properly captured in the print queue documents of the printer.
This is explained by the fact that caption of active window tends to get
captured for the above purpose. Depending upon the local set up, direct
opening of report might not project its window presence adequately. For
absolute certainty, it is therefore necessary that the report is first
opened in preview mode, followed by PrintOut and Close actions.
It would be interesting to note that you can't get away by opting the
preview in hidden mode. In that case, you might even end up with the caption
of your calling form getting depicted in print queue. The defining
requirement is that the report should be the visible active window (even if
for a very brief duration) when requisite information is getting passed to
the printer.
Sample code in calling form's module, as placed below, should get the
job done. Time delay (in clock cycles) as included at various stages, as a
measure of abundant precaution, is meant for stabilization between one step
and the next.
Best wishes,
A.D. Tejpal
------------
' Sample code in calling form's module
'=========================
Private Sub CmdReport_Click()
' << Suitable code for setting up object
' variable (rst) to a single field recordset
' having names of reports to be printed>>
With rst
.MoveFirst
Do Until .EOF
DoCmd.OpenReport .Fields(0), _
acViewPreview
P_Wait 200
DoCmd.PrintOut
P_Wait 100
DoCmd.Close acReport, .Fields(0)
P_Wait 100
MoveNext
Loop
.Close
Set rst = Nothing
End With
End Sub
'---------------------------------------------------
Private Sub P_Wait(WtCycles As Long)
Dim Cnt As Long
For Cnt = 1 To WtCycles
DoEvents
Next
End Sub
'==================================
----- Original Message -----
From: John Bartow
To: _DBA-Access
Sent: Thursday, April 15, 2010 07:25
Subject: [AccessD] changing report caption via code for display in print
que
I'm working on making niceties for an application which generates about
30,000 sheets to be printed by a Imagerunner 110 device. This device uses
a
Linux controller box to que/hold/start the jobs. Since there are so many
jobs it would be nice to be able to distinguish them while in the que. So
I'm attempting to have the account number of each client show up in the
caption of the report when printed in order to have the account number
show
in the print que of the printer. Depending on the report it should appear
something like: Order Form - 029384
In my procedural code I use this type of command to print various reports:
DoCmd.OpenReport "rptOrderForm", acViewNormal
I placed this in the report's module expecting it to accomplish this task:
Private Sub Report_Open(Cancel As Integer)
Me.Caption = Me.Caption & " - " & CurrentAcct()
End Sub
The report will display the caption as I intended if opened in a preview
window and then it will display it in the print que once printed but it
will
not display it if opened with acViewNormal which sends it directly to the
printer.
Anyone have an idea of how I can achieve the intended results?
Tia,
John B.
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com