unit U_KnitDyePlan;

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, cxButtonEdit;

type
  TfrmKnitDyePlan = class(TfrmBaseHelp)
    TV1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    ToolBar1: TToolBar;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    DS_1: TDataSource;
    CDS_1: TClientDataSet;
    TBSave: TToolButton;
    TBClose: TToolButton;
    ToolButton1: TToolButton;
    ADOConnection1: TADOConnection;
    Panel1: TPanel;
    Label1: TLabel;
    C_Code: TEdit;
    GPM_1: TcxGridPopupMenu;
    ImageList1: TImageList;
    TV1Column1: TcxGridDBColumn;
    TV1Column2: TcxGridDBColumn;
    TV1Column3: TcxGridDBColumn;
    ThreeColorBase: TcxStyleRepository;
    SHuangSe: TcxStyle;
    SkyBlue: TcxStyle;
    Default: TcxStyle;
    QHuangSe: TcxStyle;
    Red: TcxStyle;
    FontBlue: TcxStyle;
    TextSHuangSe: TcxStyle;
    FonePurple: TcxStyle;
    FoneClMaroon: TcxStyle;
    FoneRed: TcxStyle;
    RowColor: TcxStyle;
    handBlack: TcxStyle;
    cxBlue: TcxStyle;
    SHuangSeCu: TcxStyle;
    Label2: TLabel;
    C_Name: TEdit;
    Label3: TLabel;
    Piece: TEdit;
    Label4: TLabel;
    Qty: TEdit;
    ToolButton2: TToolButton;
    TV1Column4: TcxGridDBColumn;
    TV1Column6: TcxGridDBColumn;
    TV1Column7: TcxGridDBColumn;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure TBSaveClick(Sender: TObject);
    procedure TV1DblClick(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure CoNameChange(Sender: TObject);
    procedure TV1Column1PropertiesEditValueChanged(Sender: TObject);
    procedure TV1Column3PropertiesEditValueChanged(Sender: TObject);
    procedure TV1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure TV1Column4PropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure TV1Column6PropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure TV1Column7PropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
  private
    procedure InitGrid();
    { Private declarations }
  public
    FCoType, FAuthority, FDRMID, FDRSID: string;
    { Public declarations }
  end;

var
  frmKnitDyePlan: TfrmKnitDyePlan;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp;

{$R *.dfm}

procedure TfrmKnitDyePlan.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 TfrmKnitDyePlan.CoNameChange(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 TfrmKnitDyePlan.FormClose(Sender: TObject; var Action: TCloseAction);
begin

  Action := cahide;
end;

procedure TfrmKnitDyePlan.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Close;
      sql.Clear;
      sql.Add('select A.* from Knit_DyePlan A where DRSID =''' + trim(FDRSID) + '''');
      Open;
    end;

    SCreateCDS(ADOQueryMain, CDS_1);
    SInitCDSData(ADOQueryMain, CDS_1);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmKnitDyePlan.FormShow(Sender: TObject);
begin
  inherited;

  InitGrid();

  ReadCxGrid(trim(self.Caption), Tv1, '��������')

end;

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

procedure TfrmKnitDyePlan.TBSaveClick(Sender: TObject);
begin
  WriteCxGrid(trim(self.Caption), Tv1, '��������')
end;

procedure TfrmKnitDyePlan.ToolButton1Click(Sender: TObject);
var
  maxId: string;
begin

  if GetLSNo(ADOQueryCmd, maxId, 'KD', 'Knit_DyePlan', 4, 1) = False then
  begin
    Application.MessageBox('ȡ����ʧ�ܣ�', '��ʾ', 0);
    Exit;
  end;
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('insert into Knit_DyePlan(DyeNo,DRMID,DRSID,Filler,Filltime) values(');
    sql.Add(quotedstr(Trim(maxId)));
    sql.Add(', ' + quotedstr(Trim(FDRMID)));
    sql.Add(', ' + quotedstr(Trim(FDRSID)));
    sql.Add(', ' + quotedstr(trim(DName)));
    sql.Add(',getdate() ');
    sql.Add(')');
    ExecSQL;
  end;

  InitGrid();

end;

procedure TfrmKnitDyePlan.TV1Column1PropertiesEditValueChanged(Sender: TObject);
var
  mvalue, FFieldName: string;
begin

  mvalue := TcxTextEdit(Sender).EditingText;
  FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
  if mvalue = '' then
    mvalue := '0';
  with CDS_1 do
  begin
    Edit;
    FieldByName(FFieldName).Value := mvalue;
    Post;
  end;

  with ADOQueryCmd do
  begin
    Close;
    SQL.Clear;
    sql.Add('update Knit_DyePlan set ' + FFieldName + ' = ' + mvalue);
    sql.Add('where DyeNo=' + quotedstr(Trim(CDS_1.FieldByName('DyeNo').AsString)));
    ExecSQL;
  end;
  Tv1.Controller.EditingController.ShowEdit();
end;

procedure TfrmKnitDyePlan.TV1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'DyeColor';
      flagname := 'Ⱦ����ɫ';
      if ShowModal = 1 then
      begin
        Self.CDS_1.Edit;
        Self.CDS_1.FieldByName('DyeColor').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('update Knit_DyePlan set DyeColor= ''' + Trim(ClientDataSet1.fieldbyname('ZDYName').AsString) + '''');
          sql.Add('where DyeNo=' + quotedstr(Trim(CDS_1.FieldByName('DyeNo').AsString)));
          ExecSQL;
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmKnitDyePlan.TV1Column3PropertiesEditValueChanged(Sender: TObject);
var
  mvalue, FFieldName: string;
begin

  mvalue := TcxTextEdit(Sender).EditingText;
  FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);

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

  with ADOQueryCmd do
  begin
    Close;
    SQL.Clear;
    sql.Add('update Knit_DyePlan set ' + FFieldName + '=''' + Trim(mvalue) + '''');
    sql.Add('where DyeNo=' + quotedstr(Trim(CDS_1.FieldByName('DyeNo').AsString)));
    ExecSQL;
  end;
  Tv1.Controller.EditingController.ShowEdit();
end;

procedure TfrmKnitDyePlan.TV1Column4PropertiesButtonClick(Sender: TObject;
  AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'DyeColorNo';
      flagname := 'Ⱦ��ɫ��';
      if ShowModal = 1 then
      begin
        Self.CDS_1.Edit;
        Self.CDS_1.FieldByName('DyeColorNo').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('update Knit_DyePlan set DyeColorNo= ''' + Trim(ClientDataSet1.fieldbyname('ZDYName').AsString) + '''');
          sql.Add('where DyeNo=' + quotedstr(Trim(CDS_1.FieldByName('DyeNo').AsString)));
          ExecSQL;
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmKnitDyePlan.TV1Column6PropertiesButtonClick(Sender: TObject;
  AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'DyeDeal';
      flagname := 'Ⱦ������';
      if ShowModal = 1 then
      begin
        Self.CDS_1.Edit;
        Self.CDS_1.FieldByName('DyeDeal').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('update Knit_DyePlan set DyeDeal= ''' + Trim(ClientDataSet1.fieldbyname('ZDYName').AsString) + '''');
          sql.Add('where DyeNo=' + quotedstr(Trim(CDS_1.FieldByName('DyeNo').AsString)));
          ExecSQL;
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmKnitDyePlan.TV1Column7PropertiesButtonClick(Sender: TObject;
  AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'DyeNote';
      flagname := 'Ⱦ����ע';
      if ShowModal = 1 then
      begin
        Self.CDS_1.Edit;
        Self.CDS_1.FieldByName('DyeNote').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('update Knit_DyePlan set DyeNote= ''' + Trim(ClientDataSet1.fieldbyname('ZDYName').AsString) + '''');
          sql.Add('where DyeNo=' + quotedstr(Trim(CDS_1.FieldByName('DyeNo').AsString)));
          ExecSQL;
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmKnitDyePlan.TV1DblClick(Sender: TObject);
begin
  ModalResult := 1;
end;

procedure TfrmKnitDyePlan.FormDestroy(Sender: TObject);
begin
  inherited;
  frmKnitDyePlan := nil;
end;

end.