D7gmYushang/进度统计查询(Statistics.dll)/U_PBJCList.pas

467 lines
14 KiB
ObjectPascal
Raw Permalink Normal View History

2025-09-24 13:13:14 +08:00
unit U_PBJCList;
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,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator;
type
TfrmPBJCList = 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;
Panel1: TPanel;
Label2: TLabel;
Label3: TLabel;
Label8: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
SPcode: TEdit;
PIHAO: TEdit;
CheckBox1: TCheckBox;
chkdate: TCheckBox;
cxGrid1: TcxGrid;
TV1: TcxGridDBBandedTableView;
cxGridDBBandedColumn35: TcxGridDBBandedColumn;
cxGridDBBandedColumn51: TcxGridDBBandedColumn;
cxGridDBBandedColumn52: TcxGridDBBandedColumn;
cxGridDBBandedColumn56: TcxGridDBBandedColumn;
cxGridDBBandedColumn57: TcxGridDBBandedColumn;
cxGridDBBandedColumn59: TcxGridDBBandedColumn;
cxGridDBBandedColumn61: TcxGridDBBandedColumn;
cxGridDBBandedColumn63: TcxGridDBBandedColumn;
cxGridDBBandedColumn77: TcxGridDBBandedColumn;
cxGridDBBandedColumn79: TcxGridDBBandedColumn;
cxGridDBBandedColumn81: TcxGridDBBandedColumn;
cxGridDBBandedColumn87: TcxGridDBBandedColumn;
cxGridDBBandedColumn91: TcxGridDBBandedColumn;
V1Column6: TcxGridDBBandedColumn;
V1Column27: TcxGridDBBandedColumn;
V1Column7: TcxGridDBBandedColumn;
V1Column3: TcxGridDBBandedColumn;
V1Column8: TcxGridDBBandedColumn;
cxGridLevel2: TcxGridLevel;
TV1Column1: TcxGridDBBandedColumn;
TV1Column2: TcxGridDBBandedColumn;
TV1Column3: TcxGridDBBandedColumn;
TV1Column4: TcxGridDBBandedColumn;
TV1Column5: TcxGridDBBandedColumn;
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 N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure SPIDKeyPress(Sender: TObject; var Key: Char);
procedure PIHAOChange(Sender: TObject);
procedure FactoryNameChange(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
procedure CheckBox1Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure Panel2Click(Sender: TObject);
procedure Panel3Click(Sender: TObject);
procedure Panel4Click(Sender: TObject);
procedure V1Column27CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean);
procedure TBFindClick(Sender: TObject);
procedure SPcodeChange(Sender: TObject);
private
procedure SetStatus();
procedure InitGrid();
{ Private declarations }
public
canshu1: string;
{ Public declarations }
end;
var
frmPBJCList: TfrmPBJCList;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp;
{$R *.dfm}
procedure TfrmPBJCList.SetStatus();
begin
end;
procedure TfrmPBJCList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmPBJCList.FormCreate(Sender: TObject);
begin
EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime;
end;
procedure TfrmPBJCList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select * from (');
SQL.Add('select A.SPID,convert(varchar(10),a.crtime,120) AS RKDATE,A.SPCODE,A.PIHAO,A.FactoryName,A.PIQTY AS RKPS,A.QTY AS RKQTY ,B.PIQTY AS CKPS ,B.QTY AS CKQTY ');
SQL.Add(',B.ToFactoryName,convert(varchar(10),b.crtime,120) AS CKDATE');
SQL.Add(',A.QTYUNIT ,KCPS=(select sum(crqtyflag*ISNULL(piqty,0)) from CK_SXPB_CR c where c.fzspid=a.spid ),KCQty=(select sum(crqtyflag*ISNULL(qty,0)) from CK_SXPB_CR c where c.fzspid=a.spid )');
SQL.Add('from CK_SXPB_CR A ');
SQL.Add('LEFT JOIN CK_SXPB_CR B ON A.SPID=B.FZSPID AND B.CRFlag=''<27><><EFBFBD><EFBFBD>'' AND B.CKName=''<27><><EFBFBD><EFBFBD>''');
SQL.Add('where A.CKName=''<27><><EFBFBD><EFBFBD>'' and A.CRFlag=''<27><><EFBFBD><EFBFBD>''');
if chkdate.Checked then
begin
sql.Add(' and A.CRTime>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
sql.Add(' and A.CRTime<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1))));
end;
sql.Add(')AA WHERE 1=1');
if CheckBox1.Checked = True then
begin
SQL.Add('AND KCPS>0 AND KCQTY>0');
end;
SQL.Add('ORDER BY RKDATE DESC');
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmPBJCList.TBRafreshClick(Sender: TObject);
begin
BegDate.SetFocus;
InitGrid();
end;
procedure TfrmPBJCList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmPBJCList.TBCloseClick(Sender: TObject);
begin
WriteCxBandedGrid(trim(self.Caption), Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD>');
Close;
end;
procedure TfrmPBJCList.FormShow(Sender: TObject);
begin
ReadCxBandedGrid(trim(self.Caption), Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD>');
// ReadCxGrid(trim(self.Caption), Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
InitGrid();
end;
procedure TfrmPBJCList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD>', cxGrid1);
end;
procedure TfrmPBJCList.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmPBJCList.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmPBJCList.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 TfrmPBJCList.PIHAOChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmPBJCList.FactoryNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmPBJCList.FormDestroy(Sender: TObject);
begin
frmPBJCList := nil;
end;
procedure TfrmPBJCList.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
Fsunhao: double;
begin
if AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('sunhao').Index] = null then
Exit;
Fsunhao := AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('sunhao').Index];
if AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('ZPPS').Index] = null then
Exit;
if (AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('ZPPS').Index]) > 0 then
begin
//<2F><><EFBFBD>ġ<EFBFBD>2% <20><>ɫ<EFBFBD><C9AB> <20><><EFBFBD>ġ<EFBFBD>2% ~ <20><>5% <20><>ɫ<EFBFBD><C9AB> <20><><EFBFBD>Ĵ<EFBFBD><C4B4>ڡ<EFBFBD>5% <20><>ɫ
if Fsunhao < 0 then
Fsunhao := -Fsunhao;
if Fsunhao <= 2 then
ACanvas.Brush.Color := clMoneyGreen;
if (Fsunhao > 2) and (Fsunhao <= 5) then
ACanvas.Brush.Color := $00FFFF80;
if Fsunhao > 5 then
ACanvas.Brush.Color := $008080FF;
end;
end;
procedure TfrmPBJCList.CheckBox1Click(Sender: TObject);
begin
if chkdate.Checked then
CheckBox1.Checked := False;
InitGrid();
end;
procedure TfrmPBJCList.ToolButton1Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
try
ADOQueryCmd.Connection.BeginTrans;
CDS_Main.DisableControls;
with CDS_Main do
begin
First;
while not eof do
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_UPdate_LCKJY ''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
execsql;
end;
CDS_Main.Next;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.EnableControls;
except
ADOQueryCmd.Connection.RollbackTrans;
CDS_Main.EnableControls;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>쳣!', '<27><>ʾ', 0);
end;
InitGrid();
end;
procedure TfrmPBJCList.Panel2Click(Sender: TObject);
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select A.* ');
sql.Add(',lidan=(select lidan from JYOrder_Main X where X.orderNo=A.QCorderNo) ');
sql.Add(',YWY=(select YWY from JYOrder_Main X where X.orderNo=A.QCorderNo) ');
sql.Add(',DJType=(select DJType from JYOrder_Main X where X.orderNo=A.QCorderNo) ');
sql.Add(' from CK_SXPB_CR A');
sql.Add(' where isnull(CKName,'''')=''<27><><EFBFBD>첼'' and CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
if CheckBox1.Checked then
begin
sql.Add(' and isnull(DJJS,0)=0 ');
end;
if chkdate.Checked then
begin
sql.Add(' and A.DJDate>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
sql.Add(' and A.DJDate<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1))));
end
else
begin
sql.Add(' and A.CRTime>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
sql.Add(' and A.CRTime<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1))));
end;
sql.Add(' and ABS(A.sunhao)<=2');
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmPBJCList.Panel3Click(Sender: TObject);
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select A.* ');
sql.Add(',lidan=(select lidan from JYOrder_Main X where X.orderNo=A.QCorderNo) ');
sql.Add(',YWY=(select YWY from JYOrder_Main X where X.orderNo=A.QCorderNo) ');
sql.Add(',DJType=(select DJType from JYOrder_Main X where X.orderNo=A.QCorderNo) ');
sql.Add(' from CK_SXPB_CR A');
sql.Add(' where isnull(CKName,'''')=''<27><><EFBFBD>첼'' and CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
if CheckBox1.Checked then
begin
sql.Add(' and isnull(DJJS,0)=0 ');
end;
if chkdate.Checked then
begin
sql.Add(' and A.DJDate>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
sql.Add(' and A.DJDate<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1))));
end
else
begin
sql.Add(' and A.CRTime>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
sql.Add(' and A.CRTime<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1))));
end;
sql.Add(' and ABS(A.sunhao)>2 and ABS(A.sunhao)<=5 ');
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmPBJCList.Panel4Click(Sender: TObject);
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select A.* ');
sql.Add(',lidan=(select lidan from JYOrder_Main X where X.orderNo=A.QCorderNo) ');
sql.Add(',YWY=(select YWY from JYOrder_Main X where X.orderNo=A.QCorderNo) ');
sql.Add(',DJType=(select DJType from JYOrder_Main X where X.orderNo=A.QCorderNo) ');
sql.Add(' from CK_SXPB_CR A');
sql.Add(' where isnull(CKName,'''')=''<27><><EFBFBD>첼'' and CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
if CheckBox1.Checked then
begin
sql.Add(' and isnull(DJJS,0)=0 ');
end;
if chkdate.Checked then
begin
sql.Add(' and A.DJDate>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
sql.Add(' and A.DJDate<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1))));
end
else
begin
sql.Add(' and A.CRTime>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime))));
sql.Add(' and A.CRTime<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1))));
end;
sql.Add(' and ABS(A.sunhao)>5 ');
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmPBJCList.V1Column27CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean);
begin
if ARow1.Values[TV1Column4.Index] = ARow2.Values[TV1Column4.Index] then
AAreEqual := True
else
AAreEqual := False;
end;
procedure TfrmPBJCList.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 TfrmPBJCList.SPcodeChange(Sender: TObject);
begin
TBFind.Click();
end;
end.