Mini Kabibi Habibi

Current Path : C:/Users/ITO/Desktop/VF9/program files/microsoft visual foxpro 9/ffc/
Upload File :
Current File : C:/Users/ITO/Desktop/VF9/program files/microsoft visual foxpro 9/ffc/_reports.vct

x�VERSION =   3.00
_reports.hvI�\1_output
_reports.hPixelsClass2
_container_output(Top = 0
Left = 0
Name = "cusWindows"
_output
cusWindowscustom_ui.vcx_windowhandler	container	_base.vcx
_reports.h6��\1pArial, 0, 9, 5, 15, 12, 32, 3, 0
Courier New, 0, 8, 7, 14, 11, 7, 3, 0
MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
	_showtext
_reports.hPixelsClass7_form	_showtext	_showtextchkReadOnlycheckbox	_base.vcx	_checkbox	_showtextcmdFonts
commandbutton	container_reports.vcxSWidth = 338
Height = 49
Name = "_outputchoices"
cusWindows.Name = "cusWindows"
_textbox	_base.vcxtextboxtxtFileName_outputchoices	_combobox	_base.vcxcomboboxcboDestinations_outputchoices	_combobox	_base.vcx�Top = 112
Left = 336
FontName = "MS Sans Serif"
FontSize = 8
AutoSize = .T.
BackStyle = 0
Caption = "Read only"
ControlSource = "THISFORM.edtText.Readonly"
Name = "chkReadOnly"
�� ���'%o�~�U
��C����
��C����UTHISFORMGETFIXEDFONTSETFONTSClick,��1��2?)�JPROCEDURE Click
THISFORM.GetFixedFont()
THISFORM.SetFonts()

ENDPROC
�Top = 134
Left = 337
Height = 25
Width = 74
FontName = "MS Sans Serif"
FontSize = 8
Caption = "Fonts..."
Name = "cmdFonts"
	_base.vcx_commandbutton�� ���%Shb�U
��C����UTHISFORMRELEASEClick,��1�2%)�0PROCEDURE Click
THISFORM.Release()

ENDPROC
�Top = 5
Left = 337
Height = 25
Width = 74
FontName = "MS Sans Serif"
FontSize = 8
Cancel = .T.
Caption = "\<Close"
Default = .T.
Name = "cmdClose"
	_showtextcmdClose
commandbutton	_base.vcx_commandbutton?�� &&�u%����U_���T������%�C�.����C�T����.TXT�����C�������ULCFILETHISFORMCTARGETFILEEDTTEXTVALUEClick,��1rrQAR3�)&�PROCEDURE Click

LOCAL lcFile
lcFile = THISFORM.cTargetFile

IF AT(".",lcFile) = 0
   lcFile = lcFile + ".TXT"
ENDIF   

StrToFile(THISFORM.edtText.Value,lcFile)


ENDPROC
�Top = 36
Left = 337
Height = 25
Width = 74
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Save to File"
Name = "cmdSave"
	_showtextcmdSave
commandbutton	_base.vcx_commandbutton,OLEObject = C:\WINNT\System32\comdlg32.ocx

��ࡱ�>��	������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Root Entry����������^=�?�@OleObjectData����\AccessObjSiteData&������������\ChangedProps�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<����+/I�!C4OO�<� \$828C4C820-401A-101B-A3C9-08002B2F49FB�AZTop = 72
Left = 336
Height = 100
Width = 100
ZOrderSet = 1
Name = "OleCommonDialog"
	_showtextOleCommonDialog
olecontrol
olecontrol�FontName = "Courier New"
FontSize = 8
Height = 229
Left = 0
ReadOnly = .T.
ScrollBars = 2
Top = 3
Width = 324
ColorSource = 3
Name = "edtText"
	_showtextedtTexteditbox	_base.vcx_editbox�Top = 0
Left = 0
Height = 237
Width = 419
ShowWindow = 1
DoCreate = .T.
Caption = "Text Editor"
cfixedfontname = ("Courier New")
ifixedfontsize = 9
csourcefile = ("")
ctargetfile = ("")
Name = "_showtext"
form	_base.vcx
_reports.hvI�\1kArial, 0, 9, 5, 15, 12, 32, 3, 0
MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
Arial, 0, 8, 5, 14, 11, 30, 3, 0

_outputdialog
_reports.h	setkeys
PixelsClass18_form
_outputdialog�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
Caption = "Output t\<ype:"
Left = 16
Top = 36
TabIndex = 2
ZOrderSet = 16
Name = "lblOutputType"
labelkcvfpprintername This is the name of the current VFP default printer as distinct from the Windows default printer.
coption The list of available options which changes dynamically to fit the current cDestination.
creport This is a label or report form suitable for VFP-formatted output.
calias This is the data source that will be used for non-report/label output formats. This property will default to the current alias, if any.
cfieldlist A comma-delimited list of fields or expressions. It affects only direct data sources (BROWSEs and LISTs).
cdestination This is list of available destinations which changes dynamically depending on whether cReport, cAlias, or both, are filled out. The list of available destinations is stored in aDestinations[] array.
lpreventsourcechanges Prevents source changes for cAlias or cReport.
ctextfile This is the file name for all output destinations that go to disk, which include text files, printer-image files, and export formats.
cdisplayfontname This is used for on-screen display of output, for example in a BROWSE or when the _Showtext class is instantiated for text display.
laddsourcenametodropdown Affects how some destinations show in the aDestinations array.
chtmlclass Optional HTML class and classlib passed to _GENHTML.
chtmlstyleid Optional HTML style passed to _GENHTML.
cscope This can be used to specify a macro-expanded string to be added to the command that executes the actual output.  It must be a legal scope such as "FOR <expr>".
*setvfpprinter 
*cvfpprintername_access 
*coption_assign 
*outputtoscreen Outputs to screen.
^adestinations[1,2] Array of destinations.
*cdestination_assign 
*setoptions Drives options for output destinations.
^aoptions[1,2] Array of destination output options.
*setdestinations Controls available output destinations.
*calias_assign 
*creport_assign 
*output This is main method that is called to generate output based on settings.
*setoutputprinter 
*printlist 
*printreport 
*copytable Exports a table.
*lpreventsourcechanges_assign 
*cdisplayfontname_assign 
*genhtml Generates HTML output.
*cscope_assign 
*ctextfile_assign 
�cfixedfontname Font name for display editbox.
ifixedfontsize Font size for display editbox.
csourcefile Name of source file to view/edit.
ctargetfile Name of file to which you would like to save the (possibly edited) contents of the editbox.
lfixedfontbold Font bold for display editbox.
lfixedfontitalic Font italic for display editbox.
lsuppresscaptionchange Suppresses the dialog caption from changing as the source file changes.  This is useful for displaying the contents of a temporary file.
*ctargetfile_access 
*csourcefile_assign 
*setfonts Applies the current font property characteristics to the editbox displaying the file.
*getfixedfont Uses common dialog to display font dialog, restricted to fixed font items.

��� �
�
8%�
]R	�Uf%�C�����S�������O�T���	�����C���T���������B�����UTHISCTARGETFILEOLECOMMONDIALOGFLAGSSHOWSAVEFILENAMEd������%�C����C��3�T���������T��C����
H�W��� �C�0�CC���]�
����T������0�C��.txt0�CC����.txt]�
����T�����.txt��2���T��������%�C������T��������]�T����C�����%���
��Y�T���������UTVNEWVALLCVALTHISCSOURCEFILEEDTTEXTVALUELSUPPRESSCAPTIONCHANGECAPTION[T��������T��������T��������T������	��U
THISEDTTEXTFONTNAMECFIXEDFONTNAMEFONTSIZEIFIXEDFONTSIZE
FONTITALICLFIXEDFONTITALICFONTBOLDLFIXEDFONTBOLDb����T������T������������[�T���@��T������T������T�	�C��
����6��T��C������6����C�
��%�C��
���T������T���C��
��T��
�C�	�
����T�������%�C��
��?�T�������W�T���������ULCNAMELISIZETHISCFIXEDFONTNAMEIFIXEDFONTSIZEOLECOMMONDIALOGFLAGSFONTNAMEFONTSIZE
FONTITALICLFIXEDFONTITALICFONTBOLDLFIXEDFONTBOLDSHOWFONT�������%�C�
��#�B�-����%�C��
MS Sans Serif���$�
�!C��
MS Sans Serif���$��!C��
MS Sans Serif���$��!C��
MS Sans Serif���$���=����T��C�
MS Sans Seriff�������9�.%�C��FontName��h�
C��f�	��5�T����Arial������T������T����Text Viewer��T�����	��T��
�����
��C����
��C��
��UTCSOURCEFILE	LOCONTROLLCSTANDARDFONTTHISCONTROLSFONTNAMECSOURCEFILECAPTION	MINHEIGHTHEIGHTMINWIDTHWIDTHSETFONTSRESIZE����T��C��%����������*T������������<J�����(�������������T���	��T�
���
������ULNMARGINTHISEDTTEXTWIDTHCMDCLOSELEFTCMDSAVECHKREADONLYCMDFONTSTOPHEIGHTctargetfile_access,��csourcefile_assign���setfonts���getfixedfontl��Initv��Resize���1!�BB�3qrR�����AA"1��1AA4aaaa2����AA�A�AB3qr�qAb	q�"�RAAC�11��2q����B3�
�^"}34'Vm:?��
]T�|)�

	PROCEDURE ctargetfile_access
IF EMPTY(THIS.cTargetFile)

   WITH THIS.oleCommonDialog
   
      .Flags =   cdlOFNPathMustExist  + ;
                 cdlOFNNoChangeDir    + ;
                 cdlOFNHideReadOnly   + ;
                 cdlOFNExplorer       + ;
                 cdlOFNOverwritePrompt+ ;
                 cdlOFNNoReadOnlyReturn
      .ShowSave()
      THIS.cTargetFile = .FileName
      
   ENDWITH

ENDIF

RETURN THIS.cTargetFile

ENDPROC
PROCEDURE csourcefile_assign
LPARAMETERS tvNewVal

LOCAL lcVal

IF VARTYPE(tvNewVal) # "C"
   THIS.cSourceFile = ""
ELSE
   lcVal = ALLTR(tvNewVal)
   DO CASE
   CASE FILE(lcVal) OR (NOT EMPTY(SYS(2000,lcVal)))   
      THIS.cSourceFile = lcVal
   CASE FILE(lcVal+".txt") OR (NOT EMPTY(SYS(2000,lcVal+".txt")))
      THIS.cSourceFile = lcVal+".txt"
   OTHERWISE
      THIS.cSourceFile = ""
   ENDCASE
ENDIF   

IF EMPTY(THIS.cSourceFile)
   THIS.edtText.Value = ""
ELSE   
   THIS.edtText.Value = FileToStr(THIS.cSourceFile)
   IF NOT THIS.lSuppressCaptionChange
      THIS.Caption = THIS.cSourceFile
   ENDIF
ENDIF


ENDPROC
PROCEDURE setfonts
THIS.edtText.FontName = THIS.cFixedFontName
THIS.edtText.FontSize = THIS.iFixedFontSize
THIS.edtText.FontItalic = THIS.lFixedFontItalic
THIS.edtText.FontBold = THIS.lFixedFontBold
ENDPROC
PROCEDURE getfixedfont
LOCAL lcName, liSize

lcName = THIS.cFixedFontName
liSize = THIS.iFixedFontSize

WITH THIS.oleCommonDialog

   .Flags =  cdlCFScreenFonts + ;
             cdlCFForceFontExist + ;
             cdlCFFixedPitchOnly

   .FontName = THIS.cFixedFontName             
   .FontSize = THIS.iFixedFontSize
   .FontItalic = IIF(THIS.lFixedFontItalic,1,0)
   .FontBold = IIF(THIS.lFixedFontBold,1,0)   
   .ShowFont()

   IF NOT EMPTY(.FontName)
      THIS.cFixedFontName = .FontName
      THIS.lFixedFontBold = NOT EMPTY(.FontBold)
      THIS.lFixedFontItalic = NOT EMPTY(.FontItalic)
   ELSE
      THIS.cFixedFontName = lcName
   ENDIF

   IF NOT EMPTY(.FontSize)
      THIS.iFixedFontSize = .FontSize
   ELSE
      THIS.iFixedFontSize = liSize
   ENDIF
      
ENDWITH

ENDPROC
PROCEDURE Init
LPARAMETERS tcSourceFile

LOCAL loControl

IF NOT DODEFAULT()
   RETURN .F.
ENDIF   

IF SYSTEM_LARGEFONTS
   LOCAL lcStandardFont
   lcStandardFont = UPPER(DIALOG_SMALLFONT_NAME)

   FOR EACH loControl IN THIS.Controls
       IF PEMSTATUS(loControl,"FontName",5) AND ;
          UPPER(loControl.FontName) == lcStandardFont

          loControl.FontName = DIALOG_LARGEFONT_NAME
       ENDIF
   ENDFOR   
   * Note: no recursion here.

ENDIF

THIS.cSourceFile = tcSourceFile
THIS.Caption = SHOWTEXT_TEXT_EDITOR_LOC
THIS.MinHeight = THIS.Height
THIS.MinWidth = THIS.Width
THIS.SetFonts()
THIS.Resize()
ENDPROC
PROCEDURE Resize
LOCAL lnMargin

lnMargin = SYSMETRIC(VERTICAL_SCROLLBAR_WIDTH) 

WITH THIS.edtText

   .Width = THIS.Width - (THIS.cmdClose.Width + ;
                            (lnMargin * 2) + ;
                             .Left)

   STORE (.Width + .Left + lnMargin) TO ;
          THIS.cmdSave.Left, ;
          THIS.cmdClose.Left, ;
          THIS.chkReadonly.Left, ;
          THIS.cmdFonts.Left

   lnMargin = .Top

   .Height = THIS.Height - lnMargin * 2
   
ENDWITH   


ENDPROC

_outputdialog
lblOutputType	_base.vcx_label�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
BorderStyle = 0
Caption = "\<Filename:"
Height = 15
Left = 16
Top = 99
Width = 47
TabIndex = 5
ZOrderSet = 15
Name = "lblOutputFilename"

_outputdialoglblOutputFilenamelabel	_base.vcx_label�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
BorderStyle = 0
Caption = "O\<ptions:"
Left = 16
Top = 68
TabIndex = 4
ZOrderSet = 14
Name = "lblOptions"

_outputdialog
lblOptionslabel	_base.vcx_label�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
Caption = "\<Choose records"
Height = 15
Left = 16
Top = 134
Width = 76
TabIndex = 6
ZOrderSet = 13
Name = "lblScope"

_outputdialoglblScopelabel	_base.vcx_label�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
BorderStyle = 0
Caption = "Da\<ta:"
Height = 15
Left = 16
Top = 239
Width = 28
TabIndex = 12
ZOrderSet = 12
Name = "lblData"

_outputdialoglblDatalabel	_base.vcx_label�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 0
BorderStyle = 0
Caption = "\<Reports:"
Left = 16
Top = 207
TabIndex = 9
ZOrderSet = 11
Name = "lblReports"

_outputdialog
lblReportslabel	_base.vcx_labelp�� WW��%���U�R,:�C�
Pick a report�������"T��CC�FRX,LBX��Open�f��%�C|�
��\���%�C��
����T��������R�ULCNAMETHISFORM
TXTREPORTFILEVALUEClick,��1�r"QA2BS2)W"PROCEDURE Click
WAIT WINDOW NOWAIT LEFTC(OUTPUT_SOURCE_REPORT_LOC,254)

LOCAL lcName

lcName = UPPER(GETFILE("FRX,LBX","","Open"))
IF LASTKEY() = 13
   CLEAR TYPEAHEAD
ENDIF
 

IF NOT EMPTY(lcName)

   THISFORM.txtReportFile.Value = lcName

ENDIF


WAIT CLEAR

ENDPROC
�Top = 202
Left = 267
Height = 24
Width = 23
FontSize = 8
Caption = "..."
TabIndex = 11
TabStop = .F.
ZOrderSet = 10
Name = "cmdGetReport"

_outputdialogcmdGetReport
commandbutton	_base.vcx_commandbutton9��   �%����U
��C����UTHISFORM
CHECKOKBUTTON
��C����UTHISFORM
CHECKOKBUTTONProgrammaticChange,��InteractiveChangeY��1�2�26^x) �PROCEDURE ProgrammaticChange
THISFORM.CheckOKButton()
ENDPROC
PROCEDURE InteractiveChange
THISFORM.CheckOKButton()

ENDPROC
�FontName = "MS Sans Serif"
FontSize = 8
Height = 24
Left = 100
TabIndex = 10
Top = 202
Width = 161
ZOrderSet = 9
Name = "txtReportFile"

_outputdialog
txtReportFiletextbox	_base.vcx_textbox�FontName = "MS Sans Serif"
FontSize = 8
RowSourceType = 1
Height = 24
Left = 100
TabIndex = 13
Top = 234
Width = 190
ZOrderSet = 8
Name = "cboTables"

_outputdialog	cboTablescombobox	_base.vcx	_combobox�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 1
BorderStyle = 0
Caption = "\<Sources"
Height = 15
Left = 16
Top = 182
Width = 41
TabIndex = 8
ZOrderSet = 7
Name = "lblSources"

_outputdialog
lblSourceslabel	_base.vcx_label�AutoSize = .T.
FontName = "MS Sans Serif"
FontSize = 8
BackStyle = 1
BorderStyle = 0
Caption = "\<Destinations"
Height = 15
Left = 16
Top = 12
Width = 60
TabIndex = 1
ZOrderSet = 6
Name = "lblDestinations"

_outputdialoglblDestinationslabel	_base.vcx_labelzTop = 188
Left = 8
Height = 78
Width = 290
BackStyle = 0
SpecialEffect = 0
ZOrderSet = 5
Name = "shpFrameSources"

_outputdialogshpFrameSourcesshape	_base.vcx_shape�� ���%Shb�U
��C����UTHISFORMRELEASEClick,��1�1#)�.PROCEDURE Click
THISFORM.Release()
ENDPROC
�Top = 49
Left = 306
Height = 23
Width = 72
FontBold = .F.
FontName = "MS Sans Serif"
FontSize = 8
Cancel = .T.
Caption = "Cancel"
TabIndex = 15
ZOrderSet = 4
Name = "cmdCancel"

_outputdialog	cmdCancel
commandbutton	_base.vcx_commandbutton�� ��D%Rga�U
��C����UTHISFORMOUTPUTClick,��1�2$)�/PROCEDURE Click
THISFORM.Output()

ENDPROC
�Top = 18
Left = 306
Height = 23
Width = 72
FontName = "MS Sans Serif"
FontSize = 8
Caption = "OK"
TabIndex = 14
ZOrderSet = 3
Name = "cmdOK"

_outputdialogcmdOK
commandbutton	_base.vcx_commandbuttonN�� 55��	%l<�U$���
��C���
��C����UTCVALTHISFORM
CHECKOKBUTTON$���
��C���
��C����UTCVALTHISFORM
CHECKOKBUTTON
��C����UTHISFORM
CHECKOKBUTTON
��C����UTHISFORM
CHECKOKBUTTON
��C����UTHISFORM
CHECKOKBUTTON
��C����UTHISFORM
CHECKOKBUTTON
��C����UTHISFORM
CHECKOKBUTTON
��C����UTHISFORM
CHECKOKBUTTON	��C��
��C����UTHISFORM
CHECKOKBUTTONcreport_assign,��
calias_assignt��txtFileName.InteractiveChange���txtFileName.ProgrammaticChange���!cboDestinations.InteractiveChange��"cboDestinations.ProgrammaticChangeC��cboOptions.InteractiveChangep��cboOptions.ProgrammaticChange���cmdPutFile.Click���1q��3q��3�3�3�2�3�3�3��2Y}�	�

?Y
����/I}� ��$)5�PROCEDURE creport_assign
LPARAMETERS tcVal
DODEFAULT(tcVal)
THISFORM.CheckOKButton()

ENDPROC
PROCEDURE calias_assign
LPARAMETERS tcVal
DODEFAULT(tcVal)
THISFORM.CheckOKButton()

ENDPROC
PROCEDURE txtFileName.InteractiveChange
THISFORM.CheckOKButton()

ENDPROC
PROCEDURE txtFileName.ProgrammaticChange
THISFORM.CheckOKButton()

ENDPROC
PROCEDURE cboDestinations.InteractiveChange
THISFORM.CheckOKButton()
ENDPROC
PROCEDURE cboDestinations.ProgrammaticChange
THISFORM.CheckOKButton()

ENDPROC
PROCEDURE cboOptions.InteractiveChange
THISFORM.CheckOKButton()

ENDPROC
PROCEDURE cboOptions.ProgrammaticChange
THISFORM.CheckOKButton()

ENDPROC
PROCEDURE cmdPutFile.Click
DODEFAULT()
THISFORM.CheckOKButton()

ENDPROC
�Top = 18
Left = 8
Width = 290
Height = 109
BorderWidth = 0
TabIndex = 3
ZOrderSet = 2
Name = "cusOutput"
txtFileName.Height = 23
txtFileName.Left = 92
txtFileName.TabIndex = 3
txtFileName.Top = 78
txtFileName.Width = 161
txtFileName.Name = "txtFileName"
cboDestinations.Height = 24
cboDestinations.Left = 92
cboDestinations.TabIndex = 1
cboDestinations.Top = 14
cboDestinations.Width = 190
cboDestinations.Name = "cboDestinations"
cboOptions.Height = 24
cboOptions.Left = 92
cboOptions.TabIndex = 2
cboOptions.Top = 46
cboOptions.Width = 190
cboOptions.Name = "cboOptions"
cmdPutFile.Top = 78
cmdPutFile.Left = 259
cmdPutFile.TabIndex = 4
cmdPutFile.Name = "cmdPutFile"
cusWindows.Name = "cusWindows"

_outputdialog	cusOutput	container_reports.vcx_outputchoicesTop = 18
Left = 8
Height = 109
Width = 290
BackStyle = 0
SpecialEffect = 0
ZOrderSet = 1
Name = "shpFrameDestinations"

_outputdialogshpFrameDestinationsshape	_base.vcx_shape^�� EE��%��
��U~
H�
�w�������7�T����NEXT 1��������_�T����REST��2�w�T�������UTHISVALUETHISFORMCSCOPEInteractiveChange,��1�AaAA�A1�)E�PROCEDURE InteractiveChange
DO CASE
CASE THIS.Value = 2
   THISFORM.cScope = "NEXT 1"
CASE THIS.Value = 3
   THISFORM.cScope = "REST"
OTHERWISE
   THISFORM.cScope = ""
ENDCASE          
ENDPROC
�ButtonCount = 3
BackStyle = 0
BorderStyle = 1
Height = 35
Left = 8
Top = 140
Width = 290
TabIndex = 7
ZOrderSet = 0
Name = "opgScope"
Option1.FontName = "MS Sans Serif"
Option1.FontSize = 8
Option1.BackStyle = 0
Option1.Caption = "\<All"
Option1.Height = 15
Option1.Left = 8
Option1.TabIndex = 1
Option1.Top = 11
Option1.Width = 29
Option1.AutoSize = .T.
Option1.Name = "Option1"
Option2.FontName = "MS Sans Serif"
Option2.FontSize = 8
Option2.BackStyle = 0
Option2.Caption = "C\<urrent"
Option2.Height = 15
Option2.Left = 115
Option2.TabIndex = 2
Option2.Top = 11
Option2.Width = 52
Option2.AutoSize = .T.
Option2.Name = "Option2"
Option3.FontName = "MS Sans Serif"
Option3.FontSize = 8
Option3.BackStyle = 0
Option3.Caption = "R\<est"
Option3.Height = 15
Option3.Left = 240
Option3.TabIndex = 3
Option3.Top = 11
Option3.Width = 40
Option3.AutoSize = .T.
Option3.Name = "Option3"

_outputdialogopgScopeoptiongroup	_base.vcx_optiongrouplpreventsourcechanges Prevents source changes for cAlias or cReport.
cdestination This is list of available destinations which changes dynamically depending on whether cReport, cAlias, or both, are filled out.
calias Name of data source to output.
creport Name of report or label to output.
cfieldlist A comma-delimited list of fields or expressions. It affects only direct data sources (BROWSEs and LISTs).
cdisplayfontname This is used for on-screen display of output, for example in a BROWSE or when the _Showtext class is instantiated for text display.
laddsourcenametodropdown Affects how some destinations show in the aDestinations array.
chtmlclass Optional HTML class and classlib passed to _GENHTML.
chtmlstyleid Optional HTML style passed to _GENHTML.
cscope Legal scope expression for output.
lpreventscopechanges Disables ability to change output scope.
*checkokbutton 
*calias_access 
*calias_assign 
*cdestination_access 
*cdestination_assign 
*creport_access 
*creport_assign 
*lpreventsourcechanges_access 
*lpreventsourcechanges_assign 
*respondtopermissionforsourcechanges 
*cfieldlist_access 
*cfieldlist_assign 
*cdisplayfontname_access 
*cdisplayfontname_assign 
*laddsourcenametodropdown_access 
*laddsourcenametodropdown_assign 
*chtmlclass_access 
*chtmlclass_assign 
*chtmlstyleid_access 
*chtmlstyleid_assign 
*cscope_access 
*cscope_assign 
*respondtopermissionforscopechanges 
*lpreventscopechanges_assign 
*setkeys 
*output Wrap the cusOutput.Output method for external use
:�� !!X�%(�l�U�%���
���B��!T����C�����
��%��������d%�C�#����#�#PRINTFILE#�
#TEXTFILE#�#EXPORT#�
#HTMLFILE#��C����	�	����T����-����%������H�V%�C�#����#�
#PRINTREPORT#�
#TEXTFILE#�#PRINTFILE#��	C���	��D�T����-����%��������D%�C�#����#�#EXPORT#�#PRINTLIST#��	C���	����T����-����U
THISVISIBLECMDOKENABLEDCALIASCREPORT	CUSOUTPUTCDESTINATIONTXTFILENAMEVALUEB������UTHIS	CUSOUTPUTCALIASu	��
��%�C�
����C��n�J��
��(������%���
��]���C������
��C�����UVNEWVALTHIS	CUSOUTPUTCALIASLPREVENTSOURCECHANGES	CBOTABLESREFRESH
CHECKOKBUTTONB������UTHIS	CUSOUTPUTCDESTINATION(	��
��J��
��(������UVNEWVALTHISCDESTINATION	CUSOUTPUTB������UTHIS	CUSOUTPUTCREPORTu	��
��%�C�
����C��n�J��
��(������%���
��]���C������
��C�����UVNEWVALTHISCREPORT	CUSOUTPUTLPREVENTSOURCECHANGES
TXTREPORTFILEREFRESH
CHECKOKBUTTONB������UTHIS	CUSOUTPUTLPREVENTSOURCECHANGESn������#%�C����L����	��V�J���(������T��a�����C�����UTLNEWVALLLCHANGETHISLPREVENTSOURCECHANGES	CUSOUTPUT#RESPONDTOPERMISSIONFORSOURCECHANGES�������!T��C������Q��?8��%�������&%�C���������	����H��C�9This dialog needs report or table datasource information.�0�x���$T��	����
�	��
������T��	�������J���
�(���
������
������
������
������
������
������
����UTLEXPLICITCHANGELNBOTTOMMARGINTHISLBLDESTINATIONSTOPLPREVENTSOURCECHANGES	CUSOUTPUTCREPORTCALIASHEIGHTOPGSCOPE	MAXHEIGHT
LBLSOURCESVISIBLEENABLEDSHPFRAMESOURCES
LBLREPORTSLBLDATA
TXTREPORTFILECMDGETREPORT	CBOTABLESB������UTHIS	CUSOUTPUT
CFIELDLIST(	��
��J��
��(������UVNEWVALTHIS
CFIELDLIST	CUSOUTPUTB������UTHIS	CUSOUTPUTCDISPLAYFONTNAME!	��
��T�����
���UVNEWVALTHIS	CUSOUTPUTCDISPLAYFONTNAMEB������UTHIS	CUSOUTPUTLADDSOURCENAMETODROPDOWN=���%�C����L��6�J���(�������UTLNEWVALTHIS	CUSOUTPUTLADDSOURCENAMETODROPDOWNB������UTHIS	CUSOUTPUT
CHTMLCLASS=���%�C����C��6�J���(�������UTVNEWVALTHIS
CHTMLCLASS	CUSOUTPUTB������UTHIS	CUSOUTPUTCHTMLSTYLEID=���%�C����C��6�J���(�������UTVNEWVALTHISCHTMLSTYLEID	CUSOUTPUTB�CC����f��UTHIS	CUSOUTPUTCSCOPE������%�C����C��N�T��CC�f���J���(�������j�T��CC��f����
H�{�����ALL�C������T����������NEXT 1����T����������REST����T�������2��T��������UTVNEWVALLCNEWVALTHISCSCOPE	CUSOUTPUTOPGSCOPEVALUEW���T����
��J���(���������C�Enabled������ULLSCOPEENABLEDTHISLPREVENTSCOPECHANGESOPGSCOPEENABLEDLBLSCOPESETALL@���%�C����L��,�J���(����
��C����UTLNEWVALTHISLPREVENTSCOPECHANGES"RESPONDTOPERMISSIONFORSCOPECHANGESm���
%����Y����12�Alt-Y��IIF(TYPE("_SCREEN.ActiveForm.cusOutput.cboDestinations") = "O" AND  _SCREEN.ActiveForm.cusOutput.cboDestinations.Enabled,  _SCREEN.ActiveForm.cusOutput.cboDestinations.SetFocus(), .T.)��12�Alt-P��IIF(TYPE("_SCREEN.ActiveForm.cusOutput.cboOptions") = "O" AND  _SCREEN.ActiveForm.cusOutput.cboOptions.Enabled,  _SCREEN.ActiveForm.cusOutput.cboOptions.SetFocus(), .T.)��12�Alt-F��IIF(TYPE("_SCREEN.ActiveForm.cusOutput.txtFileName") = "O" AND  _SCREEN.ActiveForm.cusOutput.txtFileName.Enabled,  _SCREEN.ActiveForm.cusOutput.txtFileName.SetFocus(), .T.)��f����UTLONALTYPF��C�����UTHIS	CUSOUTPUTOUTPUT
��C����UTHISSETKEYSO���%�C���
��(�T���a���T�������
��C����UNSTYLETHISCSCOPELPREVENTSCOPECHANGES#RESPONDTOPERMISSIONFORSOURCECHANGESH���������%�C�
��/�B�-���T�������T������T��	���� %�C�t��C����L	����T��
����� %�C�t��C����L	����T��������%�C��
MS Sans Serif���$�
�!C��
MS Sans Serif���$��!C��
MS Sans Serif���$��!C��
MS Sans Serif���$���A����T��C�
MS Sans Seriff������
�=�
H���9�.�C��FontName��h�
C��f�	����T����Arial��(�C�loControl.Buttons(1)b�O��1� ��C�FontName�Arial����2�9�����UTCREPORTTCALIASTLPREVENTSOURCECHANGESTLPREVENTSCOPECHANGES	LOCONTROLTHIS	MAXHEIGHTHEIGHTCREPORTCALIASLPREVENTSOURCECHANGESLPREVENTSCOPECHANGESLCSTANDARDFONTCONTROLSFONTNAMESETALL�%���
��a�������#����������������T��C���y��
T����������(������T��CC������T�����,����%�C����,����T��C�C�>����T�������C�	��'T�
��THISFORM.cusOutput.cAlias����-T���
��THISFORM.cusOutput.cReport��
��C��
���
��C������Ca����UTHISLPREVENTSOURCECHANGES	CBOTABLESLATABLESLICOUNTLIINDEXLCROWSOURCELCALIAS	ROWSOURCEREQUERY
CONTROLSOURCE
TXTREPORTFILETHISFORMREFRESH
CHECKOKBUTTONSETKEYS
checkokbutton,��
calias_accessL��
calias_assign{��cdestination_accessP��cdestination_assign���creport_access���creport_assign	��lpreventsourcechanges_access���lpreventsourcechanges_assign!��#respondtopermissionforsourcechanges���cfieldlist_access���cfieldlist_assign���cdisplayfontname_access		��cdisplayfontname_assignB	��laddsourcenametodropdown_access�	��laddsourcenametodropdown_assign�	��chtmlclass_accessJ
��chtmlclass_assign}
��chtmlstyleid_access�
��chtmlstyleid_assign��
cscope_access���
cscope_assign���"respondtopermissionforscopechanges
��lpreventscopechanges_assign�
��setkeysR��output���
Deactivate��Show*��Init���Activate���1AA2BAA2bAA2BAA6�3�q�A�A4�3��4�3�q�A�A3�3qr2��A2qrb�BD�1A�	4�3��3�3�Q3�3qQ�A3�4qQ�A5�3qQ�A413qrR��AA��1q1Q1�1A5q"��7qQA�5q�Q����QA22�2q2�A2�31r�qA2AAb	q�"��R��BAB611!�qqaA��A��qA��A��1$D hN% x�1"�"5%Gf;'�r?0��J2O:Y�[G�
}I8
�
�L�
�
�NV�Q���S���X���Z��_���a��f���h��{*��6����s����������������!?)!?Height = 274
Width = 385
ShowWindow = 1
DoCreate = .T.
AutoCenter = .T.
BorderStyle = 2
Caption = "Output"
MaxButton = .F.
MinButton = .F.
cdestination = ("")
calias = ("")
creport = ("")
cfieldlist = ("")
cdisplayfontname = ("")
chtmlclass = 
chtmlstyleid = ("")
cscope = ("")
Name = "_outputdialog"
form	_base.vcx
_reports.h6��\1)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
_outputchoices
_reports.hPixelsClass5_output_outputchoices�� ����%W�f�U�1R,:�C� Pick a destination text filename���������������
H�U�Y����EXPORT����
H�z��������	DELIMITED����T���ASC���C���>�����T���DBF��2���T�����������	PRINTFILE���T���PRN�����HTMLFILE��A�T���HTM��2�Y�T���TXT���T��C�C�����%�C��������C�	cTextFile��������C����	��R�U
LCEXTTHISPARENTCDESTINATION
CBOOPTIONSVALUE	CTEXTFILERESETTODEFAULTTXTFILENAMEREFRESHClick,��1r����q�A���A�qAB2R2x)��PROCEDURE Click
WAIT WINDOW NOWAIT LEFTC(OUTPUT_DESTINATION_TEXTFILE_LOC,254)

LOCAL lcExt

WITH THIS.Parent
   DO CASE
   CASE .cDestination == "EXPORT"
      *&* change for VFP 7 -
      *&* extension for Delimited
      *&* files explicitly set
      DO CASE
      CASE .cboOptions.Value == "DELIMITED"
         lcExt = "ASC"
      CASE LEN(.cboOptions.Value) > 3 
         lcExt =  "DBF"
      OTHERWISE
         lcExt = .cboOptions.Value 
      ENDCASE
   CASE .cDestination == "PRINTFILE"
      lcExt = "PRN"
   CASE .cDestination == "HTMLFILE"
      lcExt = "HTM"
   OTHERWISE
      lcExt = "TXT"
   ENDCASE   
   .cTextFile = PUTFILE("",ALLTR(.cTextFile),lcExt)
   IF EMPTY(.cTextFile)
      .ResetToDefault("cTextFile") && otherwise it's a null string and the cursor won't stay
   ENDIF

ENDWITH

THIS.Parent.txtFileName.Refresh()

WAIT CLEAR

ENDPROC
�Top = 25
Left = 315
Height = 23
Width = 23
FontName = "MS Sans Serif"
FontSize = 8
Caption = "..."
TabIndex = 4
TabStop = .F.
ZOrderSet = 3
Name = "cmdPutFile"
_outputchoices
cmdPutFile
commandbutton	_base.vcx_commandbutton�FontName = "MS Sans Serif"
FontSize = 8
BoundColumn = 2
RowSourceType = 5
Height = 24
Left = 129
Style = 2
TabIndex = 2
Top = 0
Width = 212
ZOrderSet = 2
ItemTips = .T.
BoundTo = .T.
Name = "cboOptions"
_outputchoices
cboOptionscombobox�FontName = "MS Sans Serif"
FontSize = 8
BoundColumn = 2
RowSourceType = 5
Value = ("")
Height = 24
Left = 0
Style = 2
TabIndex = 1
Top = 0
Width = 130
ZOrderSet = 1
ItemTips = .T.
BoundTo = .T.
Name = "cboDestinations"
�FontName = "MS Sans Serif"
FontSize = 8
Value = (SPACE(200))
Height = 23
Left = 0
TabIndex = 3
Top = 24
Width = 315
ZOrderSet = 0
Name = "txtFileName"
D�� ++�%�	�
[�	�U	���,T�����THIS.Parent.aDestinations��+T�����THIS.Parent.cDestination��'T�����THIS.Parent.aOptions��&T�����THIS.Parent.cOption��(T�����THIS.Parent.cTextFile��%�C�
����B�-����%�C��
MS Sans Serif���$�
�!C��
MS Sans Serif���$��!C��
MS Sans Serif���$��!C��
MS Sans Serif���$�������T��C�
MS Sans Seriff���������.%�C��FontName��h�
C��	f�	����T��	��Arial������U
	LOCONTROLTHISCBODESTINATIONS	ROWSOURCE
CONTROLSOURCE
CBOOPTIONSTXTFILENAMELCSTANDARDFONTCONTROLSFONTNAME�����	��C����C�����%�C�������U���C�Enabled-�����{�T����a��
��C��	���T��C��
�����%�������T����C����
��
T��������T��C��
������"%�CC����
�=�\���������(�C��
�����"%�CC����
�=�\����T����C����
��T��a��!����%��
����T����C����
����U

LIDESTINATIONLLFOUNDGOODROWTHISCBODESTINATIONSREQUERYCALIASCREPORTSETALLENABLED
SETOPTIONS
ADESTINATIONSCDESTINATIONVALUE�	��C��
H����H�C�#���#�
#PRINTREPORT#�#PRINTLIST#�#PRINTFILE#���"���C�����T�����
WINDEFAULT��:%�C�#���#�#PRINTFILE#�
#PRINTREPORT#�����J�C���
�(������J�C���
�(�����T�����
WINDEFAULT������SCREEN������C�����CT����CC����C���
	��BROWSE��	GRAPHICAL6��J�a�(��������TEXTFILE����T����-��T����C����������HTMLFILE��h�5J�C�����
�(�����	���
����C�����T����C����������EXPORT����.J�C���
�(�����	���
����C�����T����C�������O%�C�#���#�#PRINTFILE#�
#TEXTFILE#�#EXPORT#�
#HTMLFILE#���q�J�a�(��	���
��%�C�����m���C��	�������J�-�(��	���
���%�C����
������T����C�������UTHISCDESTINATION
CBOOPTIONSREQUERYVALUECREPORTENABLEDCALIASAOPTIONSTXTFILENAME
CMDPUTFILE	CTEXTFILESETFOCUSCOPTION	��C����C�����UTHISTXTFILENAMEREFRESHInit,��setdestinations���
setoptions
��outputu	��1q��qa��qAb	q�"�RABB7������A�����C#�!��AAA��BA5��������B��5���U����B��!A��A��A4�1��"1��LX��)+!�PROCEDURE checkokbutton
IF NOT THIS.Visible 
   RETURN
ENDIF   
THIS.cmdOK.Enabled = (NOT EMPTY(THIS.cAlias+THIS.cReport)) 

IF THIS.cmdOK.Enabled
   IF INLIST("#"+THIS.cusOutput.cDestination+"#","#PRINTFILE#","#TEXTFILE#","#EXPORT#", "#HTMLFILE#") AND ;
      EMPTY(THIS.cusOutput.txtFileName.Value)
      THIS.cmdOK.Enabled = .F.
   ENDIF
ENDIF

IF THIS.cmdOK.Enabled   
   IF INLIST("#"+THIS.cusOutput.cDestination+"#","#PRINTREPORT#","#TEXTFILE#","#PRINTFILE#") AND ;
      EMPTY(THIS.cReport)
      THIS.cmdOK.Enabled = .F.
   ENDIF
ENDIF   

IF THIS.cmdOK.Enabled   
   IF INLIST("#"+THIS.cusOutput.cDestination+"#","#EXPORT#","#PRINTLIST#") AND ;
      EMPTY(THIS.cAlias)
      THIS.cmdOK.Enabled = .F.
   ENDIF
ENDIF   

      

  
ENDPROC
PROCEDURE calias_access

RETURN THIS.cusOutput.cAlias

ENDPROC
PROCEDURE calias_assign
LPARAMETERS m.vNewVal
IF VARTYPE(m.vNewVal) = "C"
   STORE m.vNewVal TO THIS.cusOutput.cAlias, THIS.cAlias
   IF NOT THIS.lPreventSourceChanges
      THIS.cboTables.Refresh()
   ENDIF
   THIS.CheckOKButton()   
ENDIF   


ENDPROC
PROCEDURE cdestination_access
RETURN THIS.cusOutput.cDestination

ENDPROC
PROCEDURE cdestination_assign
LPARAMETERS m.vNewVal
STORE m.vNewVal TO THIS.cDestination, THIS.cusOutput.cDestination


ENDPROC
PROCEDURE creport_access
RETURN THIS.cusOutput.cReport

ENDPROC
PROCEDURE creport_assign
LPARAMETERS m.vNewVal
IF VARTYPE(m.vNewVal) = "C"
   STORE m.vNewVal TO THIS.cReport, THIS.cusOutput.cReport
   IF NOT THIS.lPreventSourceChanges
      THIS.txtReportFile.Refresh()
   ENDIF
   THIS.CheckOKButton()
ENDIF   

ENDPROC
PROCEDURE lpreventsourcechanges_access

RETURN THIS.cusOutput.lPreventSourceChanges

ENDPROC
PROCEDURE lpreventsourcechanges_assign
LPARAMETERS tlNewVal

LOCAL llChange

IF VARTYPE(tlNewVal) = "L" AND tlNewVal # THIS.lPreventSourceChanges
   STORE tlNewVal TO THIS.lPreventSourceChanges, THIS.cusOutput.lPreventSourceChanges
   llChange = .T.
ENDIF   

THIS.RespondToPermissionForSourceChanges(llChange)
ENDPROC
PROCEDURE respondtopermissionforsourcechanges
LPARAMETERS tlExplicitChange

LOCAL lnBottomMargin

lnBottomMargin = INT(THIS.lblDestinations.Top * .66)

IF  (THIS.lPreventSourceChanges)

   IF  EMPTY(THIS.cusOutput.cReport+THIS.cusOutput.cAlias) AND tlExplicitChange
   
       MESSAGEBOX(OUTPUT_REPORT_OR_DATASOURCE_REQUIRED_LOC, MB_ICONEXCLAMATION)
  
   ENDIF
    
   THIS.Height = lnBottomMargin + ;
                 THIS.opgScope.Height + ;
                 THIS.opgScope.Top
                     
ELSE
   THIS.Height = THIS.MaxHeight                     
ENDIF   

STORE (NOT THIS.lPreventSourceChanges) TO ;
                    THIS.lblSources.Visible, THIS.lblSources.Enabled, ;
                    THIS.shpFrameSources.Visible, THIS.shpFrameSources.Enabled, ;
                    THIS.lblReports.Visible, THIS.lblReports.Enabled, ;
                    THIS.lblData.Visible, THIS.lblData.Enabled, ;
                    THIS.txtReportFile.Visible, THIS.txtReportFile.Enabled, ;
                    THIS.cmdGetReport.Visible, THIS.cmdGetReport.Enabled, ;
                    THIS.cboTables.Visible, THIS.cboTables.Enabled
                    

ENDPROC
PROCEDURE cfieldlist_access
RETURN THIS.cusOutput.cFieldList

ENDPROC
PROCEDURE cfieldlist_assign
LPARAMETERS m.vNewVal
STORE m.vNewVal TO THIS.cFieldList, THIS.cusOutput.cFieldList

ENDPROC
PROCEDURE cdisplayfontname_access
RETURN THIS.cusOutput.cDisplayFontName

ENDPROC
PROCEDURE cdisplayfontname_assign
LPARAMETERS m.vNewVal
THIS.cusOutput.cDisplayFontName = m.vNewVal

ENDPROC
PROCEDURE laddsourcenametodropdown_access
RETURN THIS.cusOutput.lAddSourceNameToDropDown

ENDPROC
PROCEDURE laddsourcenametodropdown_assign
LPARAMETERS tlNewVal
IF VARTYPE(tlNewVal) = "L"
  STORE tlNewVal TO ;
        THIS.cusOutPut.lAddSourceNameToDropDown, ;
        THIS.lAddSourceNameToDropDown
ENDIF        

ENDPROC
PROCEDURE chtmlclass_access
RETURN THIS.cusOutput.cHTMLClass


ENDPROC
PROCEDURE chtmlclass_assign
LPARAMETERS tvNewVal
IF VARTYPE(tvNewVal) = "C"
   STORE tvNewVal TO THIS.cHTMLClass, THIS.cusOutput.cHTMLClass
ENDIF   



ENDPROC
PROCEDURE chtmlstyleid_access
RETURN THIS.cusOutput.cHTMLStyleID

ENDPROC
PROCEDURE chtmlstyleid_assign
LPARAMETERS tvNewVal
IF VARTYPE(tvNewVal) = "C"
   STORE tvNewVal TO THIS.cHTMLStyleID, THIS.cusOutput.cHTMLStyleID
ENDIF   
   

ENDPROC
PROCEDURE cscope_access
RETURN UPPER(ALLTRIM(THIS.cusOutput.cScope))

ENDPROC
PROCEDURE cscope_assign
LPARAMETERS tvNewVal

LOCAL lcNewVal

IF VARTYPE(tvNewVal) = "C"
   lcNewVal = ALLTRIM(UPPER(tvNewVal))
   STORE lcNewVal TO THIS.cScope, THIS.cusOutput.cScope
ELSE
   lcNewVal = ALLTRIM(UPPER(THIS.cScope))   
ENDIF  
 
DO CASE
CASE lcNewVal == "ALL" OR EMPTY(lcNewVal)
   THIS.opgScope.Value = 1
CASE lcNewVal == "NEXT 1"
   THIS.opgScope.Value = 2
CASE lcNewVal == "REST"
   THIS.opgScope.Value = 3
OTHERWISE
   THIS.opgScope.Value = 0
ENDCASE
      
      

ENDPROC
PROCEDURE respondtopermissionforscopechanges
LOCAL llScopeEnabled

llScopeEnabled = (NOT THIS.lPreventScopeChanges)

STORE llScopeEnabled TO ;
      THIS.opgScope.Enabled, THIS.lblScope.Enabled
THIS.opgScope.Setall("Enabled", llScopeEnabled)


      


ENDPROC
PROCEDURE lpreventscopechanges_assign
LPARAMETERS tlNewVal
IF VARTYPE(tlNewVal) = "L"
   STORE tlNewVal TO THIS.lPreventScopeChanges
ENDIF   
THIS.RespondToPermissionForScopeChanges()



ENDPROC
PROCEDURE setkeys
LPARAMETERS tlOn
IF tlOn
  PUSH KEY
  ON KEY LABEL Alt-Y IIF(TYPE("_SCREEN.ActiveForm.cusOutput.cboDestinations") = "O" AND ;
                         _SCREEN.ActiveForm.cusOutput.cboDestinations.Enabled, ;
                         _SCREEN.ActiveForm.cusOutput.cboDestinations.SetFocus(),;
                         .T.)
  ON KEY LABEL Alt-P IIF(TYPE("_SCREEN.ActiveForm.cusOutput.cboOptions") = "O" AND ;
                         _SCREEN.ActiveForm.cusOutput.cboOptions.Enabled, ;
                         _SCREEN.ActiveForm.cusOutput.cboOptions.SetFocus(),;
                         .T.)
  ON KEY LABEL Alt-F IIF(TYPE("_SCREEN.ActiveForm.cusOutput.txtFileName") = "O" AND ;
                         _SCREEN.ActiveForm.cusOutput.txtFileName.Enabled, ;
                         _SCREEN.ActiveForm.cusOutput.txtFileName.SetFocus(),;
                         .T.)
ELSE
  POP KEY
ENDIF  
ENDPROC
PROCEDURE output
THIS.cusOutput.Output()
ENDPROC
PROCEDURE Deactivate
THIS.SetKeys()
ENDPROC
PROCEDURE Show
LPARAMETERS nStyle

IF NOT EMPTY(THIS.cScope)
   THIS.lPreventScopeChanges = .T.
ENDIF

THIS.cScope = THIS.cScope && fix opgScope value

THIS.RespondToPermissionForSourceChanges()

ENDPROC
PROCEDURE Init
LPARAMETERS tcReport, tcAlias, tlPreventSourceChanges, tlPreventScopeChanges

LOCAL loControl

IF NOT DODEFAULT()
   RETURN .F.
ENDIF   

THIS.MaxHeight = THIS.Height

THIS.cReport = tcReport
THIS.cAlias  = tcAlias

IF PCOUNT() >= 3 AND VARTYPE(tlPreventSourceChanges) = "L"
  THIS.lPreventSourceChanges = tlPreventSourceChanges
ENDIF

IF PCOUNT() = 4 AND VARTYPE(tlPreventScopeChanges) = "L"
  THIS.lPreventScopeChanges = tlPreventScopeChanges
ENDIF  

IF SYSTEM_LARGEFONTS
   LOCAL lcStandardFont
   lcStandardFont = UPPER(DIALOG_SMALLFONT_NAME)

   FOR EACH loControl IN THIS.Controls
       DO CASE
       CASE PEMSTATUS(loControl,"FontName",5) AND ;
          UPPER(loControl.FontName) == lcStandardFont

          loControl.FontName = DIALOG_LARGEFONT_NAME
       CASE TYPE("loControl.Buttons(1)") = "O"
          loControl.SetAll("FontName",DIALOG_LARGEFONT_NAME)
       OTHERWISE
          * Note: no recursion here.
       ENDCASE
   ENDFOR   

ENDIF




ENDPROC
PROCEDURE Activate
IF NOT THIS.lPreventSourceChanges
   WITH THIS.cboTables
      LOCAL ARRAY laTables[1,2]
      LOCAL liCount, liIndex, lcRowSource, lcAlias
      liCount = AUSED(laTables)
      lcRowSource = ""
      FOR liIndex = 1 TO liCount
        lcAlias = PROPER(laTables[liIndex,1])
        lcRowSource = lcRowSource + lcAlias + ","
      ENDFOR
      IF RIGHTC(lcRowSource,1) = ","
         lcRowSource = LEFTC(lcRowSource, LEN(lcRowSource) - 1)
      ENDIF
      .RowSource = lcRowSource
     .Requery()
     .ControlSource = "THISFORM.cusOutput.cAlias"
   ENDWITH  
   THIS.txtReportFile.ControlSource = "THISFORM.cusOutput.cReport"
   THISFORM.Refresh()
ENDIF   
THIS.CheckOKButton()
THIS.SetKeys(.T.)
ENDPROC
PROCEDURE Init
LOCAL loControl

THIS.cboDestinations.RowSource = "THIS.Parent.aDestinations"
THIS.cboDestinations.ControlSource = "THIS.Parent.cDestination"
THIS.cboOptions.RowSource = "THIS.Parent.aOptions"
THIS.cboOptions.ControlSource = "THIS.Parent.cOption"
THIS.txtFileName.ControlSource = "THIS.Parent.cTextFile"

IF NOT DODEFAULT()
   RETURN .F.
ENDIF   

IF SYSTEM_LARGEFONTS
   LOCAL lcStandardFont
   lcStandardFont = UPPER(DIALOG_SMALLFONT_NAME)

   FOR EACH loControl IN THIS.Controls
       IF PEMSTATUS(loControl,"FontName",5) AND ;
          UPPER(loControl.FontName) == lcStandardFont

          loControl.FontName = DIALOG_LARGEFONT_NAME
       ENDIF
       * Note: no recursion here.
   ENDFOR   

ENDIF





ENDPROC
PROCEDURE setdestinations
LOCAL liDestination, llFoundGoodRow

DODEFAULT()
   
THIS.cboDestinations.Requery()

IF EMPTY(THIS.cAlias+THIS.cReport)
   THIS.Setall("Enabled",.F.)
ELSE
   THIS.cboDestinations.Enabled = .T.
   THIS.SetOptions()
ENDIF   

liDestination = ASCAN(THIS.aDestinations,THIS.cDestination)
IF liDestination = 0 && can happen if we've just changed 
   THIS.cboDestinations.Value = THIS.aDestinations[1,2]
   liDestination = 1
ELSE
   liDestination = ASUBSCRIPT(THIS.aDestinations,liDestination,1)
   * THIS.cboDestinations.Value = THIS.aDestinations[liDestination,2]      
   * not needed, since this control is bound to THIS.cDestination
ENDIF   

* is this row disabled? look for a good one:
IF LEFT(THIS.aDestinations[liDestination,1],1) = "\"
   FOR liDestination = 1 TO ALEN(THIS.aDestinations,1)
       IF LEFT(THIS.aDestinations[liDestination,1],1) # "\"
          THIS.cboDestinations.Value = THIS.aDestinations[liDestination,2]
          llFoundGoodRow = .T.
          EXIT
       ENDIF
   ENDFOR
   IF NOT llFoundGoodRow
      THIS.cboDestinations.Value = THIS.aDestinations[1,2]
      * best we can do
   ENDIF
ENDIF

   

ENDPROC
PROCEDURE setoptions
DODEFAULT()

DO CASE

CASE INLIST("#"+THIS.cDestination+"#","#PRINTREPORT#", "#PRINTLIST#", "#PRINTFILE#")

   THIS.cboOptions.Requery()
   THIS.cboOptions.Value = "WINDEFAULT"

   IF INLIST("#"+THIS.cDestination+"#","#PRINTFILE#","#PRINTREPORT#")    
      STORE (NOT EMPTY(THIS.cReport)) TO ;
            THIS.cboOptions.Enabled
   ELSE
            
      STORE (NOT EMPTY(THIS.cAlias)) TO ;
            THIS.cboOptions.Enabled
            
   ENDIF   
   
  
   THIS.cboOptions.Value = "WINDEFAULT"          
   
CASE THIS.cDestination == "SCREEN"

   THIS.cboOptions.Requery()
   
   THIS.cboOptions.Value = IIF(EMPTY(THIS.cReport) AND ;
                               (NOT EMPTY(THIS.cAlias)), ;
                               "BROWSE", ;
                               "GRAPHICAL")
   
   STORE .T. TO THIS.cboOptions.Enabled

CASE THIS.cDestination == "TEXTFILE"
 
   THIS.cboOptions.Enabled = .F.
   THIS.cboOptions.Value = THIS.aOptions[1,2]
   
CASE THIS.cDestination == "HTMLFILE"

   STORE (NOT EMPTY(THIS.cAlias+THIS.cReport)) TO ;
          THIS.cboOptions.Enabled, ;
          THIS.txtFileName.Enabled, ;
          THIS.cmdPutFile.Enabled
   THIS.cboOptions.Requery()    
   THIS.cboOptions.Value = THIS.aOptions[1,2]
   
CASE THIS.cDestination == "EXPORT"

   STORE (NOT EMPTY(THIS.cAlias)) TO ;
          THIS.cboOptions.Enabled, ;
          THIS.txtFileName.Enabled, ;
          THIS.cmdPutFile.Enabled
          
   THIS.cboOptions.Requery()
   THIS.cboOptions.Value = THIS.aOptions[1,2]
   
ENDCASE
   
IF INLIST("#"+THIS.cDestination+"#","#PRINTFILE#","#TEXTFILE#","#EXPORT#","#HTMLFILE#")

   STORE .T. TO ;
         THIS.txtFileName.Enabled, ;
         THIS.cmdPutFile.Enabled
    IF EMPTY(THIS.cTextFile)
      THIS.txtFileName.SetFocus()
   ENDIF

ELSE

  STORE .F. TO ;
         THIS.txtFileName.Enabled, ;
         THIS.cmdPutFile.Enabled
ENDIF   

IF ASCAN(THIS.aOptions,THIS.cOption) = 0
   THIS.cboOptions.Value = THIS.aOptions[1,2]
ENDIF   


ENDPROC
PROCEDURE output
DODEFAULT()
THIS.txtFileName.Refresh()
ENDPROC
@��� �@�@�~%]8?m9:�U����
T��C��
G*(J����H%�C�#���#�#PRINTFILE#�
#PRINTREPORT#�#PRINTLIST#�����AT����������VFP default printer� (���)���ULCNAMETHISCDESTINATIONAOPTIONSCVFPPRINTERNAMEB�C�PRINTER�v��UY���%�C����C��6�T���C�������R�T���CC��f���UTCNEWVALTHISCOPTIONAOPTIONS�	B��C����1C�����C�C��0�C���.FRX0	��-��C����C�����C�	C���	�� ��C����C�����C��@%�C����+C�#���#�#ASCII#�#GRAPHICAL#�	����B�-���D%�C����'C�#���#�#BROWSE#�#LIST#�	�CC�	��%�B�-���/������	�
���
���T��C���T�
�C�����T��C�
�f�SCREEN��5%�C�#���#�#BROWSE#�#GRAPHICAL#�����T���WC��]��Ws,���J���������������@��������'��Report Preview���
���T��C���T�������T����
�����T����
������?����T��C�����T��C�	_ShowText����!%�C�
loWindow.Nameb�C��,�T������T���a��T�������
��C�����;�B�-����T����
���=%�C�#���#�#BROWSE#�#LIST#��
C���
	����%����BROWSE����
T�����
T�����%�C�
 ����k�
������
T�����#�����(�C����a���G�-T����,FieldCC�Z��=C������ T���Field1=C��������T���Field1=�������(�C��>����T�
�C����\��%��
�,��S�%�C�b�U��#�
T�����T������$T����,FieldCC�Z��=���O�T����,��T����,����}�T����
��T����
���������T��C��C�
 �,����T��� FIELDS ������
T������/%�C�#���#�#LIST#�#ASCII#���.�T�	��RC��]�.TXT���%����BROWSE��~�2T����! NOEDIT NODELETE NOAPPEND NOMENU ���1%����BROWSE����	GRAPHICAL����<T����+ WINDOW (lcName) IN WINDOW (loTopForm.Name)���%�C���
���T���� �����
H�0�}	�����ASCII����T�>��P��T�?��?��OREPORT FORM (THIS.cReport) ASCII  TO FILE (lcFileName) NOCONSOLE &lcClauses
T����	����C��� ��
 ��	������	GRAPHICAL�����,�����0%�C�REPORTBv�Z�C�NOWAIT���	��L�T���� NOWAIT ���1REPORT FORM (THIS.cReport) PREVIEW &lcClauses
B%�C� NOWAIT ����C�THISFORMb�O	��!�"�	����<�!������LIST��F	�6LIST OFF TO FILE (lcFileName) &lcClauses NOCONSOLE
T����	����C��� ��
 ��	������BROWSE��u	�BROWSE &lcClauses
2�}	��%�C��
���	�t,�����<,����B�U#THISCREPORTCALIAS
CFIELDLISTCOPTIONLCWINDOWLCNAMELOWINDOW	LCCLAUSES
LCFILENAME	LOTOPFORMLLINFOXFRAMELIPOSLCCHAR	LIFIELDNOLCEXPR
CUSWINDOWSGETCURRENTTOPFORMREFNAMECDISPLAYFONTNAMEFONTNAMEHEIGHTWIDTHLCFILECLASSLIBRARYLSUPPRESSCAPTIONCHANGECFIXEDFONTNAMESETFONTSICONLAFIELDSCSCOPECSOURCEFILESHOWTHISFORM
WINDOWTYPEf���%�C����C��6�T���C�������R�T���CC��f���
��C����UTCNEWVALTHISCDESTINATION
ADESTINATIONSSETDESTINATIONS"
H�
��H�C�#���#�
#PRINTREPORT#�#PRINTLIST#�#PRINTFILE#��������������NT����������Windows default printer� (CC�PRINT�v��)��AT����������VFP default printer� (���)��:T����������Select and use new VFP default��&T����������
WINDEFAULT��&T����������
VFPDEFAULT��)T����������
SETVFPDEFAULT������SCREEN����������J���(�����.%���
�C��	�
�C��
�
	�������������%T����������	GRAPHICAL��
T�����!T����������ASCII��
T�����"T����������BROWSE��
T����� T����������LIST��
T�����������������%�C��	����%T����������	GRAPHICAL��
T�����!T����������ASCII��
T��������"T����������BROWSE��
T����� T����������LIST��
T�������%�C��
����%���
��{�9T����������\�Graphical report preview��4T����������\�Text report preview������4T����������Graphical report preview��/T����������Text report preview���%�C��	�����%���
����5T����������\�Browse view of table��:T����������\�Simple list view of table������0T����������Browse view of table��5T����������Simple list view of table�������TEXTFILE�������HTMLFILE��!����������%�C��	��	C��
�	���:T����������\�Generate only, no display��6T����������\�View generated source��;T����������\�View output in web browser�����5T����������Generate only, no display��1T����������View generated source��6T����������View output in web browser���$T����������FILEONLY��&T����������
VIEWSOURCE��#T����������WEBVIEW������EXPORT�������
�����%T����������	Excel 5.0��T����������XL5��%T����������	Excel 2.0��T����������XLS��#T����������Fox 2.X��!T����������FOX2X��!T����������Xbase��#T����������FOXPLUS��(T����������Fixed Length��T����������SDF��%T����������	Delimited��%T����������	DELIMITED��%T����������	Lotus 2.x��T����������WK1��3T����������Data Interchange Format��T����������DIF��)T����	������
Symphony 1.10��T����	������WRK��,T����
������Separated Values��T����
������CSV���UTHISCDESTINATIONAOPTIONSCVFPPRINTERNAMELIGRAPHICALLIASCIILIBROWSELILISTLPREVENTSOURCECHANGESCALIASCREPORT�	+�����������	�%J���(��������,%�C�G��C�G0�CC�G�.FXP��0
����T�G�����%��
���� T��� (CC�
��Լ�)��T��� (�
�
�)��,T�	�� (CC�
��Լ�,�
�
�)��� �J���(���	��
H�1���.��
�
�C�
�
�
�C�
��
	����%�C�G������
������������
��������$T�
���������HTMLFILE��
T������'T�
���������PRINTREPORT��
T�����%T�
���������	PRINTLIST��
T�����"T�
���������SCREEN��
T�����$T�
���������TEXTFILE��
T�����%T�
���������	PRINTFILE��
T�����"T�
���������EXPORT��
T������C�
�
�
���%�C�G���5��
������������
��������$T�
���������HTMLFILE��
T������%T�
���������	PRINTLIST��
T�����"T�
���������SCREEN��
T�����"T�
���������EXPORT��
T������C�
��
��i�%�C�G���P��
������������
��������$T�
���������HTMLFILE��
T������'T�
���������PRINTREPORT��
T�����"T�
���������SCREEN��
T�����$T�
���������TEXTFILE��
T�����%T�
���������	PRINTFILE��
T�����2���
T�����%�C�G�
����
T�������%�C�
����Q�%�����M�-T�
���������\�Print report��*T�
���������\�	Text file��1T�
���������\�Print-image file������,T�
���������Print report���)T�
���������	Text file���0T�
���������Print-image file����%�C�
�
���l�%�����h�6T�
���������\�Print list from table��-T�
���������\�Export table������5T�
���������Print list from table���,T�
���������Export table����
H����	��C�
�
��	C�
��	��i�(T�
���������\�Preview��%�C�G�
��e�*T�
���������\�	HTML file����C�
�
�����'T�
���������Preview���%�C�G�
����)T�
���������	HTML file�����C�
����S	�'T�
���������Preview���%�C�G�
��O	�)T�
���������	HTML file����2��	�'T�
���������Preview�	��%�C�G�
���	�)T�
���������	HTML file�	����U
LIPRINTREPORTLIPRINTLISTLISCREEN
LITEXTFILE
LIHTMLFILELIPRINTFILELIEXPORTLCSOURCEREPORT
LCSOURCEALIASLCSOURCEBOTHTHISLADDSOURCENAMETODROPDOWNCREPORTCALIASLPREVENTSOURCECHANGES
ADESTINATIONS��������(%�C����C�C���C��
��G�
T������`�T��CC������T�������T������%��
����
��C�����UTCNEWVALLCNEWVALLLSAMETHISCALIASSETDESTINATIONS^�������%�C����C�C����=�
T�������T��C����%�C�.������T����.FRX���%�C�0
���T��C����%�C�0
���%�C�C����������C� ��"R,:�C�Report not found!�����
T��������T�������T������%��
��W�
��C�����UTCNEWVALLCNEWVALLLSAME	STARTMODETHISCREPORTSETDESTINATIONS^���%�C���
��3�T��CW��
F������
H�D�9�G�C�#���#�
#PRINTREPORT#�#PRINTFILE#�
#TEXTFILE#�����
��C��������HTMLFILE����
��C��������	PRINTLIST����
��C��������SCREEN���
��C��������EXPORT��9�
��C�����%�C��
��W�
F�����U	LISELECTTHISCALIASCDESTINATIONPRINTREPORTGENHTML	PRINTLISTOUTPUTTOSCREEN	COPYTABLE|
H�
�u�����
WINDEFAULT��2�G*(�����
VFPDEFAULT��`�G*(J�����2�u�
��C�����UTHISCOPTIONCVFPPRINTERNAME
SETVFPPRINTER����
��C����%�C���
��[�T��C��C�
 �,���T��� FIELDS ����p�
T������%�C���
����T���� �����*LIST OFF &lcClauses TO PRINT NOCONSOLE
U	LCCLAUSESTHISSETOUTPUTPRINTER
CFIELDLISTCSCOPE���C���
�	C��0	�������)%�C���TEXTFILE�HTMLFILE�
��a�
��C�����%�C���
����T���������
T������%����PRINTREPORT����T��C�����
H���;��C�����T���RC��]���C��R�\��3�T����RC��]��2�;��%�C�.������
H�c�������	PRINTFILE����T����.PRN������HTMLFILE����T����.HTM��2���T����.TXT����T��C�����
H��������TEXTFILE��N�'T���
 TO FILE '��' ASCII ������	PRINTFILE����T���	 TO FILE �� ������HTMLFILE����&T���
 TO FILE '��' HTML ��2���T���
 TO PRINT ���T������%��.LBXC��f��Z�ALABEL FORM (THIS.cReport) &lcClauses &lcDestination NOCONSOLE
���BREPORT FORM (THIS.cReport) &lcClauses &lcDestination NOCONSOLE
�U	THISCREPORT	LCCLAUSES
LCDESTINATIONLCFILECDESTINATIONSETOUTPUTPRINTERCSCOPE	CTEXTFILE����%�-��J�T��C��C�
 �,���T��� FIELDS ����_�
T������%�C���
����T���� �����T���� TYPE ����T��C�����
H���,��C������T���RC��]���C��R�\��$�T����RC��]��2�,��%�C�.������
H�T�������	DELIMITED����T����.ASC���C��>�����T����.DBF��2���T����.������T��C����T������ COPY TO (lcFile) &lcClauses 
U	LCCLAUSESLCFILETHIS
CFIELDLISTCSCOPECOPTION	CTEXTFILE+	��
��T����
���
��C����UVNEWVALTHISLPREVENTSOURCECHANGESSETDESTINATIONS����%�C����C�C����)�B����������T��C����%�CC���(�
����������%�C�fC�f����T������!�����UTCNEWVALLATEMPLCVALLCFONTTHISCDISPLAYFONTNAME���C�����
�� ��CC���
�C��0�a6�� ��CC���
�C����a6����������	�*%�C�G��C�G0�
C�G�.FXP0
����T�G����B��&%�C��
���C�C��
�
	����T����
���&%�C�����C�C���
	��$�T�������&%�C�����C�C���
	��^�T�������v�T���ALL���
H��������
�
VIEWSOURCE����
T��������
�WEBVIEW����
T�����2���
T������T��C�����
H��n��C����6�T���RC��]���C��R�\��f�T����RC��]��2�n��%�C�.������T����.HTM��T��C�����T������%�C�������
H���Y��C������T�	������C�
 ����5�T�	���C�
 ����2�Y�T�	����,�����%��G���	���������(��G�����������UTHISCREPORTCALIASLCFILELVCLASSLISHOWLVDUMMYLCSCOPELVSTYLELCSOURCE
CHTMLCLASSCHTMLSTYLEIDCSCOPECOPTION	CTEXTFILE
CFIELDLIST3���%�C����C��,�T�������UTVNEWVALTHISCSCOPEv���%�C����C��o�����T��C�\����%�������%�CC��=��
��w�T��C���\�����
T�������[�T��C�:���7%����#�C�>�C����\�\	����T��C�����\[����
T������T��C�\����%�CC��=��
��W�T��C���\����T�������UTVNEWVALLIPOSLCVALTHIS	CTEXTFILEN%�C�
���B�-���
��C����%�C�����G�T���C���UTHISSETDESTINATIONSCALIAS
setvfpprinter,��cvfpprintername_access��coption_assign4��outputtoscreen���cdestination_assign���
setoptions�
��setdestinations.��
calias_assign�#��creport_assign�$��outputc&��setoutputprinter'(��	printlist�(��printreport�)��	copytable�-��lpreventsourcechanges_assignV0��cdisplayfontname_assign�0��genhtml�1��
cscope_assign�5��ctextfile_assignI6��Init�7��1q���A3�Q2qQ��AA4#�qADqA��B�RR|�1���r!��1��qAB2����b��2�A�B��!A�A�!!A�AAA��B���B��C�"A�B2�A���������A$qA�b��R�D�A�B3qQ��AA�3��b��ba��2��aQ��!���a!Q���!��AA"�AA�A�A"Q�A�QA��b��a��QaABa1�bT�Q�11��QQQ�1�����B4�R��A���QA���a�aA�Aq�Q�!�A�Q�!�B�a�aA�AQ�!�!�B�a�aA�Aq�!�A�Q�����AB"��A���A"a�A�Q�A�����A!q��A!q��A�q��AA4q����AR��A5q�����qQA�q�!A�AAAR��A3q2��A�q���������A�A3��q���A3q�2����B2�A�8����A2��A�"��Qq��Bq��Q�Q�QAA�B��r���b�rB��!A4������B2�A�"��Qq��Br��QaQ��AB�3�!�3q�AAR�R�QAAAB3q���AAbAbAb�A�������A#��Qq��BrQ�A"�!a���AQ��AP1qQA3qQ�1aa��A�1s���A1aaAAB3�qA�!�A4Er~�?6d(@�R
!�.o,,��,�<�Z=V>*g{>A>�"A*C]�QCUDw�uD�E���E�L���LnR���R�R+&S�T1�T�^FG�^(_�LO_b�eb�b�)�@b�PROCEDURE setvfpprinter
LOCAL lcName
lcName = GETPRINTER()
SET PRINTER TO NAME (lcName)
IF INLIST("#"+THIS.cDestination+"#","#PRINTFILE#","#PRINTREPORT#","#PRINTLIST#")
   THIS.aOptions[2,1] = OUTPUT_PRINT_OPTIONS_VFPDEFAULT_LOC + ;
                        " ("+THIS.cVFPPrinterName+")"
ENDIF                        

ENDPROC
PROCEDURE cvfpprintername_access
*!*	   this is the VF 5 code replaced by the new RETURN line!
*!*	IF EMPTY(THIS.cVFPPrinterName)
*!*	   LOCAL lcAlias, liSelect, liLine, lcLine, liMemoWidth, lcContents, lcFieldsList
*!*	   
*!*	   IF SET("FIELDS") = "ON"
*!*	      lcFieldsList = SET("FIELDS",1)
*!*	      SET FIELDS OFF
*!*	   ENDIF
*!*	   
*!*	   liMemoWidth = SET("MEMOWIDTH")
*!*	   liSelect = SELECT()
*!*	   lcAlias = "C"+SYS(2015)
*!*	   SELECT 0
*!*	   SET MEMOWIDTH TO 1024
*!*	   CREATE CURSOR (lcAlias) (onefield l)
*!*	   CREATE REPORT (lcAlias) FROM (lcAlias)
*!*	   USE IN (lcAlias)
*!*	   USE (lcAlias+".FRX") ALIAS (lcAlias)
*!*	   lcContents = Expr
*!*	   USE IN (lcAlias)
*!*	   ERASE (lcAlias+".FRX") NORECYCLE
*!*	   ERASE (lcAlias+".FRT") NORECYCLE
*!*	   liLine = ATCLINE("DEVICE=",lcContents)
*!*	   IF EMPTY(liLine)
*!*	     liLine = ATCLINE("DEVICE =",lcContents)
*!*	   ENDIF   
*!*	   lcLine = MLINE(lcContents,liLine)
*!*	   SELECT (liSelect)
*!*	   SET MEMOWIDTH TO liMemoWidth
*!*	   THIS.cVFPPrinterName = ALLTR(SUBSTRC(lcLine,AT("=",lcLine)+1))
*!*	   
*!*	   IF NOT EMPTY(lcFieldsList)
*!*	      SET FIELDS ON
*!*	      SET FIELDS TO
*!*	      SET FIELDS TO &lcFieldsList
*!*	   ENDIF

*!*	ENDIF

*!*	RETURN THIS.cVFPPrinterName
RETURN SET("PRINTER",3)
ENDPROC
PROCEDURE coption_assign
LPARAMETERS tcNewVal
IF VARTYPE(tcNewVal) # "C"
   THIS.cOption = THIS.aOptions[1,2]
ELSE   
   THIS.cOption = UPPER(ALLTRIM(tcNewVal))
ENDIF   
   

ENDPROC
PROCEDURE outputtoscreen
ASSERT EMPTY(THIS.cReport) OR ;
       (VARTYPE(THIS.cReport) = "C" AND ;
        (FILE(THIS.cReport) OR FILE(THIS.cReport+".FRX")))

ASSERT EMPTY(THIS.cAlias) OR ;
       (VARTYPE(THIS.cAlias) = "C" AND ;
        USED(THIS.cAlias))        
        
ASSERT EMPTY(THIS.cFieldList) OR ;
       VARTYPE(THIS.cFieldList) = "C"

IF EMPTY(THIS.cReport) AND ;
   INLIST("#"+THIS.cOption+"#","#ASCII#","#GRAPHICAL#")
   RETURN .F.
ENDIF

IF EMPTY(THIS.cAlias) AND ;
   INLIST("#"+THIS.cOption+"#","#BROWSE#","#LIST#") AND ;
   EMPTY(ALIAS())
   RETURN .F.
ENDIF   
   
LOCAL lcWindow, lcName, loWindow, lcClauses, ;
      lcFileName, loTopForm, llInFoxFrame, ;
      liPos, lcChar, liFieldNo, lcExpr
      

* the saving and restoring of calling windows
* is important to deal with modal calling windows:
lcWindow = WONTOP()

loTopForm = THIS.cusWindows.GetCurrentTopFormRef()

llInFoxFrame = (UPPER(loTopForm.Name) == "SCREEN")

IF INLIST("#"+THIS.cOption+"#","#BROWSE#","#GRAPHICAL#")

   lcName = "W"+SYS(2015)

*!*	   DEFINE WINDOW (lcName) ;
*!*	      FROM  0,0 TO SROWS(), SCOLS() ;
*!*	      SYSTEM FLOAT GROW ZOOM CLOSE FONT (THIS.cDisplayFontName) ;
*!*	      TITLE OUTPUT_SCREEN_PREVIEW_LOC ;
*!*	      NAME (lcName)

   DEFINE WINDOW (lcName) ;
      AT 0,0 SIZE 20,20 ;
      SYSTEM FLOAT GROW ZOOM CLOSE FONT (THIS.cDisplayFontName) ;
      TITLE OUTPUT_SCREEN_PREVIEW_LOC ;
      NAME (lcName) IN WINDOW (loTopForm.Name)
   
   loWindow = EVAL(lcName)   
   loWindow.FontName = THIS.cDisplayFontName
   loWindow.Height = (loTopForm.Height * 2)/3
   loWindow.Width =  (loTopForm.Width * 2)/3
   
ELSE

   LOCAL lcFile
   lcFile = FULLPATH(THIS.ClassLibrary)
   loWindow = NEWOBJECT("_ShowText", lcFile)

   IF TYPE("loWindow.Name") = "C"
      lcName = loWindow.Name
      loWindow.lSuppressCaptionChange = .T.
      loWindow.cFixedFontName = THIS.cDisplayFontName
      loWindow.SetFonts()
      
   ELSE
      RETURN .F.
   ENDIF
   
ENDIF   

loWindow.Icon = loTopForm.Icon

IF INLIST("#"+THIS.cOption+"#","#BROWSE#","#LIST#") AND ;
   NOT EMPTY(THIS.cFieldList)
   

   IF THIS.cOption == "BROWSE"
      * take care of the fact that calculated fields
      * will need fieldaliases in a browse:
         liFieldNo = 1
         lcExpr = ""
      
      IF CHR(13) $ THIS.cFieldList

         LOCAL ARRAY laFields[1]
         
         lcClauses = ""

         FOR liFieldNo = 2 TO ALINES(laFields,THIS.cFieldList, .T.)
            lcClauses = lcClauses + ;
                        ",Field"+ALLTR(STR(liFieldNo))+"=" + ;
                        laFields[liFieldNo]
         ENDFOR

         lcClauses = "Field1="+laFields[1]+lcClauses         

      ELSE

         lcClauses = "Field1="
      
         FOR liPos = 1 TO LEN(THIS.cFieldList)
            lcChar = SUBSTR(THIS.cFieldList,liPos,1)
            IF lcChar = ","
               IF TYPE(lcExpr) # "U"
                  lcExpr = ""
                  liFieldNo = liFieldNo + 1
                  lcClauses = lcClauses + ",Field"+ALLTR(STR(liFieldNo))+"="
               ELSE
                  lcExpr = lcExpr + ","
                  lcClauses = lcClauses + ","               
               ENDIF
            ELSE
               lcExpr = lcExpr + lcChar         
               lcClauses = lcClauses + lcChar            
            ENDIF
         ENDFOR
      ENDIF
         
   ELSE

       lcClauses = STRTRAN(THIS.cFieldList,CHR(13),",")

   ENDIF

   lcClauses = " FIELDS "+lcClauses

ELSE

   lcClauses = ""

ENDIF      

IF INLIST("#"+THIS.cOption+"#","#LIST#","#ASCII#")

  
   lcFileName = "R"+SYS(2015)+".TXT"

   
ENDIF

IF THIS.cOption == "BROWSE"

   lcClauses = lcClauses + " NOEDIT NODELETE NOAPPEND NOMENU "
ENDIF

IF THIS.cOption == "BROWSE" OR ;
   THIS.cOption  == "GRAPHICAL"
      
  lcClauses = lcClauses+ " WINDOW (lcName) IN WINDOW (loTopForm.Name)"
   
ENDIF

IF NOT EMPTY(THIS.cScope)
   lcClauses = lcClauses + " " + THIS.cScope
ENDIF   


DO CASE

CASE THIS.cOption == "ASCII"

   _ASCIICOLS = 80
   _ASCIIROWS = 63

   REPORT FORM (THIS.cReport) ASCII ;
      TO FILE (lcFileName) NOCONSOLE &lcClauses
      
   loWindow.cSourceFile = lcFileName
   loWindow.Show(1)
   ERASE (lcFileName) NORECYCLE


CASE THIS.cOption == "GRAPHICAL"

   ZOOM WINDOW (lcName) MAX
   
   IF SET("REPORTB") = 90 AND ATC("NOWAIT",lcClauses) = 0
      lcClauses = lcClauses + " NOWAIT "
   ENDIF    
  
   REPORT FORM (THIS.cReport) PREVIEW &lcClauses
   
   IF ATC(" NOWAIT ",lcClauses) > 0 AND ;
      TYPE("THISFORM") = "O" AND ;
      THISFORM.WindowType = 1 && modal
      RELEASE THISFORM
   ENDIF

CASE THIS.cOption == "LIST" 

   LIST OFF TO FILE (lcFileName) &lcClauses NOCONSOLE
   loWindow.cSourceFile = lcFileName
   loWindow.Show(1)
   ERASE (lcFileName) NORECYCLE
    

CASE THIS.cOption == "BROWSE"

   BROWSE &lcClauses

OTHERWISE

   * ? 

ENDCASE


*!*	IF THIS.cOption # "GRAPHICAL"
*!*	   * report graphical preview takes special
*!*	   * sequence of window handling, in the CASE above
   IF NOT EMPTY(lcWindow)
      ACTIVATE WINDOW (lcWindow) SAME
   ENDIF
*!*	ENDIF   

RELEASE WINDOW (lcName)

RETURN

ENDPROC
PROCEDURE cdestination_assign
LPARAMETERS tcNewVal
IF VARTYPE(tcNewVal) # "C" 
   THIS.cDestination = THIS.aDestinations[1,2]
ELSE
   THIS.cDestination = UPPER(ALLTRIM(tcNewVal))
ENDIF

THIS.SetDestinations()

ENDPROC
PROCEDURE setoptions
DO CASE

CASE INLIST("#"+THIS.cDestination+"#","#PRINTREPORT#", "#PRINTLIST#", "#PRINTFILE#")

   DIME THIS.aOptions[3,2]

   THIS.aOptions[1,1] = OUTPUT_PRINT_OPTIONS_WINDEFAULT_LOC + ;
                        " ("+PROPER(SET("PRINT",2))+")"
   THIS.aOptions[2,1] = OUTPUT_PRINT_OPTIONS_VFPDEFAULT_LOC + ;
                        " ("+THIS.cVFPPrinterName+")"
   THIS.aOptions[3,1] = OUTPUT_PRINT_OPTIONS_SETVFPDEFAULT_LOC 
   
   THIS.aOptions[1,2] = "WINDEFAULT"                        
   THIS.aOptions[2,2] = "VFPDEFAULT"
   THIS.aOptions[3,2] = "SETVFPDEFAULT"

CASE THIS.cDestination == "SCREEN"

   LOCAL liGraphical, liAscii, liBrowse, liList
   STORE 0 TO liGraphical, liAscii, liBrowse, liList 

   IF (NOT THIS.lPreventSourceChanges) OR ;
      (NOT EMPTY(THIS.cAlias)) AND (NOT EMPTY(THIS.cReport))
       DIME THIS.aOptions[4,2]
       THIS.aOptions[1,2] = "GRAPHICAL"    
       liGraphical = 1
       THIS.aOptions[2,2] = "ASCII"  
       liAscii = 2
       THIS.aOptions[3,2] = "BROWSE"  
       liBrowse = 3
       THIS.aOptions[4,2] = "LIST"  
       liList = 4
   ELSE
       DIME THIS.aOptions[2,2]
       IF EMPTY(THIS.cAlias)
          THIS.aOptions[1,2] = "GRAPHICAL"    
          liGraphical = 1
          THIS.aOptions[2,2] = "ASCII"  
          liAscii = 2
       ELSE 
          THIS.aOptions[1,2] = "BROWSE"  
          liBrowse = 1
          THIS.aOptions[2,2] = "LIST"  
          liList = 2
       ENDIF
   ENDIF   

   IF EMPTY(THIS.cReport)
      IF NOT THIS.lPreventSourceChanges
         THIS.aOptions[liGraphical,1] = "\"+OUTPUT_SCREEN_GRAPHICAL_LOC
         THIS.aOptions[liAscii,1] = "\"+OUTPUT_SCREEN_ASCII_LOC      
      ENDIF
   ELSE      
      THIS.aOptions[liGraphical,1] = OUTPUT_SCREEN_GRAPHICAL_LOC
      THIS.aOptions[liAscii,1] = OUTPUT_SCREEN_ASCII_LOC      
   ENDIF

   IF EMPTY(THIS.cAlias)
      IF NOT THIS.lPreventSourceChanges
         THIS.aOptions[liBrowse,1] = "\"+ OUTPUT_SCREEN_BROWSE_LOC
         THIS.aOptions[liList,1] = "\"+OUTPUT_SCREEN_LIST_LOC      
      ENDIF
   ELSE
      THIS.aOptions[liBrowse,1] = OUTPUT_SCREEN_BROWSE_LOC
      THIS.aOptions[liList,1] = OUTPUT_SCREEN_LIST_LOC      
   ENDIF
   

CASE THIS.cDestination == "TEXTFILE"

   * we don't use any items from the options array

CASE THIS.cDestination == "HTMLFILE"
 
    DIME THIS.aOptions[3,2]
    
    IF EMPTY(THIS.cAlias) AND EMPTY(THIS.cReport)
       THIS.aOptions[1,1] = "\"+OUTPUT_HTML_FILEONLY_LOC
       THIS.aOptions[2,1] = "\"+OUTPUT_HTML_VIEWSOURCE_LOC
       THIS.aOptions[3,1] = "\"+OUTPUT_HTML_WEBVIEW_LOC
    ELSE
       THIS.aOptions[1,1] = OUTPUT_HTML_FILEONLY_LOC
       THIS.aOptions[2,1] = OUTPUT_HTML_VIEWSOURCE_LOC
       THIS.aOptions[3,1] = OUTPUT_HTML_WEBVIEW_LOC
    ENDIF

    THIS.aOptions[1,2] = "FILEONLY"    
    THIS.aOptions[2,2] = "VIEWSOURCE"  
    THIS.aOptions[3,2] = "WEBVIEW"
 
CASE THIS.cDestination == "EXPORT"

   DIME THIS.aOptions[10,2]

   * THIS.aOptions[1,1] = OUTPUT_EXPORT_EXCEL97 
   * THIS.aOptions[1,2] = "XL8"
   THIS.aOptions[1,1] = OUTPUT_EXPORT_EXCEL5
   THIS.aOptions[1,2] = "XL5"
   THIS.aOptions[2,1] = OUTPUT_EXPORT_EXCEL2
   THIS.aOptions[2,2] = "XLS"
   THIS.aOptions[3,1] = OUTPUT_EXPORT_FOX2X 
   THIS.aOptions[3,2] = "FOX2X"
   THIS.aOptions[4,1] = OUTPUT_EXPORT_FOXPLUS
   THIS.aOptions[4,2] = "FOXPLUS"
   THIS.aOptions[5,1] = OUTPUT_EXPORT_FIXEDLEN  
   THIS.aOptions[5,2] = "SDF"
   THIS.aOptions[6,1] = OUTPUT_EXPORT_DELIMITED
   THIS.aOptions[6,2] = "DELIMITED"
   THIS.aOptions[7,1] = OUTPUT_EXPORT_LOTUS2
   THIS.aOptions[7,2] = "WK1"
   THIS.aOptions[8,1] = OUTPUT_EXPORT_DIF
   THIS.aOptions[8,2] = "DIF"
   THIS.aOptions[9,1] = OUTPUT_EXPORT_SYMPHONY 
   THIS.aOptions[9,2] = "WRK"
   THIS.aOptions[10,1] = OUTPUT_EXPORT_CSV
   THIS.aOptions[10,2] = "CSV"
 
ENDCASE
   

ENDPROC
PROCEDURE setdestinations
LOCAL liPrintReport, liPrintList, liScreen, liTextFile, ;
      liHTMLFile, liPrintFile, liExport, ;
      lcSourceReport, lcSourceAlias, lcSourceBoth
STORE 0 TO liPrintReport, liPrintList, liScreen, liTextFile, ;
      liHTMLFile, liPrintFile, liExport
      
IF (EMPTY(_GENHTML) OR ;
   (NOT (FILE(_GENHTML) OR FILE(FORCEEXT(_GENHTML,".FXP")))) )
   _GENHTML = ""
ENDIF

IF THIS.lAddSourceNameToDropDown
   lcSourceReport = " ("+PROPER(JUSTFNAME(THIS.cReport))+")"
   lcSourceAlias =  " ("+THIS.cAlias+")"
   lcSourceBoth =   " ("+PROPER(JUSTFNAME(THIS.cReport))+","+THIS.cAlias+")"
ELSE
   STORE "" TO lcSourceReport, lcSourceAlias, lcSourceBoth
ENDIF

DO CASE
CASE (NOT THIS.lPreventSourceChanges) OR ;
   (NOT EMPTY(THIS.cAlias)) AND (NOT EMPTY(THIS.cReport))
   IF EMPTY(_GENHTML)
      DIME THIS.aDestinations[6,2]
   ELSE
      DIME THIS.aDestinations[7,2]
      THIS.aDestinations[7,2] = "HTMLFILE"
      liHTMLFile = 7
   ENDIF
   THIS.aDestinations[1,2] = "PRINTREPORT"
   liPrintReport = 1   
   THIS.aDestinations[2,2] = "PRINTLIST"
   liPrintList = 2
   THIS.aDestinations[3,2] = "SCREEN"
   liScreen = 3
   THIS.aDestinations[4,2] = "TEXTFILE"
   liTextFile = 4
   THIS.aDestinations[5,2] = "PRINTFILE"
   liPrintFile = 5
   THIS.aDestinations[6,2] = "EXPORT"
   liExport = 6
   
CASE (NOT EMPTY(THIS.cAlias))   
   IF EMPTY(_GENHTML)
      DIME THIS.aDestinations[3,2]
   ELSE
      DIME THIS.aDestinations[4,2]
      THIS.aDestinations[4,2] = "HTMLFILE"
      liHTMLFile = 4
   ENDIF      
   THIS.aDestinations[1,2] = "PRINTLIST"
   liPrintList = 1
   THIS.aDestinations[2,2] = "SCREEN"
   liScreen = 2
   THIS.aDestinations[3,2] = "EXPORT"
   liExport = 3

CASE (NOT EMPTY(THIS.cReport))
   IF EMPTY(_GENHTML)
      DIME THIS.aDestinations[4,2]   
   ELSE
      DIME THIS.aDestinations[5,2]
      THIS.aDestinations[5,2] = "HTMLFILE"
      liHTMLFile = 5
   ENDIF
   THIS.aDestinations[1,2] = "PRINTREPORT"
   liPrintReport = 1
   THIS.aDestinations[2,2] = "SCREEN"
   liScreen = 2
   THIS.aDestinations[3,2] = "TEXTFILE"
   liTextFile = 3
   THIS.aDestinations[4,2] = "PRINTFILE"
   liPrintFile = 4
   
OTHERWISE
  * preventing source changes and both are empty --
  * don't bother, but have to show something in the dialog!
  liScreen = 1
  IF NOT EMPTY(_GENHTML)  
     liHTMLFile = 2
  ENDIF

ENDCASE

IF EMPTY(THIS.cReport)
   IF liPrintReport > 0
      THIS.aDestinations[liPrintReport,1] = "\"+OUTPUT_PRINT_REPORT_LOC
      THIS.aDestinations[liTextFile,1] = "\"+OUTPUT_TEXTFILE_LOC      
      THIS.aDestinations[liPrintFile,1] = "\"+OUTPUT_PRINTFILE_LOC
   ENDIF
ELSE   
   THIS.aDestinations[liPrintReport,1] = OUTPUT_PRINT_REPORT_LOC + lcSourceReport
   THIS.aDestinations[liTextFile,1] = OUTPUT_TEXTFILE_LOC + lcSourceReport
   THIS.aDestinations[liPrintFile,1] = OUTPUT_PRINTFILE_LOC + lcSourceReport
ENDIF

IF EMPTY(THIS.cAlias)
   IF liPrintList > 0
      THIS.aDestinations[liPrintList,1] = "\"+OUTPUT_PRINT_LIST_LOC
      THIS.aDestinations[liExport,1] = "\"+OUTPUT_EXPORT_LOC     
   ENDIF
ELSE
   THIS.aDestinations[liPrintList,1] = OUTPUT_PRINT_LIST_LOC + lcSourceAlias
   THIS.aDestinations[liExport,1] = OUTPUT_EXPORT_LOC + lcSourceAlias
ENDIF   
  
DO CASE
CASE EMPTY(THIS.cAlias) AND EMPTY(THIS.cReport)
   THIS.aDestinations[liScreen,1] = "\"+OUTPUT_SCREEN_LOC
   IF NOT EMPTY(_GENHTML)   
      THIS.aDestinations[liHTMLFile,1] = "\"+OUTPUT_HTMLFILE_LOC                     
   ENDIF
CASE EMPTY(THIS.cAlias) 
   THIS.aDestinations[liScreen,1] = OUTPUT_SCREEN_LOC +  lcSourceReport
   IF NOT EMPTY(_GENHTML)   
      THIS.aDestinations[liHTMLFile,1] = OUTPUT_HTMLFILE_LOC + lcSourceReport   
   ENDIF
CASE EMPTY(THIS.cReport)   
   THIS.aDestinations[liScreen,1] = OUTPUT_SCREEN_LOC +  lcSourceAlias
   IF NOT EMPTY(_GENHTML)   
      THIS.aDestinations[liHTMLFile,1] = OUTPUT_HTMLFILE_LOC + lcSourceAlias
   ENDIF
OTHERWISE
   THIS.aDestinations[liScreen,1] = OUTPUT_SCREEN_LOC +  lcSourceBoth
   IF NOT EMPTY(_GENHTML)      
      THIS.aDestinations[liHTMLFile,1] = OUTPUT_HTMLFILE_LOC + lcSourceBoth
   ENDIF
ENDCASE
   

ENDPROC
PROCEDURE calias_assign
LPARAMETERS tcNewVal
LOCAL lcNewVal, llSame

IF VARTYPE(tcNewVal) # "C" OR EMPTY(tcNewVal) OR NOT USED(tcNewVal)
   lcNewVal = ""
ELSE
   lcNewVal = ALLTR(PROPER(tcNewVal))
ENDIF

llSame = (THIS.cAlias == lcNewVal)
THIS.cAlias = lcNewVal   

IF NOT llSame
   THIS.SetDestinations()
ENDIF   
  


ENDPROC
PROCEDURE creport_assign
LPARAMETERS tcNewVal
LOCAL lcNewVal, llSame

IF VARTYPE(tcNewVal) # "C" OR EMPTY(tcNewVal)
   lcNewVal = ""
ELSE
   lcNewVal = ALLTR(tcNewVal)
   IF AT(".",lcNewVal) = 0
      lcNewVal = lcNewVal + ".FRX"
   ENDIF
   IF NOT FILE(lcNewVal)
      lcNewVal = FULLPATH(lcNewVal)
      IF NOT FILE(lcNewVal)
         IF INLIST(_VFP.Startmode,0,4)
            ?? CHR(7)         
            WAIT WINDOW NOWAIT LEFTC(OUTPUT_REPORT_NOT_FOUND_LOC,254)
         ENDIF
         lcNewVal = ""
      ENDIF
   ENDIF
ENDIF

llSame = (THIS.cReport == lcNewVal)
THIS.cReport = lcNewVal   

IF NOT llSame
   THIS.SetDestinations()
ENDIF   

ENDPROC
PROCEDURE output
LOCAL liSelect

IF NOT EMPTY(THIS.cAlias)
   liSelect = SELECT()
   SELECT (THIS.cAlias)
ENDIF   

DO CASE
CASE INLIST("#"+THIS.cDestination+"#","#PRINTREPORT#","#PRINTFILE#","#TEXTFILE#")
   THIS.PrintReport()
CASE THIS.cDestination = "HTMLFILE"
   THIS.GenHTML()
CASE THIS.cDestination = "PRINTLIST"
   THIS.PrintList()
CASE THIS.cDestination = "SCREEN"
   THIS.OutputToScreen()
CASE THIS.cDestination = "EXPORT"
   THIS.CopyTable()
ENDCASE

IF NOT EMPTY(liSelect)
   SELECT (liSelect)
ENDIF   

ENDPROC
PROCEDURE setoutputprinter

DO CASE
CASE THIS.cOption = "WINDEFAULT"
    SET PRINTER TO DEFAULT
    * could also be: SET PRINTER TO NAME (SET(PRINTER,2))
CASE THIS.cOption = "VFPDEFAULT"
    SET PRINTER TO NAME (THIS.cVFPPrinterName)
OTHERWISE
    THIS.SetVFPPrinter()
ENDCASE

ENDPROC
PROCEDURE printlist
LOCAL lcClauses

THIS.SetOutputPrinter()

IF NOT EMPTY(THIS.cFieldList)

   lcClauses = STRTRAN(THIS.cFieldList,CHR(13),",")
   lcClauses = " FIELDS "+lcClauses

ELSE

   lcClauses = ""

ENDIF      

IF NOT EMPTY(THIS.cScope)
   lcClauses = lcClauses + " " + THIS.cScope
ENDIF

LIST OFF &lcClauses TO PRINT NOCONSOLE






ENDPROC
PROCEDURE printreport
ASSERT (NOT EMPTY(THIS.cReport)) AND FILE(THIS.cReport)

* note: the HTML portion of this method is not currently
* in use, we're going through _GENHTML on HTML output
* for either alias or report.  However, REPORT FORM ... TO HTML
* might be added to the language at some point

LOCAL lcClauses, lcDestination,lcFile

IF NOT INLIST(THIS.cDestination,"TEXTFILE","HTMLFILE") 
   THIS.SetOutputPrinter()
ENDIF   

IF NOT EMPTY(THIS.cScope)
   lcClauses = THIS.cScope
ELSE
   lcClauses = ""   
ENDIF

IF THIS.cDestination # "PRINTREPORT"

   lcFile = ALLTRIM(THIS.cTextFile)
   DO CASE 
   CASE EMPTY(lcFile)
      lcFile = "R"+SYS(2015)
   CASE RIGHT(lcFile,1) = "\"
      lcFile = lcFile+ "R"+SYS(2015)
   OTHERWISE
      * we're okay
   ENDCASE
   IF AT(".",lcFile) = 0
      DO CASE
      CASE THIS.cDestination = "PRINTFILE"
         lcFile = lcFile + ".PRN"
      CASE THIS.cDestination = "HTMLFILE"
         lcFile = lcFile + ".HTM"         
      OTHERWISE
         lcFile = lcFile + ".TXT"
      ENDCASE
   ENDIF
   lcFile = FULLPATH(lcFile)
     
ENDIF

DO CASE

CASE THIS.cDestination = "TEXTFILE"

   lcDestination = " TO FILE '"+ lcFile +"' ASCII "

CASE THIS.cDestination = "PRINTFILE"

   lcDestination = " TO FILE "+ lcFile +" "

CASE THIS.cDestination = "HTMLFILE"

   lcDestination = " TO FILE '"+ lcFile +"' HTML "

OTHERWISE

   lcDestination = " TO PRINT "

ENDCASE   

THIS.cTextFile = lcFile

IF ".LBX" $ UPPER(THIS.cReport)
   * not that I think it makes any difference!!
   LABEL FORM (THIS.cReport) &lcClauses &lcDestination NOCONSOLE
ELSE
   REPORT FORM (THIS.cReport) &lcClauses &lcDestination NOCONSOLE
ENDIF   


ENDPROC
PROCEDURE copytable
LOCAL lcClauses, lcFile

IF .F. && NOT EMPTY(THIS.cFieldList)
   * the fields list cannot be trusted for COPY TO,
   * because expressions in the fields list are
   * not likely to work.
   * We could make it the developer's responsibility to
   * set the FIELDS list properly before 
   * calling this option/"EXPORT" as destination,
   * but it is just as easy for the developer
   * to use an alias with the fields already formatted
   * and chosen, either with a SELECT or a SET FIELDS <expr list>
   * so it's better not to leave this in place.

   lcClauses = STRTRAN(THIS.cFieldList,CHR(13),",")
   lcClauses = " FIELDS "+lcClauses

ELSE

   lcClauses = ""

ENDIF      

IF NOT EMPTY(THIS.cScope)
   lcClauses = lcClauses + " " + THIS.cScope
ENDIF

lcClauses = lcClauses + " TYPE "+THIS.cOption

lcFile = ALLTRIM(THIS.cTextFile)

DO CASE
CASE EMPTY(lcFile)
   lcFile = "R"+SYS(2015)
CASE RIGHT(lcFile,1) = "\"
   lcFile = lcFile + "R"+SYS(2015)      
OTHERWISE
   * we're okay
ENDCASE   

IF AT(".",lcFile) = 0

   *&* change in VFP 7 -- extension for delimited files
   *&* explicitly set

   DO CASE
   CASE THIS.cOption = "DELIMITED"
      lcFile = lcFile + ".ASC"
   CASE LEN(THIS.cOption) > 3
      lcFile = lcFile + ".DBF"
   OTHERWISE
      lcFile = lcFile + "."+THIS.cOption
   ENDCASE

ENDIF
   
lcFile = FULLPATH(lcFile)
THIS.cTextFile = lcFile

COPY TO (lcFile) &lcClauses 

ENDPROC
PROCEDURE lpreventsourcechanges_assign
LPARAMETERS m.vNewVal
THIS.lpreventsourcechanges = m.vNewVal
THIS.SetDestinations()

ENDPROC
PROCEDURE cdisplayfontname_assign
LPARAMETERS tcNewVal
IF VARTYPE(tcNewVal) # "C" OR EMPTY(tcNewVal)
   RETURN
ENDIF   

LOCAL laTemp[1], lcVal, lcFont
lcVal = ALLTR(tcNewVal)

IF NOT EMPTY(AFONT(laTemp))

   FOR EACH  lcFont IN laTemp
      IF UPPER(lcVal) == UPPER(lcFont)
         THIS.cDisplayFontName = lcVal
         EXIT
      ENDIF
   ENDFOR

ENDIF      

ENDPROC
PROCEDURE genhtml
ASSERT (NOT EMPTY(THIS.cReport+THIS.cAlias)) 
ASSERT IIF(NOT EMPTY(THIS.cReport), FILE(THIS.cReport), .T.)
ASSERT IIF(NOT EMPTY(THIS.cAlias), USED(THIS.cAlias), .T.)

LOCAL lcFile, lvClass,liShow, lvDummy, lcScope, lvStyle, lcSource

IF (EMPTY(_GENHTML) OR ;
   (NOT (FILE(_GENHTML) OR FILE(_GENHTML+".FXP"))) )
   _GENHTML = ""
   RETURN
ENDIF
   
IF VARTYPE(THIS.cHTMLClass) = "C" AND (NOT EMPTY(THIS.cHTMLClass))
   lvClass = THIS.cHTMLClass
ENDIF   

IF VARTYPE(THIS.cHTMLStyleID) = "C" AND (NOT EMPTY(THIS.cHTMLStyleID))
   lvStyle = THIS.cHTMLStyleID
ENDIF   

IF VARTYPE(THIS.cScope) = "C" AND (NOT EMPTY(THIS.cScope))
   lcScope = THIS.cScope
ELSE
   lcScope = "ALL"
ENDIF

DO CASE
CASE THIS.cOption = "VIEWSOURCE"  
   liShow = 1
CASE THIS.cOption = "WEBVIEW"
   liShow = 2
OTHERWISE
   liShow = 0
ENDCASE


lcFile = ALLTRIM(THIS.cTextFile)

DO CASE
CASE EMPTY(lcFile)
   lcFile = "R"+SYS(2015)
CASE RIGHT(lcFile,1) = "\"
   lcFile = lcFile + "R"+SYS(2015)
OTHERWISE
   * we're okay
ENDCASE   

IF AT(".",lcFile) = 0
   lcFile = lcFile + ".HTM"
   lcFile = FULLPATH(lcFile)
ENDIF

THIS.cTextFile = lcFile

IF EMPTY(THIS.cReport)
   DO CASE
   CASE EMPTY(THIS.cFieldList)
      lcSource = THIS.cAlias
   CASE CHR(13) $ THIS.cFieldList
      lcSource = THIS.cAlias+CHR(13)+THIS.cFieldList
   OTHERWISE
      lcSource = THIS.cAlias+","+THIS.cFieldList
   ENDCASE
   DO (_GENHTML) WITH lcFile, lcSource, liShow, lvDummy, lvStyle, lcScope, lvClass
ELSE
   DO (_GENHTML) WITH lcFile, THIS.cReport, liShow, lvDummy, lvStyle, lcScope, lvClass
ENDIF

* GENHTML Parameter list:
* tcOutFile:		Output file name (defaults to .HTM extension).
* tvSource:			Source file name, alias, or object.
*                   tvSource can contain alias delimited by either CR's or commas
*                   from a delimited list of fields to be generated (field list
*                   using same delimiter as separator from alias)
* tnShow: 			0/Empty = Generate output file only.
*					1 = Create output file and view generated source file.
*					2 = Create output file and show generated file in internet browser.
*					3 = Create _oHTML object.
*					4 = Create _oHTML object only, no prompt for output file, no prompt for
*						source file.
* tvIELink:			Create link to InternetExplorer.Application using automation.
* tcHTMLStyleID     Style from style table
* tcHTMLScope       scope clause
* tcHTMLClass:		delimited string holding Class, Classlib, IN EXE/APP for instantiated for HTML object.



ENDPROC
PROCEDURE cscope_assign
LPARAMETERS tvNewVal
IF VARTYPE(tvNewVal) = "C"
   THIS.cScope = tvNewVal
ENDIF   

ENDPROC
PROCEDURE ctextfile_assign
LPARAMETERS tvNewVal
IF VARTYPE(tvNewVal) = "C"
   LOCAL liPos, lcVal
   liPos = RAT("\",tvNewVal)
   IF liPos > 0
      IF NOT DIRECTORY(LEFT(tvNewVal,liPos))
         lcVal = SUBSTR(tvNewVal,liPos+1)
      ELSE
         lcVal = tvNewVal
      ENDIF
   ELSE
      liPos = AT(":",tvNewVal)
      IF liPos > 0 AND ;
        (liPos = LEN(tvNewVal) OR ;
         SUBSTR(tvNewVal,liPos+1,1) # "\" )
        lcVal = STUFF(tvNewVal,liPos+1,0,"\")
      ELSE
        lcVal = tvNewVal
      ENDIF
      liPos = RAT("\",lcVal)
      IF NOT DIRECTORY(LEFT(lcVal,liPos))
         lcVal = SUBSTR(lcVal, liPos+1)
      ENDIF
   ENDIF
  
   THIS.cTextfile = lcVal
  
ENDIF   

ENDPROC
PROCEDURE Init
IF NOT DODEFAULT()
   RETURN .F.
ENDIF   

THIS.SetDestinations()
IF EMPTY(THIS.cAlias)
   THIS.cAlias = ALIAS()
ENDIF   



ENDPROC
XWidth = 33
Height = 27
BackStyle = 0
BorderWidth = 0
cvfpprintername = ("")
coption = ("WINDEFAULT")
creport = ("")
calias = ("")
cfieldlist = ("")
cdestination = ("PRINTREPORT")
ctextfile = ("")
cdisplayfontname = ("Courier New")
laddsourcenametodropdown = .T.
chtmlclass = 
chtmlstyleid = ("")
cscope = ("")
Name = "_output"