unit U_ClothInfoProcessInput;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
  cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
  cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
  cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
  cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
  RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
  cxTextEdit, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
    dxDateRanges, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters,
  dxScrollbarAnnotations;

type
  TfrmClothInfoProcessInput = class(TForm)
    ToolBar1: TToolBar;
    TBClose: TToolButton;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    GPM_2: TcxGridPopupMenu;
    DS_HZ: TDataSource;
    CDS_HZ: TClientDataSet;
    ToolButton3: TToolButton;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    v2PSName: TcxGridDBColumn;
    v2PSNote: TcxGridDBColumn;
    v2Column1: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    v2SYRName: TcxGridDBColumn;
    vLDPrice: TcxGridDBColumn;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton4: TToolButton;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure v2SYRNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
  private
    { Private declarations }
    procedure InitGrid();
    function SaveData(): Boolean;
  public
    { Public declarations }
    RKFlag, FCYID: string;
    fDEFstr5: string;
  end;

var
  frmClothInfoProcessInput: TfrmClothInfoProcessInput;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp;

{$R *.dfm}

procedure TfrmClothInfoProcessInput.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add(' select * from Bs_Cloth_Process where PSID=''' + Trim(FCYID) + '''');
      Open;
    end;
    SCreateCDS(ADOQueryMain, CDS_HZ);
    SInitCDSData(ADOQueryMain, CDS_HZ);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmClothInfoProcessInput.FormDestroy(Sender: TObject);
begin
  frmClothInfoProcessInput := nil;
end;

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

procedure TfrmClothInfoProcessInput.TBCloseClick(Sender: TObject);
begin

  Close;
end;

procedure TfrmClothInfoProcessInput.FormShow(Sender: TObject);
begin
  ReadCxGrid(trim(Self.Caption), Tv2, '染色计划');
  InitGrid();
end;

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

function TfrmClothInfoProcessInput.SaveData(): Boolean;
var
  maxId, CRID, fzdyCode, FFFlag, FStr: string;
begin
  try
    ADOQueryCmd.Connection.BeginTrans;
    with CDS_HZ do
    begin
      first;
      while not Eof do
      begin
        if Trim(fieldbyname('PSID').AsString) = '' then
        begin
          if GetLSNo(ADOQueryCmd, maxId, 'JP', 'Bs_Cloth_Process', 4, 1) = False then
          begin
            Result := False;
            ADOQueryCmd.Connection.RollbackTrans;
            Application.MessageBox('取最大号失败！', '提示', 0);
            Exit;
          end;
        end
        else
        begin
          maxId := Trim(FCYID);
        end;
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from Bs_Cloth_Process where PSID=''' + Trim(FCYID) + '''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          if Trim(FCYID) = '' then
          begin
            Append;
            FieldByName('Filler').Value := Trim(DName);
          end
          else
          begin
            Edit;
            FieldByName('Editer').Value := Trim(DName);
            FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTemp);
          end;
          FieldByName('PSID').Value := Trim(maxId);
          RTSetSaveDataCDS(ADOQueryCmd, Tv2, CDS_HZ, 'Bs_Cloth_Process', 0);
          Post;
        end;
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from Bs_Cloth_Process where PSName=''' + Trim(CDS_HZ.fieldbyname('PSName').AsString) + '''');
          Open;
        end;
        if ADOQueryCmd.RecordCount > 1 then
        begin
          ADOQueryCmd.Connection.RollbackTrans;
          application.MessageBox(PChar('工序名称' + trim(ADOQueryCmd.fieldbyname('PSName').AsString) + '已存在'), '提示');
          Exit;
        end;
        with CDS_HZ do
        begin
          Edit;
          FieldByName('PSID').Value := Trim(maxId);
        end;
        next;
      end;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Result := True;
  except
    ;
    Result := True;
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('保存异常!', '提示', 0);
  end;
end;

procedure TfrmClothInfoProcessInput.ToolButton3Click(Sender: TObject);
begin
  cxGrid2.SetFocus;
  if Trim(CDS_HZ.FieldByName('PSName').AsString) = '' then
  begin
    Application.MessageBox('工序名称不能为空!', '提示', 0);
    Exit;
  end;
  if Application.MessageBox('确定要保存数据吗？', '提示', 32 + 4) <> IDYES then
    Exit;

  if SaveData() then
  begin
    Application.MessageBox('保存成功!', '提示', 0);
    ModalResult := 1;
  end;
end;

procedure TfrmClothInfoProcessInput.ToolButton4Click(Sender: TObject);
begin
  WriteCxGrid(trim(Self.Caption), Tv2, '染色计划');
end;

procedure TfrmClothInfoProcessInput.v2SYRNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'CJName';
      flagname := '车间名称';
      if ShowModal = 1 then
      begin
        with CDS_HZ do
        begin
          Edit;
          FieldByName('Workshop').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
        end;
      end;
    end;
  finally
    ;
    frmZDYHelp.Free;
  end;
end;

procedure TfrmClothInfoProcessInput.ToolButton1Click(Sender: TObject);
begin
  with CDS_HZ do
  begin
    Append;
    post;
  end;
end;

procedure TfrmClothInfoProcessInput.ToolButton2Click(Sender: TObject);
begin
  if CDS_HZ.IsEmpty then
    exit;
  if application.MessageBox('确定删除吗', '提示', 1) = 2 then
    exit;
  with ADOQueryCmd do
  begin
    close;
    SQL.Clear;
    sql.Add('delete from Bs_Cloth_Process where PSId=''' + trim(CDS_HZ.fieldbyname('PSID').AsString) + '''');
    ExecSQL;
  end;
  CDS_HZ.Delete;
end;

end.

