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.
Old code from Alpha Five V5
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("[email protected]",query.filter,query.order) Else if prompt_result = "Preview" then :Report.Preview("[email protected]",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~")
Comment