D7gmYongjin/进度统计查询(Statistics.dll)/U_KuLinList.pas
DESKTOP-E401PHE\Administrator 8452f471f5 新建3-04
2026-03-04 09:51:44 +08:00

447 lines
12 KiB
ObjectPascal
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_KuLinList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls,
ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient,
cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset,
RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, BtnEdit,
cxPC;
type
TfrmKuLinList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBExport: TToolButton;
TBClose: TToolButton;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
CDS_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
RMDBHZ: TRMDBDataSet;
CDS_HZ: TClientDataSet;
CDS_PRT: TClientDataSet;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
ADOQueryPrint: TADOQuery;
tbJS: TToolButton;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column21: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column22: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
v1Column18: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column24: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
Panel1: TPanel;
Label2: TLabel;
Label3: TLabel;
Label6: TLabel;
Label7: TLabel;
Label1: TLabel;
Label10: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
MPRTCodeName: TEdit;
PRTColor: TEdit;
ConNo: TEdit;
chkdate: TCheckBox;
lidan: TEdit;
YWY: TEdit;
cxTabControl1: TcxTabControl;
tbJSCX: TToolButton;
Panel2: TPanel;
Panel4: TPanel;
Panel3: TPanel;
Panel5: TPanel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ConNoMChange(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure SPIDKeyPress(Sender: TObject; var Key: Char);
procedure SPIDChange(Sender: TObject);
procedure SPSpecChange(Sender: TObject);
procedure FactoryNameChange(Sender: TObject);
procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure tbJSClick(Sender: TObject);
procedure tbJSCXClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure Panel2Click(Sender: TObject);
procedure Panel4Click(Sender: TObject);
procedure Panel3Click(Sender: TObject);
procedure Panel5Click(Sender: TObject);
private
procedure SetStatus();
procedure InitGrid(KLScope: string);
{ Private declarations }
public
canshu1: string;
{ Public declarations }
end;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp;
{$R *.dfm}
procedure TfrmKuLinList.SetStatus();
begin
tbJS.Visible := False;
tbJSCX.Visible := False;
// if Trim(canshu1) = '<27><><EFBFBD><EFBFBD>' then
// begin
// case cxTabControl1.TabIndex of
// 0:
// begin
// tbJS.Visible := true;
//
// end;
// 1:
// begin
//
// tbJSCX.Visible := true;
// end;
// 2:
// begin
//
// end;
//
// end;
// end;
end;
procedure TfrmKuLinList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmKuLinList.FormCreate(Sender: TObject);
begin
EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime;
end;
procedure TfrmKuLinList.InitGrid(KLScope: string);
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('update CK_BanCP_KC set CKDate=DATEDIFF(DD,0,getdate()) where');
sql.Add('not exists (select DATEDIFF(DD,0,CRTime) from CK_BanCP_CR X where X.MJID=CK_BanCP_KC.MJID and X.CRFlag=''<27><><EFBFBD><EFBFBD>'') ');
sql.Add(' and RKDate>0');
sql.Add('select PJKuLin=AA.KuLin/AA.RKPS,AA.KCPS,AA.RKPS,CKPS=AA.RKPS-AA.KCPS,AA.RKDate,AA.CKDate,AA.KCMainId ');
sql.Add(',B.ConNo,B.lidan,B.YWY,B.MPRTCodeName,B.MPRTCode,B.MPRTMF,B.MPRTKZ,B.ISHZKuLin ');
sql.Add(',C.*');
sql.Add(',zt=(case when ISHZKuLin=1 then '<><CEB4><EFBFBD><EFBFBD>'' else ''<27>ѽ<EFBFBD><D1BD><EFBFBD>'' end) ');
sql.Add('from ( ');
sql.Add('select A.KCMainId,A.KCSubId,SUM(A.RKDate) RKDate,SUM(A.CKDate) CKDate');
sql.Add(',SUM(A.CKDate-A.RKDate) KuLin,COUNT(A.MJID) RKPS,KCPS=SUM(case when KCValid=''Y'' then 1 else 0 end) ');
sql.Add(' from CK_BanCP_KC A where A.RKDate > 0 ');
sql.Add(' and exists (select MJID from CK_BanCP_CR X where X.MJID=A.MJID and X.CRFlag=''<27><><EFBFBD><EFBFBD>'')');
sql.Add('group by A.KCMainId,A.KCSubId ');
sql.Add(' ) AA');
sql.Add('inner join JYOrder_Main B on AA.KCMainId=B.MainId inner join JYOrder_Sub C on AA.KCSubId=C.SubId');
case cxTabControl1.TabIndex of
0:
begin
sql.Add(' where B.ISHZKuLin=1 ');
end;
1:
begin
sql.Add(' where B.ISHZKuLin=0 ');
end;
2:
begin
sql.Add(' where 1=1 ');
end;
end;
if KLScope = '15<31><35>30<33><30>' then
begin
sql.Add(' and AA.KuLin/AA.RKPS>=15 ');
sql.Add(' and AA.KuLin/AA.RKPS<30 ');
end;
if KLScope = '30<33><30>45<34><35>' then
begin
sql.Add(' and AA.KuLin/AA.RKPS>=30 ');
sql.Add(' and AA.KuLin/AA.RKPS<45 ');
end;
if KLScope = '45<34><35>60<36><30>' then
begin
sql.Add(' and AA.KuLin/AA.RKPS>=45 ');
sql.Add(' and AA.KuLin/AA.RKPS<60 ');
end;
if KLScope = '60<36><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
begin
sql.Add(' and AA.KuLin/AA.RKPS>=60 ');
end;
sql.Add(' order by AA.KuLin/AA.RKPS desc,KCPS desc ');
// ShowMessage(SQL.Text);
// sql.Add('exec P_View_KuLin ');
// sql.Add(' @PageStatus=''' + inttostr() + '''');
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmKuLinList.TBRafreshClick(Sender: TObject);
begin
ConNo.SetFocus;
InitGrid('');
end;
procedure TfrmKuLinList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmKuLinList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(trim(self.Caption), Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmKuLinList.FormShow(Sender: TObject);
begin
SetStatus();
ReadCxGrid(trim(self.Caption), Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
InitGrid('');
end;
procedure TfrmKuLinList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><ECB2BC><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid2);
end;
procedure TfrmKuLinList.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
end;
procedure TfrmKuLinList.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmKuLinList.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmKuLinList.SPIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
{if Length(Trim(SPID.Text))<4 then Exit;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(',ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId)');
//sql.Add(' ,ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId )');
sql.Add(' from CK_SXPB_CR A');
sql.add(' where SPID like :SXID');
Parameters.ParamByName('SXID').Value:='%'+Trim(SXID.Text)+'%';
Open;
//ShowMessage(SQL.Text);
end;
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
finally
ADOQueryMain.EnableControls;
end; }
end;
end;
procedure TfrmKuLinList.SPIDChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmKuLinList.SPSpecChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmKuLinList.FactoryNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmKuLinList.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
FKuLin: double;
begin
// <20><><EFBFBD><EFBFBD> <20><>15<31><35> <20><>15<31><35>30<33><30> <20><>30<33><30>45<34><35> <20><>45<34><35>60<36><30> <20><>60<36><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
if AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('PJKuLin').Index] = null then
Exit;
FKuLin := AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('PJKuLin').Index];
if ((FKuLin < 30) and (FKuLin >= 15)) then
begin
ACanvas.Brush.Color := $00FF00;
end;
if ((FKuLin < 45) and (FKuLin >= 30)) then
begin
ACanvas.Brush.Color := $ED9564;
end;
if ((FKuLin < 60) and (FKuLin >= 45)) then
begin
ACanvas.Brush.Color := $00FFFF;
end;
if FKuLin > 60 then
begin
ACanvas.Brush.Color := $4763FF;
end;
end;
procedure TfrmKuLinList.tbJSClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
exit;
if Application.MessageBox('<27>Ƿ<EFBFBD><C7B7><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update JYOrder_Sub SET ISKuLin=''0'' ');
sql.Add('where SubId=' + quotedstr(trim(CDS_Main.fieldbyname('SubId').AsString)));
sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
sql.Add(' ' + quotedstr(trim(DName)));
sql.Add(',getdate() ');
sql.Add(',' + quotedstr(trim(self.Caption)));
sql.Add(',' + quotedstr(trim('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')));
sql.Add(',' + quotedstr(trim('<27><><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>' + trim(CDS_Main.FieldByName('orderNO').AsString) + ' SubId<49><64>' + trim(CDS_Main.FieldByName('SubId').AsString))));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
execsql;
end;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳ɹ<CBB3><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
TBRafresh.Click;
except
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmKuLinList.tbJSCXClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
exit;
if Application.MessageBox('<27>Ƿ<EFBFBD><C7B7><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update JYOrder_Sub SET ISKuLin=''0'' ');
sql.Add('where SubId=' + quotedstr(trim(CDS_Main.fieldbyname('SubId').AsString)));
sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
sql.Add(' ' + quotedstr(trim(DName)));
sql.Add(',getdate() ');
sql.Add(',' + quotedstr(trim(self.Caption)));
sql.Add(',' + quotedstr(trim('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')));
sql.Add(',' + quotedstr(trim('<27><><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>' + trim(CDS_Main.FieldByName('orderNO').AsString) + ' SubId<49><64>' + trim(CDS_Main.FieldByName('SubId').AsString))));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
execsql;
end;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳ɹ<CBB3><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
TBRafresh.Click;
except
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmKuLinList.cxTabControl1Change(Sender: TObject);
begin
InitGrid('');
end;
procedure TfrmKuLinList.Panel2Click(Sender: TObject);
begin
InitGrid('15<31><35>30<33><30>');
end;
procedure TfrmKuLinList.Panel4Click(Sender: TObject);
begin
InitGrid('30<33><30>45<34><35>');
end;
procedure TfrmKuLinList.Panel3Click(Sender: TObject);
begin
InitGrid('45<34><35>60<36><30>');
end;
procedure TfrmKuLinList.Panel5Click(Sender: TObject);
begin
InitGrid('60<36><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
end.