unit U_TradeSampletList;

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, cxDropDownEdit, cxCheckBox, RM_e_Graphic, RM_e_Jpeg,
  cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, Math,
  dxDateRanges, IdExplicitTLSClientServerBase, U_BaseList, Vcl.Clipbrd,
  dxScrollbarAnnotations, cxProgressBar, FrameDateSel, dxSkinsCore,
  dxSkinsDefaultPainters, dxSkinWXI;

type
  TfrmTradeSampleList = class(TfrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBAdd: TToolButton;
    TBEdit: TToolButton;
    TBDel: TToolButton;
    TBPrint: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    Tv1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    cxgrdpmn1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    Label3: TLabel;
    TMMNo: TcxTextEdit;
    v1OrdDate: TcxGridDBColumn;
    Order_Main: TClientDataSet;
    TBCK: TToolButton;
    btnCopy: TToolButton;
    ADOQuerySub: TADOQuery;
    DataSource2: TDataSource;
    ToolButton4: TToolButton;
    cxTabControl1: TcxTabControl;
    TWC: TToolButton;
    TNowc: TToolButton;
    ADOQueryImage: TADOQuery;
    DSImage: TDataSource;
    IdFTP1: TIdFTP;
    TBTJ: TToolButton;
    TBTJCX: TToolButton;
    v1Column16: TcxGridDBColumn;
    ORDER_SUB: TClientDataSet;
    PopupMenu2: TPopupMenu;
    N3: TMenuItem;
    N4: TMenuItem;
    Label1: TLabel;
    CustName: TcxTextEdit;
    Tv1Column6: TcxGridDBColumn;
    cxgrdpmn2: TcxGridPopupMenu;
    Tv1Column1: TcxGridDBColumn;
    Label2: TLabel;
    C_Name: TcxTextEdit;
    CDS_WXTS: TClientDataSet;
    Label4: TLabel;
    FILLER: TcxTextEdit;
    ToolButton2: TToolButton;
    PM_1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    GPM_3: TcxGridPopupMenu;
    Tv1Column4: TcxGridDBColumn;
    Tv1Column3: TcxGridDBColumn;
    Tv1Column5: TcxGridDBColumn;
    frmFrameDateSel1: TfrmFrameDateSel;
    Tv1Column7: TcxGridDBColumn;
    Tv1Column9: TcxGridDBColumn;
    Tv1Column12: TcxGridDBColumn;
    Tv1Column16: TcxGridDBColumn;
    Tv1Column10: TcxGridDBColumn;
    ToolButton1: TToolButton;
    Tv1Column11: TcxGridDBColumn;
    Tv1Column13: TcxGridDBColumn;
    Tv1Column17: TcxGridDBColumn;
    N5: TMenuItem;
    N6: TMenuItem;
    Tv1Column22: TcxGridDBColumn;
    TBZF: TToolButton;
    TBNOZF: TToolButton;
    Tv1Column25: TcxGridDBColumn;
    Tv1Column26: TcxGridDBColumn;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    C_Color: TcxTextEdit;
    C_ColorNo: TcxTextEdit;
    JYPERSON: TcxTextEdit;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure TBEditClick(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure TBPrintClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure TBAddClick(Sender: TObject);
    procedure OrderNoMChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBTPClick(Sender: TObject);
    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 TBCKClick(Sender: TObject);
    procedure btnCopyClick(Sender: TObject);
    procedure TMMNoKeyPress(Sender: TObject; var Key: Char);
    procedure ToolButton4Click(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
//    procedure TchkClick(Sender: TObject);
//    procedure TnochkClick(Sender: TObject);
    procedure TWCClick(Sender: TObject);
    procedure TNowcClick(Sender: TObject);
    procedure TBTJClick(Sender: TObject);
    procedure TBTJCXClick(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure CustomerNoNameKeyPress(Sender: TObject; var Key: Char);
    procedure ToolButton10Click(Sender: TObject);
    procedure JGTypeChange(Sender: TObject);
    procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure ToolButton2Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure TBZFClick(Sender: TObject);
    procedure TBNOZFClick(Sender: TObject);
    procedure Tv1DblClick(Sender: TObject);
    procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
  private
    DQdate: TDateTime;
    procedure InitGrid();
    procedure InitForm();
    function DelData(): Boolean;
    procedure SetStatus();
    procedure InitImage(fwbid: string);
    procedure SendMessageQR(MDateId, KeyWord1, KeyWord2, KeyWord3: string);
    { Private declarations }
  public
    FFInt, FCloth: Integer;
    canshu1, canshu2, canshu4: string;
    fFlileFlag: string;
    FNOTE: string;
    FOrdType: string;
    { Public declarations }
  end;

var
  frmTradeSampleList: TfrmTradeSampleList;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp, U_LabelPrint, U_AttachmentUpload,
  U_TradeSampleInPut;

{$R *.dfm}

procedure TfrmTradeSampleList.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 TfrmTradeSampleList.SetStatus();
begin
  btnCopy.Visible := false;
  tbadd.Visible := false;
  TBEdit.Visible := False;
  TBDel.Visible := False;
  TBTJ.Visible := False;
  TBTJCX.Visible := False;

  TWC.Visible := False;
  TNowc.Visible := False;
  TBDel.Visible := False;

  case cxTabControl1.TabIndex of
    0:
      begin
        if self.fParameters1 = '管理' then
        begin
//          tbadd.Visible := True;
          TBEdit.Visible := True;
          TBDel.Visible := True;
          TBTJ.Visible := True;
//          btnCopy.Visible := True;
        end;
        tbadd.Visible := True;
      end;
    1:
      begin
        if self.fParameters1 = '管理' then
        begin
          TBTJCX.Visible := True;
//          tbadd.Visible := True;
//          btnCopy.Visible := True;
          TBEdit.Visible := True;
          TBDel.Visible := True;
        //tchk.Enabled := True;
//          TWC.Visible := True;
        end;

      end;
    2:
      begin
        if self.fParameters1 = '管理' then
        begin
//          TNowc.Enabled := True;
//          btnCopy.Enabled := True;
          TBEdit.Visible := True;
          TBDel.Visible := True;
        end;
      end;
  end;

end;

procedure TfrmTradeSampleList.JGTypeChange(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmTradeSampleList.FormDestroy(Sender: TObject);
begin
  inherited;
//  frmProductOrderList:=nil;
end;

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

procedure TfrmTradeSampleList.FormCreate(Sender: TObject);
begin
  inherited;
  cxgrid1.Align := alClient;
  DQdate := SGetServerDate(ADOQueryTemp);

end;

procedure TfrmTradeSampleList.TBCloseClick(Sender: TObject);
begin

  Close;

end;

procedure TfrmTradeSampleList.InitGrid();
var
  SqlStr, FilterStr: string;
begin
  FilterStr := SGetFilters(Panel1, 1, 2);

  SqlStr := ' exec  P_Trade_Sample_View  ';
  SqlStr := SqlStr + '  @BegDate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', frmFrameDateSel1.BegDate.Date)));
  SqlStr := SqlStr + ' ,@EndDate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', frmFrameDateSel1.enddate.Date + 1)));
  SqlStr := SqlStr + ' ,@StkPosition= ' + QuotedStr(Trim(canshu2));
  if canshu1 = '录入' then
    SqlStr := SqlStr + ' ,@Filler= ' + QuotedStr(Trim(DName));

  SqlStr := SqlStr + ' ,@Stores= ' + QuotedStr(Trim(canshu4));
  case cxTabControl1.TabIndex of    // 1未配货，2已配货，9已装车 10已回单
    0:
      begin
        SqlStr := SqlStr + ' , @Status=''1'' '; //待提交
      end;
    1:

      begin
        SqlStr := SqlStr + ' , @Status=''10'' ';   //已回单
      end;

  end;
//  ShowMessage(SqlStr);
  InitCDSData(ADOQueryMain, Order_Main, Tv1, SqlStr, FilterStr, 'TMMId');
end;

procedure TfrmTradeSampleList.SendMessageQR(MDateId, KeyWord1, KeyWord2, KeyWord3: string);
begin
//  with ADOQueryTemp do
//  begin
//    Close;
//    SQL.Clear;
//    sql.Add('select distinct A.* from SY_User A inner join SY_Purview B on A.UserID=B.UserID  where A.Valid=''Y'' ');
//    SQL.Add('and isnull(A.wxid,'''')<>''''');
//    SQL.Add(' and exists(select 1 from SY_ModuleSub X where X.ModuleID=B.ModuleID and X.ModuleSubID=B.ModuleSubID and X.FormName=''生产计划单审核'' )');
////    showmessage(sql.text);
//    Open;
//  end;
//  SCreateCDS(ADOQueryTemp, CDS_WXTS);
//  SInitCDSData(ADOQueryTemp, CDS_WXTS);
//
//  if CDS_WXTS.IsEmpty then
//  begin
//    Application.MessageBox('用户未绑定微信,提交失败！', '提示信息', 0);
//    Exit;
//  end;
//  CDS_WXTS.First;
//  while not CDS_WXTS.eof do
//  begin
//    with ADOQueryCmd do
//    begin
//      Close;
//      SQL.Clear;
//      SQL.Add('select * from WeixinMessage where 1<>1');
//      Open;
//      Append;
//      FieldByName('MessageType').Value := 'OrderToAudit';
//      FieldByName('MessageName').Value := '计划单待审核';
//      FieldByName('Title').Value := '您有新的生产计划单待审核';
//      FieldByName('URL').Value := 'subpages/plan/view?id=' + Trim(MDateId);
//      FieldByName('OpenId').Value := Trim(CDS_WXTS.FieldByName('wxid').AsString);
//      FieldByName('Status').Value := '0';
//      FieldByName('CreateDate').Value := FormatDateTime('yyyymmdd', SGetServerDateTime(ADOQueryTemp));
//      FieldByName('CreateTime').Value := FormatDateTime('HH:mm:ss', SGetServerDateTime(ADOQueryTemp));
//      FieldByName('BusinessId').Value := Trim(MDateId);
//      FieldByName('KeyWord1').Value := Trim(KeyWord1);
//      FieldByName('KeyWord2').Value := Trim(KeyWord2);
//      FieldByName('KeyWord3').Value := Trim(KeyWord3);
//      FieldByName('Remark').Value := '点击可查询详情！';
//      Post;
//    end;
//    CDS_WXTS.Next;
//  end;
//
//  GetHTTP('http://aotang.rightsoft.top/api/message/send/OrderToAudit');
end;

procedure TfrmTradeSampleList.InitForm();
begin
  ReadCxGrid('指示单列表FF1', Tv1, '生产指示单管理');
  frmFrameDateSel1.BegDate.Date := SGetServerDate(ADOQueryTemp) - 180;
  frmFrameDateSel1.EndDate.Date := SGetServerDate(ADOQueryTemp);

  SetStatus();
  InitGrid();
end;

procedure TfrmTradeSampleList.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
    frmTradeSampleInPut := TfrmTradeSampleInPut.Create(Application);
    with frmTradeSampleInPut do
    begin

      PState := 1;
      FTMMId := Trim(Self.Order_Main.fieldbyname('TMMId').AsString);
      FTMMNo := Trim(Self.Order_Main.fieldbyname('TMMNo').AsString);
      canshu1 := self.canshu1;
      canshu4 := self.canshu4;
      frmTradeSampleInPut.fordtype := self.fordtype;
      if ShowModal = 1 then
      begin
        initgrid();
      end;
    end;
  finally
    frmTradeSampleInPut.Free;
  end;

end;

procedure TfrmTradeSampleList.TBNOZFClick(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;
  if Application.MessageBox('是否核实好数据？', '提示', 32 + 4) <> IDYES then
    Exit;
  try
    with ADOQueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add('update  Trade_Market_Main SET status=''1'' ');
      sql.Add('where TMMId=' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));

      sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) ');
      sql.Add('values(''贸易布坯出库''    ');
      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
      sql.Add(',''作废''   ');
      sql.Add(',' + quotedstr(DName));
      sql.Add(',' + quotedstr(trim(self.Caption)));
      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
      sql.Add(')  ');

      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('TMMNO').AsString))));
      sql.Add(',' + quotedstr(trim('成功')));
      sql.Add(')');
      execsql;
    end;
    application.MessageBox('计划单撤销作废成功！', '提示信息');
    TBRafresh.Click;
  except
    application.MessageBox('计划单撤销作废失败！', '提示信息', 0);
  end;
end;

procedure TfrmTradeSampleList.TBDelClick(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;

  if Application.MessageBox('确定要删除数据吗？', '提示', 32 + 4) <> IDYES then
    Exit;

  while Order_Main.Locate('SSel', true, []) do
  begin
    if Trim(Order_Main.fieldbyname('TMMId').AsString) <> '' then
    begin
      DelData()
    end;
    Order_Main.Delete;
  end;
end;

function TfrmTradeSampleList.DelData(): Boolean;
begin
  try
    Result := false;
    ADOQueryCmd.Connection.BeginTrans;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete Trade_Market_Main where TMMId=''' + Trim(Order_Main.fieldbyname('TMMId').AsString) + '''');
      sql.Add('delete Trade_Market_Sub where TMMId=''' + Trim(Order_Main.fieldbyname('TMMId').AsString) + '''');

      sql.Add('delete Trade_Market_Sub_Qty where TMMId=''' + Trim(Order_Main.fieldbyname('TMMId').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('TMMNo').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 TfrmTradeSampleList.TBPrintClick(Sender: TObject);
var
  WSql: string;
begin
  if Order_Main.IsEmpty then
    Exit;
  if Order_Main.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据', '提示', 0);
    Exit;
  end;
  WSql := '';
  Order_Main.DisableControls;
  with Order_Main do
  begin
    First;
    while not Eof do
    begin
      if Order_Main.fieldbyname('SSel').AsBoolean then
      begin
        if WSql <> '' then
        begin
          WSql := WSql + ',' + Trim(Order_Main.fieldbyname('TMMId').AsString);
        end
        else
        begin
          WSql := Trim(Order_Main.fieldbyname('TMMId').AsString);
        end;
      end;
      Next;
    end;
  end;
  Order_Main.Locate('SSel', True, []);
  Order_Main.EnableControls;
  try
    frmLabelPrint := TfrmLabelPrint.Create(Application);
    with frmLabelPrint do
    begin
      FLMType := 'TradeSamplePrint';
      FFiltration1 := Trim(WSql);
      if ShowModal = 1 then
      begin
//        Self.InitGrid();
        with ADOQueryCmd do
        begin
          close;
          sql.Clear;
          sql.Add('update  Trade_Market_Main SET PrintStatus=1 ');
          sql.Add(' where EXISTS(select X.RTValue from  [dbo].[F_Tool_SplitString](''' + WSql + ''','','')  X where X.RTValue=TMMId) ');
          execsql;
        end;
      end;
    end;
  finally
    frmLabelPrint.Free;
  end;
end;

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

procedure TfrmTradeSampleList.TBAddClick(Sender: TObject);
begin
  try
    frmTradeSampleInPut := TfrmTradeSampleInPut.Create(Application);
    with frmTradeSampleInPut do
    begin
      PState := 0;
      FTMMId := '';
      canshu1 := self.canshu1;
      canshu4 := self.canshu4;
      frmTradeSampleInPut.fordtype := self.fordtype;
      if ShowModal = 1 then
      begin
        InitGrid();
      end;
    end;
  finally
    frmTradeSampleInPut.Free;
  end;
end;

procedure TfrmTradeSampleList.OrderNoMChange(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 TfrmTradeSampleList.FormShow(Sender: TObject);
begin
  inherited;
  canshu1 := trim(self.fParameters1);
  canshu2 := trim(self.fParameters2);
  canshu4 := trim(self.fParameters4);
  fFlileFlag := UserDataFlag + 'HX';
  cxTabControl1.TabIndex := 0;
  InitForm();
end;

procedure TfrmTradeSampleList.TBTPClick(Sender: TObject);
var
  FQty, FQty1, FMxQty, FPQty, FMxQtyS, FPQtyS: string;
begin
end;

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

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

procedure TfrmTradeSampleList.Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
var
  id, id10: Integer;
begin
  {try
    if Tv1.GroupedItemCount=0 then
    begin
      Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount;
      Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount;
      if Trim(VarToStr(ARecord.Values[id]))='' then Exit;
      if Id<0 then Exit;
      if ARecord.Values[id10]='完成' then exit;
      if (ARecord.Values[id]-DQdate)>=4 then Exit;
      if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then
        AStyle:=DataLink_.QHuangSe
      else
      if ARecord.Values[id]-DQdate<0 then
      begin
        AStyle:=DataLink_OrderManage.FenHongS;
      end;
    end else
    begin

    end;
  except
  end; }
end;

procedure TfrmTradeSampleList.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 TfrmTradeSampleList.TBCKClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    Exit;

  try
    frmTradeSampleInPut := TfrmTradeSampleInPut.Create(Application);
    with frmTradeSampleInPut do
    begin
      PState := 1;
      FTMMId := Trim(Self.Order_Main.fieldbyname('TMMId').AsString);
      ToolBar2.Visible := False;
      TBSave.Visible := False;
      ScrollBox1.Enabled := True;
      N2.Visible := False;
      frmTradeSampleInPut.fordtype := self.fordtype;
      TvMX.OnCellDblClick := nil;
      Panel5.Visible := False;
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmTradeSampleInPut.Free;
  end;

end;

procedure TfrmTradeSampleList.btnCopyClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    Exit;

  try
    frmTradeSampleInPut := TfrmTradeSampleInPut.Create(Application);
    with frmTradeSampleInPut do
    begin
      PState := 1;
      CopyInt := 99;
      FTMMId := Trim(Self.Order_Main.fieldbyname('TMMId').AsString);
      canshu1 := self.canshu1;
      canshu4 := self.canshu4;
      frmTradeSampleInPut.fordtype := self.fordtype;
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmTradeSampleInPut.Free;
  end;

end;

procedure TfrmTradeSampleList.TMMNoKeyPress(Sender: TObject; var Key: Char);
begin

  if Key = #13 then
  begin
    initgrid();
  end;
end;

procedure TfrmTradeSampleList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
  Clipboard.SetTextBuf(PChar(Trim(Order_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;

procedure TfrmTradeSampleList.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  if AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('PrintStatus').Index] = '1' then
    ACanvas.Brush.Color := clInfoBk;
end;

procedure TfrmTradeSampleList.Tv1DblClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    Exit;

  try
    frmTradeSampleInPut := TfrmTradeSampleInPut.Create(Application);
    with frmTradeSampleInPut do
    begin
      PState := 1;
      FTMMId := Trim(Self.Order_Main.fieldbyname('TMMId').AsString);
      ToolBar2.Enabled := False;
      TBSave.Enabled := False;
      ScrollBox1.Enabled := False;
      N2.Visible := False;
      frmTradeSampleInPut.fordtype := self.fordtype;
      TvMX.OnCellDblClick := nil;
      Panel5.Enabled := False;
      canshu4 := self.canshu4;
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmTradeSampleInPut.Free;
  end;

end;

procedure TfrmTradeSampleList.ToolButton4Click(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    Exit;
  try
    frmAttachmentUpload := TfrmAttachmentUpload.Create(Application);
    with frmAttachmentUpload do
    begin
      if Trim(canshu1) <> '查询' then
        FEditAuthority := True;
      fkeyNO := Trim(Self.Order_Main.fieldbyname('TMMId').AsString);
      fType := '指示单';
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmAttachmentUpload.Free;
  end;
end;

procedure TfrmTradeSampleList.cxTabControl1Change(Sender: TObject);
begin
//  SetStatus();

  InitGrid();
  SetStatus();
end;

//procedure TfrmTradeMarketList.TchkClick(Sender: TObject);
//begin
//  if Order_Main.IsEmpty then
//    exit;
//  if cxTabControl1.TabIndex <> 1 then
//  begin
//    Application.MessageBox('只能在待审核状态下进行审核操作!', '提示', 0);
//    Exit;
//  end;
//  if Application.MessageBox('是否核实好数据？', '提示', 32 + 4) <> IDYES then
//    Exit;
//  try
//    with ADOQueryCmd do
//    begin
//      close;
//      sql.Clear;
//      sql.Add('update  Trade_Market_Main SET status=''9'',chker=''' + trim(DName) + ''',Chktime=getdate() ');
//      sql.Add('where TMMId=' + quotedstr(trim(Order_Main.fieldbyname('TMMId').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('TMMNO').AsString))));
//      sql.Add(',' + quotedstr(trim('成功')));
//      sql.Add(')');
//      execsql;
//    end;
//
//  except
//    application.MessageBox('计划单审核失败！', '提示信息', 0);
//  end;
//  TBRafresh.Click;
//end;

//procedure TfrmTradeMarketList.TnochkClick(Sender: TObject);
//begin
//  if Order_Main.IsEmpty then
//    exit;
//  if cxTabControl1.TabIndex <> 2 then
//  begin
//    Application.MessageBox('只能在已审核状态下进行审核操作!', '提示', 0);
//    Exit;
//  end;
//  try
//    with ADOQueryCmd do
//    begin
//      close;
//      sql.Clear;
//      sql.Add('update  Trade_Market_Main SET status=''1'',chker=null,Chktime=null ');
//      sql.Add('where TMMId=' + quotedstr(trim(Order_Main.fieldbyname('TMMId').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('TMMNO').AsString))));
//      sql.Add(',' + quotedstr(trim('成功')));
//      sql.Add(')');
//      execsql;
//    end;
//    TBRafresh.Click;
//  except
//    application.MessageBox('计划单撤销审核失败！', '提示信息', 0);
//  end;
//end;

procedure TfrmTradeSampleList.TWCClick(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;
  if Application.MessageBox('是否核实好数据？', '提示', 32 + 4) <> IDYES then
    Exit;
  try
    with ADOQueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add('update  Trade_Market_Main SET status=''9'' ');
      sql.Add('where TMMId=' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));

      sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) ');
      sql.Add('values(''贸易布坯出库''    ');
      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
      sql.Add(',''完成''   ');
      sql.Add(',' + quotedstr(DName));
      sql.Add(',' + quotedstr(trim(self.Caption)));
      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
      sql.Add(')  ');

      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('TMMNO').AsString))));
      sql.Add(',' + quotedstr(trim('成功')));
      sql.Add(')');
      execsql;
    end;

    application.MessageBox('计划单完成成功！', '提示信息');
    TBRafresh.Click;
  except
    application.MessageBox('计划单完成失败！', '提示信息', 0);
  end;
end;

procedure TfrmTradeSampleList.TNowcClick(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;
  if Application.MessageBox('是否核实好数据？', '提示', 32 + 4) <> IDYES then
    Exit;
  try
    with ADOQueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add('update  Trade_Market_Main SET status=''2'' ');
      sql.Add('where TMMId=' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));

      sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) ');
      sql.Add('values(''贸易布坯出库''    ');
      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
      sql.Add(',''完成''   ');
      sql.Add(',' + quotedstr(DName));
      sql.Add(',' + quotedstr(trim(self.Caption)));
      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
      sql.Add(')  ');

      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('TMMNO').AsString))));
      sql.Add(',' + quotedstr(trim('成功')));
      sql.Add(')');
      execsql;
    end;
    application.MessageBox('计划单撤销完成成功！', '提示信息');
    TBRafresh.Click;
  except
    application.MessageBox('计划单撤销完成失败！', '提示信息', 0);
  end;
end;

procedure TfrmTradeSampleList.TBTJClick(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;
  if Application.MessageBox('是否核实好数据？', '提示', 32 + 4) <> IDYES then
    Exit;
  try
    with ADOQueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add('update  Trade_Market_Main SET status=''10'' ');
      sql.Add('where TMMId=' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));

//      sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) ');
//      sql.Add('values(''贸易布坯出库''    ');
//      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
//      sql.Add(',''完成''   ');
//      sql.Add(',' + quotedstr(DName));
//      sql.Add(',' + quotedstr(trim(self.Caption)));
//      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
//      sql.Add(')  ');

      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('TMMNO').AsString))));
      sql.Add(',' + quotedstr(trim('成功')));
      sql.Add(')');
      execsql;
    end;

    application.MessageBox('计划单完成成功！', '提示信息');
    TBRafresh.Click;
  except
    application.MessageBox('计划单完成失败！', '提示信息', 0);
  end;
end;

procedure TfrmTradeSampleList.TBTJCXClick(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;
  if Application.MessageBox('是否核实好数据？', '提示', 32 + 4) <> IDYES then
    Exit;
  try
    with ADOQueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add('update  Trade_Market_Main SET status=''1'' ');
      sql.Add('where TMMId=' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));

//      sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) ');
//      sql.Add('values(''贸易布坯出库''    ');
//      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
//      sql.Add(',''完成''   ');
//      sql.Add(',' + quotedstr(DName));
//      sql.Add(',' + quotedstr(trim(self.Caption)));
//      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
//      sql.Add(')  ');

      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('TMMNO').AsString))));
      sql.Add(',' + quotedstr(trim('成功')));
      sql.Add(')');
      execsql;
    end;
    application.MessageBox('计划单撤销完成成功！', '提示信息');
    TBRafresh.Click;
  except
    application.MessageBox('计划单撤销完成失败！', '提示信息', 0);
  end;
end;

procedure TfrmTradeSampleList.N1Click(Sender: TObject);
begin
  Clipboard.SetTextBuf(PChar(Trim(Order_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;

procedure TfrmTradeSampleList.N3Click(Sender: TObject);
begin
  SelOKNoFiler(Tv1, True); //全选
end;

procedure TfrmTradeSampleList.N4Click(Sender: TObject);
begin
  SelOKNoFiler(Tv1, False); //全弃
end;

procedure TfrmTradeSampleList.N5Click(Sender: TObject);
begin
  SelOKNo(Order_Main, True);

end;

procedure TfrmTradeSampleList.N6Click(Sender: TObject);
begin
  SelOKNo(Order_Main, False);

end;

procedure TfrmTradeSampleList.ComboBox1Change(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmTradeSampleList.CustomerNoNameKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    InitGrid();
  end;
end;

procedure TfrmTradeSampleList.ToolButton10Click(Sender: TObject);
begin
  WriteCxGrid('指示单列表FF1', Tv1, '生产指示单管理');
  application.MessageBox('保存成功！', '提示信息', 0);
end;

procedure TfrmTradeSampleList.ToolButton1Click(Sender: TObject);
begin
  TcxGridToExcel(Trim(Self.Caption), cxGrid1);
end;

procedure TfrmTradeSampleList.ToolButton2Click(Sender: TObject);
begin
  WriteCxGrid('指示单列表FF1', Tv1, '生产指示单管理');
end;

procedure TfrmTradeSampleList.TBZFClick(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;
  if Application.MessageBox('是否核实好数据？', '提示', 32 + 4) <> IDYES then
    Exit;
  try
    with ADOQueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add('update  Trade_Market_Main SET status=''11'' ');
      sql.Add('where TMMId=' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));

      sql.Add('insert into Finance_Need_Up(UType,UDataId,UOperation,UOperator,UModule,UDetails) ');
      sql.Add('values(''贸易布坯出库''    ');
      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
      sql.Add(',''作废''   ');
      sql.Add(',' + quotedstr(DName));
      sql.Add(',' + quotedstr(trim(self.Caption)));
      sql.Add(',' + quotedstr(trim(Order_Main.fieldbyname('TMMId').AsString)));
      sql.Add(')  ');

      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('TMMNO').AsString))));
      sql.Add(',' + quotedstr(trim('成功')));
      sql.Add(')');
      execsql;
    end;

    application.MessageBox('计划单作废成功！', '提示信息');
    TBRafresh.Click;
  except
    application.MessageBox('计划单作废失败！', '提示信息', 0);
  end;
end;

end.

