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 + -
显示快捷键?