* cmdPrint.Click Coding with a textbox txtReportName, opPrint to action choice WITH THISFORM if empty(.txtReportName.Value) messagebox([Sorry, no ReportName is Selected!!], 48, [CmdPrint Error]) else if !file(alltrim(.txtReportName.value)) messagebox([Sorry, Report File not Found!!], 48, [CmdPrint Error]) else PrintCmd = [Report From ] + alltrim(.txtReportName.value) DO CASE CASE ThisForm.ogPrint.VALUE = 1 && PREVIEW PRINTCMD = PRINTCMD + ' PREVIEW' CASE THISFORM.OGPRINT.VALUE = 2 && PRINT NOW PRINTCMD = PRINTCMD + ' TO PRINTER NOCONSOLE' ENDCASE * Ensure the printer name is selected APRINTER(APR) IF THISFORM.GETPRINTER == "" OR EMPTY(ASCAN(APR, THISFORM.GETPRINTER)) * if default printer name is not found! PR = GETPRINTER() THISFORM.GETPRINTER = '&PR' ENDIF * assigning printername SET PRINTER TO NAME (THISFORM.GETPRINTER) PrintJob * assigning any print option. BeginPage, EndPage, Num of Copies _PBPAGE = 1 && Of cos you can add more txtbox to control _PEPAGE = 32767 && Endpage _PCOPIES = 1 && 1 copy &PrintCmd && Run Print Command Macros messagebox([Finish Print Job], 48, [Justok Tells....]) EndPrintJob endif && End File endif && End Empty ENDWITHOf cos, You also can use File Array to set on Combox to select what existed