unit U_StopWorkInPut;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxTimeEdit,
  cxButtonEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
  StdCtrls, ComCtrls, ExtCtrls, ToolWin, ADODB, DBClient,
  cxGridCustomPopupMenu, cxGridPopupMenu, cxGridBandedTableView,
  cxGridDBBandedTableView, cxDropDownEdit;

type
  TfrmStopWorkInPut = class(TForm)
    Panel1: TPanel;
    Label5: TLabel;
    cxGrid5: TcxGrid;
    cxGridLevel4: TcxGridLevel;
    DataSource1: TDataSource;
    cxGridPopupMenu1: TcxGridPopupMenu;
    CDS_Main: TClientDataSet;
    ADOTemp: TADOQuery;
    ADOCmd: TADOQuery;
    ADOQuery1: TADOQuery;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    cxStyle3: TcxStyle;
    cxStyle4: TcxStyle;
    SWReason: TComboBox;
    ADOQueryMain: TADOQuery;
    Button1: TButton;
    Button2: TButton;
    Tv1: TcxGridDBTableView;
    v1Column1: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure v1Column7PropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure TBDelClick(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ToolButton12Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
    procedure ComboxData(v1Column310:TcxGridDBBandedColumn;ii:Integer);
    procedure InitGrid();
  public
    { Public declarations }
  end;

var
  frmStopWorkInPut: TfrmStopWorkInPut;

implementation
uses
  U_DataLink,U_Fun,U_ZDYHelp,U_iniParam;

{$R *.dfm}

procedure TfrmStopWorkInPut.FormDestroy(Sender: TObject);
begin
  frmStopWorkInPut:=nil;
end;

procedure TfrmStopWorkInPut.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin

  Action:=caFree;
end;

procedure TfrmStopWorkInPut.FormShow(Sender: TObject);

begin
  ReadCxGrid('停机记录',Tv1,'无纺布订单');
  DataLink_WFBProducttion.ADOLink.Connected:=False;
  DataLink_WFBProducttion.ADOLink.Connected:=True;
  InitGrid();
  DataLink_WFBProducttion.ADOLink.Connected:=False;
end;
procedure TfrmStopWorkInPut.InitGrid();
var
  sql:string;
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      sql.Clear;
      SQL.Add('select Top 20* from WFB_StopWorkList ');
      if Trim(SCXFlag)<>'' then
      begin
        sql.Add(' where SWType='''+Trim(SCXFlag)+'''');
      end;
      sql.Add('Order by SWBegTime desc');
      Open;
    end;
    SCreateCDS20(ADOQueryMain,CDS_Main);
    SInitCDSData20(ADOQueryMain,CDS_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
end;
procedure TfrmStopWorkInPut.ComboxData(v1Column310:TcxGridDBBandedColumn;ii:Integer);
var
  i:Integer;
  j:string;
begin
  (v1Column310.Properties as TcxComboBoxProperties).Items.Clear;
  for i:=0 to ii do
  begin
    if i<10 then
      j:='0'+trim(IntToStr(i))
    else
      j:=Trim(IntToStr(i));
    (v1Column310.Properties as TcxComboBoxProperties).Items.Add(Trim(j));
  end;
end;

procedure TfrmStopWorkInPut.v1Column7PropertiesButtonClick(Sender: TObject;
  AButtonIndex: Integer);
begin
  try
    frmZDYHelp:=TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag:='SWReason';
      flagname:='停机原因';
      if ShowModal=1 then
      begin
        Self.CDS_Main.Edit;
        Self.CDS_Main.FieldByName('SWReason').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString)
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmStopWorkInPut.TBDelClick(Sender: TObject);
begin
  if Trim(CDS_Main.fieldbyname('SWID').AsString)<>'' then
  begin
    if Trim(DCode)<>'ADMIN' then
    begin
      if Trim(DName)<>Trim(CDS_Main.fieldbyname('SWPerson').AsString) then
      begin
        Application.MessageBox('不能删除他人记录！','提示',0);
        Exit;
      end;
    end;
    if Application.MessageBox('确定要删除记录吗？','提示',32+4)<>IDYES then Exit;
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete WFB_StopWorkList where SWID='''+Trim(CDS_Main.fieldbyname('SWID').AsString)+'''');
      ExecSQL;
    end;
  end;
  CDS_Main.Delete;
end;

procedure TfrmStopWorkInPut.ToolButton5Click(Sender: TObject);
var
  sql:String;
begin
  DataLink_WFBProducttion.ADOLink.Connected:=False;
  DataLink_WFBProducttion.ADOLink.Connected:=True;
  with ADOCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from WFB_StopWorkList where SWEndtime is null');
    Open;
  end;
  if ADOCmd.IsEmpty=False then
  begin
    Application.MessageBox('上次停机未进行开机操作！','提示',0);
    Exit;
  end;
  Panel1.Visible:=True;
  sql:='select distinct(ZdyName) Name from KH_Zdy where Type=''SWReason'' ';
  SInitComBoxBySql(ADOTemp,SWReason,False,sql);
  DataLink_WFBProducttion.ADOLink.Connected:=False;
end;

procedure TfrmStopWorkInPut.Button1Click(Sender: TObject);
var
  maxno,FBZ:String;
begin
  if Trim(SWReason.Text)='' then
  begin
    Application.MessageBox('停机原因不能为空！','提示',0);
    Exit;
  end;
  if Application.MessageBox('确定要执行停机操作吗？','提示',32+4)<>IDYES then Exit;
  DataLink_WFBProducttion.ADOLink.Connected:=False;
  DataLink_WFBProducttion.ADOLink.Connected:=True;
  with ADOTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from SY_User where UserId='''+Trim(DCode)+'''');
    Open;
  end;
  FBZ:=Trim(ADOTemp.fieldbyname('BanZu').AsString);
  try
    ADOCmd.Connection.BeginTrans;
    if GetLSNo(ADOCmd,maxno,'SW','WFB_StopWorkList',2,1)=False then
    begin
      ADOCmd.Connection.RollbackTrans;
      Application.MessageBox('取停机编号失败！','提示',0);
      Exit;
    end;
    with ADOCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('select * from WFB_StopWorkList where 1<>1 ');
      Open;
    end;
    with ADOCmd do
    begin
      Append;
      FieldByName('SWID').Value:=Trim(maxno);
      FieldByName('SWBegtime').Value:=SGetServerDateTime(ADOTemp);
      FieldByName('SWReason').Value:=Trim(SWReason.Text);
      FieldByName('SWPerson').Value:=Trim(DName);
      FieldByName('SWPersonBZ').Value:=Trim(FBZ);
      FieldByName('SWType').Value:=Trim(SCXFlag);
      Post;
    end;
    with CDS_Main do
    begin
      Append;
      FieldByName('SWID').Value:=Trim(maxno);
      FieldByName('SWBegtime').Value:=SGetServerDateTime(ADOTemp);
      FieldByName('SWReason').Value:=Trim(SWReason.Text);
      FieldByName('SWPerson').Value:=Trim(DName);
      FieldByName('SWPersonBZ').Value:=Trim(FBZ);
      Post;
    end;
    ADOCmd.Connection.CommitTrans;
    Panel1.Visible:=False;
    //Application.MessageBox('停机成功！','提示',0);
    Exit;
  except
    ADOCmd.Connection.RollbackTrans;
    DataLink_WFBProducttion.ADOLink.Connected:=False;
    Application.MessageBox('停机异常！','提示',0);
    Exit;
  end;
  DataLink_WFBProducttion.ADOLink.Connected:=False;
end;

procedure TfrmStopWorkInPut.ToolButton12Click(Sender: TObject);
begin
  Close;
  WriteCxGrid('停机记录',Tv1,'无纺布订单');
end;

procedure TfrmStopWorkInPut.Button2Click(Sender: TObject);
begin
  Panel1.Visible:=False;
end;

procedure TfrmStopWorkInPut.ToolButton7Click(Sender: TObject);
var
  FBZ,MaxNo:String;
begin
  DataLink_WFBProducttion.ADOLink.Connected:=False;
  DataLink_WFBProducttion.ADOLink.Connected:=True;
  with ADOTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from SY_User where UserId='''+Trim(DCode)+'''');
    Open;
  end;
  FBZ:=Trim(ADOTemp.fieldbyname('BanZu').AsString);
  with ADOTemp do
  begin
    Close;
    SQL.Clear;
    sql.Add('select * from WFB_StopWorkList where SWEndtime is null');
    Open;
  end;
  if ADOTemp.IsEmpty=True then
  begin
    Application.MessageBox('未登记停机记录！','提示',0);
    exit;
  end;
  if Application.MessageBox('确定要执行开机操作吗？','提示',32+4)<>IDYES then Exit;
  with ADOTemp do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select Top 1*  from WFB_StopWorkList where SWEndtime is null order by SWBegtime desc');
    Open;
  end;
  MaxNo:=Trim(ADOTemp.fieldbyname('SWID').AsString);
  try
    ADOCmd.Connection.BeginTrans;
    with ADOCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('select * from WFB_StopWorkList where SWID='''+Trim(ADOTemp.fieldbyname('SWID').AsString)+'''');
      Open;
    end;

    with ADOCmd do
    begin
      Edit;
      FieldByName('SWEPerson').Value:=Trim(DName);
      FieldByName('SWPersonBZ').Value:=Trim(FBZ);
      FieldByName('SWEndtime').Value:=SGetServerDateTime(ADOTemp);
      Post;
    end;
    ADOCmd.Connection.CommitTrans;
    Application.MessageBox('开机成功！','提示',0);
    CDS_Main.Locate('SWID',Trim(MaxNo),[]);
    with CDS_Main do
    begin
      Edit;
      FieldByName('SWEndtime').Value:=SGetServerDateTime(ADOTemp);
      FieldByName('SWEPerson').Value:=Trim(DName);
      //FieldByName('SWEPersonBZ').Value:=Trim(FBZ);
      Post;
    end;
  except
    ADOCmd.Connection.RollbackTrans;
    DataLink_WFBProducttion.ADOLink.Connected:=False;
    Application.MessageBox('开机异常！','提示',0);
  end;
  DataLink_WFBProducttion.ADOLink.Connected:=False;
end;

procedure TfrmStopWorkInPut.Button3Click(Sender: TObject);
begin
 { try
    frmZDYHelp:=TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag:='SWReason';
      flagname:='停机原因';
      if ShowModal=1 then
      begin
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;}
end;

procedure TfrmStopWorkInPut.Button4Click(Sender: TObject);
var
  sql:String;
begin
  DataLink_WFBProducttion.ADOLink.Connected:=False;
  DataLink_WFBProducttion.ADOLink.Connected:=True;
  with ADOCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from WFB_StopWorkList ');
    sql.Add('where SWEndtime is null');
    if Trim(SCXFlag)<>'' then
    begin
      sql.Add(' and SWType='''+Trim(SCXFlag)+'''');
    end;

    Open;
  end;
  if ADOCmd.IsEmpty=False then
  begin
    Application.MessageBox('上次停机未进行开机操作！','提示',0);
    Exit;
  end;
  Panel1.Visible:=True;
  sql:='select ZdyName Name from KH_Zdy where Type=''SWReason'' order by orderno ';
  SInitComBoxBySql(ADOTemp,SWReason,False,sql);
  SWReason.SetFocus;
  SWReason.DroppedDown:=True;
  //SWReason.
  DataLink_WFBProducttion.ADOLink.Connected:=False;
end;

procedure TfrmStopWorkInPut.Button5Click(Sender: TObject);
var
  FBZ,MaxNo:String;
begin
  DataLink_WFBProducttion.ADOLink.Connected:=False;
  DataLink_WFBProducttion.ADOLink.Connected:=True;
  with ADOTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from SY_User where UserId='''+Trim(DCode)+'''');
    Open;
  end;
  FBZ:=Trim(ADOTemp.fieldbyname('BanZu').AsString);
  with ADOTemp do
  begin
    Close;
    SQL.Clear;
    sql.Add('select * from WFB_StopWorkList');
    sql.Add(' where SWEndtime is null');
    if Trim(SCXFlag)<>'' then
    begin
      sql.Add(' and SWType='''+Trim(SCXFlag)+'''');
    end;
    Open;
  end;
  if ADOTemp.IsEmpty=True then
  begin
    Application.MessageBox('未登记停机记录！','提示',0);
    exit;
  end;
  if Application.MessageBox('确定要执行开机操作吗？','提示',32+4)<>IDYES then Exit;
  with ADOTemp do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select Top 1*  from WFB_StopWorkList where SWEndtime is null ');
    if Trim(SCXFlag)<>'' then
    begin
      sql.Add(' and SWType='''+Trim(SCXFlag)+'''');
    end;
    sql.Add(' order by SWBegtime desc');
    Open;
  end;
  MaxNo:=Trim(ADOTemp.fieldbyname('SWID').AsString);
  try
    ADOCmd.Connection.BeginTrans;
    with ADOCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('select * from WFB_StopWorkList where SWID='''+Trim(ADOTemp.fieldbyname('SWID').AsString)+'''');
      Open;
    end;

    with ADOCmd do
    begin
      Edit;
      FieldByName('SWEPerson').Value:=Trim(DName);
      FieldByName('SWPersonBZ').Value:=Trim(FBZ);
      FieldByName('SWEndtime').Value:=SGetServerDateTime(ADOTemp);
      Post;
    end;
    ADOCmd.Connection.CommitTrans;
    //Application.MessageBox('开机成功！','提示',0);
    CDS_Main.Locate('SWID',Trim(MaxNo),[]);
    with CDS_Main do
    begin
      Edit;
      FieldByName('SWEndtime').Value:=SGetServerDateTime(ADOTemp);
      FieldByName('SWEPerson').Value:=Trim(DName);
      //FieldByName('SWEPersonBZ').Value:=Trim(FBZ);
      Post;
    end;
  except
    ADOCmd.Connection.RollbackTrans;
    DataLink_WFBProducttion.ADOLink.Connected:=False;
    Application.MessageBox('开机异常！','提示',0);
  end;
  DataLink_WFBProducttion.ADOLink.Connected:=False;
end;

procedure TfrmStopWorkInPut.Button6Click(Sender: TObject);
begin
  Close;
  WriteCxGrid('停机记录',Tv1,'无纺布订单');
end;

end.
