D7szYidui/成品仓库(FinishedClothWarehouse.dll)/U_FinishedClothStatistical.pas
DESKTOP-E401PHE\Administrator ef99fc8b5e 移交
2025-07-19 09:32:10 +08:00

526 lines
14 KiB
ObjectPascal
Raw 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_FinishedClothStatistical;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System,
RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, MovePanel, cxTextEdit,
cxContainer, cxCurrencyEdit, BtnEdit, RM_e_main, RM_e_htm, RM_e_Graphic,
RM_e_Jpeg, RM_e_txt, RM_e_csv, RM_E_llPDF, Math, Clipbrd, cxPC, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxSkinsCore,
dxSkinsDefaultPainters, dxSkinscxPCPainter;
type
TfrmFinishedClothStatistical = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DS_Main: TDataSource;
conNO: TEdit;
Label7: TLabel;
Label8: TLabel;
v1Column4: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
Label4: TLabel;
JYType: TComboBox;
Label5: TLabel;
KHName: TEdit;
v1Column19: TcxGridDBColumn;
v1Column20: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
RM2: TRMGridReport;
RMDB_Main: TRMDBDataSet;
ADOQueryPrint: TADOQuery;
MovePanel2: TMovePanel;
P_Code: TEdit;
v1Column32: TcxGridDBColumn;
RMXLSExport1: TRMXLSExport;
IsJYTime: TCheckBox;
N3: TMenuItem;
X1: TMenuItem;
Order_Main: TClientDataSet;
Filler: TEdit;
v1Column1: TcxGridDBColumn;
Panel3: TPanel;
Panel2: TPanel;
Panel4: TPanel;
cxTabControl1: TcxTabControl;
Panel6: TPanel;
Label1: TLabel;
LBCPAP: TLabel;
BTLP: TButton;
BTNP: TButton;
TCBNOR: TComboBox;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
P_CodeName: TEdit;
APID: TEdit;
lab1: TLabel;
ToolButton1: TToolButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure MJIDKeyPress(Sender: TObject; var Key: Char);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure conNOKeyPress(Sender: TObject; var Key: Char);
procedure MJStr2Change(Sender: TObject);
procedure KHConNOKeyPress(Sender: TObject; var Key: Char);
procedure RKOrdIDKeyPress(Sender: TObject; var Key: Char);
procedure N3Click(Sender: TObject);
procedure X1Click(Sender: TObject);
procedure TCBNORChange(Sender: TObject);
procedure BTLPClick(Sender: TObject);
procedure BTNPClick(Sender: TObject);
procedure Tv1DblClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure KHNameChange(Sender: TObject);
private
DQdate: TDateTime;
FLeft, FTop: Integer;
CurrentPage, RecordsNumber: Integer;
procedure InitGrid();
procedure InitForm();
function Savedata(): Boolean;
{ Private declarations }
public
FFInt: Integer;
canshu1: string;
procedure SetStatus();
{ Public declarations }
end;
implementation
uses
U_DataLink, U_Fun, U_MJEdit, U_ZDYHelp, U_SysLogHelp;
{$R *.dfm}
procedure TfrmFinishedClothStatistical.SetStatus();
var
i: Integer;
begin
case cxTabControl1.TabIndex of
0:
begin
ClearOrHideControls(Panel1, '0', True, True);
ClearOrHideControls(Panel1, '1', True, False);
for i := 0 to tv1.ColumnCount - 1 do
begin
tv1.Columns[i].Visible := false;
end;
IsVisibleTV(Panel1, TV1, '0', True);
v1Column10.Visible := True;
v1Column1.Visible := True;
end;
1:
begin
for i := 0 to tv1.ColumnCount - 1 do
begin
tv1.Columns[i].Visible := True;
end;
v1Column1.Visible := False;
ClearOrHideControls(Panel1, '0', False, True);
ClearOrHideControls(Panel1, '1', False, True);
end;
end;
end;
procedure TfrmFinishedClothStatistical.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmFinishedClothStatistical.FormCreate(Sender: TObject);
begin
cxgrid1.Align := alClient;
DQdate := SGetServerDate(ADOQueryTemp);
end;
procedure TfrmFinishedClothStatistical.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(self.Caption, Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmFinishedClothStatistical.InitGrid();
var
fwhere, Pwhere: string;
begin
MovePanel2.Left := (self.Width - MovePanel2.Width) div 2;
MovePanel2.Visible := True;
MovePanel2.Refresh;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
case cxTabControl1.TabIndex of
0: /////////////////////////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//////////////////////////////
begin
Pwhere := SGetFilters(Panel1, 1, 2);
if trim(Pwhere) <> '' then
fwhere := fwhere + ' where ' + trim(Pwhere);
sql.Add('exec P_CPCK_Get_YanBuHZ ');
sql.add('@Begdate=' + QuotedStr(Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime))));
sql.Add(',@enddate=' + QuotedStr(Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1))));
sql.Add(',@WSql=' + QuotedStr(fwhere) + ' ');
end;
1: /////////////////////////<2F><>ϸ//////////////////////////////
begin
fwhere := ' where Filltime>' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime));
fwhere := fwhere + ' and Filltime<=' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1));
Pwhere := SGetFilters(Panel1, 1, 2);
if trim(Pwhere) <> '' then
fwhere := fwhere + ' and ' + trim(Pwhere);
sql.Add('exec P_CPCK_Get_YanBuList ');
sql.Add('@pageIndex=' + inttostr(CurrentPage));
sql.Add(',@pageSize=' + inttostr(RecordsNumber));
sql.Add(',@criteria= ' + quotedstr(fwhere));
end;
end;
// ShowMessage(SQL.Text);
Open;
end;
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
if cxTabControl1.TabIndex = 1 then
LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(Order_Main.FieldByName('TotalCount').AsInteger / RecordsNumber));
MovePanel2.Visible := false;
finally
ADOQueryMain.EnableControls;
MovePanel2.Visible := false;
end;
end;
procedure TfrmFinishedClothStatistical.InitForm();
var
fsj: string;
begin
ReadCxGrid(self.Caption, Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime;
InitGrid();
end;
procedure TfrmFinishedClothStatistical.TBFindClick(Sender: TObject);
var
fsj, fwhere: string;
begin
end;
procedure TfrmFinishedClothStatistical.TBRafreshClick(Sender: TObject);
begin
BegDate.SetFocus;
SetStatus();
InitGrid();
end;
procedure TfrmFinishedClothStatistical.FormShow(Sender: TObject);
begin
CurrentPage := 1;
RecordsNumber := 500;
SetStatus();
InitForm();
end;
procedure TfrmFinishedClothStatistical.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FLeft := X;
FTop := Y;
end;
procedure TfrmFinishedClothStatistical.N1Click(Sender: TObject);
begin
SelOKNo(Order_Main, True);
end;
procedure TfrmFinishedClothStatistical.N2Click(Sender: TObject);
begin
SelOKNo(Order_Main, False);
end;
function TfrmFinishedClothStatistical.Savedata(): Boolean;
var
maxno, LLID: string;
HXPS: Integer;
HXQty, HXMQty: Double;
begin
HXPS := 0;
HXQty := 0;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select Top 1 * from Contract_Cloth_LL where OrdSubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + '''');
sql.Add(' and FirstName=''' + Trim(Order_Main.fieldbyname('AOrddefstr4').AsString) + '''');
Open;
end;
LLID := Trim(ADOQueryTemp.fieldbyname('LLID').AsString);
if Trim(LLID) = '' then
begin
Result := False;
Application.MessageBox(<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ļӹ<C4BC><D3B9><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
if GetLSNo(ADOQueryCmd, maxno, 'HX', 'Contract_Cloth_BefChkHX', 2, 1) = False then
begin
Result := False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
with Order_Main do
begin
First;
while not Eof do
begin
if Order_Main.FieldByName('SSel').AsBoolean = True then
begin
HXPS := HXPS + 1;
HXQty := HXQty + Order_Main.FieldByName('MJLen').Value;
end;
Next;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('');
Open;
end;
except
end;
end;
procedure TfrmFinishedClothStatistical.MJIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPage := 1;
InitGrid();
end;
end;
procedure TfrmFinishedClothStatistical.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
//Clipboard.SetTextBuf(PChar(Trim(Order_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmFinishedClothStatistical.conNOKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPage := 1;
InitGrid();
end;
end;
procedure TfrmFinishedClothStatistical.MJStr2Change(Sender: TObject);
begin
CurrentPage := 1;
InitGrid();
end;
procedure TfrmFinishedClothStatistical.KHConNOKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPage := 1;
InitGrid();
end;
end;
procedure TfrmFinishedClothStatistical.RKOrdIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPage := 1;
InitGrid();
end;
end;
procedure TfrmFinishedClothStatistical.N3Click(Sender: TObject);
var
SSubId, SGangNo: string;
begin
with Order_Main do
begin
SSubId := trim(FieldByName('SubId').AsString);
Order_Main.DisableControls;
first;
while not eof do
begin
if SSubId = trim(FieldByName('SubId').AsString) then
begin
edit;
FieldByName('SSel').value := true;
Post;
end
else
begin
edit;
FieldByName('SSel').value := false;
Post;
end;
Next;
end;
Order_Main.Locate('SubId', VarArrayOf([SSubId]), []);
Order_Main.EnableControls;
end;
end;
procedure TfrmFinishedClothStatistical.X1Click(Sender: TObject);
var
str, SSubId: string;
ZChiShu, DQChiShu: integer;
ISSel: boolean;
begin
ISSel := true;
SSubId := trim(Order_Main.FieldByName('SubId').AsString);
str := '';
if InputQuery('ѡ<><D1A1>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', str) then
begin
ZChiShu := strtointdef(str, 0);
if ZChiShu <= 0 then
exit;
with Order_Main do
begin
Order_Main.DisableControls;
first;
DQChiShu := 0;
while not eof do
begin
if SSubId = trim(FieldByName('SubId').AsString) then
begin
edit;
FieldByName('SSel').value := ISSel;
DQChiShu := DQChiShu + 1;
Post;
end
else
begin
edit;
FieldByName('SSel').value := false;
Post;
end;
if DQChiShu = ZChiShu then
ISSel := false;
Next;
end;
Order_Main.Locate('SubId', VarArrayOf([SSubId]), []);
Order_Main.EnableControls;
end;
end;
end;
procedure TfrmFinishedClothStatistical.TCBNORChange(Sender: TObject);
begin
RecordsNumber := StrToInt(TCBNOR.Text);
CurrentPage := 1;
InitGrid();
end;
procedure TfrmFinishedClothStatistical.BTLPClick(Sender: TObject);
begin
if CurrentPage > 1 then
CurrentPage := CurrentPage - 1;
InitGrid();
end;
procedure TfrmFinishedClothStatistical.BTNPClick(Sender: TObject);
begin
if CurrentPage < Order_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then
CurrentPage := CurrentPage + 1;
InitGrid();
end;
procedure TfrmFinishedClothStatistical.Tv1DblClick(Sender: TObject);
var
Tabint: integer;
begin
Tabint := cxTabControl1.TabIndex;
case Tabint of
0:
begin
AssignmentControls(Panel1, Order_Main, '0');
cxTabControl1.TabIndex := 1;
end;
end;
end;
procedure TfrmFinishedClothStatistical.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
JYType.text := '';
InitGrid();
end;
procedure TfrmFinishedClothStatistical.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
SelExportData(Tv1, ADOQueryMain, '<27><EFBFBD><E9B2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3>');
end;
procedure TfrmFinishedClothStatistical.KHNameChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
end;
end;
end.