D7myYunxiang/成品仓库(FinishedClothWarehouse.dll)/U_CKProductBCPInList.pas
DESKTOP-E401PHE\Administrator 1011cb7292 1
2025-01-20 13:04:03 +08:00

373 lines
11 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_CKProductBCPInList;
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, MovePanel, Math, Clipbrd,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator;
type
TfrmCKProductBCPInList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBExport: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
Label3: TLabel;
Label4: TLabel;
MPRTCodeName: TEdit;
Label2: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
CDS_Main: TClientDataSet;
Label5: TLabel;
MLOrderNo: TEdit;
Label6: TLabel;
MJID: TEdit;
Label7: TLabel;
CPType: TComboBox;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column1: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v2Column5: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
Label10: TLabel;
RM1: TRMGridReport;
RMXLSExport1: TRMXLSExport;
TBRKCX: TToolButton;
v1Column4: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
v1Column16: TcxGridDBColumn;
v1Column18: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
KHName: TEdit;
Label14: TLabel;
v1Column22: TcxGridDBColumn;
begtime: TDateTimePicker;
endTime: TDateTimePicker;
MovePanel2: TMovePanel;
Panel6: TPanel;
BTLP: TButton;
BTNP: TButton;
TCBNOR: TComboBox;
IsJYTime: TCheckBox;
JYColor: TEdit;
GangNo: TEdit;
ToolButton1: TToolButton;
RMDBPRT: TRMDBDataSet;
LBCPAP: TLabel;
Label1: TLabel;
Tv1Column1: TcxGridDBColumn;
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 MLOrderNoKeyPress(Sender: TObject; var Key: Char);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure TBRKCXClick(Sender: TObject);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure BTNPClick(Sender: TObject);
procedure BTLPClick(Sender: TObject);
procedure TCBNORChange(Sender: TObject);
procedure CPTypeChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
private
canshu2: string;
CurrentPage, RecordsNumber: Integer;
procedure InitGrid();
{ Private declarations }
public
canshu1: string;
FLeft, FTop: Integer;
{ Public declarations }
end;
//var
// frmCKProductBCPInList: TfrmCKProductBCPInList;
implementation
uses
U_DataLink, U_Fun, U_SysLogHelp, U_RTFun;
{$R *.dfm}
procedure TfrmCKProductBCPInList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmCKProductBCPInList.FormCreate(Sender: TObject);
begin
EndDate.DateTime := SGetServerDateTime(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime - 20;
end;
procedure TfrmCKProductBCPInList.InitGrid();
var
fwhere, Pwhere: string;
begin
MovePanel2.Left := (self.Width - MovePanel2.Width) div 2;
MovePanel2.Visible := True;
MovePanel2.Refresh;
Pwhere := SGetFilters(Panel1, 1, 2);
if IsJYTime.Checked then
begin
fwhere := ' where CRTime>' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime));
fwhere := fwhere + ' and CRTime<=' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1));
if trim(Pwhere) <> '' then
fwhere := fwhere + ' and ' + trim(Pwhere);
end
else
begin
if trim(Pwhere) <> '' then
fwhere := fwhere + ' where ' + trim(Pwhere);
end;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select top ' + inttostr(RecordsNumber) + ' * from ');
sql.Add('(select rownumber=cast((row_number() over(order by AA.filltime desc)) as int) ');
sql.Add(',TotalCount=cast((COUNT(1) OVER()) AS int)');
sql.Add(',* from (select A.* ');
sql.Add(' ,B.MLOrderNo,B.KHName,B.MLCodeName,B.OrdDate ');
sql.Add(' ,C.MLColor,C.MLColorNo,C.MLHX,JYTime=D.Filltime');
sql.Add(' from CK_MLCP_CR A inner join ML_OrderMainNew B on A.MainId=B.NewMLID inner join ML_OrderSubidNew C on A.SubId=C.NewSubid ');
sql.Add(' inner join JTJY_New D on A.MJID=D.JYID ');
sql.Add(' where A.CRFlag=''<27><><EFBFBD><EFBFBD>'' ) AA');
sql.Add(fwhere + ') temp_row');
sql.Add(' where rownumber> ' + inttostr((CurrentPage - 1) * RecordsNumber));
// ShowMessage(SQL.Text);
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber));
MovePanel2.Visible := false;
finally
ADOQueryMain.EnableControls;
MovePanel2.Visible := false;
end;
end;
procedure TfrmCKProductBCPInList.TBRafreshClick(Sender: TObject);
begin
CurrentPage := 1;
InitGrid();
end;
procedure TfrmCKProductBCPInList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmCKProductBCPInList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>YX' + canshu1, Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
Close;
end;
procedure TfrmCKProductBCPInList.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>YX' + canshu1, Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
CurrentPage := 1;
RecordsNumber := 500;
canshu2 := Trim(DParameters2);
end;
procedure TfrmCKProductBCPInList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid2);
end;
procedure TfrmCKProductBCPInList.MLOrderNoKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPage := 1;
InitGrid();
end;
end;
procedure TfrmCKProductBCPInList.N1Click(Sender: TObject);
begin
SelOKNoFilter(Tv1, True);
end;
procedure TfrmCKProductBCPInList.N2Click(Sender: TObject);
begin
SelOKNoFilter(Tv1, False);
end;
procedure TfrmCKProductBCPInList.TBRKCXClick(Sender: TObject);
var
strsql: string;
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫִ<D2AA>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
BegDate.SetFocus;
MovePanel2.Visible := True;
MovePanel2.Refresh;
try
ADOQueryCmd.Connection.BeginTrans;
with CDS_Main do
begin
while Locate('SSel', True, []) do
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_MLCP_CR where MJID=' + QuotedStr(Trim(CDS_Main.fieldbyname('MJID').AsString)));
sql.Add('and CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
Open;
end;
if ADOQueryTemp.RecordCount >= 1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
MovePanel2.Visible := False;
Application.MessageBox('<27>ѳ<EFBFBD><D1B3><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' Update CK_MLCP_CR Set CRFlag=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'',CRType='''',CRTime=NULL,RKOrdNo='''' ');
sql.Add(' where BCID=''' + Trim(CDS_Main.fieldbyname('BCID').AsString) + ''' ');
sql.Add(' and CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(' Update JTJY_New Set RKType='<><CEB4><EFBFBD><EFBFBD>'' where exists(select MJID from CK_MLCP_CR X where X.MJID=JTJY_New.JYID and X.CRFlag=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' )');
sql.Add(' and JTJY_New.RKType<>'<><CEB4><EFBFBD><EFBFBD>'' ');
ExecSQL;
end;
strsql := '<27><>ID<49><44>' + trim(CDS_Main.FieldByName('MJID').AsString) + ' <20><><EFBFBD><EFBFBD>ţ<EFBFBD>' + trim(CDS_Main.FieldByName('RKOrdNo').AsString);
with ADOQueryCmd do
begin
Close;
sql.Clear;
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><E2B3B7>')));
sql.Add(',' + quotedstr(trim(strsql)));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
ExecSQL;
end;
CDS_Main.Delete;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
MovePanel2.Visible := False;
except
ADOQueryCmd.Connection.RollbackTrans;
MovePanel2.Visible := False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
end;
end;
procedure TfrmCKProductBCPInList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmCKProductBCPInList.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FLeft := X;
FTop := Y;
end;
procedure TfrmCKProductBCPInList.BTNPClick(Sender: TObject);
begin
if CurrentPage < CDS_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then
CurrentPage := CurrentPage + 1;
InitGrid();
end;
procedure TfrmCKProductBCPInList.BTLPClick(Sender: TObject);
begin
if CurrentPage > 1 then
CurrentPage := CurrentPage - 1;
InitGrid();
end;
procedure TfrmCKProductBCPInList.TCBNORChange(Sender: TObject);
begin
RecordsNumber := StrToInt(TCBNOR.Text);
CurrentPage := 1;
InitGrid();
end;
procedure TfrmCKProductBCPInList.CPTypeChange(Sender: TObject);
begin
CurrentPage := 1;
InitGrid();
end;
procedure TfrmCKProductBCPInList.ToolButton1Click(Sender: TObject);
begin
frmSysLogHelp := TfrmSysLogHelp.create(self);
with frmSysLogHelp do
begin
fModel := self.caption;
// facction:='<27><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>ɾ<EFBFBD><C9BE>';
showmodal;
free;
end;
end;
end.