unit U_TradePlanList;

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,
  dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges,
  IdExplicitTLSClientServerBase, U_BaseList, Vcl.Clipbrd;

type
  TfrmTradePlanList = class(TfrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBAdd: TToolButton;
    TBEdit: TToolButton;
    TBDel: TToolButton;
    TBPrint: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    Tv1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    cxgrdpmn1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    Label3: TLabel;
    OrderNo: TEdit;
    v1OrderNo: TcxGridDBColumn;
    v1OrdDate: TcxGridDBColumn;
    v1DeliveryDate: TcxGridDBColumn;
    Order_Main: TClientDataSet;
    TBCK: TToolButton;
    Label12: TLabel;
    MPRTKZ: TEdit;
    btnCopy: TToolButton;
    cxSplitter1: TcxSplitter;
    ADOQuerySub: TADOQuery;
    DataSource2: TDataSource;
    ToolButton4: TToolButton;
    cxTabControl1: TcxTabControl;
    Tchk: TToolButton;
    Tnochk: TToolButton;
    TWC: TToolButton;
    TNowc: TToolButton;
    Panel2: TPanel;
    ADOQueryImage: TADOQuery;
    DSImage: TDataSource;
    IdFTP1: TIdFTP;
    v1Column11: TcxGridDBColumn;
    TBTJ: TToolButton;
    TBTJCX: TToolButton;
    v1Column16: TcxGridDBColumn;
    ORDER_SUB: TClientDataSet;
    PopupMenu2: TPopupMenu;
    N3: TMenuItem;
    N4: TMenuItem;
    ComboBox1: TComboBox;
    Label1: TLabel;
    CustName: TEdit;
    Tv1Column6: TcxGridDBColumn;
    cxgrdpmn2: TcxGridPopupMenu;
    cxGrid2: TcxGrid;
    TV2: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    v1PRTColor: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    VC_PRTPs: TcxGridDBColumn;
    v1PRTOrderQty: TcxGridDBColumn;
    v1OrderUnit: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    Tv1Column2: TcxGridDBColumn;
    Tv1Column10: TcxGridDBColumn;
    Tv1Column11: TcxGridDBColumn;
    Tv1Column1: TcxGridDBColumn;
    Label2: TLabel;
    C_Name: TEdit;
    CDS_WXTS: TClientDataSet;
    Label4: TLabel;
    ConNo: TEdit;
    Tv1Column22: TcxGridDBColumn;
    CheckBox1: TCheckBox;
    ToolButton2: TToolButton;
    PM_1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    GPM_3: TcxGridPopupMenu;
    Tv1Column3: TcxGridDBColumn;
    Tv1Column12: TcxGridDBColumn;
    Tv1Column13: TcxGridDBColumn;
    Tv1Column14: TcxGridDBColumn;
    Tv1Column15: TcxGridDBColumn;
    Tv1Column16: TcxGridDBColumn;
    Tv1Column4: TcxGridDBColumn;
    ToolButton1: TToolButton;
    TV2Column1: TcxGridDBColumn;
    Tv1Column5: TcxGridDBColumn;
    Tv1Column7: TcxGridDBColumn;
    Tv1Column8: TcxGridDBColumn;
    Tv1Column9: TcxGridDBColumn;
    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 OrderNoKeyPress(Sender: TObject; var Key: Char);
    procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
    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 N2Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
  private
    DQdate: TDateTime;
    procedure InitGrid();
    procedure InitForm();
    function DelData(): Boolean;
    procedure InitGridFH();
    procedure InitSub();
    procedure SetStatus();
    procedure InitImage(fwbid: string);

    procedure SendMessageQR(MDateId, KeyWord1, KeyWord2, KeyWord3: string);
    { Private declarations }
  public
    FFInt, FCloth: Integer;
    canshu1, canshu2: string;
    fFlileFlag: string;
    FNOTE: string;
    { Public declarations }
  end;

implementation

uses
  U_DataLink, U_TradePlanInPut, U_RTFun, U_ZDYHelp, U_LabelPrint, U_TradeInspSet,
  U_AttachmentUpload;

{$R *.dfm}

procedure TfrmTradePlanList.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 TfrmTradePlanList.SetStatus();
begin
  btnCopy.Enabled := false;
  tbadd.Enabled := false;
  TBEdit.Enabled := False;
  TBDel.Enabled := False;
  TBTJ.Enabled := False;
  TBTJCX.Enabled := False;
  tchk.Enabled := false;
  tnochk.Enabled := false;
  TWC.Enabled := False;
  TNowc.Enabled := False;
  TBDel.Enabled := False;

  case cxTabControl1.TabIndex of
    0:
      begin
        tbadd.Enabled := True;
        TBEdit.Enabled := True;
        TBDel.Enabled := True;
        TBDel.Enabled := True;
        TBTJ.Enabled := True;
        btnCopy.Enabled := True;
      end;
    1:
      begin
        TBTJCX.Enabled := True;
        btnCopy.Enabled := True;
        TBDel.Enabled := True;
        tchk.Enabled := True;

      end;
    2:
      begin
        TWC.Enabled := True;
        btnCopy.Enabled := True;
        tnochk.Enabled := True;
      end;
    3:
      begin
        TNowc.Enabled := True;
        btnCopy.Enabled := True;
      end;
  end;

end;

procedure TfrmTradePlanList.InitSub();
begin
  ADOQuerySub.Close;
  if Order_Main.IsEmpty then
    exit;
  ADOQuerySub.DisableControls;
  with ADOQuerySub do
  begin
    close;
    sql.Clear;
    sql.Add('select *  ');
    sql.Add(' from Trade_Plan_Sub A');
    sql.Add('where mainid =' + quotedstr((Order_Main.fieldbyname('mainID').AsString)));
    open;
  end;
  SCreateCDS(ADOQuerySub, ORDER_SUB);
  SInitCDSData(ADOQuerySub, ORDER_SUB);

  ADOQuerySub.EnableControls;
  TV2.DataController.Filter.Clear;
end;

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

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

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

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

end;

procedure TfrmTradePlanList.TBCloseClick(Sender: TObject);
begin

  Close;

end;

procedure TfrmTradePlanList.InitGrid();
var
  STRwhere, Pwhere: string;
begin
  STRwhere := '';
  Pwhere := SGetFilters(Panel1, 1, 2);

  begin
    if trim(Pwhere) <> '' then
      STRwhere := STRwhere + ' and ' + trim(Pwhere);
  end;

  case cxTabControl1.TabIndex of
    0:
      begin
        STRwhere := STRwhere + ' and  isnull(status,''0'')=''0'' ';
      end;
    1:
      begin
        STRwhere := STRwhere + ' and  isnull(status,''0'')=''1'' ';
      end;
    2:
      begin
        STRwhere := STRwhere + ' and  isnull(status,''0'')=''9'' ';
      end;
    3:
      begin
        STRwhere := STRwhere + ' and  isnull(status,''0'')=''10'' ';
      end;
  end;

  try
    ADOQueryMain.DisableControls;

    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
      sql.add(' select  A.*   from V_Trade_Plan_Single A');

      if (ComboBox1.Text = '�Ƶ�����') and (CheckBox1.Checked = True) then
      begin
        sql.add(' where A.OrdDate>=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime))));
        sql.add(' and  A.OrdDate<' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1))));
      end;
      if (ComboBox1.Text = '�Ƶ�����') and (CheckBox1.Checked = False) then
      begin
        sql.add(' where A.OrdDate>=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime - 39999))));
        sql.add(' and  A.OrdDate<' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1))));
      end;

      if (ComboBox1.Text = '��������') and (CheckBox1.Checked = True) then
      begin
        sql.add(' where A.DlyDate>=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime))));
        sql.add(' and  A.DlyDate<' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1))));
      end;
      if (ComboBox1.Text = '��������') and (CheckBox1.Checked = False) then
      begin
        sql.add(' where A.DlyDate>=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime - 39999))));
        sql.add(' and  A.DlyDate<' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1))));
      end;

      if canshu1 = '¼��' then
      begin
        sql.add(' and  A.Filler= ' + QuotedStr(Trim(DName)));
      end;
      sql.add('     ' + STRwhere);

      sql.add(' order by  filltime desc');
//      ShowMessage(SQL.Text);
      Open;
    end;

    SCreateCDS(ADOQueryMain, Order_Main);
    SInitCDSData(ADOQueryMain, Order_Main);
  finally
    ADOQueryMain.EnableControls;
    TV1.DataController.Filter.Clear;

  end;
end;

procedure TfrmTradePlanList.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 TfrmTradePlanList.InitGridFH();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      sql.Clear;
      sql.Add('exec Order_QryList :MainId,:WSql');
      Parameters.ParamByName('WSql').Value := ' and FillTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + '''' + ' and FillTime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)) + '''';
      Open;
    end;
    SCreateCDS(ADOQueryMain, Order_Main);
    SInitCDSData(ADOQueryMain, Order_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmTradePlanList.InitForm();
begin
  ReadCxGrid('ָʾ���б�FF1', Tv1, '����ָʾ������');
  ReadCxGrid('ָʾ���б�FFTv21', Tv2, '����ָʾ������');
  BegDate.DateTime := SGetServerDate(ADOQueryTemp) - 180;
  EndDate.DateTime := SGetServerDate(ADOQueryTemp);

  SetStatus();
  InitGrid();
end;

procedure TfrmTradePlanList.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
    frmTradePlanInPut := TfrmTradePlanInPut.Create(Application);
    with frmTradePlanInPut do
    begin

      PState := 1;
      FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString);
      FOrderNo := Trim(Self.Order_Main.fieldbyname('OrderNo').AsString);
      canshu1 := self.canshu1;
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmTradePlanInPut.Free;
  end;

end;

procedure TfrmTradePlanList.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;

  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from Trade_Cloth_Inspect where isnull(mainID,'''')<>'''' and mainID=''' + Trim(Order_Main.fieldbyname('mainID').AsString) + '''');
    Open;
  end;
  if ADOQueryTemp.IsEmpty = False then
  begin
    Application.MessageBox('�Ѽ��鲻��ɾ������!', '��ʾ', 0);
    Exit;
  end;

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

function TfrmTradePlanList.DelData(): Boolean;
begin
  try
    Result := false;
    ADOQueryCmd.Connection.BeginTrans;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete Trade_Plan_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
      sql.Add('delete Trade_Plan_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
      sql.Add('delete Trade_Plan_Fty 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 TfrmTradePlanList.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 := 'TradePlanPrint';
      FFiltration1 := WSql;
      if ShowModal = 1 then
      begin
//        Self.InitGrid();
      end;
    end;
  finally
    frmLabelPrint.Free;
  end;
end;

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

procedure TfrmTradePlanList.TBAddClick(Sender: TObject);
begin
  try
    frmTradePlanInPut := TfrmTradePlanInPut.Create(Application);
    with frmTradePlanInPut do
    begin
      PState := 0;
      FMainId := '';
      canshu1 := self.canshu1;
      if ShowModal = 1 then
      begin
        InitGrid();
      end;
    end;
  finally
    frmTradePlanInPut.Free;
  end;
end;

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

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

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

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

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

  try
    frmTradePlanInPut := TfrmTradePlanInPut.Create(Application);
    with frmTradePlanInPut do
    begin
      PState := 1;
      FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString);
      ToolBar2.Visible := False;
      TBSave.Visible := False;
      ScrollBox1.Enabled := True;
      N2.Visible := False;
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmTradePlanInPut.Free;
  end;

end;

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

  try
    frmTradePlanInPut := TfrmTradePlanInPut.Create(Application);
    with frmTradePlanInPut do
    begin
      PState := 1;
      CopyInt := 99;
      FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString);
      canshu1 := self.canshu1;
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmTradePlanInPut.Free;
  end;

end;

procedure TfrmTradePlanList.OrderNoKeyPress(Sender: TObject; var Key: Char);
begin

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

procedure TfrmTradePlanList.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 TfrmTradePlanList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
  InitSub();

end;

procedure TfrmTradePlanList.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('MainId').AsString);
      fType := 'ָʾ��';
      if ShowModal = 1 then
      begin

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

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

procedure TfrmTradePlanList.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_Plan_Main SET status=''9'',chker=''' + trim(DName) + ''',Chktime=getdate() ');
      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;

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

procedure TfrmTradePlanList.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_Plan_Main SET status=''1'',chker=null,Chktime=null ');
      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;
    TBRafresh.Click;
  except
    application.MessageBox('�ƻ����������ʧ�ܣ�', '��ʾ��Ϣ', 0);
  end;
end;

procedure TfrmTradePlanList.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_Plan_Main SET status=''10'' ');
      sql.Add('where mainID=' + quotedstr(trim(Order_Main.fieldbyname('mainID').AsString)));

      sql.Add('exec P_Ord_Up_SuoLv @DataID=' + 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;

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

procedure TfrmTradePlanList.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_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;
    application.MessageBox('�ƻ���������ɳɹ���', '��ʾ��Ϣ');
    TBRafresh.Click;
  except
    application.MessageBox('�ƻ����������ʧ�ܣ�', '��ʾ��Ϣ', 0);
  end;
end;

procedure TfrmTradePlanList.TBTJClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    exit;

  if canshu1 <> '��Ȩ��' then
  begin
    if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then
    begin
      Application.MessageBox('���ܲ������˵�����!', '��ʾ', 0);
      Exit;
    end;
  end;

  if cxTabControl1.TabIndex <> 0 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_Plan_Main SET status=''1'' ');
      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;
    SendMessageQR(trim(Order_Main.FieldByName('mainid').AsString), trim(Order_Main.FieldByName('Filler').AsString), trim(Order_Main.FieldByName('orderNO').AsString), Trim(FormatDateTime('yyyy-MM-dd', Order_Main.FieldByName('OrdDate').asdatetime)));

    with ADOQueryCmd do
    begin
      close;
      sql.Clear;
      sql.Add('exec P_MSG_in ');
      sql.Add(' @MSG=' + QuotedStr(trim('�ƻ����ţ�' + trim(Order_Main.FieldByName('orderNO').AsString) + ' ��Ҫ���')));
      sql.Add(',@FillUserid=' + QuotedStr(trim(DCode)));
      sql.Add(',@FillUserName=' + QuotedStr(trim(DName)));
      sql.Add(',@FillType=' + QuotedStr(trim('��Ҫȷ��')));
      sql.Add(',@MegType=' + QuotedStr(trim('�ƻ����ύ')));
      execsql;
    end;
    application.MessageBox('�ƻ����ύ�ɹ���', '��ʾ��Ϣ');

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

procedure TfrmTradePlanList.TBTJCXClick(Sender: TObject);
begin
  if Order_Main.IsEmpty then
    exit;
  if canshu1 <> '��Ȩ��' then
  begin
    if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then
    begin
      Application.MessageBox('���ܲ������˵�����!', '��ʾ', 0);
      Exit;
    end;
  end;

  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_Plan_Main SET status=''0''  ');
      sql.Add(' where mainID=' + quotedstr(trim(Order_Main.fieldbyname('mainID').AsString)));
      sql.Add(' and isnull(status,''0'')=''1'' ');
      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;
    application.MessageBox('�ƻ����ύ�����ɹ���', '��ʾ��Ϣ');
    TBRafresh.Click;
  except
    application.MessageBox('�ƻ����ύ����ʧ�ܣ�', '��ʾ��Ϣ', 0);
  end;
end;

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

procedure TfrmTradePlanList.N2Click(Sender: TObject);
begin
  Clipboard.SetTextBuf(PChar(Trim(ORDER_SUB.fieldbyname(TV2.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;

procedure TfrmTradePlanList.N3Click(Sender: TObject);
begin
  SelOKNoFiler(Tv1, True); //ȫѡ
end;

procedure TfrmTradePlanList.N4Click(Sender: TObject);
begin
  SelOKNoFiler(Tv1, False); //ȫ��
end;

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

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

procedure TfrmTradePlanList.ToolButton10Click(Sender: TObject);
begin
  WriteCxGrid('ָʾ���б�FF1', Tv1, '����ָʾ������');
  WriteCxGrid('ָʾ���б�FFTv21', Tv2, '����ָʾ������6');
  application.MessageBox('����ɹ���', '��ʾ��Ϣ', 0);
end;

procedure TfrmTradePlanList.ToolButton1Click(Sender: TObject);
begin
  try
    frmTradeInspSet := TfrmTradeInspSet.Create(Application);
    with frmTradeInspSet do
    begin

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

      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmTradeInspSet.Free;
  end;
end;

procedure TfrmTradePlanList.ToolButton2Click(Sender: TObject);
begin
  WriteCxGrid('ָʾ���б�FF1', Tv1, '����ָʾ������');
  WriteCxGrid('ָʾ���б�FFTv21', Tv2, '����ָʾ������');
end;

end.