unit U_DyeOutputList;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
  cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
  cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses,
  cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls,
  ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient,
  cxDropDownEdit, MovePanel, cxButtonEdit, cxCalendar, RM_System, RM_Common,
  RM_Class, RM_GridReport, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
  dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu,
  U_BaseList, dxScrollbarAnnotations;

type
  TfrmDyeOutputList = class(TfrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBExport: TToolButton;
    TBPrint: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    cxGridPopupMenu1: TcxGridPopupMenu;
    Label3: TLabel;
    Lckid: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    CDS_Main: TClientDataSet;
    Tv1: TcxGridDBTableView;
    cxGrid2Level1: TcxGridLevel;
    cxGrid2: TcxGrid;
    v2Column1: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    Label5: TLabel;
    orderNo: TEdit;
    MovePanel2: TMovePanel;
    Label10: TLabel;
    RMGridReport1: TRMGridReport;
    Label16: TLabel;
    v1Column2: TcxGridDBColumn;
    customerNoName: TEdit;
    Label13: TLabel;
    v1Column9: TcxGridDBColumn;
    ywy: TEdit;
    Label17: TLabel;
    Tv1Column1: TcxGridDBColumn;
    Tv1Column2: TcxGridDBColumn;
    Tv1Column5: TcxGridDBColumn;
    Tv1Column6: TcxGridDBColumn;
    Tv1Column8: TcxGridDBColumn;
    Tv1Column9: TcxGridDBColumn;
    Tv1Column10: TcxGridDBColumn;
    Tv1Column11: TcxGridDBColumn;
    Tv1Column12: TcxGridDBColumn;
    C_Color: TEdit;
    Label4: TLabel;
    C_ColorNo: TEdit;
    Label6: TLabel;
    lbHx: TEdit;
    Label7: TLabel;
    TBdel: TToolButton;
    GlideName: TComboBox;
    StaffName: TEdit;
    Label9: TLabel;
    Tv1Column15: TcxGridDBColumn;
    begtime: TDateTimePicker;
    endTime: TDateTimePicker;
    ToolButton1: TToolButton;
    Tv1Column3: TcxGridDBColumn;
    Tv1Column4: TcxGridDBColumn;
    Tv1Column7: TcxGridDBColumn;
    Tv1Column13: TcxGridDBColumn;
    Tv1Column14: TcxGridDBColumn;
    ToolButton2: TToolButton;
    Panel2: TPanel;
    Label8: TLabel;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ConNoMChange(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure TBFindClick(Sender: TObject);
    procedure LckidChange(Sender: TObject);
    procedure PRTColorChange(Sender: TObject);
    procedure TBdelClick(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
  private
    FLeft, FTop: Integer;
    procedure InitGrid();
    { Private declarations }
  public
    fsyrName, canshu1: string;
    { Public declarations }
  end;

var
  frmDyeOutputList: TfrmDyeOutputList;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp;

{$R *.dfm}

procedure TfrmDyeOutputList.FormDestroy(Sender: TObject);
begin
  inherited;
  frmDyeOutputList := nil;
end;

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

procedure TfrmDyeOutputList.FormCreate(Sender: TObject);
begin
  inherited;

  EndDate.DateTime := SGetServerDateTime(ADOQueryTemp);
  BegDate.DateTime := EndDate.DateTime;
  fsyrName := trim(DdataBase);
  canshu1 := trim(DParameters1);
  SInitComBoxBySql(ADOQueryTemp, GlideName, false, 'select PSName as Name from Dye_Process');
end;

procedure TfrmDyeOutputList.InitGrid();
var
  Msql, mbegdate, menddate: string;
begin
  Msql := '';
  if SGetFilters(Panel1, 1, 2) <> '' then
    Msql := Msql + ' and ' + SGetFilters(Panel1, 1, 2);
  mbegdate := FormatDateTime('yyyy-MM-dd', begdate.Date) + ' ' + FormatDateTime('HH:nn', begTime.Time);
  menddate := FormatDateTime('yyyy-MM-dd', enddate.Date) + ' ' + FormatDateTime('HH:nn', endTime.Time);
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Close;
      sql.Clear;
      Filtered := False;
      sql.Add('select ORDERNO,GOID,A.GlideName,C.*,Qty,rollnum,groupName,B.*,a.filler as filler2,a.filltime as filltime2,gotime,QtyUnit,StaffName  from Dye_Plan_Glide_OutPut A  ');
      sql.Add('inner join  PB_LCK B on A.PCID=B.LCKID  ');
      sql.Add('inner join  Knit_Plan_Sub C on B.SUBID=C.SUBID  ');
      sql.Add('inner join  Knit_Plan_MAIN D on D.MAINID=B.MAINID  ');
      sql.add('where A.GOTime>=''' + trim(mbegdate) + ''' ');
      sql.Add('and A.GOTime<''' + trim(menddate) + ''' ');
      sql.Add(Msql);
    //  showmessage(sql.Text);
      Open;
    end;
    SCreateCDS(ADOQueryMain, CDS_Main);
    SInitCDSData(ADOQueryMain, CDS_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
  TBFind.Click;
end;

procedure TfrmDyeOutputList.TBRafreshClick(Sender: TObject);
begin
  MovePanel2.Visible := True;
  MovePanel2.Refresh;
  InitGrid();
  MovePanel2.Visible := False;
end;

procedure TfrmDyeOutputList.ToolButton1Click(Sender: TObject);
begin
  WriteCxGrid(self.Caption + tv1.Name, Tv1, '��Ʒ�ֿ�');
end;

procedure TfrmDyeOutputList.ToolButton2Click(Sender: TObject);
begin
  inherited;
  if canshu1 <> '�޸�' then
    exit;

  Panel2.Visible := TRUE;
end;

procedure TfrmDyeOutputList.Button1Click(Sender: TObject);
var
  FReal: Double;
begin
  if CDS_Main.IsEmpty then
    exit;
  if TryStrToFloat(EDIT1.Text, FReal) = False then
    Exit;
  try
    ADOQueryCmd.Connection.BeginTrans;

    with ADOQueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add('update  Dye_Plan_Glide_OutPut SET QTY=' + (edit1.text));
      sql.Add('where GOID=' + quotedstr(trim(CDS_Main.fieldbyname('GOID').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('�޸IJ���')));
      sql.Add(',' + quotedstr('���ţ�' + trim(CDS_Main.FieldByName('GOID').AsString) + 'ԭ����' + trim(CDS_Main.FieldByName('qty').AsString) + ';�� ' + trim(edit1.Text)));
      sql.Add(',' + quotedstr(trim('�ɹ�')));
      sql.Add(')');

      execsql;

    end;
    with ADOQueryTemp do
    begin
      close;
      sql.Clear;
      SQL.Add('SELECT maxglideno =MAX(GlideNo)   FROM Dye_Plan_Glide A  where PCID= ' + quotedstr(trim(CDS_Main.fieldbyname('pcid').AsString)));
      open;
    end;
    if (CDS_Main.FieldByName('GlideNo').AsString = ADOQueryTemp.FieldByName('maxGlideNo').AsString) then
    begin
      with ADOQueryCmd do
      begin
        close;
        sql.Clear;
        sql.Add('exec P_Dye_Card_CRCP @PCID=' + QuotedStr(CDS_Main.fieldbyname('pcid').AsString));
        execsql;
      end;
    end;

    application.MessageBox('�޸ijɹ���', '��ʾ��Ϣ');
    ADOQueryCmd.Connection.CommitTrans;
    PANEL2.Visible := FALSE;
    TBRafresh.Click;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    application.MessageBox('�޸�ʧ�ܣ�', '��ʾ��Ϣ', 0);
  end;
end;

procedure TfrmDyeOutputList.Button2Click(Sender: TObject);
begin
  inherited;
  panel2.Visible := false;
end;

procedure TfrmDyeOutputList.ConNoMChange(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  end;
end;

procedure TfrmDyeOutputList.TBCloseClick(Sender: TObject);
begin

  Close;
end;

procedure TfrmDyeOutputList.FormShow(Sender: TObject);
begin
  inherited;
  ReadCxGrid(self.Caption + tv1.Name, Tv1, '��Ʒ�ֿ�');
  canshu1 := self.fParameters1;

  initgrid();
end;

procedure TfrmDyeOutputList.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    exit;
//  SelExportData(tv1,ADOQueryMain,self.Caption);
  TcxGridToExcel(self.Caption, cxGrid2);
end;

procedure TfrmDyeOutputList.TBFindClick(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS(ADOQueryMain, CDS_Main);
    SInitCDSData(ADOQueryMain, CDS_Main);
  end;
end;

procedure TfrmDyeOutputList.LckidChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmDyeOutputList.PRTColorChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmDyeOutputList.TBdelClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then
    Exit;

  if Application.MessageBox('ȷ��Ҫɾ��������', '��ʾ', 32 + 4) <> IDYES then
    Exit;
  try
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('insert into Dye_Need_Up(UType,UDataId) values(''��̨ˢ��'',' + quotedstr(Trim(CDS_Main.fieldbyname('GOID').AsString)) + ')  ');
      sql.Add('delete Dye_Plan_Glide_OutPut where GOID=''' + Trim(CDS_Main.fieldbyname('GOID').AsString) + '''');

      ExecSQL;
    end;
//////////////////       ���½���       //////////////////

//////////////////       ���½���       //////////////////
    CDS_Main.Delete;
  except
    application.MessageBox('ɾ��ʧ�ܣ�', '��ʾ��Ϣ', 0);
  end;

end;

end.