unit U_TradeClothOutInspList;

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, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset,
  RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, BtnEdit,
  cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore,
  dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseList,
  Vcl.CheckLst, cxContainer, Vcl.Clipbrd, cxPC;

type
  TfrmTradeClothOutInspList = class(TfrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBExport: TToolButton;
    TBClose: TToolButton;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    cxGridPopupMenu1: TcxGridPopupMenu;
    CDS_Main: TClientDataSet;
    RMDBMain: TRMDBDataSet;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1Column2: TcxGridDBColumn;
    v1Column26: TcxGridDBColumn;
    v1Column13: TcxGridDBColumn;
    v2Column1: TcxGridDBColumn;
    v1Column22: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1Column14: TcxGridDBColumn;
    v1Column15: TcxGridDBColumn;
    v1Column17: TcxGridDBColumn;
    v1Column18: TcxGridDBColumn;
    v1Column20: TcxGridDBColumn;
    v1Column23: TcxGridDBColumn;
    v1Column27: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    Panel1: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label7: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    C_Name: TEdit;
    FromCoName: TEdit;
    ToOrdNo: TEdit;
    Tv1Column4: TcxGridDBColumn;
    Label6: TLabel;
    Label8: TLabel;
    BCIOID: TEdit;
    C_ColorNo: TEdit;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    Tv1Column11: TcxGridDBColumn;
    Label10: TLabel;
    C_Color: TEdit;
    Tv1Column17: TcxGridDBColumn;
    ToolButton5: TToolButton;
    N3: TMenuItem;
    Tv1Column19: TcxGridDBColumn;
    Tv1Column20: TcxGridDBColumn;
    Panel2: TPanel;
    cxTabControl1: TcxTabControl;
    cxchckbx1: TcxCheckBox;
    cxchckbx2: TcxCheckBox;
    cxchckbx3: TcxCheckBox;
    Tv1Column1: TcxGridDBColumn;
    Label1: TLabel;
    Tv1Column2: TcxGridDBColumn;
    Label5: TLabel;
    C_Pattern: TEdit;
    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 N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure SPIDKeyPress(Sender: TObject; var Key: Char);
    procedure SPSpecChange(Sender: TObject);
    procedure FromCoNameChange(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure Tv1Column16PropertiesEditValueChanged(Sender: TObject);
    procedure cxchckbx1Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
    procedure cxTabControl1Change(Sender: TObject);
  private
    procedure SetStatus();
    procedure InitGrid();
    { Private declarations }
  public
    FSTKName, canshu1: string;
    { Public declarations }
  end;

var
  frmTradeClothOutInspList: TfrmTradeClothOutInspList;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp;

{$R *.dfm}

procedure TfrmTradeClothOutInspList.SetStatus();
begin

end;

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

procedure TfrmTradeClothOutInspList.FormCreate(Sender: TObject);
begin
  inherited;
  EndDate.DateTime := SGetServerDate(ADOQueryTemp);
  BegDate.DateTime := EndDate.DateTime;
end;

procedure TfrmTradeClothOutInspList.InitGrid();
var
  MInsp_WastageFlag: string;
begin
  MInsp_WastageFlag := '';
  if cxchckbx1.Checked then
  begin
    if MInsp_WastageFlag = '' then
      MInsp_WastageFlag := QUOTEDSTR(Trim('1'))
    else
      MInsp_WastageFlag := MInsp_WastageFlag + ',' + QUOTEDSTR(Trim('1'));
  end;
  if cxchckbx2.Checked then
  begin
    if MInsp_WastageFlag = '' then
      MInsp_WastageFlag := QUOTEDSTR(Trim('2'))
    else
      MInsp_WastageFlag := MInsp_WastageFlag + ',' + QUOTEDSTR(Trim('2'));
  end;
  if cxchckbx3.Checked then
  begin
    if MInsp_WastageFlag = '' then
      MInsp_WastageFlag := QUOTEDSTR(Trim('3'))
    else
      MInsp_WastageFlag := MInsp_WastageFlag + ',' + QUOTEDSTR(Trim('3'));
  end;
  with ADOQueryCMD do
  begin
    Close;
    sql.Clear;
    sql.Add(' EXEC P_Trade_ClothOutInsp_PSC ');
    ExecSQL;
  end;

  with ADOQueryMain do
  begin
    Close;
    sql.Clear;
    sql.Add(' select A.* ');
    sql.Add(' from BS_Cloth_IO A');
    SQL.Add(' where ioFlag=''出库''  and IOtype=''检验出库'' and isnull(stkName,'''')=''' + Trim(FstkName) + '''');

    if MInsp_WastageFlag <> '' then
      sql.Add('and   Insp_WastageFlag in (' + MInsp_WastageFlag + ') ');

    case cxTabControl1.TabIndex of
      0:
        begin
          sql.Add('and isnull(Insp_Piece,0) =0 ');
        end;
      1:
        begin
          sql.Add('and isnull(Insp_Piece,0)>0 ');
          sql.add(' and A.IOTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + '''');
          sql.Add(' and A.IOTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + '''');
        end;
      2:
        begin
        end;
    end;
    Open;
  end;
  SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  SCreateCDS(ADOQueryMain, CDS_Main);
  SInitCDSData(ADOQueryMain, CDS_Main);
  TV1.DataController.Filter.Clear;

end;

procedure TfrmTradeClothOutInspList.TBRafreshClick(Sender: TObject);
begin
  BegDate.SetFocus;
  InitGrid();
end;

procedure TfrmTradeClothOutInspList.ToolButton1Click(Sender: TObject);
begin

  if not CDS_Main.Locate('SSel', TRUE, []) then
  begin
    application.MessageBox('请选择数据！', '提示信息', 0);
    exit;
  end;
  if Application.MessageBox('确定要整缸完成吗？', '提示', 32 + 4) <> IDYES then
    Exit;

  try
    with CDS_Main do
    begin
      DisableControls;
      First;
      while not eof do
      begin
        if fieldbyname('SSel').AsBoolean then
        begin
          with ADOQueryCmd do
          begin
            Close;
            sql.Clear;
            sql.Add('update CK_SXPB_CR set DJWCFlag=1,DJWCTime=getdate(),DJWCer=' + quotedstr(DName));
            sql.Add(' where SPID=' + quotedstr(trim(CDS_Main.FieldByName('SPID').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(CDS_Main.FieldByName('SPID').AsString)));
            sql.Add(',' + quotedstr(trim('成功')));
            sql.Add(')');
            execsql;
          end;
        end;
        next;
      end;
      First;
      EnableControls;
    end;

    InitGrid();
  except
    application.MessageBox('完成失败！', '提示信息', 0);
  end;

end;

procedure TfrmTradeClothOutInspList.ToolButton2Click(Sender: TObject);
begin

  if not CDS_Main.Locate('SSel', TRUE, []) then
  begin
    application.MessageBox('请选择数据！', '提示信息', 0);
    exit;
  end;
  if Application.MessageBox('确定要撤销整缸完成吗？', '提示', 32 + 4) <> IDYES then
    Exit;

  try
    with CDS_Main do
    begin
      DisableControls;
      First;
      while not eof do
      begin
        if fieldbyname('SSel').AsBoolean then
        begin
          with ADOQueryCmd do
          begin
            Close;
            sql.Clear;

            sql.Add('update CK_SXPB_CR set DJWCFlag=0,DJWCTime=null,DJWCer=null');
            sql.Add(' where SPID=' + quotedstr(trim(CDS_Main.FieldByName('SPID').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(CDS_Main.FieldByName('SPID').AsString)));
            sql.Add(',' + quotedstr(trim('成功')));
            sql.Add(')');
            execsql;
          end;
        end;
        next;
      end;
      First;
      EnableControls;
    end;

    InitGrid();
  except
    application.MessageBox('完成失败！', '提示信息', 0);
  end;
end;

procedure TfrmTradeClothOutInspList.ToolButton5Click(Sender: TObject);
begin
  WriteCxGrid(trim(self.Caption), Tv1, '开卡管理');

end;

procedure TfrmTradeClothOutInspList.CheckBox1Click(Sender: TObject);
begin

  InitGrid();
end;

procedure TfrmTradeClothOutInspList.CheckBox2Click(Sender: TObject);
begin

  InitGrid();
end;

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

procedure TfrmTradeClothOutInspList.cxchckbx1Click(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmTradeClothOutInspList.cxTabControl1Change(Sender: TObject);
begin
  BegDate.SetFocus;
  InitGrid();
end;

procedure TfrmTradeClothOutInspList.TBCloseClick(Sender: TObject);
begin

  Close;
end;

procedure TfrmTradeClothOutInspList.FormShow(Sender: TObject);
begin
  inherited;
  SetStatus();
  ReadCxGrid(trim(self.Caption), Tv1, '开卡管理');
  InitGrid();
end;

procedure TfrmTradeClothOutInspList.TBExportClick(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then
    exit;
  TcxGridToExcel('待检布入库列表', cxGrid1);
end;

procedure TfrmTradeClothOutInspList.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 TfrmTradeClothOutInspList.N1Click(Sender: TObject);
begin
  SelOKNoFiler(TV1, True);
end;

procedure TfrmTradeClothOutInspList.N2Click(Sender: TObject);
begin
  SelOKNoFiler(TV1, False);
end;

procedure TfrmTradeClothOutInspList.N3Click(Sender: TObject);
begin

  Clipboard.SetTextBuf(PChar(Trim(CDS_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;

procedure TfrmTradeClothOutInspList.SPIDKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    {if Length(Trim(SPID.Text))<4 then Exit;
    try
      ADOQueryMain.DisableControls;
      with ADOQueryMain do
      begin
        Filtered:=False;
        Close;
        sql.Clear;
        sql.Add(' select A.* ');
        sql.Add(',ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId)');
        //sql.Add(' ,ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId )');
        sql.Add(' from CK_SXPB_CR A');
        sql.add(' where SPID like :SXID');
        Parameters.ParamByName('SXID').Value:='%'+Trim(SXID.Text)+'%';
        Open;
        //ShowMessage(SQL.Text);
      end;
      SCreateCDS(ADOQueryMain,CDS_Main);
      SInitCDSData(ADOQueryMain,CDS_Main);
    finally
      ADOQueryMain.EnableControls;
    end; }
  end;
end;

procedure TfrmTradeClothOutInspList.SPSpecChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmTradeClothOutInspList.FromCoNameChange(Sender: TObject);
begin
  TBFind.Click;
end;

procedure TfrmTradeClothOutInspList.FormDestroy(Sender: TObject);
begin
  inherited;
  frmTradeClothOutInspList := nil;
end;

procedure TfrmTradeClothOutInspList.Tv1Column16PropertiesEditValueChanged(Sender: TObject);
var
  mvalue, FFieldName: string;
begin
  mvalue := TcxTextEdit(Sender).EditingText;
  FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);

  with CDS_Main do
  begin
    Edit;
    FieldByName(FFieldName).Value := mvalue;
    Post;
  end;

  with ADOQueryCmd do
  begin
    Close;
    SQL.Clear;
    sql.Add('update CK_SXPB_CR set  ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
    sql.Add('where  SPID=' + quotedstr(Trim(CDS_Main.fieldbyname('SPID').AsString)));
    ExecSQL;
  end;
  tv1.Controller.EditingController.ShowEdit();
end;

procedure TfrmTradeClothOutInspList.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  if AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('Insp_WastageFlag').Index] = null then
    Exit;
  if (AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('Insp_WastageFlag').Index]) = 1 then
    ACanvas.Brush.Color := $00FF00;
  if (AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('Insp_WastageFlag').Index]) = 2 then
    ACanvas.Brush.Color := $00FFFF;
  if (AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('Insp_WastageFlag').Index]) = 3 then
    ACanvas.Brush.Color := $4763FF;

end;

end.

