unit U_RSTradePlanSel;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
  cxEdit, DB, cxDBData, ToolWin, ComCtrls, U_BaseHelp, cxGridCustomTableView,
  cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGrid, DBClient, ADODB, ImgList, StdCtrls, ExtCtrls,
  cxTextEdit, cxGridCustomPopupMenu, cxGridPopupMenu, cxLookAndFeels,
  cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters, cxNavigator,
  dxDateRanges, dxBarBuiltInMenu, System.ImageList, U_BaseInput, cxCheckBox,
  cxCalendar, Vcl.Menus, dxSkinWXI, dxScrollbarAnnotations;

type
  TfrmRSTradePlanSel = class(TfrmBaseHelp)
    ToolBar1: TToolBar;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    DS_1: TDataSource;
    CDS_1: TClientDataSet;
    TBSave: TToolButton;
    TBClose: TToolButton;
    ToolButton1: TToolButton;
    ADOConnection1: TADOConnection;
    Panel1: TPanel;
    GPM_1: TcxGridPopupMenu;
    ImageList1: TImageList;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1Column7: TcxGridDBColumn;
    v1OrderNo: TcxGridDBColumn;
    v1ConNo: TcxGridDBColumn;
    Tv1Column11: TcxGridDBColumn;
    v1OrdDefStr1: TcxGridDBColumn;
    v1MPRTCodeName: TcxGridDBColumn;
    v1MPRTSpec: TcxGridDBColumn;
    Tv1Column1: TcxGridDBColumn;
    v1MPRTMF: TcxGridDBColumn;
    v1MPRTKZ: TcxGridDBColumn;
    v1PRTColor: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    v1PRTOrderQty: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1DeliveryDate: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    Tv1Column3: TcxGridDBColumn;
    Tv1Column4: TcxGridDBColumn;
    Tv1Column5: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    Tv1Column2: TcxGridDBColumn;
    Label3: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    OrderNo: TEdit;
    C_Name: TEdit;
    C_Color: TEdit;
    C_ColorNo: TEdit;
    C_Pattern: TEdit;
    C_Code: TEdit;
    ConNo: TEdit;
    Tv1Column6: TcxGridDBColumn;
    Tv1Column7: TcxGridDBColumn;
    Tv1Column8: TcxGridDBColumn;
    Tv1Column9: TcxGridDBColumn;
    Tv1Column10: TcxGridDBColumn;
    Tv1Column12: TcxGridDBColumn;
    PopupMenu1: TPopupMenu;
    PopupMenu11: TMenuItem;
    N1: TMenuItem;
    Label1: TLabel;
    BuyConNo: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure TBSaveClick(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure OrderNoChange(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Tv1DblClick(Sender: TObject);
    procedure PopupMenu11Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
  private
    procedure InitGrid();
    { Private declarations }
  public
    FCoType, FAuthority, FMainID: string;
    { Public declarations }
  end;

var
  frmRSTradePlanSel: TfrmRSTradePlanSel;

implementation

uses
  U_DataLink, U_RTFun;

{$R *.dfm}

procedure TfrmRSTradePlanSel.FormCreate(Sender: TObject);
begin
  inherited;
  try
    with ADOConnection1 do
    begin
      Connected := false;
      ConnectionString := DConString;
      Connected := true;
    end;
    ADOQueryBaseCmd.Connection := ADOConnection1;
    ADOQueryBaseTemp.Connection := ADOConnection1;
  except
    application.MessageBox('网络连接失败！', '提示信息');
  end;
end;

procedure TfrmRSTradePlanSel.FormDestroy(Sender: TObject);
begin
  inherited;
  frmRSTradePlanSel := nil;
end;

procedure TfrmRSTradePlanSel.FormClose(Sender: TObject; var Action: TCloseAction);
begin

  Action := cahide;
end;

procedure TfrmRSTradePlanSel.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Close;
      sql.Clear;
      sql.Add('select A.*  from V_Trade_Plan_RS A ');
      sql.add('where Status=''9'' And WPQty <> 0');
      sql.add('Order by OrdDate Desc,SubId');
//      ShowMessage(sql.Text);
      Open;
    end;
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS(ADOQueryMain, CDS_1);
    SInitCDSData(ADOQueryMain, CDS_1);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmRSTradePlanSel.N1Click(Sender: TObject);
begin
  SelOKNo(CDS_1, False);

end;

procedure TfrmRSTradePlanSel.OrderNoChange(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS(ADOQueryMain, CDS_1);
    SInitCDSData(ADOQueryMain, CDS_1);
  end;
end;

procedure TfrmRSTradePlanSel.PopupMenu11Click(Sender: TObject);
begin
  SelOKNo(CDS_1, True);

end;

procedure TfrmRSTradePlanSel.FormShow(Sender: TObject);
begin
  inherited;
  ReadCxGrid('单位名称' + Trim(FCoType), TV1, '自定义数据');
  InitGrid();
end;

procedure TfrmRSTradePlanSel.TBCloseClick(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TfrmRSTradePlanSel.TBSaveClick(Sender: TObject);
begin
  WriteCxGrid('单位名称' + Trim(FCoType), TV1, '自定义数据');

end;

procedure TfrmRSTradePlanSel.ToolButton1Click(Sender: TObject);
var
  Count: Integer;
  Value: string;
begin
  Count := 1;
  with ADOQueryMain do
  begin
    Close;
    sql.Clear;
    sql.Add('select A.*,BuyConNo=(select Top 1 BuyConNo from Trade_Plan_Sub X where X.MainId=A.MainId)   ');
    sql.Add('from Trade_Plan_Main A Where MainId=''' + Trim(FMainId) + '''');
//      ShowMessage(sql.Text);
    Open;
  end;
  Value:=ADOQueryMain.FieldByName('OrderNo').ASString;
  with CDS_1 do
  begin
    First;
    while not Eof do
    begin
      if CDS_1.fieldbyname('SSel').AsBoolean then
      begin
        if Value = '' then
        begin
          Value := FieldByName('OrderNo').AsString;
        end;
        if Value <> '' then
        begin
          if Value <> FieldByName('OrderNo').AsString then
          begin
            Count := Count + 1;
          end;
        end;
      end;

      Next;
    end;
  end;
  if Count = 1 then
  begin
    ModalResult := 1;
  end
  else
  begin
    application.MessageBox('选择的不是同一计划单！', '提示信息');
    exit;
  end;
end;

procedure TfrmRSTradePlanSel.Tv1DblClick(Sender: TObject);
begin
  ModalResult := 1;

end;

end.

