D7szYidui/经轴仓库(Warehouse.dll)/U_EquipmentRk.pas
DESKTOP-E401PHE\Administrator ef99fc8b5e 移交
2025-07-19 09:32:10 +08:00

455 lines
13 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_EquipmentRk;
interface
uses
Windows, Messages, SysUtils, StrUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, MMSystem,
cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxButtonEdit, cxDropDownEdit,
DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxTextEdit, BtnEdit,
cxCheckBox, cxCalendar;
type
TfrmEquipmentRk = class(TForm)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1P_CodeName: TcxGridDBColumn;
v1PRTSpec: TcxGridDBColumn;
v1Qty: TcxGridDBColumn;
v1Note: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
ADOQueryCmd: TADOQuery;
ADOQueryTmp: TADOQuery;
DataSource1: TDataSource;
CDS_Main: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
v1P_Code: TcxGridDBColumn;
Label6: TLabel;
v1Column5: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
v1Column1: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure v1QtyPropertiesEditValueChanged(Sender: TObject);
procedure v1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
procedure v1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure v1Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
private
procedure InitGrid();
function savedate(): Boolean;
function CheckData(): Boolean;
{ Private declarations }
public
fkeyNO: string;
FType: integer;
{ Public declarations }
end;
var
frmEquipmentRk: TfrmEquipmentRk;
implementation
uses
U_DataLink, U_Fun10, U_ZDYHelp, U_ZdyAttachment, U_ZdyAttachGYS,
U_ClothSCHZListSel;
{$R *.dfm}
function TfrmEquipmentRk.CheckData(): Boolean;
begin
try
if cds_main.IsEmpty then
raise Exception.Create('<27><>Ʒ<EFBFBD><C6B7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
if cds_main.Locate('CRType', NULL, []) then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
if cds_main.Locate('CRType', '', []) then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
if cds_main.Locate('fromFactoryName', NULL, []) then
raise Exception.Create('<27><><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
if cds_main.Locate('fromFactoryName', '', []) then
raise Exception.Create('<27><><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
if cds_main.Locate('FactoryName', NULL, []) then
raise Exception.Create('<27><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
if cds_main.Locate('FactoryName', '', []) then
raise Exception.Create('<27><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
if cds_main.Locate('Rollnum', NULL, []) then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
if cds_main.Locate('Rollnum', 0, []) then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30>');
if cds_main.Locate('P_CodeName', NULL, []) then
raise Exception.Create('<27><EFBFBD><E8B1B8><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
if cds_main.Locate('P_CodeName', '', []) then
raise Exception.Create('<27><EFBFBD><E8B1B8><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
Result := True;
except
Result := false;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
function TfrmEquipmentRk.savedate(): Boolean;
var
MaxNo: string;
begin
result := false;
try
ADOQueryCmd.Connection.BeginTrans;
CDS_Main.DisableControls;
CDS_Main.First;
with CDS_Main do
begin
while not eof do
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CK_Equipment_CR');
sql.Add('where CRNO=' + quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString)));
open;
end;
if ADOQueryCmd.IsEmpty then
begin
if GetLSNo(ADOQueryTmp, MaxNo, 'ER', 'CK_Equipment_CR', 3, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('Filler').Value := trim(DName);
ADOQueryCmd.FieldByName('FillTime').Value := dateTimetostr(SGetServerDateTime(adoqueryTmp));
end
else
begin
MaxNo := Trim(CDS_Main.FieldByName('CRNO').AsString);
ADOQueryCmd.Edit;
ADOQueryCmd.FieldByName('editer').Value := trim(dName);
ADOQueryCmd.FieldByName('editTime').Value := SGetServerDateTime(adoqueryTmp);
end;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ADOQueryCmd.FieldByName('CRNO').Value := trim(MaxNo);
ADOQueryCmd.FieldByName('InoutNo').Value := trim(MaxNo);
ADOQueryCmd.FieldByName('CKName').Value := trim('<27>豸');
ADOQueryCmd.FieldByName('CRFlag').Value := '<27><><EFBFBD><EFBFBD>';
ADOQueryCmd.FieldByName('CRQtyFlag').Value := 1;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ
RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_Main, 'CK_Equipment_CR', 0);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
ADOQueryCmd.FieldByName('qty').Value := fieldbyname('qty').Value;
ADOQueryCmd.FieldByName('frommainID').Value := trim(fieldbyname('frommainID').AsString);
ADOQueryCmd.FieldByName('fromsubID').Value := trim(fieldbyname('fromsubID').AsString);
ADOQueryCmd.Post;
//<2F>жϿ<D0B6><CFBF><EFBFBD>
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('exec P_Up_Equipment ' + quotedstr(trim(MaxNo)));
Open;
end;
if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>' then
begin
CDS_Main.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
CDS_Main.Edit;
CDS_Main.FieldByName('CRNO').Value := Trim(MaxNo);
CDS_Main.FieldByName('InoutNo').Value := Trim(MaxNo);
CDS_Main.Post;
Next;
end;
end;
CDS_Main.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
result := true;
except
CDS_Main.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
end;
end;
procedure TfrmEquipmentRk.InitGrid();
var
i: Integer;
begin
try
with adoqueryTmp do
begin
close;
sql.Clear;
sql.Add('select A.* ');
SQL.Add(' from CK_WarpRoller_CR A');
sql.Add('where A.CRNO=' + quotedstr(trim(fkeyNO)));
open;
end;
SCreateCDS20(adoqueryTmp, CDS_Main);
SInitCDSData20(adoqueryTmp, CDS_Main);
if not CDS_Main.IsEmpty then
begin
end;
finally
end;
end;
procedure TfrmEquipmentRk.FormDestroy(Sender: TObject);
begin
frmEquipmentRk := nil;
end;
procedure TfrmEquipmentRk.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cahide;
end;
procedure TfrmEquipmentRk.FormShow(Sender: TObject);
begin
readCxGrid(trim(self.Caption), Tv1, '<27>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>');
InitGrid();
end;
procedure TfrmEquipmentRk.TBSaveClick(Sender: TObject);
begin
if CheckData() = false then
exit;
if savedate() then
begin
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
ModalResult := 1;
end
else
begin
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
end;
end;
procedure TfrmEquipmentRk.TBCloseClick(Sender: TObject);
begin
writeCxGrid(trim(self.Caption), Tv1, '<27>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>');
close;
end;
procedure TfrmEquipmentRk.v1QtyPropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_Main do
begin
Edit;
FieldByName(FFieldName).Value := Trim(mvalue);
FieldbyName('Money').Value := format('%.2f', [FieldByName('Qty').AsFloat * FieldByName('Price').AsFloat]);
Post;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmEquipmentRk.v1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
frmClothSCHZListSel := TfrmClothSCHZListSel.Create(Application);
with frmClothSCHZListSel do
begin
if showmodal = 1 then
begin
CDS_Main.Edit;
CDS_Main.fieldbyname('FromOrderNo').Value := trim(Order_Main.fieldbyname('OrderNo').AsString);
CDS_Main.fieldbyname('FromMainID').Value := trim(Order_Main.fieldbyname('MainID').AsString);
CDS_Main.fieldbyname('FromsubID').Value := trim(Order_Main.fieldbyname('subID').AsString);
CDS_Main.fieldbyname('P_Code').Value := trim(Order_Main.fieldbyname('C_Code').AsString);
CDS_Main.fieldbyname('P_CodeName').Value := trim(Order_Main.fieldbyname('C_CodeName').AsString);
CDS_Main.fieldbyname('P_SPEC').Value := trim(Order_Main.fieldbyname('C_Spec').AsString);
CDS_Main.fieldbyname('P_Color').Value := trim(Order_Main.fieldbyname('C_Color').AsString);
CDS_Main.fieldbyname('P_MF').Value := trim(Order_Main.fieldbyname('MF').AsString);
CDS_Main.fieldbyname('P_KZ').Value := trim(Order_Main.fieldbyname('KZ').AsString);
CDS_Main.Post;
end;
free;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmEquipmentRk.Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
var
FValue: string;
FBounds: TRect;
begin
if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
begin
FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1);
FBounds := AViewInfo.Bounds;
ACanvas.FillRect(FBounds);
ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1);
InflateRect(FBounds, -1, -1);
ACanvas.Font.Color := clBlack;
ACanvas.Brush.Style := bsClear;
ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop);
ADone := True;
end;
end;
procedure TfrmEquipmentRk.v1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'SheBeiName';
flagname := '<27><><EFBFBD><EFBFBD>';
if ShowModal = 1 then
begin
Self.CDS_Main.Edit;
Self.CDS_Main.FieldByName('P_CodeName').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
Self.CDS_Main.Post;
end;
end;
finally
frmZDYHelp.Free;
end;
self.tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmEquipmentRk.v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application);
with frmZdyAttachGYS do
begin
if ShowModal = 1 then
begin
Self.CDS_Main.Edit;
Self.CDS_Main.fieldbyname('fromFactoryName').Value := Trim(CDS_HZ.fieldbyname('CoName').AsString);
Self.CDS_Main.Post;
end;
end;
finally
frmZdyAttachGYS.Free;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmEquipmentRk.v1Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application);
with frmZdyAttachGYS do
begin
if ShowModal = 1 then
begin
CDS_Main.Edit;
CDS_Main.fieldbyname('FactoryName').Value := Trim(CDS_HZ.fieldbyname('CoName').AsString);
CDS_Main.Post;
end;
end;
finally
frmZdyAttachGYS.Free;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmEquipmentRk.ToolButton4Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
begin
with CDS_Main do
begin
append;
FieldbyName('CPType').Value := '<27><>Ʒ';
FieldbyName('QtyUnit').Value := 'M';
FieldbyName('Rollnum').Value := 0;
FieldbyName('Price').Value := 0;
FieldbyName('qty').Value := 0;
post;
end;
end
else
begin
CopyAddRowCDS(CDS_Main);
with CDS_Main do
begin
edit;
FieldbyName('CRNO').Value := '';
post;
end;
end;
end;
procedure TfrmEquipmentRk.ToolButton3Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
exit;
if Trim(CDS_Main.FieldByName('CRNO').AsString) = '' then
begin
CDS_Main.Delete;
end
else
begin
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CK_Equipment_CR set Valid=''N'' where CRNO=' + quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('exec P_Up_Equipment ' + quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString)));
Open;
end;
if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>' then
begin
CDS_Main.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.Delete;
end;
end;
end.