D10sxYilanbuyi/F02染色计划单/U_DyeTechnicsinput.pas

877 lines
22 KiB
ObjectPascal
Raw Normal View History

2025-06-06 13:56:41 +08:00
unit U_DyeTechnicsinput;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
cxTextEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
dxBarBuiltInMenu, Menus, U_BaseList, dxSkinsCore, dxSkinsDefaultPainters,
2025-06-23 09:39:19 +08:00
U_BaseInput, dxDateRanges, dxScrollbarAnnotations, System.ImageList,
2025-09-08 14:31:40 +08:00
Vcl.ImgList, cxButtons;
2025-06-06 13:56:41 +08:00
type
TfrmDyeTechnicsinput = class(TfrmBaseinput)
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
GPM_2: TcxGridPopupMenu;
DS_2: TDataSource;
CDS_2: TClientDataSet;
DS_1: TDataSource;
CDS_1: TClientDataSet;
ADOQuery1: TADOQuery;
GPM_1: TcxGridPopupMenu;
PM_1: TPopupMenu;
N2: TMenuItem;
cxSplitter1: TcxSplitter;
Panel2: TPanel;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
2025-08-12 13:42:42 +08:00
Tv2PSType: TcxGridDBColumn;
Tv2PSNote: TcxGridDBColumn;
2025-06-06 13:56:41 +08:00
cxGridLevel1: TcxGridLevel;
Panel1: TPanel;
Panel3: TPanel;
cxGrid1: TcxGrid;
TV1: TcxGridDBTableView;
VC_PSNO: TcxGridDBColumn;
cxGridDBColumn1: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
Label5: TLabel;
PSName: TEdit;
ToolButton2: TToolButton;
btnSave: TToolButton;
Panel4: TPanel;
Label2: TLabel;
Label3: TLabel;
DTMName: TEdit;
DTMNo: TEdit;
2025-08-12 13:42:42 +08:00
TV1PSName: TcxGridDBColumn;
Tv3: TcxGridDBTableView;
cxGrid3Level1: TcxGridLevel;
cxGrid3: TcxGrid;
TbDelete: TToolButton;
Tv3PSID: TcxGridDBColumn;
Tv3Column2: TcxGridDBColumn;
CDS_3: TClientDataSet;
DS_3: TDataSource;
2025-09-08 14:31:40 +08:00
TbMoveUp: TcxButton;
btnMoveDown: TcxButton;
TV1DTMID: TcxGridDBColumn;
TV1DTMName: TcxGridDBColumn;
Tv3DTMName: TcxGridDBColumn;
TV1Column1: TcxGridDBColumn;
2025-06-06 13:56:41 +08:00
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure v2Column4PropertiesEditValueChanged(Sender: TObject);
procedure v2Column2PropertiesEditValueChanged(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
procedure ToolButton2Click(Sender: TObject);
procedure Tv2DblClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
2025-08-12 13:42:42 +08:00
procedure cxGridDBColumn1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure TbDeleteClick(Sender: TObject);
procedure Tv3DblClick(Sender: TObject);
procedure PSNameKeyPress(Sender: TObject; var Key: Char);
2025-09-08 14:31:40 +08:00
procedure TbMoveUpClick(Sender: TObject);
procedure btnMoveDownClick(Sender: TObject);
2025-08-12 13:42:42 +08:00
2025-06-06 13:56:41 +08:00
private
{ Private declarations }
procedure InitGrid();
procedure InitGlide();
procedure SetXH();
function SaveData(): boolean;
2025-08-12 13:42:42 +08:00
procedure CheckData();
procedure InitGridSub();
2025-06-06 13:56:41 +08:00
public
2025-09-08 14:31:40 +08:00
fPSIDList: string;
2025-06-06 13:56:41 +08:00
FDTMID, PState: string;
{ Public declarations }
RKFlag, FCYID, fmanage: string;
end;
var
frmDyeTechnicsinput: TfrmDyeTechnicsinput;
implementation
uses
2025-08-12 13:42:42 +08:00
U_DataLink, U_RTFun, U_ZDYHelp, U_DyeProcessSel, U_DyeProcessDefin;
2025-06-06 13:56:41 +08:00
{$R *.dfm}
procedure TfrmDyeTechnicsinput.SetXH();
var
i: Integer;
begin
with CDS_1 do
begin
First;
i := 1;
while not Eof do
begin
with CDS_1 do
begin
Edit;
FieldByName('XHNoTemp').Value := i;
Post;
end;
i := i + 1;
Next;
end;
end;
with CDS_1 do
begin
CDS_1.IndexFieldNames := '';
First;
i := 1;
while not Eof do
begin
with CDS_1 do
begin
Edit;
FieldByName('PSNO').Value := FieldByName('XHNoTemp').AsInteger;
Post;
end;
i := i + 1;
Next;
end;
CDS_1.IndexFieldNames := 'PSNO';
end;
end;
procedure TfrmDyeTechnicsinput.InitGlide();
2025-09-08 14:31:40 +08:00
var
maxNo: string;
2025-06-06 13:56:41 +08:00
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select * FROM Dye_Technics_Main where DTMID=' + quotedstr(FDTMID));
Open;
end;
SCSHData(ADOQueryTemp, Panel4, 2);
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select A.*,B.* FROM Dye_Technics_Sub A inner join Dye_Process B on A.PSId=B.PSId ');
sql.Add(' Where A.DTMID=''' + FDTMID + '''');
SQL.Add(' ORDER BY A.PSNO');
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_1);
SInitCDSData(ADOQueryTemp, CDS_1);
2025-08-12 13:42:42 +08:00
CheckData();
if PState = '<27><><EFBFBD><EFBFBD>' then
begin
CDS_1.First;
while not CDS_1.Eof do
begin
2025-09-08 14:31:40 +08:00
if GetLSNo(ADOQueryCmd, maxNo, 'JP', 'Dye_Process', 4, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('exec P_CopyDyeProcess ');
SQL.Add(' @PSID = ' + QuotedStr(Trim(CDS_1.fieldbyname('PSID').AsString)));
SQL.Add(' ,@maxNo = ' + QuotedStr(Trim(maxNo)));
SQL.Add(' ,@DName = ' + QuotedStr(Trim(DName)));
// SQL.Add(' ,@DTMID = ' + QuotedStr(Trim(DTMID.Text)));
Open;
end;
2025-08-12 13:42:42 +08:00
CDS_1.Edit;
2025-09-08 14:31:40 +08:00
CDS_1.FieldByName('PSID').asstring := maxNo;
CDS_1.FieldByName('DTMID').asstring := '';
2025-08-12 13:42:42 +08:00
CDS_1.Post;
2025-09-08 14:31:40 +08:00
CDS_1.next;
2025-08-12 13:42:42 +08:00
end;
end;
2025-09-08 14:31:40 +08:00
end;
2025-06-06 13:56:41 +08:00
2025-09-08 14:31:40 +08:00
procedure TfrmDyeTechnicsinput.CheckData();
var
maxno: string;
begin
if PState = '<27><><EFBFBD><EFBFBD>' then
begin
DTMNo.Text := '';
DTMName.Text := '';
// FDTMID := '';
if GetLSNo(ADOQueryCmd, maxno, 'GY', 'Dye_Technics_Main', 3, 1) = False then
raise Exception.Create(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>');
FDTMID := maxno;
end;
// if ((PState = '<27><><EFBFBD><EFBFBD>') or (PState = '<27><><EFBFBD><EFBFBD>')) and (FDTMID = '') then
// begin
// if GetLSNo(ADOQueryCmd, maxno, 'GY', 'Dye_Technics_Main', 3, 1) = False then
// raise Exception.Create('ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>');
// FDTMID := maxno;
// DTMID.Text := FDTMID;
// end;
2025-06-06 13:56:41 +08:00
end;
function TfrmDyeTechnicsinput.SaveData(): boolean;
var
DTMPSlist, maxno: string;
begin
result := false;
ADOQueryCmd.Connection.BeginTrans;
try
if Trim(FDTMID) = '' then
begin
if GetLSNo(ADOQueryCmd, maxno, 'GY', 'Dye_Technics_Main', 3, 1) = False then
raise Exception.Create(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>');
end
else
begin
maxno := FDTMID;
end;
2025-09-08 14:31:40 +08:00
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from Dye_Technics_Main where DTMNo=''' + Trim(DTMNo.Text) + '''');
sql.Add(' and DTMID <> ''' + Trim(maxno) + '''');
Open;
end;
if ADOQueryCmd.RecordCount > 0 then
raise Exception.Create('<27><><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD><EFBFBD>ظ<EFBFBD>!');
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from Dye_Technics_Main where DTMName=''' + Trim(DTMName.Text) + '''');
sql.Add(' and DTMID <> ''' + Trim(maxno) + '''');
Open;
end;
if ADOQueryCmd.RecordCount > 0 then
raise Exception.Create('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>!');
with ADOQueryCmd do
begin
Close;
sql.Clear;
// sql.Add('SELECT PSName,COUNT(*) AS DuplicateCount FROM Dye_Process WHERE DTMNo =''' + Trim(DTMNo.Text) + '''');
// sql.Add(' GROUP BY PSName HAVING COUNT(*) > 1 ORDER BY DuplicateCount DESC;');
sql.Add('SELECT STRING_AGG(PSName, '', '') AS DuplicatePSNames,');
sql.Add('COUNT(*) AS TotalPSName');
sql.Add('FROM (SELECT PSName');
sql.Add('FROM Dye_Process');
sql.Add('WHERE DTMID = ''' + Trim(maxno) + '''');
sql.Add('GROUP BY PSName');
sql.Add('HAVING COUNT(*) > 1) AS Duplicates HAVING Count(*)>0;');
Open;
// showMessage(sql.Text);
end;
if ADOQueryCmd.RecordCount > 0 then
raise Exception.Create('<27><><EFBFBD><EFBFBD>' + ADOQueryCmd.FieldByName('DuplicatePSNames').AsString + '<27>ظ<EFBFBD>!');
if fPSIDList <> '' then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Text := 'DELETE FROM Dye_Process WHERE PSID IN (' + fPSIDList + ')';
// ShowMessage(sql.Text);
try
ExecSQL;
except
on E: Exception do
ShowMessage(<><C9BE>ʧ<EFBFBD><CAA7>: ' + E.Message);
end;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Text := 'DELETE FROM BS_Cloth_GG_Main WHERE PSID IN (' + fPSIDList + ')';
// ShowMessage(sql.Text);
try
ExecSQL;
except
on E: Exception do
ShowMessage(<><C9BE>ʧ<EFBFBD><CAA7>: ' + E.Message);
end;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Text := 'DELETE FROM BS_Cloth_GG_Sub WHERE PSID IN (' + fPSIDList + ')';
// ShowMessage(sql.Text);
try
ExecSQL;
except
on E: Exception do
ShowMessage(<><C9BE>ʧ<EFBFBD><CAA7>: ' + E.Message);
end;
end;
end;
2025-06-06 13:56:41 +08:00
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete Dye_Technics_Sub where DTMID=' + quotedstr(trim(maxno)));
execsql;
end;
DTMPSlist := '';
with CDS_1 do
begin
First;
while not Eof do
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('SELECT * FROM Dye_Technics_Sub WHERE 1=2');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('PSNO').Value := Trim(CDS_1.fieldbyname('PSNO').AsString);
FieldByName('DTMID').Value := Trim(maxno);
FieldByName('PSId').Value := Trim(CDS_1.fieldbyname('PSId').AsString);
Post;
end;
if DTMPSlist = '' then
begin
DTMPSlist := Trim(CDS_1.fieldbyname('PSNO').AsString) + '.' + Trim(CDS_1.fieldbyname('PSName').AsString);
end
else
begin
DTMPSlist := DTMPSlist + '<27><>' + Trim(CDS_1.fieldbyname('PSNO').AsString) + '.' + Trim(CDS_1.fieldbyname('PSName').AsString);
end;
2025-09-08 14:31:40 +08:00
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('SELECT * FROM Dye_Process WHERE PSID = ' + QuotedStr(Trim(CDS_1.fieldbyname('PSId').AsString)));
Open;
end;
with ADOQueryCmd do
begin
Edit;
FieldByName('DTMName').Value := Trim(DTMName.Text);
FieldByName('DTMID').Value := Trim(maxno);
Post;
end;
2025-06-06 13:56:41 +08:00
Next;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from Dye_Technics_Main where DTMID =' + quotedstr(Trim(maxno)));
Open;
end;
with ADOQueryCmd do
begin
if ADOQueryCmd.IsEmpty then
begin
Append;
FieldByName('Filler').Value := Trim(DName);
FieldByName('DTMID').Value := Trim(maxno);
end
else
begin
Edit;
FieldByName('Editer').Value := Trim(DName);
FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTemp);
end;
RTSetsavedata(ADOQueryCmd, 'Dye_Technics_Main', Panel4, 2);
FieldByName('DTMPSlist').Value := Trim(DTMPSlist);
Post;
end;
ADOQueryCmd.Connection.CommitTrans;
result := true;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
result := false;
end;
end;
procedure TfrmDyeTechnicsinput.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
2025-08-12 13:42:42 +08:00
// Filtered := False;
2025-06-06 13:56:41 +08:00
Close;
SQL.Clear;
2025-08-12 13:42:42 +08:00
sql.Add(' select *,PSXH=0 from Dye_Technics ');
2025-06-06 13:56:41 +08:00
Open;
end;
2025-08-12 13:42:42 +08:00
// SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
2025-06-06 13:56:41 +08:00
SCreateCDS(ADOQueryMain, CDS_2);
SInitCDSData(ADOQueryMain, CDS_2);
finally
ADOQueryMain.EnableControls;
end;
end;
2025-08-12 13:42:42 +08:00
procedure TfrmDyeTechnicsinput.InitGridSub();
begin
if CDS_2.IsEmpty then
Exit;
try
ADOQueryTemp.DisableControls;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select * from Dye_Process where PSType = ' + QuotedStr(Trim(CDS_2.FieldByName('PSType').ASSTRING)));
Open;
end;
SDofilter(ADOQueryTemp, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryTemp, CDS_3);
SInitCDSData(ADOQueryTemp, CDS_3);
finally
ADOQueryTemp.EnableControls;
end;
end;
2025-06-06 13:56:41 +08:00
procedure TfrmDyeTechnicsinput.FormDestroy(Sender: TObject);
begin
inherited;
frmDyeTechnicsinput := nil;
end;
procedure TfrmDyeTechnicsinput.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmDyeTechnicsinput.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmDyeTechnicsinput.FormShow(Sender: TObject);
begin
inherited;
2025-09-08 14:31:40 +08:00
ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '<27><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>');
ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, '<27><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>');
2025-06-06 13:56:41 +08:00
InitGrid();
InitGlide();
2025-08-12 13:42:42 +08:00
InitGridSub();
2025-06-06 13:56:41 +08:00
end;
procedure TfrmDyeTechnicsinput.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
2025-08-12 13:42:42 +08:00
procedure TfrmDyeTechnicsinput.TbDeleteClick(Sender: TObject);
begin
if CDS_1.IsEmpty then
Exit;
if Trim(CDS_1.fieldbyname('PSId').AsString) <> '' then
begin
2025-09-08 14:31:40 +08:00
if (Trim(CDS_1.fieldbyname('DTMID').AsString) = '') or CDS_1.fieldbyname('DTMID').isNull then
2025-08-12 13:42:42 +08:00
begin
2025-09-08 14:31:40 +08:00
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete Dye_Process where PSId=''' + Trim(CDS_1.fieldbyname('PSId').AsString) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete BS_Cloth_GY_Main where PSId=''' + Trim(CDS_1.fieldbyname('PSId').AsString) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete BS_Cloth_GY_Sub where PSId=''' + Trim(CDS_1.fieldbyname('PSId').AsString) + '''');
ExecSQL;
end;
end;
if fPSIDlist = '' then
begin
fPSIDlist := QuotedStr(Trim(CDS_1.fieldbyname('PSID').AsString));
end
else
begin
fPSIDlist := fPSIDlist + ',' + QuotedStr(Trim(CDS_1.fieldbyname('PSID').AsString));
2025-08-12 13:42:42 +08:00
end;
end;
CDS_1.Delete;
SetXH();
end;
2025-09-08 14:31:40 +08:00
procedure TfrmDyeTechnicsinput.TbMoveUpClick(Sender: TObject);
var
test: string;
ACurrentRow, APrevRow: Integer;
begin
ACurrentRow := Tv1.DataController.FocusedRowIndex + 1;//<2F><>ǰ<EFBFBD><C7B0>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD>1<EFBFBD><31>ʼ<EFBFBD><CABC>
if ACurrentRow = 1 then // <20>Ѿ<EFBFBD><D1BE>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼
Exit;
APrevRow := ACurrentRow - 1;
CDS_1.DisableControls;
try
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>˳<EFBFBD><CBB3>ֵ
CDS_1.RecNo := ACurrentRow;
CDS_1.Edit;
CDS_1.FieldByName('PSNo').AsInteger := APrevRow;
test := CDS_1.FieldByName('PSName').AsString;
CDS_1.Post;
CDS_1.RecNo := APrevRow;
CDS_1.Edit;
CDS_1.FieldByName('PSNo').AsInteger := ACurrentRow;
test := CDS_1.FieldByName('PSName').AsString;
CDS_1.Post;
// ˢ<><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CDS_1.Refresh;
CDS_1.IndexFieldNames := 'PSNo';
// <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ļ<EFBFBD>¼
Tv1.DataController.FocusedRowIndex := APrevRow - 1;
finally
CDS_1.EnableControls;
end;
end;
2025-06-06 13:56:41 +08:00
procedure TfrmDyeTechnicsinput.ToolButton2Click(Sender: TObject);
begin
2025-09-08 14:31:40 +08:00
WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '<27><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>');
WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, '<27><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>');
2025-06-06 13:56:41 +08:00
end;
2025-08-12 13:42:42 +08:00
procedure TfrmDyeTechnicsinput.cxGridDBColumn1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
try
frmDyeProcessDefin := TfrmDyeProcessDefin.Create(Application);
with frmDyeProcessDefin do
begin
FPSType := self.CDS_1.FieldByName('PSType').Value;
if (PState = '<27><><EFBFBD><EFBFBD>') and (Self.CDS_1.FieldByName('PSID').Value = '') then
begin
FPSID := '';
BtnInt := 0;////<2F><><EFBFBD><EFBFBD>
end
else if PState = '<27>޸<EFBFBD>' then
begin
FPSID := Self.CDS_1.FieldByName('PSID').Value;
BtnInt := 1;///<2F>޸<EFBFBD>
end
else if (PState = '<27><><EFBFBD><EFBFBD>') then
begin
FPSID := Self.CDS_1.FieldByName('PSID').Value;
BtnInt := 2;///<2F><><EFBFBD><EFBFBD>
end
else
begin
FPSID := Self.CDS_1.FieldByName('PSID').Value;
BtnInt := 0;//<2F><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
end;
if ShowModal = 1 then
begin
TBRafresh.Click;
with self.CDS_1 do
begin
Edit;
FieldByName('PSID').Value := frmDyeProcessDefin.FPSID;
FieldByName('PSName').Value := frmDyeProcessDefin.PSName.Text;
Post;
end;
end;
end;
finally
frmDyeProcessDefin.Free;
end;
end;
2025-06-06 13:56:41 +08:00
procedure TfrmDyeTechnicsinput.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmDyeTechnicsinput.v2Column4PropertiesEditValueChanged(Sender: TObject);
var
mvalue: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
mvalue := '';
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from Dye_Technics_Main where DTMNo =' + quotedstr(Trim(mvalue)));
Open;
end;
if ADOQueryCmd.IsEmpty = false then
begin
application.MessageBox('<27>Ѵ<EFBFBD><D1B4>ڹ<EFBFBD><DAB9>ձ<EFBFBD><D5B1><EFBFBD>', '<27><>ʾ');
CDS_2.Edit;
CDS_2.FieldByName('DTMNo').AsString := '';
exit;
end;
with CDS_2 do
begin
Edit;
FieldByName('DTMNo').Value := Trim(mvalue);
//Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('update Dye_Technics_Main set DTMNo=''' + trim(mvalue) + ''' ');
sql.Add(',Editer=''' + trim(DName) + '''');
sql.Add(',Edittime=getdate()');
sql.add(' where DTMID=''' + trim(CDS_2.fieldbyname('DTMID').AsString) + '''');
ExecSQL;
end;
end;
2025-09-08 14:31:40 +08:00
procedure TfrmDyeTechnicsinput.btnMoveDownClick(Sender: TObject);
var
test: string;
ACurrentRow, APrevRow: Integer;
begin
ACurrentRow := Tv1.DataController.FocusedRowIndex + 1;//<2F><>ǰ<EFBFBD><C7B0>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD>1<EFBFBD><31>ʼ<EFBFBD><CABC>
if ACurrentRow = CDS_1.RecordCount then // <20>Ѿ<EFBFBD><D1BE>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼
Exit;
APrevRow := ACurrentRow + 1;
CDS_1.DisableControls;
try
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>˳<EFBFBD><CBB3>ֵ
CDS_1.RecNo := APrevRow;
CDS_1.Edit;
CDS_1.FieldByName('PSNo').AsInteger := ACurrentRow;
test := CDS_1.FieldByName('PSName').AsString;
CDS_1.Post;
CDS_1.RecNo := ACurrentRow;
CDS_1.Edit;
CDS_1.FieldByName('PSNo').AsInteger := APrevRow;
test := CDS_1.FieldByName('PSName').AsString;
CDS_1.Post;
// ˢ<><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CDS_1.Refresh;
CDS_1.IndexFieldNames := 'PSNo';
Tv1.DataController.FocusedRowIndex := ACurrentRow - 1;
finally
CDS_1.EnableControls;
end;
end;
2025-06-06 13:56:41 +08:00
procedure TfrmDyeTechnicsinput.btnSaveClick(Sender: TObject);
begin
if trim(DTMNo.Text) = '' then
begin
application.MessageBox('<27><><EFBFBD>ձ<EFBFBD><D5B1>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>', '<27><>ʾ');
Exit;
end;
if trim(DTMName.Text) = '' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>', '<27><>ʾ');
Exit;
end;
2025-08-12 13:42:42 +08:00
if CDS_1.Locate('PSName', '', []) or CDS_1.Locate('PSName', null, []) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD><C6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_OK);
Exit;
end;
2025-06-06 13:56:41 +08:00
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ', 0);
end;
2025-09-08 14:31:40 +08:00
close;
2025-06-06 13:56:41 +08:00
end;
procedure TfrmDyeTechnicsinput.v2Column2PropertiesEditValueChanged(Sender: TObject);
var
mvalue: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
mvalue := '';
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from Dye_Technics_Main where DTMName =' + quotedstr(Trim(mvalue)));
Open;
end;
if ADOQueryCmd.IsEmpty = false then
begin
application.MessageBox('<27>Ѵ<EFBFBD><D1B4>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ');
CDS_2.Edit;
CDS_2.FieldByName('DTMName').AsString := '';
exit;
end;
with CDS_2 do
begin
Edit;
FieldByName('DTMName').Value := Trim(mvalue);
//Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('update Dye_Technics_Main set DTMName=''' + trim(mvalue) + ''' ');
sql.Add(',Editer=''' + trim(DName) + '''');
sql.Add(',Edittime=getdate()');
sql.add(' where DTMID=''' + trim(CDS_2.fieldbyname('DTMID').AsString) + '''');
ExecSQL;
end;
end;
procedure TfrmDyeTechnicsinput.Tv2DblClick(Sender: TObject);
begin
2025-09-08 14:31:40 +08:00
2025-06-06 13:56:41 +08:00
with CDS_1 do
begin
Append;
FieldByName('PSNO').Value := CDS_1.RecordCount + 1;
2025-08-12 13:42:42 +08:00
FieldByName('PSType').Value := CDS_2.fieldbyname('PSType').AsString;
FieldByName('PSId').Value := '';
2025-06-06 13:56:41 +08:00
post;
end;
end;
procedure TfrmDyeTechnicsinput.Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
2025-08-12 13:42:42 +08:00
InitGridSub();
end;
procedure TfrmDyeTechnicsinput.Tv3DblClick(Sender: TObject);
2025-09-08 14:31:40 +08:00
var
maxNo: string;
2025-08-12 13:42:42 +08:00
begin
2025-09-08 14:31:40 +08:00
if GetLSNo(ADOQueryCmd, maxNo, 'JP', 'Dye_Process', 4, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('exec P_CopyDyeProcess ');
SQL.Add(' @PSID = ' + QuotedStr(Trim(CDS_3.fieldbyname('PSID').AsString)));
SQL.Add(' ,@maxNo = ' + QuotedStr(Trim(maxNo)));
SQL.Add(' ,@DName = ' + QuotedStr(Trim(DName)));
// SQL.Add(' ,@DTMID = ' + QuotedStr(Trim(DTMID.Text)));
Open;
end;
2025-08-12 13:42:42 +08:00
with CDS_1 do
begin
Append;
FieldByName('PSNO').Value := CDS_1.RecordCount + 1;
FieldByName('PSType').Value := CDS_2.fieldbyname('PSType').AsString;
2025-09-08 14:31:40 +08:00
FieldByName('PSId').Value := maxNo;
FieldByName('PSName').Value := CDS_3.fieldbyname('PSName').AsString;
2025-08-12 13:42:42 +08:00
post;
end;
2025-06-06 13:56:41 +08:00
end;
procedure TfrmDyeTechnicsinput.FormCreate(Sender: TObject);
begin
inherited;
fmanage := Trim(DParameters1);
end;
procedure TfrmDyeTechnicsinput.N2Click(Sender: TObject);
var
i: Integer;
DTMPSlist: string;
begin
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
CDS_1.Delete;
SetXH();
end;
2025-08-12 13:42:42 +08:00
procedure TfrmDyeTechnicsinput.PSNameKeyPress(Sender: TObject; var Key: Char);
2025-06-06 13:56:41 +08:00
begin
if ADOQueryMain.Active then
begin
2025-08-12 13:42:42 +08:00
SDofilter(ADOQueryTemp, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryTemp, CDS_3);
SInitCDSData(ADOQueryTemp, CDS_3);
2025-06-06 13:56:41 +08:00
end;
end;
end.