📄 repclass.pas
字号:
end;
end;
function TOpAmountRpt.createOpDealAmountInfo: Boolean;
var
SCurrDate: String;
begin
Result := False;
SCurrDate := FormatDateTime('YYYY-MM',FDt_Curr);
if CheckRecord('STAT_OPAMOUNT_DEAL_INFO') then
begin
if Fb_OverlayCurrData then
begin
try
DeleteRec('STAT_OPAMOUNT_DEAL_INFO') ;
CreateDealInfo;
Result := True;
except
Result := False;
end;
end
else Exit;
end
else
begin
try
CreateDealInfo;
Result := True;
except
Result := False;
end;
end;
try
MakeInsert(SCurrDate);
except
Result := True;
end;
end;
function TOpAmountRpt.CreateSubDealInfo(
SubInfo: TOpAmountDealInfo;Qry_Insert: TQuery): Boolean;
var
I: Integer;
SCurrDate : String;
begin
//Result := False;
SCurrDate := FormatDateTime('YYYY-MM',FDt_Curr);
with Qry_Insert do
try
for I := 0 to High(SubInfo.SubOpamountDealInfo) do
begin
SubInfo.SubOpamountDealInfo[I].CalRation;
Sql.Add(Format('INSERT INTO STAT_OPAMOUNT_DEAL_INFO '+
'VALUES (''%S'',''%S'',''%S'',:A,%D,%D,%D,%D,%D,%D,%D,%D,%D,%D,''%S'',''%S'',''%S'',''%S'');',
[SubInfo.SubOpamountDealInfo[I].M_SubOpID,SubInfo.SubOpamountDealInfo[I].M_SubOpType,SCurrDate,
SubInfo.SubOpamountDealInfo[I].M_iTotalCMNum,SubInfo.SubOpamountDealInfo[I].m_iTotalApNum,
SubInfo.SubOpamountDealInfo[I].M_iACMPCMNum,SubInfo.SubOpamountDealInfo[I].m_iACMPApNum,
SubInfo.SubOpamountDealInfo[I].M_iNoAcmpCMNum,SubInfo.SubOpamountDealInfo[I].m_iNoAcmpApNum,
SubInfo.SubOpamountDealInfo[I].M_iOtAcmpCMNum,SubInfo.SubOpamountDealInfo[I].m_iOtAcmpApNum,
SubInfo.SubOpamountDealInfo[I].M_iCmUserSatisfyNum,SubInfo.SubOpamountDealInfo[I].m_iApUserSatisfyNum,
SubInfo.SubOpamountDealInfo[I].M_MonORation,SubInfo.SubOpamountDealInfo[I].M_ToRation,
SubInfo.SubOpamountDealInfo[I].M_MonSRation,SubInfo.SubOpamountDealInfo[I].M_TSRation
]));
ParamByName('A').AsDate := FDt_Curr;
end;
Result := True;
except
Result := False;
end;
end;
function TOpAmountRpt.DeleteRec(STableName: String): Boolean;
var
SCurrDate: String;
SAdDate : String;
begin
// Result := False;
SCurrDate := FormatDateTime('YYYY-MM',FDt_Curr);
SAdDate := FormatDateTime('YYYY-MM',Dt_Addup);
with TQuery.Create(nil) do
try
Close;
DataBaseName := SysDM.DBMain.DatabaseName;
// if SType = '1' then
Sql.Text := Format('DELETE FROM %S WHERE STAT_MONTH = ''%S''',[STableName,ScurrDate]);
// else
// Sql.Text := Format('DELETE FROM %S WHERE STAT_MONTH >= ''%S'' AND STAT_MONTH <= ''%S''',[STableName,SAdDate,ScurrDate]);
ExecSql;
Result := True;
finally
Free;
end;
end;
function TOpAmountRpt.MakeComSql: String;
var
SCurrDate: String;
begin
SCurrDate := FormatDateTime('YYYY-MM',FDt_Curr);
Result := Format('SELECT B.CLASS_NAME CLASS_NAME,A.MONTH_ALL_NUM MONTH_ALL_NUM,'+
'A.ADDUP_ALL_NUM ADDUP_ALL_NUM,A.LASTMONTH_RISE_RATIO LASTMONTH_RISE_RATIO,'+
'A.LASTYEAR_SAMETERM_RISE_RATIO LASTYEAR_SAMETERM_RISE_RATIO,'+
'A.LASTYEAR_ADDUP_RISE_RATIO LASTYEAR_ADDUP_RISE_RATIO,'+
'A.PLACETOTAL_PERCENT ' +
'FROM STAT_OPAMOUNT_COMPARE_INFO A,CLASS_CODE B '+
'WHERE A.CLASS_ID = b.CLASS_ID AND A.CLASS_TYPE = B.CLASS_TYPE '+
'AND STAT_MONTH = ''%S''',[SCurrDate]);
end;
function TOpAmountRpt.MakeInsert(SCurrDate: String): Boolean;
var
I,J: Integer;
begin
Result := False;
with TQuery.Create(nil) do
try
Close;
DataBaseName := SysDM.DBMain.DatabaseName;
Sql.Text := 'TRUNCATE TABLE STAT_OPAMOUNT_DEAL_TABLE';
ExecSql;
Close;
Sql.Text := Format('SELECT CLASS_ID,CLASS_TYPE,STAT_MONTH FROM '+
'STAT_OPAMOUNT_DEAL_INFO WHERE CLASS_TYPE = ''%S'' '+
'AND STAT_MONTH = ''%S''',['A',SCurrDate]);
Open;
if RecordCount > 0 then
begin
SetLength(KeyStr,RecordCount,3);
for I := 0 to RecordCount - 1 do
begin
for J := 0 to 2 do
begin
KeyStr[I,J] := Fields[J].AsString;
end;
Next;
end;
end;
for I := Low(KeyStr) to High(KeyStr) do
begin
try
WriteTable(KeyStr[I,1],KeyStr[I,0],KeyStr[I,2],False,0);
except
Break;
Result := False;
end;
Close;
if (KeyStr[I,0] = '1') or (KeyStr[I,0] = '2') then
Sql.Text := Format('SELECT CLASS_TYPE,CLASS_ID FROM CLASS_CODE '+
'WHERE PARENT_CLASS_ID = ''%S'' AND PARENT_CLASS_TYPE = '+
'''%S''',[KeyStr[I,0],KeyStr[I,1]]);
Open;
if RecordCount > 0 then
begin
SetLength(SubKeyStr,RecordCount,3);
for J := 0 to RecordCount - 1 do
begin
SubKeyStr[J,0] := FieldByName('CLASS_TYPE').AsString;
SubKeyStr[J,1] := FieldByName('CLASS_ID').AsString;
SubKeyStr[J,2] := SCurrDate;
Next;
end;
for J := Low(SubKeyStr) to High(SubKeyStr) do
try
if (KeyStr[I,0] = '1') or (KeyStr[I,0] = '2') then
WriteTable(SubKeyStr[J,0],SubKeyStr[J,1],SubKeyStr[J,2],True,J);
Result := True;
except
Break;
Result := False;
end;
end;
end;
finally
Free;
end;
end;
function TOpAmountRpt.printOpCompareAmountRpt(
reporttype: integer): boolean;
begin
Result := True;
if reporttype = 0 then
try
PreviewReport('BusiCount',MakeComSql,'','','业务统计报表');
except
Result := False;
end;
if reporttype = 1 then
try
DesignReport('BusiCount',MakeComSql,'','','业务统计报表');
except
Result := False;
end;
if reporttype = 2 then
try
MakeWordReport(SysDm.WReport,MakeComSql,CompTitleStr,'业务统计报表');;
except
Result := False;
end;
end;
function TOpAmountRpt.printOpDealAmountRpt(reporttype: integer): boolean;
var
Syear,SMon:String;
begin
Result := True;
if reporttype = 0 then
try
PreviewReport('NewFx','SELECT * FROM STAT_OPAMOUNT_DEAL_TABLE','','','业务统计报表');
except
Result := False;
end;
if reporttype = 1 then
try
DesignReport('NewFx','SELECT * FROM STAT_OPAMOUNT_DEAL_TABLE','','','业务统计报表');
except
Result := False;
end;
if reporttype = 2 then
try
Syear := FormatDateTime('YYYY',FDt_Curr);
SMon := FormatDateTime('MM',FDt_Curr);
SysDM.Qry_Word.Close;
SysDM.Qry_Word.Open;
//MakeWordReport(SysDm.WReport,'SELECT * FROM STAT_OPAMOUNT_DEAL_TABLE',DealTitleStr,'业务统计报表');;
SysDm.WorddotRpt.FirstTitle := Format('%s 年 %s 月业务处理情况统计分析表',[SYear,SMon]);
SysDm.WorddotRpt.Execute;
except
Result := False;
end;
end;
function TOpAmountRpt.WriteTable(OpType, OpID, SCurrDate: String;IsSub: Boolean;SubNo: Integer): Boolean;
var
Str: String;
I: Integer;
begin
Str := '';
//Result := False;
with TQuery.Create(nil) do
try
Close;
DataBaseName := SysDM.DBMain.DatabaseName;
Sql.Text := Format('SELECT B.CLASS_NAME CLASS_NAME,'+
'A.MONTH_ALL_NUM MONTH_ALL_NUM,A.ADDUP_ALL_NUM ADDUP_ALL_NUM,'+
'A.MONTH_ACMP_NUM MONTH_ACMP_NUM,A.ADDUP_ACMP_NUM ADDUP_ACMP_NUM,'+
'A.MONTH_NOACMP_NUM MONTH_NOACMP_NUM,A.ADDUP_NOACMP_NUM ADDUP_NOACMP_NUM,'+
'A.MONTH_OTACMP_NUM MONTH_OTACMP_NUM,A.ADDUP_OTACMP_NUM ADDUP_OTACMP_NUM,'+
'A.MONTH_USERSATISFY_NUM MONTH_USERSATISFY_NUM,A.ADDUP_USERSATISFY_NUM ADDUP_USERSATISFY_NUM,'+
'A.MONTH_OTACMP_RATIO MONTH_OTACMP_RATIO,A.ADDUP_OTACMP_RATIO ADDUP_OTACMP_RATIO,'+
'A.MONTH_USERSATISFY_RATIO MONTH_USERSATISFY_RATIO,A.ADDUP_USERSATISFY_RATIO ADDUP_USERSATISFY_RATIO'+
' FROM STAT_OPAMOUNT_DEAL_INFO A,CLASS_CODE B '+
' WHERE A.CLASS_ID = B.CLASS_ID AND A.CLASS_TYPE = B.CLASS_TYPE AND A.CLASS_ID = ''%S'''+
' AND A.CLASS_TYPE = ''%S'' AND STAT_MONTH = ''%S''',[OpID,OpType,SCurrDate]);
// Sql.SaveToFile('d.ttt');
Open;
if not IsSub then
begin
Str := Format('''%s''',[Fields[0].AsString]);
for I := 1 to 10 do
Str := Str + ','+ Fields[I].AsString ;
for I := 11 to 14 do
Str := Str + Format(',''%s''',[Fields[I].AsString]);
Close;
Sql.Text := Format('INSERT INTO STAT_OPAMOUNT_DEAL_TABLE VALUES (%S)',[Str]);
// Sql.SaveToFile('C:\ttt.ttt');
try
ExecSql;
Result := True;
except
Result := False;
end;
end
else
begin
Str := Format('''(%S)%s''',[IntToStr(SuBNo + 1),Fields[0].AsString]);
for I := 1 to 10 do
Str := Str + ','+ Fields[I].AsString ;
for I := 11 to 14 do
Str := Str + Format(',''%s''',[Fields[I].AsString]);
Close;
Sql.Text := Format('INSERT INTO STAT_OPAMOUNT_DEAL_TABLE VALUES (%S)',[Str]);
//Sql.SaveToFile('C:\ttt.ttt');
try
ExecSql;
Result := True;
except
Result := False;
end;
end;
finally
Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -