Mini Kabibi Habibi
*----------------------------------------------------------
MailMerge class notes
To use:
*- open table or view first, and prepare array of field names
oMM = CREATE("MailMerge") && create object
*- set values
oMM.cAppTitle = "My Application" && application name, used in Alerts
oMM.nWordProc = nWordProc && word processor (1 = Word 6+; 2 = CommaDelim; or user-defined (see below); default = 1)
oMM.nNewDoc = nNewDoc && is it a new doc (1 = new, 2 = existing; default = 1)
oMM.nTemplate = nTemplate && type of main document (Word only, 1 = form letter; 2 = label; 3 = envelope; 4 = catalog; default = 1)
oMM.cDocName = cDocName && doc file if not new
oMM.cAlias = cTableAlias && alias of source table or view
oMM.cDBCTable = cTableName && table name if table is part of a DBC
oMM.cDBCName = cDatabaseName && DBC name if source table is part of a DBC
ACOPY(aMyFields, oMM.aAutoFields) && fill in array of field names to be used
oMM.Merge && do the merge
In the following example, the sample data table customer is used to create a new mailmerge form letter document in MS-Word (the defaults), using the customer.company and customer.city fields:
ox = newobject("mailmerge",HOME()+"FFC\mailmrge.vcx")
use c:\vfp\samples\data\customer
set database to testdata
ox.cAlias = "customer"
ox.cdbctable = "customer"
ox.cdbcname = DBC()
DIMENSION ox.aAutoFields[2]
ox.aAutoFields[1] = "company"
ox.aAutoFields[2] = "city"
ox.makeoutput
To add a custom mailmerge function:
oMM = CREATE("MailMerge")
DIMENSION oMM.aWPMrg[ALEN(oMM.aWPMrg,1) + 1]
oMM.aWPMrg[ALEN(oMM.aWPMrg,1)] = "MyMailMergeFunction"
oMM.nWordProc = ALEN(oMM.aWPMrg,1)
or just replace an existing one:
oMM.aWPMrg[2] = "MyMailMergeFunction"
oMM.nWordProc = 2
*----------------------------------------------------------
PivotTable class notes
To use:
USE (HOME() + "samples\data\orders")
SET DATABASE TO testdata
DIMENSION aflds[4,1]
aflds[1,1] = "to_country"
aflds[2,1] = "ship_via"
aflds[3,1] = "order_amt"
aflds[4,1] = "emp_id"
DIMENSION aFList[1,1]
=AFIELDS(aFList)
ox = NewObject("pivottable",HOME()+"FFC\pivtable.vcx")
oPiv.cAlias = ALIAS()
oPiv.cDBCTable = DBF()
oPiv.cDBCName = DBC()
oPiv.cPivFldRow = "to_country"
oPiv.cPivFldCol = "ship_via"
oPiv.cPivFldData = "order_amt"
oPiv.cPivFldPage = "emp_id"
oPiv.lHasColumnTotals = .T.
oPiv.lHasRowTotals = .T.
=ACOPY(aflds, oPiv.aAutoFields)
=ACOPY(aFList, oPiv.aFldList)
oPiv.MakeOutput
*----------------------------------------------------------
Graph automation class notes
To use:
CLOSE DATA ALL
USE D:\TEMP2\OFFICES.DBF && a Fox 2.6 sample table
SET PATH TO "d:\wiz55work\wzcommon" && needs to find registry.prg
SET CLASS TO d:\wiz55work\automate\autgraph.vcx
oG = CREATEOBJECT("AutoGraph")
DIMENSION oG.aDataFields[1]
oG.aDataFields[1] = "ytdsales"
oG.cCategoryField = "ono"
oG.nChartType = 5 && Chart Type
oG.nChartSubType = 1 && Chart SubType
oG.nAction = 1
oG.lSeriesByRow = .F. && Series by Row (.T.), by Column (.F.)
oG.cGraphDBF = "d:\wiz55work\wzgraph\wizgraph.dbf" && DBF containing cGraphField
oG.cGraphFldRow = "graph_row" && General field containing setup Graph (series by row)
oG.cGraphFldCol = "graph_col" && General field containing setup Graph (series by col)
oG.cGraphPrevClass = "graphpreview" && Class containing preview form
oG.cDefNewField = "olegraph" &&default field name in new table
oG.MakeOutput
USE D:\TEMP2\VFPGRAPH.DBF
GO BOTTOM
MODIFY GENERAL vfpgraph.olegraph NOWAIT