unit U_KnitPlanMach;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
  cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
  cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
  cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class,
  RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxCheckBox,
  BtnEdit, cxPC, MovePanel, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
  dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges,
  U_BaseList, Vcl.Menus;

type
  TfrmKnitPlanMach = class(TfrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBDel: TToolButton;
    TBClose: TToolButton;
    GPM_1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DS_1: TDataSource;
    CDS_1: TClientDataSet;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton6: TToolButton;
    DS_2: TDataSource;
    CDS_2: TClientDataSet;
    GPM_2: TcxGridPopupMenu;
    Panel4: TPanel;
    cxGrid2: TcxGrid;
    TV2: TcxGridDBTableView;
    cxGridLevel1: TcxGridLevel;
    ToolButton12: TToolButton;
    PM_1: TPopupMenu;
    N1: TMenuItem;
    PM_2: TPopupMenu;
    N2: TMenuItem;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    ToolButton13: TToolButton;
    Panel1: TPanel;
    Label1: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label4: TLabel;
    Label2: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    ConNo: TEdit;
    C_CodeName: TEdit;
    orderno: TEdit;
    C_Code: TEdit;
    BatchNoHZ: TEdit;
    GCCode: TEdit;
    JHChejian: TEdit;
    RTQYJTInfo: TEdit;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    Tv1Column1: TcxGridDBColumn;
    v1OrderNo: TcxGridDBColumn;
    Tv1Column2: TcxGridDBColumn;
    v1Column31: TcxGridDBColumn;
    v1Column20: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column13: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1Qty1: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    TV2Column1: TcxGridDBColumn;
    TV2Column2: TcxGridDBColumn;
    TV2Column3: TcxGridDBColumn;
    TV2Column6: TcxGridDBColumn;
    cxTabControl1: TcxTabControl;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure TBFindClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ConNoChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure ToolButton12Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure ToolButton13Click(Sender: TObject);
    procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
  private
    procedure InitGrid1();
    procedure InitGrid2();
    procedure UpdateJTInfo(RTMainId: string);
    function SaveJT(MCarNo, MCheJian: string): Boolean;
    { Private declarations }
  public
    canshu1: string;
    { Public declarations }
  end;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp, U_KnitPlanMachInPut;

{$R *.dfm}
procedure TfrmKnitPlanMach.InitGrid1();
var
  fwhere: string;
begin
  BegDate.SetFocus;
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
             //      sql.Add(' ,APPS=(select Count(*) from knit_Plan_Card AA where AA.MainId=A.MainId)');
//      sql.Add(' ,JYPS=(select Count(*) from knit_Cloth_Inspect AA where AA.MainId=A.MainId)');
//      sql.Add(' ,JYQtyKg=(select sum(MJMaoZ) from knit_Cloth_Inspect AA where AA.MainId=A.MainId)');
//      sql.Add(' ,RKPS=(select Count(*) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''���'')');
//      sql.Add(' ,RKQtyKg=(select sum(KgQty) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''���'')');
//      sql.Add(' ,CKPS=(select Count(*) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''����'')');
//      sql.Add(' ,CKQtyKg=(select sum(KgQty) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''����'')');
      //SQL.Add(',CustomerNoName=(select CustomerNoName  from JYOrderCon_Main_PB X where X.MainId=A.ConMainId) ');
      sql.Add(' select A.*,B.*');
      sql.Add(' ,CardQty=OrdPiece-ISNULL((select sum(CardQty) from knit_Plan_Mach AA where AA.SubId=B.SubId),0)');

      sql.Add(' from knit_Plan_Main A');
      sql.Add(' inner join knit_Plan_Sub B on A.MainId=B.MainId');
//      sql.Add(' where 1=1 ');
//
//      fwhere := fwhere + (' and A.QDTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + '''');
//      fwhere := fwhere + (' and A.QDTime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + '''');

      Open;
    end;
    SCreateCDS(ADOQueryMain, CDS_1);
    SInitCDSData(ADOQueryMain, CDS_1);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmKnitPlanMach.InitGrid2();
begin
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add(' select A.* ');
    sql.Add(' from   Knit_Plan_Mach A   ');

    sql.Add(' order by A.MCNO');

    Open;
  end;
  SCreateCDS(ADOQueryTemp, CDS_2);
  SInitCDSData(ADOQueryTemp, CDS_2);
end;

procedure TfrmKnitPlanMach.N1Click(Sender: TObject);
begin
  with ADOQueryTemp do
  begin
    close;
    sql.Clear;
    sql.Add(' select * from knit_Plan_Card A where A.PMID=' + quotedstr(trim(CDS_1.fieldbyname('PMID').AsString)));
    Open;
  end;
  if not ADOQueryTemp.IsEmpty then
  begin
    Application.MessageBox('�Ѱ��Ų�ƥ����ɾ��!', '��ʾ', 0);
    Exit;
  end;
  with ADOQueryCmd do
  begin
    close;
    sql.Clear;
    sql.Add('delete knit_Plan_Mach ');
    sql.Add('where PMID=' + quotedstr(trim(CDS_1.fieldbyname('PMID').AsString)));
    sql.Add(' and not exists(select * from knit_Plan_Card A where A.PMID=knit_Plan_Mach.PMID) ');
    execsql;
  end;
  CDS_1.Delete;
end;

function TfrmKnitPlanMach.SaveJT(MCarNo, MCheJian: string): Boolean;
var
  maxno: string;
begin
  Result := False;
  try
    ADOQueryCmd.Connection.BeginTrans;
    if GetLSNo(ADOQueryCmd, maxno, 'JT', 'knit_Plan_Mach', 3, 1) = False then
    begin
      CDS_2.EnableControls;
      ADOQueryCmd.Connection.RollbackTrans;
      Application.MessageBox('ȡ���Ż�̨��ˮ��ʧ��!', '��ʾ', 0);
      Exit;
    end;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from knit_Plan_Mach where 1=2');
      Open;
    end;
    with ADOQueryCmd do
    begin
      Append;
      FieldByName('MainId').Value := Trim(CDS_1.fieldbyname('MainId').AsString);
      FieldByName('SubId').Value := Trim(CDS_1.fieldbyname('SubId').AsString);
      FieldByName('JTID').Value := Trim(maxno);
      FieldByName('CarNo').Value := Trim(MCarNo);
      FieldByName('CheJian').Value := Trim(MCheJian);
      FieldByName('StopFlag').Value := 0;
      FieldByName('DOTime').Value := SGetServerDateTime(ADOQueryTemp);
      FieldByName('DOPerson').Value := Trim(DName);
      FieldByName('QYTime').Value := SGetServerDateTime(ADOQueryTemp);
      FieldByName('QYPerson').Value := Trim(DName);
      FieldByName('Filler').Value := Trim(DName);
      Post;
    end;
    UpdateJTInfo(Trim(CDS_1.fieldbyname('MainId').AsString));
    ADOQueryCmd.Connection.CommitTrans;
    Result := True;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    CDS_2.EnableControls;
    Result := False;
    Application.MessageBox('�����쳣��', '��ʾ', 0);
  end;
end;

procedure TfrmKnitPlanMach.FormDestroy(Sender: TObject);
begin
  inherited; //  frmClothSCListAnPaiJiTaiAP:=nil;
end;

procedure TfrmKnitPlanMach.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  Action := caFree;
end;

procedure TfrmKnitPlanMach.TBCloseClick(Sender: TObject);
begin
  Close;

end;

procedure TfrmKnitPlanMach.TBFindClick(Sender: TObject);
begin
  if ADOQueryMain.Active = False then
    Exit;
  SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  SCreateCDS(ADOQueryMain, CDS_1);
  SInitCDSData(ADOQueryMain, CDS_1);
end;

procedure TfrmKnitPlanMach.TBRafreshClick(Sender: TObject);
begin
  InitGrid1();

end;

procedure TfrmKnitPlanMach.ConNoChange(Sender: TObject);
begin
  if ADOQueryMain.Active = False then
    Exit;
  SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  SCreateCDS(ADOQueryMain, CDS_1);
  SInitCDSData(ADOQueryMain, CDS_1);
end;

procedure TfrmKnitPlanMach.FormShow(Sender: TObject);
begin
  inherited;

  ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, 'ָʾ������');
  ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, 'ָʾ������');
  EndDate.DateTime := SGetServerDate(ADOQueryTemp);
  BegDate.DateTime := EndDate.DateTime - 60;

  InitGrid1();
  InitGrid2();
end;

procedure TfrmKnitPlanMach.ToolButton1Click(Sender: TObject);
begin
  if CDS_1.IsEmpty then
    Exit;

  if CDS_1.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('û��ѡ������!', '��ʾ', 0);
    Exit;
  end;
  if Application.MessageBox('ȷ��Ҫִ�п�ʼ������', '��ʾ', 32 + 4) <> IDYES then
    Exit;
  try
    ADOQueryCmd.Connection.BeginTrans;
    CDS_1.DisableControls;
    with CDS_1 do
    begin
      First;
      while Locate('SSel', True, []) = True do
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('UPdate knit_Plan_Main Set Begtime=getdate(),BegPerson=''' + Trim(DName) + ''' ');
          sql.Add(' where MainId=''' + Trim(CDS_1.fieldbyname('MainId').AsString) + '''');
          ExecSQL;
        end;
        CDS_1.Delete;
      end;
    end;
    CDS_1.EnableControls;
    ADOQueryCmd.Connection.CommitTrans;
  except
    CDS_1.EnableControls;
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;
end;

procedure TfrmKnitPlanMach.ToolButton3Click(Sender: TObject);
begin
  if CDS_1.IsEmpty then
    Exit;

  if CDS_1.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('û��ѡ������!', '��ʾ', 0);
    Exit;
  end;
  if Application.MessageBox('ȷ��Ҫִ�н���������', '��ʾ', 32 + 4) <> IDYES then
    Exit;
  try
    ADOQueryCmd.Connection.BeginTrans;
    CDS_1.DisableControls;
    with CDS_1 do
    begin
      First;
      while Locate('SSel', True, []) = True do
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('UPdate knit_Plan_Main Set Endtime=getdate(),EndPerson=''' + Trim(DName) + ''',EndFlag=1');
          sql.Add(' where MainId=''' + Trim(CDS_1.fieldbyname('MainId').AsString) + '''');
          sql.Add('UPdate  knit_Plan_Mach SET StopFlag=1,DOTime=getdate(),DOPerson=''' + Trim(DName) + '''');
          sql.Add(',TYTime=getdate(),TYPerson=''' + Trim(DName) + '''');
          sql.Add(' where MainId=' + quotedstr(trim(CDS_1.fieldbyname('MainId').AsString)));
          sql.Add(' and StopFlag=0');
          ExecSQL;
        end;
        UpdateJTInfo(Trim(CDS_1.fieldbyname('MainId').AsString));
        CDS_1.Delete;
      end;
    end;
    CDS_1.EnableControls;
    ADOQueryCmd.Connection.CommitTrans;
  except
    CDS_1.EnableControls;
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;
end;

procedure TfrmKnitPlanMach.TBDelClick(Sender: TObject);
begin
  if CDS_1.IsEmpty then
    Exit;

  if CDS_1.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('û��ѡ������!', '��ʾ', 0);
    Exit;
  end;
  if Application.MessageBox('ȷ��Ҫִ�н�������������', '��ʾ', 32 + 4) <> IDYES then
    Exit;
  try
    ADOQueryCmd.Connection.BeginTrans;
    CDS_1.DisableControls;
    with CDS_1 do
    begin
      First;
      while Locate('SSel', True, []) = True do
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('UPdate knit_Plan_Main Set Endtime=getdate(),EndPerson=''' + Trim(DName) + ''',EndFlag=0');
          sql.Add(' where MainId=''' + Trim(CDS_1.fieldbyname('MainId').AsString) + '''');
          ExecSQL;
        end;
        CDS_1.Delete;
      end;
    end;
    CDS_1.EnableControls;
    ADOQueryCmd.Connection.CommitTrans;
  except
    CDS_1.EnableControls;
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;
end;

procedure TfrmKnitPlanMach.ToolButton2Click(Sender: TObject);
begin
  if CDS_1.IsEmpty then
    Exit;

  if CDS_1.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('û��ѡ������!', '��ʾ', 0);
    Exit;
  end;
  if Application.MessageBox('ȷ��Ҫִ�п�ʼ����������', '��ʾ', 32 + 4) <> IDYES then
    Exit;
  try
    ADOQueryCmd.Connection.BeginTrans;
    CDS_1.DisableControls;
    with CDS_1 do
    begin
      First;
      while Locate('SSel', True, []) = True do
      begin
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('UPdate knit_Plan_Main Set Begtime=getdate(),BegPerson=''' + Trim(DName) + ''',BegFlag=0');
          sql.Add(' where MainId=''' + Trim(CDS_1.fieldbyname('MainId').AsString) + '''');
          ExecSQL;
        end;
        CDS_1.Delete;
      end;
    end;
    CDS_1.EnableControls;
    ADOQueryCmd.Connection.CommitTrans;
  except
    CDS_1.EnableControls;
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('�����쳣!', '��ʾ', 0);
  end;
end;

procedure TfrmKnitPlanMach.cxTabControl1Change(Sender: TObject);
begin
  InitGrid1();
end;

procedure TfrmKnitPlanMach.ToolButton6Click(Sender: TObject);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'WFBCPBZZ';
      flagname := '�õ�';
      fnote := True;
     // V1Note.Caption:='Ӣ������';
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmKnitPlanMach.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
  InitGrid2();

end;

procedure TfrmKnitPlanMach.UpdateJTInfo(RTMainId: string);
begin
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('Update knit_Plan_Sub Set RTAPJTQty=(select Count(*) from knit_Plan_Mach A where A.MainId=knit_Plan_Sub.MainId )');
//    sql.Add(',RTAPJTInfo=dbo.F_Get_Order_SubStr_PB(knit_Plan_Sub.MainId,''RTAPJTInfo'')');
    sql.Add(',RTQYJTQty=(select Count(*) from knit_Plan_Mach A where A.MainId=knit_Plan_Sub.MainId and StopFlag=0 )');
//    sql.Add(',RTQYJTInfo=dbo.F_Get_Order_SubStr_PB(knit_Plan_Sub.MainId,''RTQYJTInfo'')');
    sql.Add(',RTTYJTQty=(select Count(*) from knit_Plan_Mach A where A.MainId=knit_Plan_Sub.MainId and StopFlag=1 )');
//    sql.Add(',RTTYJTInfo=dbo.F_Get_Order_SubStr_PB(knit_Plan_Sub.MainId,''RTTYJTInfo'')');
    sql.Add(' where MainId=''' + Trim(RTMainId) + '''');
    //Parameters.ParamByName('MainId').Value:=Trim(RTMainId);
    ExecSQL;
  end;
end;

procedure TfrmKnitPlanMach.ToolButton12Click(Sender: TObject);
begin
  WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, 'ָʾ������');
  WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, 'ָʾ������');
end;

procedure TfrmKnitPlanMach.ToolButton13Click(Sender: TObject);
begin
  try
    frmKnitPlanMachInPut := TfrmKnitPlanMachInPut.Create(Application);
    with frmKnitPlanMachInPut do
    begin
      FMainId := Trim(Self.CDS_1.fieldbyname('MainId').AsString);
      FSubId := Trim(Self.CDS_1.fieldbyname('SubId').AsString);
      if ShowModal = 1 then
      begin
//        InitGrid();
      end;
    end;
  finally
    frmKnitPlanMachInPut.Free;
  end;

end;

end.