define class FastXtab as custom cOutFile = "xtabquery" && The name of the output file lCursorOnly = .f. && Specifies whether the input datasource is cursor lCloseTable = .t. && Specifies whether to close the source datasource after the cross tab is generated nPageField = 0 && Specifies the field position in the datasource of the cross tab pages nRowField = 1 && Specifies the field position in the datasource of the cross tab rows nColField = 2 && Specifies the field position in the datasource of the cross tab columns nDataField = 3 && Specifies the field position in the datasource of the cross tab data lTotalRows = .f. && Specifies whether to total rows in the cross tab output nTotalOption = 0 && Totaling options (0-sum, 1-count, 2-% of total). lDisplayNulls = .f. && Specifies whether to display null values in the cross tab output lBrowseAfter = .f. && Specifies whether to open a Browse window on the cross tab output SumTotalFld = C_SUMFIELD_LOC && Name of the Total Field if Option is set to 0 - sum CountTotalFld = C_COUNTFIELD_LOC && Name of the Total Field if Option is set to 1 - count PercTotalFld = C_PERCENTFIELD_LOC && Name of the Total Field if Option is set to 2 - % of total cCountFldType = "N" nCountFldLen = 4 nCountFldDec = 0 cPercentFldType = "N" nPercentFldLen = 7 nPercentFldDec = 3Note the property lCursorOnly. I guess, it should be set to true, if you want to use cursor as source table.