Manage Learn to apply best practices and optimize your operations.

Printing document with embedded view - Show single category

To mimic what you see on screen when printing documents I created another form with 4 rich text fields.

We have training database that have embedded view - show single category.

Each course for staff training contains lot of information with names of participants (embedded view). Our embedded view has column set to 'display values as icons' which represents status of participants within course.

Problem was printing these documents. When we print courses we lose list of participants. Embedded view is printed as grayed out box saying "view: name of embedded view".

To mimic what you see on screen when printing documents I created another form with 4 rich text fields into which I imported 4 images that represent status of participants within course.

I also created another form "Print" which I am using to generate report.

View like report is generated in "Report" rich text field on "Print" Form.

Process goes like this:
Pick up the ID of currently opened document
Collect the documents with same ID (List of Participants)
Check the Status of documents
Depending of status find the rich text that holds corresponding image and append image
Write legend
Open report document and print
Close report document.

Here is action code (probably not best but works)


Sub Click(Source As Button)
	Dim session As New NotesSession
	Dim workspace As New NotesUIWorkspace
	Dim db As NotesDatabase
	Dim uidoc As NotesUIDocument
	Dim uiresults As NotesUIDocument     'Report UI document
	Dim CourseID As String
	Dim Collection As NotesDocumentCollection
	Dim View As NotesView
	Dim resultDoc As NotesDocument
	Dim doc As NotesDocument
	Dim n As Integer
	
	Set db = session.CurrentDatabase
	Set uidoc = workspace.CurrentDocument
	
	'Get ID of current document
	CourseID = uidoc.FieldGetText("ID")
	
	Set View = db.GetView("Participants")
	Set Collection = View.GetAllDocumentsByKey(CourseID, True)
	
	 'Create the Report document using print form
	Set resultsDoc = db.CreateDocument    
	resultsDoc.Form = "Print"
	 'Create the Rich Text Item. This is where the report goes. Also create a 
     ' Rich Text Style object so that we can format the report
	Dim richText As New NotesRichTextItem(resultsDoc, "Results")
	Set richStyle = session.CreateRichTextStyle
	
     'Basic report body text format
	richStyle.NotesFont = FONT_HELV
	richStyle.FontSize = 8
	richStyle.Bold = False
	Call richText.AppendStyle(richStyle)
	
     'Title and Cost
	resultsDoc.Title = uidoc.FieldGetText("CourseName")
	resultsDoc.TotalCost = uidoc.FieldGetText("TotalCost")
	
	
     'Start generating the report
	For n = 1 To Collection.Count
		Set doc = Collection.GetNthDocument(n)
		
		Call richText.AddNewLine(1)
		Call richText.AppendText(Cstr(n) + ".")
		Call richText.AddTab(1)
		'Insert Immage
		Dim imageView As NotesView
		Dim imageDoc As NotesDocument
		
		Set imageView = db.GetView("Images")
		Set imageDoc = imageView.GetDocumentByKey( "Images" )
		Dim rtitem As Variant
		Dim s As String
		s= (doc.GetFirstItem("Status").Text) 
		Select Case s
		Case "Allocated":
			Set rtitem = ImageDoc.GetFirstItem( "Allocated" )
			Call richText.AppendRTItem(rtitem)
			
		Case "Nominated":
			Set rtitem = ImageDoc.GetFirstItem( "Nominated" )
			Call richText.AppendRTItem(rtitem)
			
		Case "Attended":
			Set rtitem = ImageDoc.GetFirstItem( "Attended" )
			Call richText.AppendRTItem(rtitem)
			
		Case "Not Attended":
			Set rtitem = ImageDoc.GetFirstItem( "NotAttended" )
			Call richText.AppendRTItem(rtitem)
			
		End Select
		'End Insert Immage
		
		'Add Link
		Call richText.AddTab(1)
		Call richText.AppendDocLink(doc, "Click on link to launch the document")
		Call richText.AddTab(1)
		'End Add Link
		
		 'Name 
		richStyle.Bold = True
		Call richText.AppendStyle(richStyle)
		Call richText.AppendText(doc.GetFirstItem("Name").Text)
		 'End Name 
		
		'Job Title  
		richStyle.Bold = False
		Call richText.AppendStyle(richStyle)          
		Call richText.AddTab(1)
		Call richText.AppendText(doc.GetFirstItem("JobTitle").Text)
		'End Job Title  
	Next
	'Add Legend
	Call richText.AddNewLine(3)
	richStyle.Bold = True
	richStyle.NotesColor = COLOR_BLUE
	Call richText.AppendStyle(richStyle)
	Call richText.AppendText("Legend:")
	Call richText.AddNewLine(1)
	
	richStyle.Bold = False
	richStyle.NotesColor = COLOR_BLACK
	Call richText.AppendStyle(richStyle)   
	
	Call richText.AppendText("Nominated")
	Call richText.AddTab(1)
	Set rtitem = ImageDoc.GetFirstItem( "Nominated" )
	Call richText.AppendRTItem(rtitem)
	Call richText.AddNewLine(1)
	
	richStyle.NotesColor = COLOR_DARK_YELLOW
	Call richText.AppendStyle(richStyle)  
	Call richText.AppendText("Allocated")
	Call richText.AddTab(1)
	Set rtitem = ImageDoc.GetFirstItem( "Allocated" )
	Call richText.AppendRTItem(rtitem)
	Call richText.AddNewLine(1)
	
	richStyle.NotesColor = COLOR_DARK_GREEN
	Call richText.AppendStyle(richStyle)  
	Call richText.AppendText("Attended")
	Call richText.AddTab(1)
	Set rtitem = ImageDoc.GetFirstItem( "Attended" )
	Call richText.AppendRTItem(rtitem)
	Call richText.AddNewLine(1)
	
	richStyle.NotesColor = COLOR_RED
	Call richText.AppendStyle(richStyle) 
	
	Call richText.AppendText("Not Attended")
	Call richText.AddTab(1)
	Set rtitem = ImageDoc.GetFirstItem( "NotAttended" )
	Call richText.AppendRTItem(rtitem)
	Call richText.AddNewLine(1)
	'End of legend
	
	
	'Save results document
	Call resultsDoc.Save(True, False)
	 'Display results document
	Set uiResults = workspace.EditDocument( False, resultsDoc, True)
	
	Dim printUidoc As NotesUIDocument
	Set printUidoc = workspace.CurrentDocument
	
	Call printUidoc.Print( 1 )
	Call printUidoc.Close
End Sub

Dig Deeper on Domino Resources - Part 5

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.

-ADS BY GOOGLE

SearchWindowsServer

Search400

  • iSeries tutorials

    Search400.com's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...

SearchDataCenter

SearchContentManagement

Close