Alpha DevCon 2018
Results 1 to 7 of 7

Thread: Closing the Print Preview after pressing the Print button

  1. #1
    Member
    Real Name
    Keith Anderson
    Join Date
    Jan 2013
    Location
    Magnolia, TX
    Posts
    10

    Default Closing the Print Preview after pressing the Print button

    I have an onpush event for a button on a form that prints a report for every record where the "Print" field = .T.

    Below is my code for the event. I verify the current record is saved first and then proceed to the ui_get_print_or_preview. When I select to preview the print preview comes up. I would like to have it close the preview dialog after clicking on the print button on the toolbar. Currently it just prints the report and leaves he preview window open.

    I did this in an older version (Alpha 5 V5) using the code bellow. It has been a long time since I created the old code in V5 and I can't find much information on the card_spawn function to remind me of how it worked.

    Code from current Alpha Five V11 application.
    Code:
    'str_record_change is assigned in the autoexec script
    'str_record_add is assigned in the autoexec script
    
    msg01_ui_code = UI_YES_NO + UI_STOP_SYMBOL + UI_FIRST_BUTTON_DEFAULT
    msg02_ui_code = UI_YES_NO + UI_STOP_SYMBOL + UI_FIRST_BUTTON_DEFAULT
    
    IF db_mode_get(db_current()) = 1 THEN ' change mode
    	msg01_exit_code = ui_msg_box("Warning", str_record_change, msg01_ui_code)
    	IF msg01_exit_code = 6 then
    		'Save record in current form.
    		topparent.commit()
    	Else
    		'Cancel changes to record in current form.
    		topparent.cancel()
    	End IF
    ElseIF db_mode_get(db_current()) = 2 THEN ' enter mode
    	msg02_exit_code = ui_msg_box("Warning", str_record_add, msg02_ui_code)
    	IF msg02_exit_code = 6 then
    		'Save record in current form.
    		topparent.commit()
    	Else
    		'Cancel changes to record in current form.
    		topparent.cancel()
    	End IF
    End IF
    
    record_count_y = tablecount("service.dbf","print")
    IF record_count_y = 0 then
    	ui_msg_box("Print Invoice","There are " + record_count_y + " records selected to print." + chr(13) + "Please select 'Y' in Print Y/N and try again.",16)
    Else
    	IF record_count_y = 1 then
    		ui_msg_box("Print Invoice","There is " + record_count_y + " record selected to print.",64)
    	Else
    		ui_msg_box("Print Invoice","There are " + record_count_y + " records selected to print.",64)
    	End IF
    
    	query.filter = ""
    	query.order = ""
    	
    	'Prompt user whether to print, or preview the layout. Set default to Preview 
    	prompt_result = ui_get_print_or_preview("Print ")
    	If prompt_result = "Print" then
    		
    	:Report.Print("Invoice@svcday.set",query.filter,query.order)
    	
    	Else if prompt_result = "Preview" then 
    		:Report.Preview("Invoice@svcday.set",query.filter,query.order)
    	End if
    end if

    Old code from Alpha Five V5
    Code:
    dim shared A_DB_CURRENT_PATH as c
    dim _DB_NAME as c
    
    'For portability, derive the secondary database name from
    'the form's database path
    _DB_NAME = A_DB_CURRENT_PATH + "SVCDAY.SET"
    
    card_spawn("print_preview", "SPAWNDB=~" + _DB_NAME + "~ SPAWNNEW=0 SPAWNCHILD=1 USE=~Invoice~ TYPE=~REP0~")

  2. #2
    Moderator
    Real Name
    Alan Buchholz
    Join Date
    Oct 2000
    Location
    Delavan, Wisconsin
    Posts
    9,431

    Default Re: Closing the Print Preview after pressing the Print button

    You should generate some action scripting code with version 11 and replace the old code from V5.

    You can open the form and filter in action scripting.

    While it can work with the v5 code, I've usually found that changing the code to v11 is the best idea.
    Al Buchholz
    Bookwood Systems, LTD
    Weekly QReportBuilder Webinars Thursday 1 pm CST

    Occam's Razor - KISS
    Normalize till it hurts - De-normalize till it works.
    Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
    When we triage a problem it is much easier to read sample systems than to read a mind.

  3. #3
    Member
    Real Name
    Keith Anderson
    Join Date
    Jan 2013
    Location
    Magnolia, TX
    Posts
    10

    Default Re: Closing the Print Preview after pressing the Print button

    Alan,

    Thanks for the reply, but that is what I am doing. I included in my original post my code from my V11 application. That was created using the Action Scripting. Below is the code that specivically creates the preview. The problem I have with it is that it doesn't close the preview window after clicking on the Print button on the tool bar. I was looking for a way that when in the Preview mode if you click on the Printer icon on the tool bar it would print the report and close the preview. As of right now I have to click on the print button and then click on the Exit Preview button to close it.

    Code:
    	query.filter = ""
    	query.order = ""
    	
    	'Prompt user whether to print, or preview the layout. Set default to Preview 
    	prompt_result = ui_get_print_or_preview("Print ")
    	If prompt_result = "Print" then
    		
    	:Report.Print("Invoice@svcday.set",query.filter,query.order)
    	
    	Else if prompt_result = "Preview" then 
    		:Report.Preview("Invoice@svcday.set",query.filter,query.order)
    	End if

  4. #4
    Member
    Real Name
    Ninus Daniels
    Join Date
    Jun 2000
    Posts
    63

    Default Re: Closing the Print Preview after pressing the Print button

    Hi Keith,

    In AlphaFive V11 you should supposedly be able to set this form the preferences settings.

    From the top menu select the following:

    View -> Settings -> Preferences -> Reports -> 'Printing from Preview Window' ..and set the value to 'Yes'



    Cheers
    Ninus

  5. #5
    "Certified" Alphaholic Ray in Capetown's Avatar
    Real Name
    Ray Hendler
    Join Date
    Jan 2009
    Location
    South Africa
    Posts
    2,036

    Default Re: Closing the Print Preview after pressing the Print button

    I got around this by embedding the print preview supercontrol on a form. On a form button you can then add topparent.close(.f.)

  6. #6
    Member
    Real Name
    Keith Anderson
    Join Date
    Jan 2013
    Location
    Magnolia, TX
    Posts
    10

    Default Re: Closing the Print Preview after pressing the Print button

    I was able to make the behavior function like it used to be by changing the setting as referenced by cadmen

    View -> Settings -> Preferences -> Reports -> 'Printing from Preview Window' ..and set the value to 'Yes'

    Now after clicking the print button on the print preview window that preview is closed.

  7. #7
    "Certified" Alphaholic Ray in Capetown's Avatar
    Real Name
    Ray Hendler
    Join Date
    Jan 2009
    Location
    South Africa
    Posts
    2,036

    Default Re: Closing the Print Preview after pressing the Print button

    Excellent, thanks for reportback.
    Nice call Ninus.

Similar Threads

  1. Adding Button to Print Preview Dialog Box
    By jbk in forum Alpha Five Version 10 - Desktop Applications
    Replies: 4
    Last Post: 10-28-2011, 12:48 AM
  2. Button On Preview But Don't Print It
    By SMARTII in forum Alpha Five Version 9 - Desktop Applications
    Replies: 1
    Last Post: 05-31-2010, 03:38 PM
  3. Print Preview Exit button
    By Becky McNichols in forum Alpha Five Version 7
    Replies: 7
    Last Post: 01-23-2008, 11:15 AM
  4. Need a Button on Print Preview for Touch Screen
    By reedorbs in forum Alpha Five Version 7
    Replies: 9
    Last Post: 06-29-2006, 06:08 PM
  5. Print/Preview task bar menu not closing.
    By Alan Lucas in forum Alpha Five Version 7
    Replies: 1
    Last Post: 04-13-2006, 03:26 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •