procedure TFrmWeekAnalysisQry.BtnExportToExcelClick(Sender: TObject);
var wordApp,WordDoc,WrdSelection:variant;strAdd:string;i,j,iRangeEnd,iStart,iEnd : integer;wdPar,wdRange:OleVariant;oShape, oChart,myCol: OleVariant;SumJHTonCount, SumWCTonCount, PJTS, PJZCSJ, YSSR, DuoJing: Currency;SumJHCarCount, SumWCCarCount: Integer;SumDJ,SumFDJ: Currency;//多经 非多经汇总beginwordApp := CreateOleObject('Word.Application');wordApp.Visible := true;wordDoc:=WordApp.Documents.Add();wordDoc.select;wrdSelection := WordApp.selection;strAdd:='%s年第%d周战略装车点生产经营分析';strAdd:= Format(strAdd, [FormatDateTime('YYYY', Date), WeekofYear(Date)]);wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphCenter;wrdSelection.Font.bold := true;wrdSelection.Font.Size := 15;//wrdSelection.Font.UnderLine := 1; 下划线wrdSelection.TypeText(strAdd);wordApp.selection.TypeParagraph;//换行wrdSelection.Font.bold := false;wrdSelection.Font.Size := 10;wrdSelection.Font.bold := false;wrdSelection.TypeText(FormatDateTime('MM月DD日', DateBegin.Date)+'-'+FormatDateTime('MM月DD日', DateEnd.Date));wordApp.selection.TypeParagraph;//换行wrdSelection.TypeText('西安铁路局货运处');wordApp.selection.TypeParagraph;//换行wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphLeft;wrdSelection.Font.bold := true;wrdSelection.TypeText('1、战略装车点主要运营指标完成情况:');//从新设置字体wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphLeft;wrdSelection.Font.bold := false;wrdSelection.Font.Size := 10;wrdSelection.Font.UnderLine := 0;wdPar:=WordApp.ActiveDocument.Paragraphs.Add;wdRange:=wdPar.Range;wdRange := wordApp.ActiveDocument.Content;wdRange.Collapse(wdCollapseEnd);wordDoc.Tables.Add(wdRange,cdsMain.RecordCount+ 2,11);//合并单元格不成功{iStart:=WordDoc.Tables.Item(1).Cell(1,1).Range.Start;//myCol:= WordDoc.Tables.Item(1).Cell(1,2);//myCol:= WordDoc.Tables.Item(1).Columns.Item(2);//iEnd:=myCol.Cells.Item(myCol.Cells.Count).Range.End;//iEnd:= WordDoc.Tables.Item(1).Cell(2,1).Range.Start;iEnd:= iStart+ 1;wdRange:=WordDoc.Range;wdRange.Start:=iStart;wdRange.End :=iEnd;wdRange.Cells.Merge; }//插入数据wordDoc.Tables.Item(1).Cell(1,1).Range.Text:= '序号';wordDoc.Tables.Item(1).Cell(1,2).Range.Text:= '车站';wordDoc.Tables.Item(1).Cell(1,3).Range.Text:= '品类';wordDoc.Tables.Item(1).Cell(1,4).Range.Text:= '周计划车数';wordDoc.Tables.Item(1).Cell(1,5).Range.Text:= '周计划万吨';wordDoc.Tables.Item(1).Cell(1,6).Range.Text:= '周完成车数';wordDoc.Tables.Item(1).Cell(1,7).Range.Text:= '周完成万吨';wordDoc.Tables.Item(1).Cell(1,8).Range.Text:= '平均停时(小时)';wordDoc.Tables.Item(1).Cell(1,9).Range.Text:= '平均装车时间(小时)';wordDoc.Tables.Item(1).Cell(1,10).Range.Text:= '运输收入(万元)';wordDoc.Tables.Item(1).Cell(1,11).Range.Text:= '多经毛利测算(万元)';cdsMain.First;SumJHTonCount:= 0;SumWCTonCount:= 0;PJTS:= 0;PJZCSJ:= 0;YSSR:= 0;SumJHCarCount:= 0;SumWCCarCount:= 0;DuoJing:= 0;for i:= 2 to cdsMain.RecordCount+ 1 dobeginwordDoc.Tables.Item(1).Cell(i,1).Range.Text:= cdsMain.FieldByName('ROWNUM').AsString;wordDoc.Tables.Item(1).Cell(i,2).Range.Text:= cdsMain.FieldByName('UPNAME').AsString;wordDoc.Tables.Item(1).Cell(i,3).Range.Text:= cdsMain.FieldByName('PLNAME').AsString;wordDoc.Tables.Item(1).Cell(i,4).Range.Text:= cdsMain.FieldByName('PLANCARCOUNT').AsString;wordDoc.Tables.Item(1).Cell(i,5).Range.Text:= cdsMain.FieldByName('PLANTONCOUNT').AsString;wordDoc.Tables.Item(1).Cell(i,6).Range.Text:= cdsMain.FieldByName('CARCOUNT').AsString;wordDoc.Tables.Item(1).Cell(i,7).Range.Text:= cdsMain.FieldByName('TONCOUNT').AsString;wordDoc.Tables.Item(1).Cell(i,8).Range.Text:= cdsMain.FieldByName('AVGSTOP').AsString;wordDoc.Tables.Item(1).Cell(i,9).Range.Text:= cdsMain.FieldByName('AVGLOAD').AsString;wordDoc.Tables.Item(1).Cell(i,10).Range.Text:= cdsMain.FieldByName('TRANSINCOME').AsString;wordDoc.Tables.Item(1).Cell(i,11).Range.Text:= cdsMain.FieldByName('DUOJING').AsString;SumJHTonCount:= SumJHTonCount+ cdsMain.FieldByName('PLANTONCOUNT').AsCurrency;SumWCTonCount:= SumWCTonCount+ cdsMain.FieldByName('TONCOUNT').AsCurrency;PJTS:= PJTS+ cdsMain.FieldByName('AVGSTOP').AsCurrency;PJZCSJ:= PJZCSJ+ cdsMain.FieldByName('AVGLOAD').AsCurrency;YSSR:= YSSR+ cdsMain.FieldByName('TRANSINCOME').AsCurrency;SumJHCarCount:= SumJHCarCount+ cdsMain.FieldByName('PLANCARCOUNT').AsInteger;SumWCCarCount:= SumWCCarCount+ cdsMain.FieldByName('CARCOUNT').AsInteger;DuoJing:= DuoJing+ cdsMain.FieldByName('DUOJING').AsCurrency;cdsMain.Next;end;Inc(i);wordDoc.Tables.Item(1).Cell(i,2).Range.Text:= '合计';wordDoc.Tables.Item(1).Cell(i,3).Range.Text:= '';wordDoc.Tables.Item(1).Cell(i,4).Range.Text:= IntToStr(SumJHCarCount);wordDoc.Tables.Item(1).Cell(i,5).Range.Text:= CurrToStr(SumJHTonCount);wordDoc.Tables.Item(1).Cell(i,6).Range.Text:= IntToStr(SumWCCarCount);wordDoc.Tables.Item(1).Cell(i,7).Range.Text:= CurrToStr(SumWCTonCount);if cdsMain.RecordCount> 0 thenbeginwordDoc.Tables.Item(1).Cell(i,8).Range.Text:= CurrToStr(PJTS/ cdsMain.RecordCount);wordDoc.Tables.Item(1).Cell(i,9).Range.Text:= CurrToStr(PJZCSJ/ cdsMain.RecordCount);end;wordDoc.Tables.Item(1).Cell(i,10).Range.Text:= CurrToStr(YSSR);wordDoc.Tables.Item(1).Cell(i,10).Range.Text:= CurrToStr(DuoJing);wordApp.Selection.EndKey(wdStory,EmptyParam);wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);if SumJHTonCount<= 0 then SumJHTonCount:= SumWCTonCount;//if EdtQJHF.Value<= 0 then EdtQJHF.Value:= SumWCTonCount;//if SumJHCarCount<= 0 then SumJHTonCount:= SumWCCarCount;wrdSelection.TypeText('(1)全局28个战略装车点共装车'+ IntToStr(SumWCCarCount)+'辆,完成计划的'+ GetPercent(SumWCCarCount , SumJHCarCount)+';发送货物'+CurrToStr(SumWCTonCount)+'万吨,完成计划的'+GetPercent(SumWCTonCount , SumJHTonCount)+',占全局货发总量的'+GetPercent(SumWCTonCount , EdtQJHF.Value)+ '。');wordApp.selection.TypeParagraph;//换行wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphCenter;wrdSelection.TypeText('图-6 战略装车点装车数完成情况');wordApp.Selection.EndKey(wdStory,EmptyParam);
wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False);oChart:= oShape.OleFormat.Object;oChart.Application.DataSheet.Cells.Clear;oChart.ChartArea.Font.Size:= 8;oChart.Application.Update;oChart.ChartType:= 51;// 1是面积图 4是线形图 5是饼图 51是柱状图//添加行标题oChart.Application.DataSheet.Cells[2,1].Value:= '计划';oChart.Application.DataSheet.Cells[3,1].Value:= '实际完成';//添加列标题oChart.Application.DataSheet.Cells[1,2].Value:= '上周';oChart.Application.DataSheet.Cells[1,3].Value:= '本周';oChart.Application.DataSheet.Cells[2, 2].Value:= LastPlanCarCount;oChart.Application.DataSheet.Cells[2, 3].Value:= SumJHCarCount;oChart.Application.DataSheet.Cells[3, 2].Value:= LastImplCarCount;oChart.Application.DataSheet.Cells[3, 3].Value:= SumWCCarCount;oChart.Application.Update;oChart.Application.Quit;wordApp.Selection.EndKey(wdStory,EmptyParam);wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);wrdSelection.TypeText('图-7 战略装车点货物发送量完成情况');wordApp.Selection.EndKey(wdStory,EmptyParam);wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False);oChart:= oShape.OleFormat.Object;oChart.Application.DataSheet.Cells.Clear;oChart.ChartArea.Font.Size:= 8;oChart.Application.Update;oChart.ChartType:= 51;// 1是面积图 4是线形图 5是饼图 51是柱状图//添加行标题oChart.Application.DataSheet.Cells[2,1].Value:= '计划';oChart.Application.DataSheet.Cells[3,1].Value:= '实际完成';//添加列标题oChart.Application.DataSheet.Cells[1,2].Value:= '上周';oChart.Application.DataSheet.Cells[1,3].Value:= '本周';oChart.Application.DataSheet.Cells[2, 2].Value:= LastPlanTonCount;oChart.Application.DataSheet.Cells[2, 3].Value:= SumJHTonCount;oChart.Application.DataSheet.Cells[3, 2].Value:= LastImplTonCount;oChart.Application.DataSheet.Cells[3, 3].Value:= SumWCTonCount;oChart.Application.Update;oChart.Application.Quit;wordApp.Selection.EndKey(wdStory,EmptyParam);wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);wrdSelection.TypeText('图-8 战略装车量占货物发送量情况');wordApp.Selection.EndKey(wdStory,EmptyParam);wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False);oChart:= oShape.OleFormat.Object;oChart.Application.DataSheet.Cells.Clear;oChart.ChartArea.Font.Size:= 8;oChart.Application.Update;oChart.ChartType:= 5;// 1是面积图 4是线形图 5是饼图 51是柱状图//添加行标题oChart.Application.DataSheet.Cells[2,1].Value:= '发送万吨';//添加列标题oChart.Application.DataSheet.Cells[1,2].Value:= '战略装车点';oChart.Application.DataSheet.Cells[1,3].Value:= '其他装车';oChart.Application.DataSheet.Cells[2, 2].Value:= SumWCTonCount;oChart.Application.DataSheet.Cells[2, 3].Value:= EdtQJHF.Value;oChart.Application.Update;oChart.Application.Quit;wordApp.Selection.EndKey(wdStory,EmptyParam);wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);wrdSelection.TypeText('图-9 战略装车量分品类完成情况');wordApp.Selection.EndKey(wdStory,EmptyParam);wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False);oChart:= oShape.OleFormat.Object;oChart.Application.DataSheet.Cells.Clear;oChart.ChartArea.Font.Size:= 8;oChart.Application.Update;oChart.ChartType:= 5;// 1是面积图 4是线形图 5是饼图 51是柱状图//添加行标题oChart.Application.DataSheet.Cells[2,1].Value:= '发送万吨';//添加列标题cdsGroupByPL.First;for i:= 2 to cdsGroupByPL.RecordCount+ 1 dobeginoChart.Application.DataSheet.Cells[1,i].Value:= Trim(cdsGroupByPL.FieldByName('PLNAME').AsString);oChart.Application.DataSheet.Cells[2, i].Value:= cdsGroupByPL.FieldByName('TONCOUNT').AsCurrency;cdsGroupByPL.Next;end;oChart.Application.Update;oChart.Application.Quit;wordApp.Selection.EndKey(wdStory,EmptyParam);wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);wrdSelection.TypeText(' (2)货车停留时间平均为'+ GetDiv(PJTS,cdsMain.RecordCount)+'小时,较考核目标超'+GetOverloadTime(PJTS,cdsMain.RecordCount,5)+'小时,'+'较全局平均停时减少2.8小时;平均装车作业时间'+ GetDiv(PJZCSJ, cdsMain.RecordCount)+'小时,较考核目标超'+GetOverloadTime(PJZCSJ,cdsMain.RecordCount,2)+'小时。');wordApp.selection.TypeParagraph;//换行wrdSelection.TypeText(' (3)路局多经参与经营的12个战略装车点,本周总计完成'+ IntToStr(SumWCCarCount)+'车,比上周'+ IntToStr(Trunc(LastImplCarCount))+'车多装'+ IntToStr(Trunc(SumWCCarCount- LastImplCarCount))+'车,增加了'+GetPercent(SumJHCarCount- LastImplCarCount, LastImplCarCount)+',日均装车'+GetDiv(SumWCTonCount, Trunc(DateEnd.Date-DateBegin.Date+ 1))+'车。占全局战略装车点发送总量的'+ GetPercent(SumWCCarCount, EdtQJHF.Value)+'。');wordApp.selection.TypeParagraph;//换行wrdSelection.TypeText(' 3、毛利分析:本周实现毛利'+ CurrToStr(DuoJing)+'万元,和上周基本持平。');SumDJ:= 0;SumFDJ:= 0;cdsMain.First;with cdsMain dobeginDisableControls;while not Eof dobeginif FieldByName('DJCY').AsInteger= 0 thenSumDJ:= SumDJ+ FieldByName('TONCOUNT').AsCurrencyelseSumFDJ:= SumFDJ+ FieldByName('TONCOUNT').AsCurrency;cdsMain.Next;end;EnableControls;end;wordApp.selection.TypeParagraph;//换行wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphCenter;wrdSelection.TypeText('图-10 多经参与战略装车情况');wordApp.Selection.EndKey(wdStory,EmptyParam);wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False);oChart:= oShape.OleFormat.Object;oChart.Application.DataSheet.Cells.Clear;oChart.ChartArea.Font.Size:= 8;oChart.Application.Update;oChart.ChartType:= 5;// 1是面积图 4是线形图 5是饼图 51是柱状图//添加行标题oChart.Application.DataSheet.Cells[2,1].Value:= '发送吨';//添加列标题oChart.Application.DataSheet.Cells[1,2].Value:= '多经参与经营发送吨';oChart.Application.DataSheet.Cells[1,3].Value:= '其他战略装车点发送吨';oChart.Application.DataSheet.Cells[2, 2].Value:= SumDJ;oChart.Application.DataSheet.Cells[2, 3].Value:= SumFDJ;oChart.Application.Update;oChart.Application.Quit;wordApp.selection.TypeParagraph;//换行wrdSelection.ParagraphFormat.Alignment:=wdAlignParagraphCenter;wrdSelection.TypeText('图-11 多经参与战略装车点经营收入(万元)');wordApp.Selection.EndKey(wdStory,EmptyParam);wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);oShape:= wordApp.Selection.InlineShapes.AddOleObject(ClassType:='MSGraph.Chart.8',FileName:='',LinkToFile :=False,DisplayAsIcon :=False);oChart:= oShape.OleFormat.Object;oChart.Application.DataSheet.Cells.Clear;oChart.ChartArea.Font.Size:= 8;oChart.Application.Update;oChart.ChartType:= 51;// 1是面积图 4是线形图 5是饼图 51是柱状图//添加行标题oChart.Application.DataSheet.Cells[2,1].Value:= '收入(万元)';//添加列标题oChart.Application.DataSheet.Cells[1,2].Value:= '本周';oChart.Application.DataSheet.Cells[1,3].Value:= '上周';oChart.Application.DataSheet.Cells[2, 2].Value:= 319.14;oChart.Application.DataSheet.Cells[2, 3].Value:= 314.96;oChart.Application.Update;oChart.Application.Quit;wordApp.Selection.EndKey(wdStory,EmptyParam);wdPar := wordApp.ActiveDocument.Paragraphs.Add;wdRange := wordApp.activeDocument.Content;wdRange.Collapse(wdCollapseEnd);wrdSelection.TypeText(' (4)装车分析:与上周一样,全局仅有黄陵、安口南两个战略装车点到达日均装运一列的要求,'+'占全局战略装车点总数的7%。周装车少于100车的有梅家坪、白水江、燕子砭、咸阳西4个点。');wordApp.selection.TypeParagraph;//换行wrdSelection.TypeText('2.存在问题及分析:');wordApp.selection.TypeParagraph;//换行wrdSelection.TypeText(' (1)全局共有14个装车点为完成周装车计划。完成比例在50%以下的有桑树坪、合阳、白水江、燕子砭4个战略装车点,占总数的14%');wordApp.selection.TypeParagraph;//换行wrdSelection.TypeText(' 主要原因有四个方面。一是空出来源紧张,不能满足日均装车需求。装运大宗货源煤炭、石油需要的敞车、罐车缺口较大。'+'如牛家梁在请求车5418车的情况下,仅承认了916车;柞水、官渡、三桥也存在此类原因。本周共产生坏车及过期车2104量,'+'修复使用1745车。三是停限装原因,战略装车点请求车兑现率仅为41%。四是货源依旧不足。铁矿石、焦炭市场不好影响装车。');wordApp.selection.TypeParagraph;//换行wrdSelection.TypeText(' (2)一是装车速度较慢,影响装车时间,造成平均停时较大,如合阳点专用线装车为漏斗漏煤,装车速度较快,平煤采取刮板刮平后,'+'人工平顶,速度较慢,引起停时较大。二是坏车修复时间长,也是引起停时较大的一个重要原因。');wordApp.selection.TypeParagraph;//换行wrdSelection.TypeText('3.战略装车点下周重点工作:');wordApp.selection.TypeParagraph;//换行wrdSelection.TypeText(' (1)加大货源组织工作。广泛宣传战略装车点优势,公布资源受理电话、去向、运输品类和开行时间,在货运计划、配空车'+'等方面予以优惠政策,重点做好新建战略装车点瑶曲、安口南的货源组织工作,开发战略装车点新货源,保证装车上量。');wordApp.selection.TypeParagraph;//换行wrdSelection.TypeText(' (2)提高承认车兑现率。对组织不力造成承认车落空的进行认真分析,纳入考核并追究管理责任。调度、运输、货运部门要加强协作,'+'落实战略装车点计划、承认、配空、挂运四优先制度。');wordApp.selection.TypeParagraph;//换行wrdSelection.TypeText(' (3)大力压缩等待时间。与专用线加强协调,增强战略装车点装车、平顶、加固车门人员力量,压缩撞车后的整理等待时间。');end;