305 lines
8.7 KiB
ObjectPascal
305 lines
8.7 KiB
ObjectPascal
![]() |
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.
|
|||
|
|