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.
|
||
|