D7szYidui/成品仓库(FinishedClothWarehouse.dll)/U_FinishedClothXZhou.pas

593 lines
16 KiB
ObjectPascal
Raw Normal View History

2025-07-19 09:32:10 +08:00
unit U_FinishedClothXZhou;
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
TfrmFinishedClothXZhou = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DS_Main: TDataSource;
v1Column4: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
RM2: TRMGridReport;
RMDB_Main: TRMDBDataSet;
ADOQueryPrint: TADOQuery;
MovePanel2: TMovePanel;
v1Column32: TcxGridDBColumn;
RMXLSExport1: TRMXLSExport;
N3: TMenuItem;
X1: TMenuItem;
Order_Main: TClientDataSet;
v1Column1: TcxGridDBColumn;
Panel3: TPanel;
Panel2: TPanel;
Panel4: TPanel;
cxTabControl1: TcxTabControl;
Panel6: TPanel;
Label1: TLabel;
LBCPAP: TLabel;
BTLP: TButton;
BTNP: TButton;
TCBNOR: TComboBox;
v1Column2: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
Panel1: TPanel;
Label7: TLabel;
Label5: TLabel;
lab1: TLabel;
Label2: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
UserName: TEdit;
P_Code: TEdit;
IsJYTime: TCheckBox;
P_CodeName: TEdit;
Label3: TLabel;
CarNo: TEdit;
Label4: TLabel;
WBCode: TEdit;
v1Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
Label6: TLabel;
KHName: TEdit;
Label8: TLabel;
ConNo: TEdit;
ClType: TEdit;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Label9: TLabel;
chejian: TEdit;
Tv1Column3: TcxGridDBColumn;
Label10: TLabel;
ZKID: TEdit;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
Panel5: TPanel;
Label11: TLabel;
Label12: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
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 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 APIDKeyPress(Sender: TObject; var Key: Char);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
DQdate: TDateTime;
FLeft, FTop: Integer;
FDCheG, FPCode: string;
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 TfrmFinishedClothXZhou.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 TfrmFinishedClothXZhou.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmFinishedClothXZhou.FormCreate(Sender: TObject);
begin
cxgrid1.Align := alClient;
DQdate := SGetServerDate(ADOQueryTemp);
end;
procedure TfrmFinishedClothXZhou.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(self.Caption, Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmFinishedClothXZhou.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_CK_Cloth_XZHZ ');
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 CRTime>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime));
fwhere := fwhere + ' and CRTime<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1));
fwhere := fwhere + ' and ClType = ''<27><><EFBFBD><EFBFBD>'' ';
Pwhere := SGetFilters(Panel1, 1, 2);
if trim(Pwhere) <> '' then
fwhere := fwhere + ' and ' + trim(Pwhere);
sql.Add('exec P_CK_Cloth_XZList ');
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 TfrmFinishedClothXZhou.InitForm();
var
fsj: string;
begin
ReadCxGrid(self.Caption, Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime;
end;
procedure TfrmFinishedClothXZhou.TBFindClick(Sender: TObject);
var
fsj, fwhere: string;
begin
end;
procedure TfrmFinishedClothXZhou.TBRafreshClick(Sender: TObject);
begin
BegDate.SetFocus;
SetStatus();
InitGrid();
end;
procedure TfrmFinishedClothXZhou.FormShow(Sender: TObject);
begin
CurrentPage := 1;
RecordsNumber := 500;
InitForm();
SetStatus();
InitGrid();
end;
procedure TfrmFinishedClothXZhou.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FLeft := X;
FTop := Y;
end;
procedure TfrmFinishedClothXZhou.N1Click(Sender: TObject);
begin
SelOKNo(Order_Main, True);
end;
procedure TfrmFinishedClothXZhou.N2Click(Sender: TObject);
begin
SelOKNo(Order_Main, False);
end;
function TfrmFinishedClothXZhou.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 TfrmFinishedClothXZhou.MJIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPage := 1;
InitGrid();
end;
end;
procedure TfrmFinishedClothXZhou.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 TfrmFinishedClothXZhou.MJStr2Change(Sender: TObject);
begin
CurrentPage := 1;
InitGrid();
end;
procedure TfrmFinishedClothXZhou.KHConNOKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPage := 1;
InitGrid();
end;
end;
procedure TfrmFinishedClothXZhou.RKOrdIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
CurrentPage := 1;
InitGrid();
end;
end;
procedure TfrmFinishedClothXZhou.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 TfrmFinishedClothXZhou.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 TfrmFinishedClothXZhou.TCBNORChange(Sender: TObject);
begin
RecordsNumber := StrToInt(TCBNOR.Text);
CurrentPage := 1;
InitGrid();
end;
procedure TfrmFinishedClothXZhou.BTLPClick(Sender: TObject);
begin
if CurrentPage > 1 then
CurrentPage := CurrentPage - 1;
InitGrid();
end;
procedure TfrmFinishedClothXZhou.BTNPClick(Sender: TObject);
begin
if CurrentPage < Order_Main.FieldByName('TotalCount').AsInteger / RecordsNumber then
CurrentPage := CurrentPage + 1;
InitGrid();
end;
procedure TfrmFinishedClothXZhou.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 TfrmFinishedClothXZhou.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
InitGrid();
end;
procedure TfrmFinishedClothXZhou.APIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
end;
end;
procedure TfrmFinishedClothXZhou.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3>', cxGrid1);
end;
procedure TfrmFinishedClothXZhou.ToolButton2Click(Sender: TObject);
begin
if cxTabControl1.TabIndex = 0 then
begin
Exit;
end;
Panel5.Visible := True;
Edit2.Text := Order_Main.fieldbyname('CarNo').AsString;
end;
procedure TfrmFinishedClothXZhou.Button1Click(Sender: TObject);
begin
if Edit1.Text = '' then
begin
Application.MessageBox('<27><>̨<EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.add('update CK_YgCl set carno= ' + QuotedStr(Trim(Edit1.Text)));
sql.add('where clid=''' + trim(Order_Main.fieldbyname('clid').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>޸Ļ<DEB8>̨<EFBFBD><CCA8>')));
sql.Add(',' + quotedstr(trim('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' + trim(Order_Main.FieldByName('clid').AsString) + ' ԭ<><D4AD>̨<EFBFBD>ţ<EFBFBD>' + trim(edit2.Text) + ' <20>ֻ<EFBFBD>̨<EFBFBD>ţ<EFBFBD>' + trim(edit1.Text))));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
execsql;
end;
InitGrid();
Panel5.Visible := False;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmFinishedClothXZhou.Button2Click(Sender: TObject);
begin
Panel5.Visible := false;
end;
end.