unit U_TatClothInEdit;

interface

uses
  Windows, Messages, strUtils, SysUtils, Variants, Classes, Graphics, Controls,
  Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, ExtCtrls, ADODB, DBClient,
  cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, MMSystem,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
  cxControls, cxGridCustomView, cxGrid, MovePanel, cxCheckBox, Menus, ComCtrls,
  cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, U_BaseList, 
   dxDateRanges, dxBarBuiltInMenu, RM_Common, RM_Class,
  RM_GridReport, RM_Dataset, Vcl.ToolWin,   
      
    
     
     
    
    
    
    
    
    
     
      
     
   
     
   dxScrollbarAnnotations, cxContainer, dxSkinsCore, dxSkinsDefaultPainters,
  cxProgressBar;

type
  TfrmTatClothInEdit = class(TfrmBaseList)
    GPM_1: TcxGridPopupMenu;
    CDS_1: TClientDataSet;
    DS_1: TDataSource;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    Panel1: TPanel;
    CDS_2: TClientDataSet;
    DS_2: TDataSource;
    GPM_2: TcxGridPopupMenu;
    DS_3: TDataSource;
    CDS_3: TClientDataSet;
    GPM_3: TcxGridPopupMenu;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    v1OrderNo: TcxGridDBColumn;
    v2Column2: TcxGridDBColumn;
    cxGridDBColumn2: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v1Column14: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    v1PRTMF: TcxGridDBColumn;
    v1PRTKZ: TcxGridDBColumn;
    cxGrid2Level1: TcxGridLevel;
    Panel2: TPanel;
    Panel4: TPanel;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1Column6: TcxGridDBColumn;
    v1Column11: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    Tv1Column1: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    v2Column5: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    ToolBar1: TToolBar;
    ToolButton2: TToolButton;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    v3Column5: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    v3MJID: TcxGridDBColumn;
    v3Column4: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    v3Column1: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    ToolBar2: TToolBar;
    ToolButton1: TToolButton;
    Panel3: TPanel;
    Label4: TLabel;
    Label5: TLabel;
    Label11: TLabel;
    CRTime: TDateTimePicker;
    InNo: TEdit;
    CRType: TComboBox;
    ToolBar3: TToolBar;
    ToolButton3: TToolButton;
    btnGetOutNo: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    edtScan: TEdit;
    Label6: TLabel;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    Tv2Column2: TcxGridDBColumn;
    ToolButton4: TToolButton;
    Label1: TLabel;
    KuWei: TEdit;
    Tv3Column2: TcxGridDBColumn;
    Tv3Column3: TcxGridDBColumn;
    Tv3Column4: TcxGridDBColumn;
    Tv3Column5: TcxGridDBColumn;
    Tv3Column6: TcxGridDBColumn;
    Tv3Column7: TcxGridDBColumn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure btnGetOutNoClick(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
    procedure edtScanKeyPress(Sender: TObject; var Key: Char);
    procedure ToolButton9Click(Sender: TObject);
    procedure ToolButton10Click(Sender: TObject);
    procedure ToolButton11Click(Sender: TObject);
    procedure ToolButton12Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
  private
    { Private declarations }
    FScan, FSubIds: string;
    procedure PlayWav(MWav: string);
    procedure InitGrid1();
    procedure InitGrid2();
    procedure InitGrid3();
    procedure ScanSubID();
    procedure ScanCIID();
  public

    { Public declarations }
  end;

var
  frmTatClothInEdit: TfrmTatClothInEdit;

implementation

uses
  U_DataLink, U_RTFun, U_TatClothWaitStorage, U_LabelPrint;

{$R *.dfm}
procedure TfrmTatClothInEdit.PlayWav(MWav: string);
begin
  if FileExists(PChar(ExtractFilePath(Application.ExeName) + 'wav\' + MWav + '.wav')) then
    PlaySound(PChar(ExtractFilePath(Application.ExeName) + 'wav\' + MWav + '.wav'), 0, SND_ASYNC);
end;

procedure TfrmTatClothInEdit.InitGrid2();
begin
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select A.*,B.*  ');
    sql.Add(' from Tat_Plan_Main A inner join Tat_Plan_Sub B on A.MainId=B.Mainid');

    if TRIm(FSubIds) <> '' then
      sql.add('and SubId in (' + FSubIds + ')')
    else
      sql.add('and 1=2');
    Open;
  end;
  SCreateCDS(ADOQueryTemp, CDS_2);
  SInitCDSData(ADOQueryTemp, CDS_2);
end;

procedure TfrmTatClothInEdit.InitGrid1();
begin

  with ADOQueryMain do
  begin
    Close;
    sql.Clear;
    sql.Add('select A.IOFlag,A.IONo,A.IOID,B.* from Tat_Cloth_IO A    ');
    sql.Add('Right join Tat_Cloth_Stock B on A.StkId=B.StkId     ');
    sql.Add('where   B.StkExists=0 and  A.IOCycles=0 ');
    if TRIm(FSubIds) <> '' then
      sql.add('and SubID in (' + FSubIds + ')')
    else
      sql.add('and 1=2');
    Open;
  end;
  SCreateCDS(ADOQueryMain, CDS_1);
  SInitCDSData(ADOQueryMain, CDS_1);

end;

procedure TfrmTatClothInEdit.InitGrid3();
begin

  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select A.IOFlag,A.IONo,A.IOID,B.* from Tat_Cloth_IO A    ');
    sql.Add('inner join Tat_Cloth_Stock B on A.StkId=B.StkId and A.IOCycles=B.StkCycles   ');
    sql.Add('where A.IOFlag=''入库'' and B.StkExists=1 ');
    if TRIm(InNo.Text) <> '' then
      sql.add('and IONO =' + QuotedStr(TRIm(InNo.Text)))
    else
      sql.add('and 1=2');
//    ShowMessage(sql.text);
    Open;
  end;
  SCreateCDS(ADOQueryTemp, CDS_3);
  SInitCDSData(ADOQueryTemp, CDS_3);

end;

procedure TfrmTatClothInEdit.ScanSubID();
var
  MStkIds: string;
begin
  try
    if Trim(InNo.Text) = '' then
      raise Exception.Create('入库单号不能为空!');
    if CDS_2.IsEmpty then
      raise Exception.Create('未选单不能扫描出库!');

    if not CDS_1.Locate('IONo', Trim(FScan), []) then
      raise Exception.Create('此入库单不包含在待入库的卷数据中');

    MStkIds := '';
    with CDS_1 do
    begin
      First;
      while CDS_1.Locate('IONo', Trim(FScan), []) = True do
      begin
        MStkIds := MStkIds + (Trim(CDS_1.FieldByName('StkId').AsString)) + ',';
        MoveCDS(CDS_1, CDS_3);
        CDS_1.Delete;
      end;
    end;

    MStkIds := copy(MStkIds, 1, Length(MStkIds) - 1);

    try
      ADOQueryCmd.Connection.BeginTrans;

      with ADOQueryCmd do
      begin
        Close;
        Sql.Clear;
        Sql.Add('exec P_Tat_Cloth_In ');
        Sql.Add('@StkIds=' + quotedstr(trim(MStkIds)));
        Sql.Add(',@IOTime=' + Quotedstr(FormatDateTime('yyyy-MM-dd', CRTime.DateTime)));
        Sql.Add(',@IOType=' + Quotedstr(crtype.Text));
        Sql.Add(',@IONO=' + Quotedstr(InNo.Text));
        Sql.Add(',@StkPosition=' + Quotedstr(''));
        Sql.Add(',@FillId=' + Quotedstr(DCode));
        Sql.Add(',@Filler=' + Quotedstr(DName));
        Open;
      end;
      if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
      begin
        raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
      end;

      ADOQueryCmd.Connection.CommitTrans;
      PlayWav('正确');
    except
      ADOQueryCmd.Connection.RollbackTrans;
      raise Exception.Create(PChar(Exception(ExceptObject).Message));
    end;

  except
    application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
//    PlayWav('发货错误');
  end;

end;

procedure TfrmTatClothInEdit.ScanCIID();
var
  MStkIds: string;
begin
  try
    if Trim(InNo.Text) = '' then
      raise Exception.Create('入库单号不能为空!');

    if Trim(KuWei.Text) = '' then
      raise Exception.Create('库位不能为空!');

    MStkIds := (Trim(FScan));
//    if CDS_2.IsEmpty then
//      raise Exception.Create('未选单不能扫描出库!');
//
//    if not CDS_1.Locate('StkId', Trim(FScan), []) then
//      raise Exception.Create('此条码不包含在待入库的卷数据中');

//    MStkIds := (Trim(CDS_1.FieldByName('StkId').AsString));

//    MoveCDS(CDS_1, CDS_3);
//    CDS_1.Delete;

    try
      ADOQueryCmd.Connection.BeginTrans;

      with ADOQueryCmd do
      begin
        Close;
        Sql.Clear;
        Sql.Add('exec P_Tat_Cloth_In ');
        Sql.Add('@StkIds=' + quotedstr(trim(MStkIds)));
        Sql.Add(',@IOTime=' + Quotedstr(FormatDateTime('yyyy-MM-dd', CRTime.DateTime)));
        Sql.Add(',@IOType=' + Quotedstr(crtype.Text));
        Sql.Add(',@IONO=' + Quotedstr(InNo.Text));
        Sql.Add(',@StkPosition=' + Quotedstr(KuWei.text));
        Sql.Add(',@FillId=' + Quotedstr(DCode));
        Sql.Add(',@Filler=' + Quotedstr(DName));
        ShowMessage(sql.text);
        Open;
      end;
      if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
      begin
        raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
      end;
      ADOQueryCmd.Connection.CommitTrans;
      PlayWav('正确');
      InitGrid3();
    except
      ADOQueryCmd.Connection.RollbackTrans;
      raise Exception.Create(PChar(Exception(ExceptObject).Message));
    end;

  except
    application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
//    PlayWav('发货错误');
  end;

end;

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

procedure TfrmTatClothInEdit.FormDestroy(Sender: TObject);
begin
  inherited;
  frmTatClothInEdit := nil;
end;

procedure TfrmTatClothInEdit.FormShow(Sender: TObject);
begin
  inherited;
  ReadCxGrid(self.caption + 'Tv1', Tv1, '成品仓库');
  ReadCxGrid(self.caption + 'Tv2', Tv2, '成品仓库');
  ReadCxGrid(self.caption + 'Tv3', Tv3, '成品仓库');
  InitGrid2();
  InitGrid1();
  InitGrid3();
  CRTime.DateTime := SGetServerDate(ADOQueryTemp);
end;

procedure TfrmTatClothInEdit.Tv2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
  if CDS_3.IsEmpty = False then
    Exit;
  if CDS_2.IsEmpty then
    Exit;
  if Application.MessageBox('确定要删除数据吗？', '提示', 32 + 4) <> IDYES then
    Exit;
  CDS_1.DisableControls;
  with CDS_1 do
  begin
    First;
    while not Eof do
    begin
      if Trim(CDS_1.fieldbyname('SubId').AsString) = Trim(CDS_2.fieldbyname('SubId').AsString) then
      begin
        CDS_1.Delete;
      end
      else
        Next;
    end;
  end;
  CDS_1.EnableControls;
  CDS_2.Delete;
end;

procedure TfrmTatClothInEdit.edtScanKeyPress(Sender: TObject; var Key: Char);
var
  maxno, SMFlag, KYCKFlag, FMainId, ff: string;
  FFQty: Integer;
begin
  if Key = #13 then
  begin
    FScan := TRIM(edtScan.Text);
    edtScan.Text := '';
    if Copy(FScan, 1, 2) = 'RK' then
    begin
      ScanSubID();
    end
    else if Copy(FScan, 1, 1) = 'M' then
    begin
      with ADOQueryTemp do
      begin
        Close;
        Sql.Clear;
        Sql.Add('select * from Bs_Position where  POSID =''' + trim(FScan) + '''');
//        ShowMessage(sql.text);
        Open;
      end;
      if ADOQueryTemp.IsEmpty = false then
      begin
        kuwei.text := Trim(ADOQueryTemp.FieldByName('POSNO').AsString);
        btnGetOutNo.Click;
      end;

    end
    else
    begin
      ScanCIID();
    end;

  end;
end;

procedure TfrmTatClothInEdit.ToolButton10Click(Sender: TObject);
begin
  SelOKNo(CDS_1, False);

end;

procedure TfrmTatClothInEdit.ToolButton11Click(Sender: TObject);
begin
  SelOKNo(CDS_3, True);

end;

procedure TfrmTatClothInEdit.ToolButton12Click(Sender: TObject);
begin
  SelOKNo(CDS_3, False);

end;

procedure TfrmTatClothInEdit.ToolButton1Click(Sender: TObject);
var
  MStkIds, MIOIDS: string;
begin
  if CDS_3.IsEmpty then
    Exit;
  if Application.MessageBox('确定要执行此操作吗？', '提示', 32 + 4) <> IDYES then
    Exit;

  try
    if not CDS_3.Locate('SSel', True, []) then
      raise Exception.Create('请选择数据');

    MStkIds := '';
    MIOIDS := '';
    with CDS_3 do
    begin
      while CDS_3.Locate('SSel', True, []) do
      begin
        MStkIds := MStkIds + (Trim(CDS_3.FieldByName('StkId').AsString)) + ',';
        MIOIDS := MIOIDS + (Trim(CDS_3.FieldByName('IOID').AsString)) + ',';
        CDS_3.Delete;
      end;
    end;

    MStkIds := copy(MStkIds, 1, Length(MStkIds) - 1);
    MIOIDS := copy(MIOIDS, 1, Length(MIOIDS) - 1);

    try
      ADOQueryCmd.Connection.BeginTrans;

      with ADOQueryCmd do
      begin
        Close;
        Sql.Clear;
        Sql.Add('exec P_Tat_Cloth_ReIn ');
        Sql.Add('@StkIds=' + quotedstr(trim(MStkIds)));
        Sql.Add(',@IOIDS=' + quotedstr(trim(MIOIDS)));
        Sql.Add(',@FillId=' + Quotedstr(DCode));
        Sql.Add(',@Filler=' + Quotedstr(DName));
        Open;
      end;

      if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
      begin
        raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
      end;

      ADOQueryCmd.Connection.CommitTrans;
      PlayWav('正确');
      InitGrid1();
    except
      ADOQueryCmd.Connection.RollbackTrans;
      raise Exception.Create(PChar(Exception(ExceptObject).Message));
    end;

  except
    InitGrid1();
    InitGrid3();
    application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
//    PlayWav('发货错误');
  end;

end;

procedure TfrmTatClothInEdit.ToolButton2Click(Sender: TObject);
var
  MStkIds: string;
begin
  try
    if Trim(InNo.Text) = '' then
      raise Exception.Create('入库单号不能为空!');
    if CDS_2.IsEmpty then
      raise Exception.Create('未选单不能扫描出库!');

    if not CDS_1.Locate('SSel', True, []) then
      raise Exception.Create('请选择数据');
    MStkIds := '';
    with CDS_1 do
    begin
      while CDS_1.Locate('SSel', True, []) = True do
      begin
        MStkIds := MStkIds + Trim(CDS_1.FieldByName('StkId').AsString) + ',';
        CDS_1.Delete;
      end;
    end;

    MStkIds := copy(MStkIds, 1, Length(MStkIds) - 1);

    try
      ADOQueryCmd.Connection.BeginTrans;

      with ADOQueryCmd do
      begin
        Close;
        Sql.Clear;
        Sql.Add('exec P_Tat_Cloth_In ');
        Sql.Add('@StkIds=' + quotedstr(trim(MStkIds)));
        Sql.Add(',@IOTime=' + Quotedstr(FormatDateTime('yyyy-MM-dd', CRTime.DateTime)));
        Sql.Add(',@IOType=' + Quotedstr(crtype.Text));
        Sql.Add(',@IONO=' + Quotedstr(InNo.Text));
        Sql.Add(',@StkPosition=' + Quotedstr(''));
        Sql.Add(',@FillId=' + Quotedstr(DCode));
        Sql.Add(',@Filler=' + Quotedstr(DName));
//        ShowMessage(SQL.Text);
        Open;
      end;
      if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
      begin
        raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
      end;
      ADOQueryCmd.Connection.CommitTrans;
      PlayWav('正确');
      InitGrid3();
    except
      ADOQueryCmd.Connection.RollbackTrans;
      raise Exception.Create(PChar(Exception(ExceptObject).Message));
    end;

  except
    InitGrid1();
    InitGrid3();
    application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
//    PlayWav('发货错误');
  end;

end;

procedure TfrmTatClothInEdit.ToolButton3Click(Sender: TObject);
begin
  if Trim(InNo.Text) = '' then
    Exit;

  try
    frmLabelPrint := TfrmLabelPrint.Create(Application);
    with frmLabelPrint do
    begin
      FLMType := 'TatClothIn1';
      FFiltration1 := Trim(Self.InNo.Text);
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmLabelPrint.Free;
  end;

end;

procedure TfrmTatClothInEdit.ToolButton4Click(Sender: TObject);
begin
  FSubIds := '';
  InitGrid2();
end;

procedure TfrmTatClothInEdit.btnGetOutNoClick(Sender: TObject);
var
  maxNo: string;
begin
  if GetLSNo(ADOQueryCmd, maxNo, 'RK', 'Tat_Cloth_IO', 3, 1) = False then
  begin
    Application.MessageBox('取入库单号失败!', '提示', 0);
    Exit;
  end;
  InNo.Text := Trim(maxNo);
  CRTime.DateTime := SGetServerDate(ADOQueryTemp);
  InitGrid3();
end;

procedure TfrmTatClothInEdit.ToolButton6Click(Sender: TObject);
var
  maxno, fsj: string;
begin
  try
    frmTatClothWaitStorage := TfrmTatClothWaitStorage.Create(Application);
    with frmTatClothWaitStorage do
    begin
      if ShowModal = 1 then
      begin
        CDS_OrderSel.DisableControls;
        with CDS_OrderSel do
        begin
          First;
          while not Eof do
          begin
            if FieldByName('SSel').Value = True then
            begin
              if Self.CDS_2.Locate('SubID', Trim(CDS_OrderSel.fieldbyname('SubID').AsString), []) = False then
              begin
                with Self.CDS_2 do
                begin
                  Append;
                  FieldByName('MainId').Value := Trim(CDS_OrderSel.fieldbyname('MainId').AsString);
                  FieldByName('SubId').Value := Trim(CDS_OrderSel.fieldbyname('SubId').AsString);
                  FieldByName('SubID').Value := Trim(CDS_OrderSel.fieldbyname('SubID').AsString);
                  FieldByName('CustNo').Value := Trim(CDS_OrderSel.fieldbyname('CustNo').AsString);
                  FieldByName('CustName').Value := Trim(CDS_OrderSel.fieldbyname('CustName').AsString);
                  FieldByName('C_Name').Value := Trim(CDS_OrderSel.fieldbyname('C_Name').AsString);
                  FieldByName('OrdPiece').Value := CDS_OrderSel.fieldbyname('OrdPiece').Value;
                  FieldByName('OrdQty').Value := CDS_OrderSel.fieldbyname('OrdQty').Value;
                  FieldByName('OrdUnit').Value := Trim(CDS_OrderSel.fieldbyname('OrdUnit').AsString);
                  FieldByName('C_Color').Value := Trim(CDS_OrderSel.fieldbyname('C_Color').AsString);
                  FieldByName('C_Width').Value := Trim(CDS_OrderSel.fieldbyname('C_Width').AsString);
                  FieldByName('C_GramWeight').Value := Trim(CDS_OrderSel.fieldbyname('C_GramWeight').AsString);
                  Post;
                end;
              end;
            end;
            Next;
          end;
        end;
        CDS_OrderSel.EnableControls;
      end;
    end;
  finally
    frmTatClothWaitStorage.Free;
  end;

  FSubIds := '';
  CDS_2.DisableControls;
  with CDS_2 do
  begin
    First;
    while not Eof do
    begin
      FSubIds := FSubIds + Quotedstr(Trim(CDS_2.FieldByName('SubID').AsString)) + ',';
      Next;
    end;
  end;
  FSubIds := copy(FSubIds, 1, Length(FSubIds) - 1);
  CDS_2.EnableControls;

  if Trim(InNo.Text) = '' then
    btnGetOutNo.Click;

  InitGrid1();
  InitGrid3();
end;

procedure TfrmTatClothInEdit.ToolButton7Click(Sender: TObject);
begin
  tv1.Controller.EditingController.ShowEdit();
  tv3.Controller.EditingController.ShowEdit();
  Close;

end;

procedure TfrmTatClothInEdit.ToolButton8Click(Sender: TObject);
begin
  WriteCxGrid(self.caption + 'Tv2', Tv2, '成品仓库');
  WriteCxGrid(self.caption + 'Tv1', Tv1, '成品仓库');
  WriteCxGrid(self.caption + 'Tv3', Tv3, '成品仓库');
end;

procedure TfrmTatClothInEdit.ToolButton9Click(Sender: TObject);
begin
  SelOKNo(CDS_1, True);

end;

end.

