COPY TO (ALLTRIM(I)+T+ ".XLS") TYPE XLS
这个模板中的SHEET1的名称必须是“销售出库明细导入”
这样可以运行,只是不太明白,速度慢了一点
LOCAL fsheet,fname,oExcel,fname1
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
xlsFile = cDefPath + "维修发料统计.xls"
WITH CREATEOBJECT("Excel.Application")
.DisplayAlerts = 0
.WorkBooks.Open(xlsFile)
nRow = .CountA(.Range("A:A")) - 2
nCol = .CountA(.Range("4:4"))
arr = .Cells(5,1).Resize(nRow,nCol).Value
.WorkBooks.Close
.Quit
ENDWITH
CREATE CURSOR tt (序号 I,经销商简称 C(10),工单号 c(12),零部件代码 C(18),零部件名称 C(30),仓库代码 C(10),库位代码 C(12),零部件数量 N(6,2),销售单价 N(6,2),零部件销售金额 N(6,2),零部件成本金额 N(6,2),车牌号 C(10),车系 C(10),领料人 C(10))
INSERT INTO tt FROM ARRAY arr
SELECT * FROM tt INTO DBF 细.dbf
REPLACE 仓库代码 WITH Iif("TW-" $ 零部件代码, '配件仓库B', '配件仓库A') ALL
REPLACE 工单号 WITH righ(工单号,10) all
SELECT 序号 ,工单号,零部件代码,零部件名称,销售单价,SUM(零部件数量) as 数量,领料人,仓库代码,车牌号 FROM 细 GROUP BY 工单号,零部件代码,销售单价,领料人 ,车牌号,零部件名称 ,仓库代码,序号 INTO DBF 明细.dbf
** 序号 经销商简称 工单号 零部件代码 零部件名称 仓库代码 库位代码 零部件数量 零部件销售单价 零部件销售金额 零部件成本金额 车牌号 车系 领料人 维修类型
SET DEFAULT TO d:\xls
SELECT DISTINCT 工单号 FROM 明细 INTO CURSOR RKD
oExcel=Createobject("Excel.application") && 打开EXCEL
oExcel.Visible=.F. && 不显示EXCEL界面
SCAN
SELECT 序号 as 行,车牌号 as T,零部件代码 AS 项目,零部件名称 as 说明,序号 AS 套餐,序号 AS W,数量,;
销售单价 as 含税单价,序号 as 折扣,序号 as 总计,序号 as V,序号 as P,工单号 AS I,仓库代码 as 仓库名称 ;
FROM 明细 WHERE 工单号 == RKD.工单号 INTO CURSOR TEMP
fsheet = ALLTRIM(I)+ALLTRIM(T) && sheet 的名称
fname = fsheet + ".XLS"
COPY TO (fname) TYPE XLS
*!* 修改Sheet1名称
oExcel.Workbooks.Open("D:\xls\"+ fname)
oExcel.Worksheets(fsheet).Activate && 激活sheet表格,因为导进去的名称是文件名称
oExcel.ActiveSheet.Name="销售出库明细导入"
oExcel.ActiveWorkbook.Save
oExcel.Workbooks.Close
USE IN TEMP
ENDSCAN
oExcel.Quit && 退出EXCEL
[此贴子已经被作者于2021-11-14 19:08编辑过]