zhrepfrm.pas

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

PAS
405
字号
                     '(SELECT B.USERSATISFY FLAG,COUNT(*)RECCOUNT FROM '+
                     '(SELECT A.* FROM (SELECT *,SUBSTRING(CONVERT(CHAR,ZZSBSJ,120),1,10) TEMPDATE FROM '+
                     'CLIENTELECOUT)A '+
                     'WHERE TEMPDATE LIKE ''%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 LIKE ''%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 LIKE ''%S'')B '+
                     'GROUP BY B.USERSATISFY) C '+
                     'RIGHT JOIN USERSATISFY D ON C.FLAG = D.ID',[DateStr]);
  end;
end;

function TFrm_ZhRep.MakeSql: String;
var
 DateStr : String;
begin
 if RB_ByBackDay.Checked then
  begin
   DateStr := FormatDateTime('YYYY-MM-DD',DTP_BackDate.Date);
   Result := Format('SELECT  X.ASKBFL ASKBFL,Y.COMPBFL COMPBFL,Z.ELECOUTBFL ELECOUTBFL FROM '+
                    '(SELECT * FROM '+
                    '(SELECT 1 TEMPNO,SUBSTRING(CONVERT(VARCHAR,(CONVERT(FLOAT,A.FEEDBACK)/CONVERT(FLOAT,B.ALLCOUNT) * 100)),1,5)+''%s''  ASKBFL FROM '+
                    '(SELECT COUNT(*) FEEDBACK FROM '+
                    '(SELECT *,SUBSTRING(CONVERT(CHAR,SLSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTASK)TT WHERE TT.FEEDBACK_FLAG = 1 AND TT.TEMPDATE = ''%s'' )A, '+
                    '(SELECT COUNT(*) ALLCOUNT FROM (SELECT *,SUBSTRING(CONVERT(CHAR,SLSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTASK)TTT WHERE TTT.TEMPDATE = ''%s'')B '+
                    ' WHERE B.ALLCOUNT <> 0) C RIGHT JOIN (SELECT 1 TEMP_NO)W ON C.TEMPNO = W.TEMP_NO)X, '+
                    '(SELECT * FROM '+
                    '(SELECT 2 TEMPNO,SUBSTRING(CONVERT(VARCHAR,(CONVERT(FLOAT,A.FEEDBACK)/CONVERT(FLOAT,B.ALLCOUNT) * 100)),1,5)+''%S''  COMPBFL FROM '+
                    '(SELECT COUNT(*) FEEDBACK FROM '+
                    '(SELECT *,SUBSTRING(CONVERT(CHAR,SLSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTCOMP)TT WHERE TT.FEEDBACK_FLAG = 1 AND TT.TEMPDATE = ''%s'')A, '+
                    '(SELECT COUNT(*) ALLCOUNT FROM '+
                    '(SELECT *,SUBSTRING(CONVERT(CHAR,SLSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTCOMP)TTT WHERE TTT.TEMPDATE = ''%s'')B '+
                    ' WHERE B.ALLCOUNT <> 0) C RIGHT JOIN (SELECT 1 TEMP_NO)W ON C.TEMPNO = W.TEMP_NO)Y, '+
                    '(SELECT * FROM '+
                    '(SELECT 3 TEMPNO,SUBSTRING(CONVERT(VARCHAR,(CONVERT(FLOAT,A.FEEDBACK)/CONVERT(FLOAT,B.ALLCOUNT) * 100)),1,5)+''%s''  ELECOUTBFL FROM '+
                    '(SELECT COUNT(*) FEEDBACK FROM '+
                    '(SELECT *,SUBSTRING(CONVERT(CHAR,ZZSBSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTELECOUT)TT WHERE TT.FEEDBACK_FLAG = 1 AND TT.TEMPDATE = ''%S'')A, '+
                    '(SELECT COUNT(*) ALLCOUNT FROM '+
                    '(SELECT *,SUBSTRING(CONVERT(CHAR,ZZSBSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTELECOUT)TTT WHERE TTT.TEMPDATE = ''%S'')B '+
                    ' WHERE B.ALLCOUNT <> 0) C RIGHT JOIN (SELECT 1 TEMP_NO)W ON C.TEMPNO = W.TEMP_NO)Z '
                  ,['%',DateStr,DateStr,'%',DateStr,DateStr,'%',DateStr,DateStr]);

  end;
 if RB_ByBackMonth.Checked then
  begin
   if SE_BackMonth.Value < 10 then
    DateStr := IntToStr(SE_BackYear.Value) + '-0' + IntToStr(SE_BackMonth.Value) + '%'
   else
    DateStr := IntToStr(SE_BackYear.Value) + '-' + IntToStr(SE_BackMonth.Value) + '%';
   Result := Format('SELECT  X.ASKBFL ASKBFL,Y.COMPBFL COMPBFL,Z.ELECOUTBFL ELECOUTBFL FROM '+
                    '(SELECT * FROM '+
                    '(SELECT 1 TEMPNO,SUBSTRING(CONVERT(VARCHAR,(CONVERT(FLOAT,A.FEEDBACK)/CONVERT(FLOAT,B.ALLCOUNT) * 100)),1,5)+''%s''  ASKBFL FROM '+
                    '(SELECT COUNT(*) FEEDBACK FROM '+
                    '(SELECT *,SUBSTRING(CONVERT(CHAR,SLSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTASK)TT WHERE TT.FEEDBACK_FLAG = 1 AND TT.TEMPDATE LIKE ''%s'' )A, '+
                    '(SELECT COUNT(*) ALLCOUNT FROM (SELECT *,SUBSTRING(CONVERT(CHAR,SLSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTASK)TTT WHERE TTT.TEMPDATE LIKE ''%s'')B '+
                    ' WHERE B.ALLCOUNT <> 0) C RIGHT JOIN (SELECT 1 TEMP_NO)W ON C.TEMPNO = W.TEMP_NO)X, '+
                    '(SELECT * FROM '+
                    '(SELECT 2 TEMPNO,SUBSTRING(CONVERT(VARCHAR,(CONVERT(FLOAT,A.FEEDBACK)/CONVERT(FLOAT,B.ALLCOUNT) * 100)),1,5)+''%S''  COMPBFL FROM '+
                    '(SELECT COUNT(*) FEEDBACK FROM '+
                    '(SELECT *,SUBSTRING(CONVERT(CHAR,SLSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTCOMP)TT WHERE TT.FEEDBACK_FLAG = 1 AND TT.TEMPDATE LIKE ''%s'')A, '+
                    '(SELECT COUNT(*) ALLCOUNT FROM '+
                    '(SELECT *,SUBSTRING(CONVERT(CHAR,SLSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTCOMP)TTT WHERE TTT.TEMPDATE LIKE ''%s'')B '+
                    ' WHERE B.ALLCOUNT <> 0) C RIGHT JOIN (SELECT 1 TEMP_NO)W ON C.TEMPNO = W.TEMP_NO)Y, '+
                    '(SELECT * FROM '+
                    '(SELECT 3 TEMPNO,SUBSTRING(CONVERT(VARCHAR,(CONVERT(FLOAT,A.FEEDBACK)/CONVERT(FLOAT,B.ALLCOUNT) * 100)),1,5)+''%s''  ELECOUTBFL FROM '+
                    '(SELECT COUNT(*) FEEDBACK FROM '+
                    '(SELECT *,SUBSTRING(CONVERT(CHAR,ZZSBSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTELECOUT)TT WHERE TT.FEEDBACK_FLAG = 1 AND TT.TEMPDATE LIKE ''%S'')A, '+
                    '(SELECT COUNT(*) ALLCOUNT FROM '+
                    '(SELECT *,SUBSTRING(CONVERT(CHAR,ZZSBSJ,120),1,10) TEMPDATE FROM '+
                    'CLIENTELECOUT)TTT WHERE TTT.TEMPDATE LIKE ''%S'')B '+
                    ' WHERE B.ALLCOUNT <> 0) C RIGHT JOIN (SELECT 1 TEMP_NO)W ON C.TEMPNO = W.TEMP_NO)Z '
                  ,['%',DateStr,DateStr,'%',DateStr,DateStr,'%',DateStr,DateStr]);
  end;
end;

procedure TFrm_ZhRep.DsFancyButton4Click(Sender: TObject);
begin
 DesignReport('FEEDBACK',CreateBackSql,'','','回访率统计报表');
end;

function TFrm_ZhRep.CreateBackSql: String;

begin
 FillTable;
 Result := 'SELECT TYPE,BFL FROM TEMPCOUNT'; 
end;

procedure TFrm_ZhRep.DsFancyButton1Click(Sender: TObject);
begin
   if RB_EleCout.Checked then
    DesignReport('ZHSATISFY',CreateSatSql,'','','故障报修满意度报表');
   if RB_UserAsk.Checked then
    DesignReport('SATISFYASK',CreateSatSql,'','','用户咨询满意度报表');
   if RB_UserComp.Checked then
    DesignReport('SATISFYCOPM',CreateSatSql,'','','用户投诉满意度报表');end;

procedure TFrm_ZhRep.DsFancyButton3Click(Sender: TObject);
begin
 Close;
end;

procedure TFrm_ZhRep.RB_BySatDayClick(Sender: TObject);
begin
 if RB_BySatDay.Checked then
  begin
   DTP_SatDate.Enabled := True;
   SE_SatYear.Enabled := False;
   SE_SatMonth.Enabled := False;
  end;
 if RB_BySatMonth.Checked then
  begin
   DTP_SatDate.Enabled := False;
   SE_SatYear.Enabled := True;
   SE_SatMonth.Enabled := True;
  end;
end;

procedure TFrm_ZhRep.RB_BySatMonthClick(Sender: TObject);
begin
 if RB_BySatDay.Checked then
  begin
   DTP_SatDate.Enabled := True;
   SE_SatYear.Enabled := False;
   SE_SatMonth.Enabled := False;
  end;
 if RB_BySatMonth.Checked then
  begin
   DTP_SatDate.Enabled := False;
   SE_SatYear.Enabled := True;
   SE_SatMonth.Enabled := True;
  end;
end;

procedure TFrm_ZhRep.FormCreate(Sender: TObject);
begin
 SE_SatYear.Enabled := False;
 SE_SatMonth.Enabled := False;
 SE_BackYear.Enabled := False;
 SE_BackMonth.Enabled := False;
 DTP_SatDate.DateTime :=now;
end;

procedure TFrm_ZhRep.RB_ByBackDayClick(Sender: TObject);
begin
 if RB_ByBackDay.Checked then
  begin
   DTP_BackDate.Enabled := True;
   SE_BackYear.Enabled := False;
   SE_BackMonth.Enabled := False;
  end;
 if RB_ByBackMonth.Checked then
  begin
   DTP_BackDate.Enabled := False;
   SE_BackYear.Enabled := True;
   SE_BackMonth.Enabled := True;
  end;

end;

procedure TFrm_ZhRep.RB_ByBackMonthClick(Sender: TObject);
begin
 if RB_ByBackDay.Checked then
  begin
   DTP_BackDate.Enabled := True;
   SE_BackYear.Enabled := False;
   SE_BackMonth.Enabled := False;
  end;
 if RB_ByBackMonth.Checked then
  begin
   DTP_BackDate.Enabled := False;
   SE_BackYear.Enabled := True;
   SE_BackMonth.Enabled := True;
  end;

end;

end.

⌨️ 快捷键说明

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