unit U_DyePlanList;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
  cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxMemo,
  cxRichEdit, ComCtrls, cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit,
  StdCtrls, ToolWin, DBClient, ADODB, ExtCtrls, BtnEdit, cxCalendar, StrUtils,
  cxCurrencyEdit, cxImage, cxDBEdit, Menus, RM_Common, RM_Class, RM_e_Xls,
  RM_Dataset, RM_System, RM_GridReport, cxGridCustomPopupMenu, cxGridPopupMenu,
  cxPC, cxSplitter, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdFTP, ShellAPI, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
  dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges,
  IdExplicitTLSClientServerBase, U_BaseList, cxCheckBox, cxDropDownEdit;

type
  TfrmDyePlanList = class(TfrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBAdd: TToolButton;
    TBEdit: TToolButton;
    TBDel: TToolButton;
    TBPrint: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    Label1: TLabel;
    Tv1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    cxGridPopupMenu1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    Label3: TLabel;
    OrderNo: TEdit;
    TBExport: TToolButton;
    v1OrderNo: TcxGridDBColumn;
    v1OrdDate: TcxGridDBColumn;
    v1DeliveryDate: TcxGridDBColumn;
    v1ConNo: TcxGridDBColumn;
    v1MPRTSpec: TcxGridDBColumn;
    Order_Main: TClientDataSet;
    v1CustomerNoName: TcxGridDBColumn;
    Label4: TLabel;
    CustName: TEdit;
    v1MPRTCodeName: TcxGridDBColumn;
    v1MPRTMF: TcxGridDBColumn;
    PM_1: TPopupMenu;
    N2: TMenuItem;
    ToolButton1: TToolButton;
    Label8: TLabel;
    C_Name: TEdit;
    Label9: TLabel;
    ConNo: TEdit;
    v1MPRTKZ: TcxGridDBColumn;
    Label10: TLabel;
    C_Spec: TEdit;
    Label11: TLabel;
    C_Code: TEdit;
    Label12: TLabel;
    MPRTKZ: TEdit;
    TBcopy: TToolButton;
    v1Column1: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    cxSplitter1: TcxSplitter;
    DS_2: TDataSource;
    cxTabControl1: TcxTabControl;
    Tchk: TToolButton;
    Tnochk: TToolButton;
    TWC: TToolButton;
    TNowc: TToolButton;
    v1Column6: TcxGridDBColumn;
    Panel2: TPanel;
    ADOQueryImage: TADOQuery;
    DSImage: TDataSource;
    IdFTP1: TIdFTP;
    v1Column4: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    cxGridPopupMenu2: TcxGridPopupMenu;
    Tv1Column8: TcxGridDBColumn;
    Tv1Column14: TcxGridDBColumn;
    Tv1Column16: TcxGridDBColumn;
    Tv1Column17: TcxGridDBColumn;
    ToolButton2: TToolButton;
    N1: TMenuItem;
    CDS_2: TClientDataSet;
    cxGrid2: TcxGrid;
    TV2: TcxGridDBTableView;
    Tv1Column1: TcxGridDBColumn;
    v1SOrddefstr1: TcxGridDBColumn;
    v1PRTColor: TcxGridDBColumn;
    v1PRTORDQTY: TcxGridDBColumn;
    v1OrderUnit: TcxGridDBColumn;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn2: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    Tv1Column3: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    Tv1Column2: TcxGridDBColumn;
    ToolButton3: TToolButton;
    TV2Column1: TcxGridDBColumn;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure TBFindClick(Sender: TObject);
    procedure TBEditClick(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure TBPrintClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure TBAddClick(Sender: TObject);
    procedure OrderNoChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
    procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure TBcopyClick(Sender: TObject);
    procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
    procedure cxTabControl1Change(Sender: TObject);
    procedure TchkClick(Sender: TObject);
    procedure TnochkClick(Sender: TObject);
    procedure TWCClick(Sender: TObject);
    procedure TNowcClick(Sender: TObject);
    procedure Picture4DblClick(Sender: TObject);
    procedure Label3DblClick(Sender: TObject);
    procedure Label9DblClick(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
  private
    DQdate: TDateTime;
    procedure InitGrid();
    function DelData(): Boolean;
    procedure InitSub();
    procedure SetStatus();
    procedure InitImage(fwbid: string);
    { Private declarations }
  public
    FFInt, FCloth: Integer;
    canshu1, canshu2, FWorkshop: string;
    fFlileFlag: string;
    { Public declarations }
  end;

var
  frmDyePlanList: TfrmDyePlanList;

implementation

uses
  U_DataLink, U_DyePlanInPut, U_RTFun, U_LabelPrint, U_DyeInspSet;
{$R *.dfm}

procedure TfrmDyePlanList.InitImage(fwbid: string);
begin
  ADOQueryImage.close;
  if fwbid = '' then
    exit;
  with ADOQueryImage do
  begin
    close;
    sql.Clear;
    sql.Add('select * from TP_File A');
    sql.Add('where WBID=' + quotedstr(trim(fwbid)));
    open;
  end;
end;

procedure TfrmDyePlanList.SetStatus();
begin

  TBadd.Enabled := false;        //����
  tbedit.Enabled := false;       //�޸�
  tbdel.Enabled := false;        //ɾ��
  TBcopy.Enabled := false;       //����
  tchk.Enabled := false;         //���
  tnochk.Enabled := false;       //�������
  twc.Enabled := false;          //���
  tNOwc.Enabled := false;        //�������

  if Trim(canshu1) = '����' then
  begin
    TBadd.Enabled := true;
    TBcopy.Enabled := true;
    case cxTabControl1.TabIndex of
      0:
        begin
          tbedit.Enabled := true;
          tbdel.Enabled := true;

          twc.Enabled := true;
        end;
      1:
        begin
          tNOwc.Enabled := true;

        end;
      2:
        begin

        end;
      3:
        begin
        end;
    end;
  end;

  if Trim(canshu1) = '¼��' then
  begin
    TBadd.Enabled := true;
    TBcopy.Enabled := true;
    case cxTabControl1.TabIndex of
      0:
        begin
      // tchk.Visible:=true;
          tbedit.Enabled := true;
          tbdel.Enabled := true;
      // TBQX.Visible:=true;
        end;
      1:
        begin
      //  tnochk.Visible:=true;
        end;
      2:
        begin
        end;
      3:
        begin
    //    TBNOQX.Visible:=true;
        end;
    end;
  end;
end;

procedure TfrmDyePlanList.InitSub();
begin
  if Order_Main.IsEmpty then
    exit;
  with ADOQueryTemp do
  begin
    close;
    sql.Clear;
    sql.Add('select * from Dye_Plan_Sub ');
    sql.Add('where mainID =' + quotedstr((Order_Main.fieldbyname('mainID').AsString)));
    open;
  end;
  SCreateCDS(ADOQueryTemp, CDS_2);
  SInitCDSData(ADOQueryTemp, CDS_2);
end;

procedure TfrmDyePlanList.Label3DblClick(Sender: TObject);
var
  I: Integer;
  Column: TcxGridDBColumn;
  FieldNames: TStringList;
begin
  FieldNames := TStringList.Create;
  try
    for I := 0 to Tv1.ColumnCount - 1 do
    begin
      Column := Tv1.Columns[I];
      FieldNames.Add(Column.Caption + ':' + Column.DataBinding.FieldName);
    end;
    ShowMessage(FieldNames.Text);
  finally
    FieldNames.Free;
  end;
end;

procedure TfrmDyePlanList.Label9DblClick(Sender: TObject);
var
  I: Integer;
  Column: TcxGridDBColumn;
  FieldNames: TStringList;
begin
  FieldNames := TStringList.Create;
  try
    for I := 0 to Tv2.ColumnCount - 1 do
    begin
      Column := Tv2.Columns[I];
      FieldNames.Add(Column.Caption + ':' + Column.DataBinding.FieldName);
    end;
    ShowMessage(FieldNames.Text);
  finally
    FieldNames.Free;
  end;
end;

procedure TfrmDyePlanList.FormDestroy(Sender: TObject);
begin
  inherited;
  frmDyePlanList := nil;
end;

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

procedure TfrmDyePlanList.FormCreate(Sender: TObject);
begin
  inherited;
  cxgrid1.Align := alClient;
  DQdate := SGetServerDate(ADOQueryTemp);
  canshu1 := trim(Self.fParameters1);
  canshu2 := trim(Self.fParameters2);
  FWorkshop := trim(Self.fParameters3);
end;

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

end;

procedure TfrmDyePlanList.InitGrid();
begin

  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Close;
      Filtered := False;
      sql.Clear;
      sql.Add('select  A.*, B.*');
      sql.Add('from Dye_Plan_MAIN A');
      sql.Add('inner join  Dye_Plan_Sub B on B.MainId=A.MainId');
      sql.Add(' where 1=1');
      case cxTabControl1.TabIndex of
        0:
          begin
            sql.Add('  and  isnull(A.status,''0'') in(''0'',''9'') ');
          end;
        1:
          begin
            sql.Add('  and  isnull(A.status,''0'')=''10'' ');
          end;
//        2:
//          begin
//            sql.Add('  and  isnull(A.status,''0'')=''10'' ');
//          end;
      end;
      sql.Add(' and OrdDate>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' ');
      sql.Add(' and OrdDate<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' ');
      sql.Add(' and A.Workshop=''' + trim(FWorkshop) + ''' ');
      if Trim(canshu1) = '¼��' then
        sql.Add('and Filler=' + QuotedStr(Trim(DName)));
//      ShowMessage(sql.Text);
      Open;
    end;
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS(ADOQueryMain, Order_Main);
    SInitCDSData(ADOQueryMain, Order_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

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

procedure TfrmDyePlanList.TBEditClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    Exit;
{  if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then
  begin
    Application.MessageBox('���ܲ������˵�����!','��ʾ',0);
    Exit;
  end;   }
  try
    frmDyePlanInPut := TfrmDyePlanInPut.Create(Application);
    with frmDyePlanInPut do
    begin
      PState := 1;
      FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString);
      FOrderNo := Trim(Self.Order_Main.fieldbyname('OrderNo').AsString);
      canshu1 := self.canshu1;
      canshu2 := self.canshu2;
      FWorkshop := self.FWorkshop;
      conNo.Enabled := false;
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmDyePlanInPut.Free;
  end;
end;

procedure TfrmDyePlanList.TBDelClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    Exit;
  if not Order_Main.Locate('SSel', True, []) then
  begin
    application.MessageBox('��ѡ�����ݣ�', '��ʾ��Ϣ', 0);
    Exit;
  end;
  if Application.MessageBox('ȷ��Ҫɾ��������', '��ʾ', 32 + 4) <> IDYES then
    Exit;
  while Order_Main.Locate('SSel', True, []) do
  begin
    if (Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName)) and (dname <> 'ADMIN') then
    begin
      Application.MessageBox('���ܲ������˵�����!', '��ʾ', 0);
      Exit;
    end;

    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from Dye_Plan_Card where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
      Open;
    end;
    if not ADOQueryTemp.IsEmpty then
    begin
      Application.MessageBox('�ѿ�������ɾ������!', '��ʾ', 0);
      Exit;
    end;

    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from Dye_Cloth_Inspect where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
      Open;
    end;

    if ADOQueryTemp.IsEmpty = False then
    begin
      Application.MessageBox('�Ѽ��鲻��ɾ������!', '��ʾ', 0);
      Exit;
    end;

    if DelData() then
    begin

    end;
    Order_Main.Delete;
  end;

end;

function TfrmDyePlanList.DelData(): Boolean;
begin
  try
    Result := false;
    ADOQueryCmd.Connection.BeginTrans;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete Dye_Plan_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
      sql.Add('delete Dye_Plan_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
      sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
      sql.Add(' ' + quotedstr(trim(DName)));
      sql.Add(',getdate() ');
      sql.Add(',' + quotedstr(trim(self.Caption)));
      sql.Add(',' + quotedstr(trim('ָʾ��ɾ��')));
      sql.Add(',' + quotedstr(trim('ָʾ���ţ�' + trim(Order_Main.FieldByName('OrderNO').AsString))));
      sql.Add(',' + quotedstr(trim('�ɹ�')));
      sql.Add(')');
      ExecSQL;
    end;

    ADOQueryCmd.Connection.CommitTrans;
    Result := True;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Result := False;
    Application.MessageBox('����ɾ���쳣��', '��ʾ', 0);
  end;
end;

procedure TfrmDyePlanList.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    Exit;
//  SelExportData(Tv1,ADOQueryMain,self.Caption);
end;

procedure TfrmDyePlanList.TBPrintClick(Sender: TObject);
var
  WSql: string;
begin
  if Order_Main.IsEmpty then
    Exit;
  WSql := QuotedStr(Trim(Order_Main.fieldbyname('MainId').AsString));

  try
    frmLabelPrint := TfrmLabelPrint.Create(Application);
    with frmLabelPrint do
    begin
      FLMType := 'DyePlanPrint';
      FFiltration1 := WSql;
      if ShowModal = 1 then
      begin
//        Self.InitGrid();
      end;
    end;
  finally
    frmLabelPrint.Free;
  end;
end;

procedure TfrmDyePlanList.TBRafreshClick(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmDyePlanList.TBAddClick(Sender: TObject);
var
  maxno: string;
begin
  try
    frmDyePlanInPut := TfrmDyePlanInPut.Create(Application);
    with frmDyePlanInPut do
    begin
      PState := 0;
      FMainId := '';
      canshu1 := self.canshu1;
      canshu2 := self.canshu2;
      FWorkshop := self.FWorkshop;
      if ShowModal = 1 then
      begin
        InitGrid();
      end;
    end;
  finally
    frmDyePlanInPut.Free;
  end;
end;

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

procedure TfrmDyePlanList.FormShow(Sender: TObject);
begin
  inherited;
  fFlileFlag := UserDataFlag + 'HX';
  canshu1 := self.fParameters1;
  canshu2 := self.fParameters2;
  FWorkshop := self.fParameters3;
  BegDate.DateTime := SGetServerDate(ADOQueryTemp) - 15;
  EndDate.DateTime := SGetServerDate(ADOQueryTemp);
  ReadCxGrid(self.Caption + 'TV1', Tv1, '����ָʾ������');
  ReadCxGrid(self.Caption + 'TV2', Tv2, '����ָʾ������');
  SetStatus();
  InitGrid();
end;

procedure TfrmDyePlanList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
  if ToolButton1.Visible = False then
    Exit;
  TBPrint.Click;
end;

procedure TfrmDyePlanList.CheckBox1Click(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmDyePlanList.CheckBox2Click(Sender: TObject);
begin
  TBRafresh.Click;
end;

procedure TfrmDyePlanList.Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
  id, id10: Integer;
begin

end;

procedure TfrmDyePlanList.v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
 { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount;
  Id10:=TV1.GetColumnByFieldName('SubStatus').Index;
  if Id<0 then Exit;
  if AViewInfo.GridRecord.Values[Id10]='���' then Exit;
  if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit;
  if ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then
    ACanvas.Brush.Color:=clYellow
  else
  if (AViewInfo.GridRecord.Values[id])-(SGetServerDate(ADOQueryTemp)<0) then
  begin
    ACanvas.Brush.Color:=clRed;
  end;
  begin
    ACanvas.Brush.Color:=clRed;
  end else
  if AViewInfo.GridRecord.Values[Id]='Purple' then
  begin
    ACanvas.Brush.Color:=clPurple;
  end else
  if AViewInfo.GridRecord.Values[Id]='Olive' then
  begin
    ACanvas.Brush.Color:=clOlive;
  end else
  if AViewInfo.GridRecord.Values[Id]='Teal' then
  begin
    ACanvas.Brush.Color:=clTeal;
  end else
  if AViewInfo.GridRecord.Values[Id]='Background' then
  begin
    ACanvas.Brush.Color:=clBackground;
  end;   }
end;

procedure TfrmDyePlanList.N1Click(Sender: TObject);
begin
  SelOKNoFiler(Tv1, false);
end;

procedure TfrmDyePlanList.N2Click(Sender: TObject);
begin

  SelOKNoFiler(Tv1, true);
end;

procedure TfrmDyePlanList.ToolButton1Click(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    Exit;
  try
    frmDyePlanInPut := TfrmDyePlanInPut.Create(Application);
    with frmDyePlanInPut do
    begin
      PState := 1;
      FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString);
      ToolBar2.Visible := False;
      TBSave.Visible := False;
      ScrollBox1.Enabled := False;
      Tv1.OptionsSelection.CellSelect := False;
      FWorkshop := self.FWorkshop;
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmDyePlanInPut.Free;
  end;
end;

procedure TfrmDyePlanList.ToolButton2Click(Sender: TObject);
begin
  WriteCxGrid(self.Caption + 'TV1', Tv1, '����ָʾ������');
  WriteCxGrid(self.Caption + 'TV2', Tv2, '����ָʾ������');
end;

procedure TfrmDyePlanList.ToolButton3Click(Sender: TObject);
begin
  try
    frmDyeInspSet := TfrmDyeInspSet.Create(Application);
    with frmDyeInspSet do
    begin

      FDataID := Trim(Self.Order_Main.fieldbyname('MainId').AsString);

      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmDyeInspSet.Free;
  end;
end;

procedure TfrmDyePlanList.TBcopyClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    Exit;
  try
    frmDyePlanInPut := TfrmDyePlanInPut.Create(Application);
    with frmDyePlanInPut do
    begin
      PState := 1;
      CopyInt := 99;
      FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString);
      canshu1 := self.canshu1;
      canshu2 := self.canshu2;
      FWorkshop := self.FWorkshop;
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmDyePlanInPut.Free;
  end;
end;

procedure TfrmDyePlanList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
  InitSub();
end;

procedure TfrmDyePlanList.cxTabControl1Change(Sender: TObject);
begin
  SetStatus();
  InitGrid();
end;

procedure TfrmDyePlanList.TchkClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    exit;
  if not Order_Main.Locate('SSel', True, []) then
  begin
    application.MessageBox('��ѡ�����ݣ�', '��ʾ��Ϣ', 0);
    Exit;
  end;
  try
    while Order_Main.Locate('SSel', True, []) do
    begin
      with ADOQueryCmd do
      begin
        close;
        sql.Clear;
        sql.Add('update  Dye_Plan_Main SET status=''9'' ');
        sql.Add('where mainID=' + quotedstr(trim(Order_Main.fieldbyname('mainID').AsString)));
        sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
        sql.Add(' ' + quotedstr(trim(DName)));
        sql.Add(',getdate() ');
        sql.Add(',' + quotedstr(trim(self.Caption)));
        sql.Add(',' + quotedstr(trim('�������')));
        sql.Add(',' + quotedstr(trim('�����ţ�' + trim(Order_Main.FieldByName('orderNO').AsString))));
        sql.Add(',' + quotedstr(trim('�ɹ�')));
        sql.Add(')');
        execsql;
      end;
      Order_Main.Delete;
    end;

    application.MessageBox('������˳ɹ���', '��ʾ��Ϣ');
    TBRafresh.Click;
  except
    application.MessageBox('�������ʧ�ܣ�', '��ʾ��Ϣ', 0);
  end;
end;

procedure TfrmDyePlanList.TnochkClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    exit;
  if not Order_Main.Locate('SSel', True, []) then
  begin
    application.MessageBox('��ѡ�����ݣ�', '��ʾ��Ϣ', 0);
    Exit;
  end;
  try
    while Order_Main.Locate('SSel', True, []) do
    begin
      with ADOQueryCmd do
      begin
        close;
        sql.Clear;
        sql.Add('update  Dye_Plan_Main SET status=''0'' ');
        sql.Add('where mainID=' + quotedstr(trim(Order_Main.fieldbyname('mainID').AsString)));
        sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
        sql.Add(' ' + quotedstr(trim(DName)));
        sql.Add(',getdate() ');
        sql.Add(',' + quotedstr(trim(self.Caption)));
        sql.Add(',' + quotedstr(trim('�����������')));
        sql.Add(',' + quotedstr(trim('�����ţ�' + trim(Order_Main.FieldByName('orderNO').AsString))));
        sql.Add(',' + quotedstr(trim('�ɹ�')));
        sql.Add(')');
        execsql;
      end;
      Order_Main.Delete;
    end;
    application.MessageBox('����������˳ɹ���', '��ʾ��Ϣ');
    TBRafresh.Click;
  except
    application.MessageBox('�����������ʧ�ܣ�', '��ʾ��Ϣ', 0);
  end;
end;

procedure TfrmDyePlanList.TWCClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    exit;
  if not Order_Main.Locate('SSel', True, []) then
  begin
    application.MessageBox('��ѡ�����ݣ�', '��ʾ��Ϣ', 0);
    Exit;
  end;
  try
    while Order_Main.Locate('SSel', True, []) do
    begin
      with ADOQueryCmd do
      begin
        close;
        sql.Clear;
        sql.Add('update  Dye_Plan_Main SET status=''10'' ');
        sql.Add('where mainID=' + quotedstr(trim(Order_Main.fieldbyname('mainID').AsString)));
        sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
        sql.Add(' ' + quotedstr(trim(DName)));
        sql.Add(',getdate() ');
        sql.Add(',' + quotedstr(trim(self.Caption)));
        sql.Add(',' + quotedstr(trim('�������')));
        sql.Add(',' + quotedstr(trim('�����ţ�' + trim(Order_Main.FieldByName('orderNO').AsString))));
        sql.Add(',' + quotedstr(trim('�ɹ�')));
        sql.Add(')');
        execsql;
      end;
      Order_Main.Delete;
    end;
    application.MessageBox('������ɳɹ���', '��ʾ��Ϣ');
    TBRafresh.Click;
  except
    application.MessageBox('�������ʧ�ܣ�', '��ʾ��Ϣ', 0);
  end;
end;

procedure TfrmDyePlanList.TNowcClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    exit;
  if not Order_Main.Locate('SSel', True, []) then
  begin
    application.MessageBox('��ѡ�����ݣ�', '��ʾ��Ϣ', 0);
    Exit;
  end;
  try
    while Order_Main.Locate('SSel', True, []) do
    begin
      with ADOQueryCmd do
      begin
        close;
        sql.Clear;
        sql.Add('update  Dye_Plan_Main SET status=''9'' ');
        sql.Add('where mainID=' + quotedstr(trim(Order_Main.fieldbyname('mainID').AsString)));
        sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
        sql.Add(' ' + quotedstr(trim(DName)));
        sql.Add(',getdate() ');
        sql.Add(',' + quotedstr(trim(self.Caption)));
        sql.Add(',' + quotedstr(trim('�����������')));
        sql.Add(',' + quotedstr(trim('�����ţ�' + trim(Order_Main.FieldByName('orderNO').AsString))));
        sql.Add(',' + quotedstr(trim('�ɹ�')));
        sql.Add(')');
        execsql;
      end;
      Order_Main.Delete;
    end;
    application.MessageBox('����������ɳɹ���', '��ʾ��Ϣ');
    TBRafresh.Click;
  except
    application.MessageBox('�����������ʧ�ܣ�', '��ʾ��Ϣ', 0);
  end;
end;

//procedure TfrmDyePlanList.TV2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
//begin
//  initImage(ADOQuerySub.fieldbyname('HXFile').AsString);
//end;

procedure TfrmDyePlanList.Picture4DblClick(Sender: TObject);
var
  sFieldName: string;
  fileName: string;
 //	ff: TADOBlobStream;
 // FJStream : TMemoryStream;
begin
//  if Picture4.Picture.Height = 0 then
//    exit;
  sFieldName := leftbstr(ExtractFilePath(Application.ExeName), 1) + ':\ͼƬ�鿴';

  if not DirectoryExists(pchar(sFieldName)) then
    CreateDirectory(pchar(sFieldName), nil);
//  fileName := ADOQuerySub.fieldbyname('hxFile').AsString;
  sFieldName := sFieldName + '\' + trim(fileName);

  try
    IdFTP1.Host := ReadINIFileStr('SYSTEMSET.INI', 'SERVER', '��������ַ', '127.0.0.1');
    IdFTP1.Username := 'three';
    IdFTP1.Password := '641010';
    IdFTP1.Connect();
  except
    ;
  end;

  if IdFTP1.Connected then
  begin

    application.ProcessMessages;
    try
      IdFTP1.Get(fFlileFlag + '\' + Trim(fileName), sFieldName, true, false);
    except
      Application.MessageBox('�ͻ�ͼ���ļ�������', '��ʾ', MB_ICONWARNING);
      IdFTP1.Quit;
      Exit;
    end;
  end
  else
  begin
    Application.MessageBox('�޷������ļ�������', '��ʾ', MB_ICONWARNING);
    IdFTP1.Quit;
    Exit;
  end;
  if IdFTP1.Connected then
    IdFTP1.Quit;
  ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL);

end;

end.