DavidAbbott
asked on
Label Printing
I know you guys are hungry for points, so here goes:
Does anyone know how to print a labal from a Notes database.
i.e We have a database here that some users need to print the name and address of chosen customers, this can be done by way of a view action or in the form direct.
Any ideas?
Does anyone know how to print a labal from a Notes database.
i.e We have a database here that some users need to print the name and address of chosen customers, this can be done by way of a view action or in the form direct.
Any ideas?
Well, you can create a special print form, and use the @command([fileprint]) command to use it to print from a view
@Command( [FilePrint] ; numCopies; fromPage; toPage; ifDraft; ifView; formName; breakType; ifReset; startDate; endDate)
The special print form will need to correspond to the label you want to print. That may prove difficult, if you want to print on Avery style labels ... Trial and error :-)
R6 has this as options in the standard (File/Print) options too..
cheers
Tom.
@Command( [FilePrint] ; numCopies; fromPage; toPage; ifDraft; ifView; formName; breakType; ifReset; startDate; endDate)
The special print form will need to correspond to the label you want to print. That may prove difficult, if you want to print on Avery style labels ... Trial and error :-)
R6 has this as options in the standard (File/Print) options too..
cheers
Tom.
If you want 100% control over what you print, you'll need a 3rd party program (like Intelliprint,...) or you need to use Word / Excell/ Wordpro to do the actual printing.
That means creating a Word document using COM/OLE, putting in the data, and printing that using the Word VB Classes.
cheers,
tom
That means creating a Word document using COM/OLE, putting in the data, and printing that using the Word VB Classes.
cheers,
tom
I have a beautiful code that will print mailing labels from notes application here it comes....
===============
Make changes to the field names and view name....
--------------
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim v As NotesView
Dim doc As NotesDocument
Dim wordobj As Variant
Dim firstname As Variant
Dim midinit As Variant
Dim lastname As Variant
Dim fullname As String
Dim addressone As Variant
Dim addresstwo As Variant
Dim fulladdress As String
Dim citytown As Variant
Dim mass As Variant
Dim zip As Variant
Dim citystatezip As String
Set db = session.currentdatabase
Set v = db.GetView("Informacion") 'NAME OF THE VIEW FROM WHERE U NEED TO EXPORT Mailing LABELS
Set doc = v.GetFirstDocument
wdCell = 12 'Microsoft Word VBA constant. Designates unit for table cell.
tabc = 1 ' For controlling tabs
AveryTemplate = "5160" ' Avery mailing label. Three across.
Set wordobj = createobject("Word.Applica tion.8") ' Launch Word.
wordobj.visible = True ' Show Word.
Call wordobj.documents.add 'Create new Word document.
' Create a new Word mailing label document. Use AveryTemplate variable declared at top.
Call wordobj.MailingLabel.Creat eNewDocume nt(AveryTe mplate)
Call wordobj.activate ' Give Word the focus.
' Cycle through each document in view.
' Create full address, then insert into Word table.
Do Until doc Is Nothing
fullname = doc.fullname(0) ' name of the person
addressone = doc.GetItemValue("Address1 ") ' Address 1
addresstwo = doc.GetItemValue("Address2 ") ' Address 2
fulladdress = addressone(0) & Chr$(10) & addresstwo(0)
citytown = doc.GetItemValue("CITY TOWN") ' City town
zip = doc.GetItemValue("ZIP") ' zip code
citystatezip = citytown(0) & " " & zip(0)
Call wordobj.Selection.TypeText (fullname + Chr$(10)) ' Insert full name into Word.
Call wordobj.Selection.TypeText (fulladdre ss + Chr$(10)) ' Insert full address into Word.
Call wordobj.Selection.TypeText (citystate zip + Chr$(10)) ' Insert full address into Word.
' Tab Control
If tabc <= 2 Then
Call wordobj.Selection.MoveRigh t(wdCell) ' Move one cell to the right.
Call wordobj.Selection.MoveRigh t(wdCell) ' Move one cell to the right.
tabc = tabc + 1
Else
Call wordobj.Selection.MoveRigh t(wdCell) ' Move one cell to the right.
tabc = 1
End If
Set doc = v.GetNextDocument(doc)
Loop
End Sub
===============
Make changes to the field names and view name....
--------------
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim v As NotesView
Dim doc As NotesDocument
Dim wordobj As Variant
Dim firstname As Variant
Dim midinit As Variant
Dim lastname As Variant
Dim fullname As String
Dim addressone As Variant
Dim addresstwo As Variant
Dim fulladdress As String
Dim citytown As Variant
Dim mass As Variant
Dim zip As Variant
Dim citystatezip As String
Set db = session.currentdatabase
Set v = db.GetView("Informacion") 'NAME OF THE VIEW FROM WHERE U NEED TO EXPORT Mailing LABELS
Set doc = v.GetFirstDocument
wdCell = 12 'Microsoft Word VBA constant. Designates unit for table cell.
tabc = 1 ' For controlling tabs
AveryTemplate = "5160" ' Avery mailing label. Three across.
Set wordobj = createobject("Word.Applica
wordobj.visible = True ' Show Word.
Call wordobj.documents.add 'Create new Word document.
' Create a new Word mailing label document. Use AveryTemplate variable declared at top.
Call wordobj.MailingLabel.Creat
Call wordobj.activate ' Give Word the focus.
' Cycle through each document in view.
' Create full address, then insert into Word table.
Do Until doc Is Nothing
fullname = doc.fullname(0) ' name of the person
addressone = doc.GetItemValue("Address1
addresstwo = doc.GetItemValue("Address2
fulladdress = addressone(0) & Chr$(10) & addresstwo(0)
citytown = doc.GetItemValue("CITY TOWN") ' City town
zip = doc.GetItemValue("ZIP") ' zip code
citystatezip = citytown(0) & " " & zip(0)
Call wordobj.Selection.TypeText
Call wordobj.Selection.TypeText
Call wordobj.Selection.TypeText
' Tab Control
If tabc <= 2 Then
Call wordobj.Selection.MoveRigh
Call wordobj.Selection.MoveRigh
tabc = tabc + 1
Else
Call wordobj.Selection.MoveRigh
tabc = 1
End If
Set doc = v.GetNextDocument(doc)
Loop
End Sub
There you go, I knew I needn't look for the code myself :-)
Tom
Tom
Ever heard of "IntelliPrint"? See http://www.cybernetsoft.com
I use it myself to print labels & enveloppes!
I use it myself to print labels & enveloppes!
paid version ?
Yes, I've heard of it, that's why I proposed it in my first post waaaay on top.
Set wrdApp = CreateObject("Word.applica tion")
wrdapp.documents.add
wrdApp.Visible = True
With wrdApp
.Selection.Font.Name = "Verdana"
.Selection.Font.Size = 12
.selection.insertafter "Partha"
.selection.insertparagraph after
.selection.insertafter "Myaddress "
.selection.insertparagraph after
.selection.insertafter "Mycountry"
.selection.insertparagraph after
'.Selection.Font.Size = 10
'.Selection.Font.Bold=Fals e
'If doc.Title1(0) <> "" Then
'.selection.insertafter doc.Title1(0)
' .selection.insertparagraph after
'End If
.Selection.insertafter "Tel: "
.selection.insertafter "My number"
.selection.insertparagraph after
.selection.insertparagraph after
.selection.insertparagraph after
' .selection.moveright 12, 1, 0
End With
wrdApp.activate
Exit Sub
ErrorHandler:
ErrNumber = Err
If (Err=101) Then Resume Next
Exit Sub
This code can be modified to poitn to a view and then loopign for each entry...
Partha
wrdapp.documents.add
wrdApp.Visible = True
With wrdApp
.Selection.Font.Name = "Verdana"
.Selection.Font.Size = 12
.selection.insertafter "Partha"
.selection.insertparagraph
.selection.insertafter "Myaddress "
.selection.insertparagraph
.selection.insertafter "Mycountry"
.selection.insertparagraph
'.Selection.Font.Size = 10
'.Selection.Font.Bold=Fals
'If doc.Title1(0) <> "" Then
'.selection.insertafter doc.Title1(0)
' .selection.insertparagraph
'End If
.Selection.insertafter "Tel: "
.selection.insertafter "My number"
.selection.insertparagraph
.selection.insertparagraph
.selection.insertparagraph
' .selection.moveright 12, 1, 0
End With
wrdApp.activate
Exit Sub
ErrorHandler:
ErrNumber = Err
If (Err=101) Then Resume Next
Exit Sub
This code can be modified to poitn to a view and then loopign for each entry...
Partha
ASKER
what if the user only wants to print the current ui doc? and not from a view?
Did you check my code partha ? It uses the label format of Word ?
Trying to steal all my pts huh ?
Trying to steal all my pts huh ?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
You can still use the 'change form' trick, but it won't work trough @command([fileprint]) directly
@Command([SwitchForm];"Tes t");
@postedCommand([FilePrint] )
If you intend to use 1 of the scripts, just change the document they work on:
eg.
set uidoc = ws.currentdocument
set doc = uidoc.document
instead of looping thru the documents in the view
cheers,
Tom
@Command([SwitchForm];"Tes
@postedCommand([FilePrint]
If you intend to use 1 of the scripts, just change the document they work on:
eg.
set uidoc = ws.currentdocument
set doc = uidoc.document
instead of looping thru the documents in the view
cheers,
Tom
Sorry Bozzie, I overread your comment!
Actually, [FilePrint] accepts a paramater (I think it is around the fourth parameter?) to use an alternate form. On eh down side, it causes it to print without prompting you for other printer settings, e.g., paper size.
Where are my points ?
Yes, qwaletee, I've said that too - it doesn't work when the document is open (Parameter is ignored), though, that's why you should use [Switchform]
cheers,
Tom
cheers,
Tom
ASKER
Chaps, client never came back , so consider this one dead, thanks for the effort
If this is dead then how come partha is alive and running away with my points ???
And 2000 points for my code ???
Arun,
Do u want me to die for this 2000 points.. Not fair...
David,
Thx for the points ;-)
Partha
Do u want me to die for this 2000 points.. Not fair...
David,
Thx for the points ;-)
Partha
ASKER
Arunkumar
Sorry mate, can give you some points if you want them!
Sorry mate, can give you some points if you want them!
ASKER