D10sxYilanbuyi/F04染色刷卡/U_MachTaskList.pas
DESKTOP-E401PHE\Administrator 10b200efae 0
2025-09-11 16:06:40 +08:00

305 lines
8.7 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_MachTaskList;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics,
cxControls, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinWXI,
cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit, cxNavigator,
dxDateRanges, dxScrollbarAnnotations, Data.DB, cxDBData, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxGridCustomView, cxGrid, Vcl.ComCtrls, Vcl.ToolWin, Data.Win.ADODB,
Vcl.ExtCtrls, cxContainer, cxTextEdit, Vcl.StdCtrls, cxMaskEdit, cxButtonEdit,
Vcl.Menus, cxButtons, dxSkinsDefaultPainters;
type
TfrmMachTaskList = class(TForm)
cxGrid1: TcxGrid;
tv1: TcxGridDBTableView;
tv1pcid: TcxGridDBColumn;
tv1CarNo: TcxGridDBColumn;
tv1custName: TcxGridDBColumn;
tv1OrderNo: TcxGridDBColumn;
tv1C_name: TcxGridDBColumn;
tv1c_color: TcxGridDBColumn;
tv1taskDate: TcxGridDBColumn;
tv1taskRollNum: TcxGridDBColumn;
tv1taskQty: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
ToolBar3: TToolBar;
Trefresh: TToolButton;
Tconfirm: TToolButton;
Tclose: TToolButton;
DataSource1: TDataSource;
ADOQueryList: TADOQuery;
Panel1: TPanel;
Label1: TLabel;
pcid: TcxTextEdit;
Label2: TLabel;
machName: TcxTextEdit;
ADOQueryTmp: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryCard: TADOQuery;
ADOQueryMach: TADOQuery;
TBDel: TToolButton;
tv1Column1: TcxGridDBColumn;
tv1Column2: TcxGridDBColumn;
tv1Column3: TcxGridDBColumn;
tv1Column4: TcxGridDBColumn;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
procedure TcloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TconfirmClick(Sender: TObject);
procedure TrefreshClick(Sender: TObject);
procedure pcidKeyPress(Sender: TObject; var Key: Char);
procedure TBDelClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
private
procedure initGrid();
public
fcurMachId: string;
end;
var
frmMachTaskList: TfrmMachTaskList;
implementation
uses
U_dataLink, U_rtFun, U_globalVar;
{$R *.dfm}
procedure TfrmMachTaskList.FormCreate(Sender: TObject);
begin
cxgrid1.Align := alClient;
end;
procedure TfrmMachTaskList.TBDelClick(Sender: TObject);
begin
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('exec p_delete_machTask');
sql.Add('@ids=' + quotedstr(Trim(ADOQueryList.FieldByName('taskid').AsString)));
sql.Add(',@user=' + quotedstr(gUserId));
ExecSql;
end;
except
application.MessageBox(<><C9BE><EFBFBD><EFBFBD>¼ʧ<C2BC><CAA7>!', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
initGrid();
end;
procedure TfrmMachTaskList.TcloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmMachTaskList.TconfirmClick(Sender: TObject);
begin
WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '<27><>̨ɨ<CCA8><C9A8><EFBFBD>Ÿ<EFBFBD>');
end;
procedure TfrmMachTaskList.ToolButton1Click(Sender: TObject);
var
FTaskID: string;
begin
if ADOQueryList.IsEmpty then
Exit;
FTaskID := ADOQueryList.FieldByName('taskid').AsString;
try
with ADOQueryCmd do
begin
close;
SQL.Clear;
sql.Add('exec P_UpDown_MD_Machine_Task ');
sql.Add('@ids=' + quotedstr(Trim(ADOQueryList.FieldByName('taskid').AsString)));
sql.Add(',@flag=0 ');
ExecSQL;
end;
except
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
initGrid();
ADOQueryList.Locate('taskid', FTaskID, []);
end;
procedure TfrmMachTaskList.ToolButton2Click(Sender: TObject);
var
FTaskID: string;
begin
if ADOQueryList.IsEmpty then
Exit;
FTaskID := ADOQueryList.FieldByName('taskid').AsString;
try
with ADOQueryCmd do
begin
close;
SQL.Clear;
sql.Add('exec P_UpDown_MD_Machine_Task ');
sql.Add('@ids=' + quotedstr(Trim(ADOQueryList.FieldByName('taskid').AsString)));
sql.Add(',@flag=1 ');
ExecSQL;
end;
except
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
initGrid();
ADOQueryList.Locate('taskid', FTaskID, []);
end;
procedure TfrmMachTaskList.TrefreshClick(Sender: TObject);
begin
initGrid();
end;
////////////////////////////////////////////
///
procedure TfrmMachTaskList.FormShow(Sender: TObject);
begin
ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '<27><>̨ɨ<CCA8><C9A8><EFBFBD>Ÿ<EFBFBD>');
initGrid();
end;
procedure TfrmMachTaskList.initGrid();
begin
try
ADOQueryList.DisableControls;
with ADOQueryList do
begin
close;
sql.Clear;
sql.Add('select a.*,b.custName,b.orderno,B.c_color,B.c_name,B.PCID,B.C_ColorNo');
sql.Add('from MD_Machine_Task a');
sql.Add('inner join Dye_Plan_Card b on b.pcid=a.pcid');
sql.Add('where a.status=''0''');
sql.Add('and A.mcid=' + quotedstr(fcurMachId));
sql.Add('and not EXISTS(select 1 from Dye_Cloth_Stock X where X.pcid=B.pcid)');
sql.add('and not EXISTS(select 1 from Dye_Plan_Card_Move X where X.FromID= B.pcid)');
sql.Add('order by a.order_idx ');
// ShowMessage(SQL.Text);
// a.taskDate,
open;
end;
finally
ADOQueryList.EnableControls;
tv1.ApplyBestFit();
end;
end;
procedure TfrmMachTaskList.pcidKeyPress(Sender: TObject; var Key: Char);
var
glideIds: string;
begin
if Key = #13 then
begin
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCard do
begin
close;
sql.clear;
sql.add(' select top 1 A.OrderNo,A.workShop,A.PSC_StkPiece,A.PSC_StkQty,B.GlideId,B.GlideNo,B.GlideName ');
sql.add(' from Dye_Plan_Card A ');
sql.add(' left join Dye_Plan_Glide B on A.pcid=B.pcid ');
sql.add(' where A.pcid= ' + QuotedStr(Trim(pcid.Text)));
// sql.add(' and B.Completeness < 100 ');
sql.add(' and not exists(select * from Dye_Plan_Glide_output e where e.glideno=b.glideno and e.pcid=a.pcid)');
sql.add(' order by B.GlideNo ');
open;
end;
if ADOQueryCard.RecordCount = 0 then
begin
raise Exception.Create(<>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>̿<EFBFBD><CCBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD>δ<EFBFBD><CEB4><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD>');
end;
with ADOQueryMach do
begin
close;
sql.clear;
sql.add(' select A.* from Bs_Machine A ');
sql.add(' where A.mcid= ' + QuotedStr(Trim(fcurMachId)));
open;
end;
if ADOQueryMach.RecordCount = 0 then
begin
raise Exception.Create(<>ҵ<EFBFBD><D2B5><EFBFBD>̨<EFBFBD><CCA8>');
end;
with ADOQueryCmd do
begin
close;
sql.clear;
sql.add('select * from MD_Machine_Task ');
sql.add('where 1=2');
open;
append;
fieldByName('mcId').value := Trim(fcurMachId);
fieldByName('mcNo').value := Trim(ADOQueryMach.FieldByName('mcno').AsString);
fieldByName('taskDate').value := SGetServerDate(ADOQueryTmp);
fieldByName('orderNo').value := trim(ADOQueryCard.FieldByName('orderNo').AsString);
fieldByName('pcId').value := Trim(pcid.Text);
fieldByName('status').value := '0';
fieldByName('glideGroup').value := '';
fieldByName('machGroupNo').value := '';
fieldByName('workShop').value := trim(ADOQueryCard.FieldByName('workShop').AsString);
fieldByName('taskRollNum').value := ADOQueryCard.FieldByName('PSC_StkPiece').AsFloat;
fieldByName('taskQty').value := ADOQueryCard.FieldByName('PSC_StkQty').AsFloat;
fieldByName('taskType').value := '<27>ֶ<EFBFBD>';
fieldByName('curGlideName').value := trim(ADOQueryCard.FieldByName('glideName').AsString);
fieldByName('curGlide').value := trim(ADOQueryCard.FieldByName('glideName').AsString);
fieldByName('GlideId').value := trim(ADOQueryCard.FieldByName('GlideId').AsString);
fieldByName('deleted').value := 0;
fieldByName('filler').value := gUserName;
post;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update MD_Machine_Task set order_idx=isnull((select floor(max(order_idx)) from MD_Machine_Task X where X.mcNo=MD_Machine_Task.mcNo),0)+1');
sql.Add('where order_idx is null');
ExecSql;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update dye_plan_glide set pc_flag=1');
sql.Add('where glideId =' + quotedstr(trim(ADOQueryCard.FieldByName('GlideId').AsString)));
ExecSql;
end;
ADOQueryCmd.Connection.CommitTrans;
except
if ADOQueryCmd.Connection.InTransaction then
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox(PChar(Exception(ExceptObject).Message), '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
// showMessage('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!');
end;
initGrid();
end;
end;
end.