zhrepfrm.~pas

来自「一个电力企业的后台管理程序」· ~PAS 代码 · 共 405 行 · 第 1/2 页

~PAS
405
字号
unit ZhRepFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ExtCtrls, StdCtrls, Spin, DsFancyButton;

type
  TFrm_ZhRep = class(TForm)
    PC_Content: TPageControl;
    TabSheet1: TTabSheet;
    Panel1: TPanel;
    Panel2: TPanel;
    RB_BySatDay: TRadioButton;
    RB_BySatMonth: TRadioButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    DTP_SatDate: TDateTimePicker;
    SE_SatYear: TSpinEdit;
    SE_SatMonth: TSpinEdit;
    Panel3: TPanel;
    Label4: TLabel;
    Bevel1: TBevel;
    RB_ByNormal: TRadioButton;
    RB_ByWord: TRadioButton;
    DsFancyButton1: TDsFancyButton;
    DsFancyButton2: TDsFancyButton;
    DsFancyButton3: TDsFancyButton;
    Panel4: TPanel;
    Label5: TLabel;
    RB_EleCout: TRadioButton;
    RB_UserAsk: TRadioButton;
    RB_UserComp: TRadioButton;
    TabSheet2: TTabSheet;
    Panel5: TPanel;
    Panel6: TPanel;
    RB_ByBackDay: TRadioButton;
    RB_ByBackMonth: TRadioButton;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    DTP_BackDate: TDateTimePicker;
    SE_BackYear: TSpinEdit;
    SE_BackMonth: TSpinEdit;
    Label9: TLabel;
    RB_BackNormal: TRadioButton;
    RB_BackWord: TRadioButton;
    Bevel2: TBevel;
    DsFancyButton4: TDsFancyButton;
    procedure DsFancyButton2Click(Sender: TObject);
    procedure DsFancyButton4Click(Sender: TObject);
    procedure DsFancyButton1Click(Sender: TObject);
    procedure DsFancyButton3Click(Sender: TObject);
    procedure RB_BySatDayClick(Sender: TObject);
    procedure RB_BySatMonthClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure RB_ByBackDayClick(Sender: TObject);
    procedure RB_ByBackMonthClick(Sender: TObject);
  private
    { Private declarations }
    //SqlStr:Array[1..3] of String;
    //TypeStr: Array[1..3] of String;
    Function CreateSatSql: String;
    function MakeSql: String;
    function CreateBackSql: String;
//    Procedure SetArray;
    procedure FillTable;
   // procedure test;
  public
    { Public declarations }
  end;

var
  Frm_ZhRep: TFrm_ZhRep;

implementation

{$R *.DFM}
 uses dbtables,SystemDM,pubReport,Commonfunc;
{ TForm4 }



{ TForm4 }


{ TForm4 }

procedure TFrm_ZhRep.FillTable;
var
 I: Integer;
 Query: TQuery;
 Strs: Array [0..2] Of String;
begin
 Strs[0] := '用户咨询';
 Strs[1] := '用户投诉';
 Strs[2] := '故障报修';
 Query := TQuery.Create(nil);
 try
  Query.DatabaseName := SysDM.DBMain.DatabaseName;
  Query.Close;
  Query.SQL.Text := MakeSql;
  //Query.SQL.SaveToFile('C:\Temp.temp');
  Query.Open;
  with TQuery.Create(nil)do
   try
    DataBaseName := SysDM.DBMain.DatabaseName;
    Close;
    Sql.Text := 'TRUNCATE TABLE TEMPCOUNT';
    ExecSql;
    for I := 0 to 2 do
     begin
      Close;
      Sql.Text := Format('INSERT INTO TEMPCOUNT VALUES(''%S'',''%S'')',
                         [Query.Fields[I].AsString,Strs[I]]);
      ExecSql;                   
     end;
   finally
    Free;
   end;
 finally
  Query.Free;
 end;
end;



procedure TFrm_ZhRep.DsFancyButton2Click(Sender: TObject);
begin
 if PC_Content.ActivePageIndex = 0 then
  begin
   if RB_ByNormal.Checked then
    begin
     if RB_EleCout.Checked then
      PreviewReport('ZHSATISFY',CreateSatSql,'','','故障报修满意度报表');
     if RB_UserAsk.Checked then
      PreviewReport('SATISFYASK',CreateSatSql,'','','用户咨询满意度报表');
     if RB_UserComp.Checked then
      PreviewReport('SATISFYCOPM',CreateSatSql,'','','用户投诉满意度报表');
    end;
    if RB_ByWord.Checked then
     begin
      if RB_EleCout.Checked then
       MakeWordReport(SysDm.WReport,CreateSatSql,UserSatStr,'故障报修满意度报表');
      if RB_UserAsk.Checked then
       MakeWordReport(SysDm.WReport,CreateSatSql,UserSatStr,'用户咨询满意度报表');
      if RB_UserComp.Checked then
       MakeWordReport(SysDm.WReport,CreateSatSql,UserSatStr,'用户投诉满意度报表');
     end;
  end;
 if PC_Content.ActivePageIndex = 1 then
  begin
   if RB_BackNormal.Checked then
    PreviewReport('FEEDBACK',CreateBackSql,'','','回访率统计报表');
   if RB_BackWord.Checked then
    MakeWordReport(SysDm.WReport,CreateBackSql,UserFeedBack,'回访率统计报表');
  end;

end;

function TFrm_ZhRep.CreateSatSql: String;
var
 DateStr : String;
begin
 Result := '';
 if RB_BySatDay.Checked then
  begin
   DateStr := FormatDateTime('YYYY-MM-DD',DTP_SatDate.Date);
   if RB_EleCout.Checked then
    Result := Format('SELECT D.DESCRIPTION DES,C.RECCOUNT RECCOUNT FROM '+
                     '(SELECT B.USERSATISFY FLAG,COUNT(*)RECCOUNT FROM '+
                     '(SELECT A.* FROM (SELECT *,SUBSTRING(CONVERT(CHAR,ZZSBSJ,120),1,10) TEMPDATE FROM '+
                     'CLIENTELECOUT)A '+
                     'WHERE TEMPDATE = ''%S'')B '+
                     'GROUP BY B.USERSATISFY) C '+
                     'RIGHT JOIN USERSATISFY D ON C.FLAG = D.ID',[DateStr]);
   if RB_UserAsk.Checked then
    Result := Format('SELECT D.DESCRIPTION DES,C.RECCOUNT RECCOUNT FROM '+
                     '(SELECT B.USERSATISFY FLAG,COUNT(*)RECCOUNT FROM '+
                     '(SELECT A.* FROM (SELECT *,SUBSTRING(CONVERT(CHAR,SLSJ,120),1,10) TEMPDATE FROM '+
                     'CLIENTASK)A '+
                     'WHERE TEMPDATE = ''%S'')B '+
                     'GROUP BY B.USERSATISFY) C '+
                     'RIGHT JOIN USERSATISFY D ON C.FLAG = D.ID',[DateStr]);
   if RB_UserComp.Checked then
    Result := Format('SELECT D.DESCRIPTION DES,C.RECCOUNT RECCOUNT FROM '+
                     '(SELECT B.USERSATISFY FLAG,COUNT(*)RECCOUNT FROM '+
                     '(SELECT A.* FROM (SELECT *,SUBSTRING(CONVERT(CHAR,SLSJ,120),1,10) TEMPDATE FROM '+
                     'CLIENTCOMP)A '+
                     'WHERE TEMPDATE = ''%S'')B '+
                     'GROUP BY B.USERSATISFY) C '+
                     'RIGHT JOIN USERSATISFY D ON C.FLAG = D.ID',[DateStr]);
  end;
 if RB_BySatMonth.Checked then
  begin
   if SE_SatMonth.Value < 10 then
    DateStr := IntToStr(SE_SatYear.Value) + '-0' + IntToStr(SE_SatMonth.Value) + '%'
   else
    DateStr := IntToStr(SE_SatYear.Value) + '-' + IntToStr(SE_SatMonth.Value) + '%';
   if RB_EleCout.Checked then
    Result := Format('SELECT D.DESCRIPTION DES,C.RECCOUNT RECCOUNT FROM '+

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?