unit U_DyeGreyClothInEdit;

interface

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

type
  TfrmDyeGreyClothInEdit = class(TfrmBaseInput)
    cxGrid2: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1Column2: TcxGridDBColumn;
    v1SPName: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    cxGrid2Level1: TcxGridLevel;
    ToolBar1: TToolBar;
    TBAdd: TToolButton;
    TBDel: TToolButton;
    TBSave: TToolButton;
    TBClose: TToolButton;
    DataSource3: TDataSource;
    CDS_Sub: TClientDataSet;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    cxGridPopupMenu2: TcxGridPopupMenu;
    v1Column12: TcxGridDBColumn;
    v1FactoryName: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    v1SPSpec: TcxGridDBColumn;
    v1QtyUnit: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1SPMF: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    v1YWY: TcxGridDBColumn;
    Tv1Column3: TcxGridDBColumn;
    Tv1Column2: TcxGridDBColumn;
    ToolButton1: TToolButton;
    Tv1Column4: TcxGridDBColumn;
    ToolButton2: TToolButton;
    Panel1: TPanel;
    ToolBar2: TToolBar;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    cxGrid1: TcxGrid;
    TV2: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn17: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    CDS_2: TClientDataSet;
    DS_2: TDataSource;
    TV2Column1: TcxGridDBColumn;
    Tv1Column1: TcxGridDBColumn;
    TV2Column3: TcxGridDBColumn;
    Tv1Column5: TcxGridDBColumn;
    Panel2: TPanel;
    cxGrid3: TcxGrid;
    TV3: TcxGridDBTableView;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    TV3Column1: TcxGridDBColumn;
    CDS_3: TClientDataSet;
    DS_3: TDataSource;
    ToolBar3: TToolBar;
    ToolButton3: TToolButton;
    ToolButton6: TToolButton;
    TV2Column4: TcxGridDBColumn;
    TV2Column5: TcxGridDBColumn;
    TV2Column6: TcxGridDBColumn;
    TV2Column2: TcxGridDBColumn;
    TV2Column7: TcxGridDBColumn;
    TV2C_MXSHWidth: TcxGridDBColumn;
    TV2C_MXSHReason: TcxGridDBColumn;
    Tv1C_WidthNum: TcxGridDBColumn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBAddClick(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure TBSaveClick(Sender: TObject);
    procedure v1Column14PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure v2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure v1Column8PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure v2Column6PropertiesEditValueChanged(Sender: TObject);
    procedure Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure TV2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure ButtonEdit(Sender: TObject; AButtonIndex: Integer);
    procedure TV2Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure TV2Column4PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure TV2Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure TV2Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure TV2C_MXSHReasonPropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
  private
    { Private declarations }
    function SaveCKData(): Boolean;
  public
    { Public declarations }
    FWorkshop, FBCId, canshu3, FSTKName, FKHName: string;
  end;

var
  frmDyeGreyClothInEdit: TfrmDyeGreyClothInEdit;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp, U_CompanySel, U_GreyClothStkSel,
  U_ClothInfoSel, U_GreyClothHXSel, U_GreyClothDYSel, U_GreyClothDJHXSel,
  U_GreyClothHXDJSel;

{$R *.dfm}

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

procedure TfrmDyeGreyClothInEdit.TBAddClick(Sender: TObject);
begin
  if CDS_Sub.RecordCount >= 1 then
    exit;

  if CDS_Sub.IsEmpty = False then
  begin
    CopyAddRowCDS(CDS_Sub);
    with CDS_Sub do
    begin
      Edit;
      FieldByName('BCIOID').Value := null;
      FieldByName('StkCoNo').Value := '本厂仓库';
      FieldByName('StkCoName').Value := '本厂仓库';
      post;
    end;
  end
  else
  begin
    with CDS_Sub do
    begin
      Append;
      FieldByName('IOTime').Value := Trim(FormatDateTime('yyyy-MM-dd', Now));
      FieldByName('StkCoNo').Value := '本厂仓库';
      FieldByName('StkCoName').Value := '本厂仓库';
      FieldByName('QtyUnit').Value := 'KG';
      Post;
    end;
  end;

end;

function TfrmDyeGreyClothInEdit.SaveCKData(): Boolean;
var
  Maxno, MBCIOID, MAXMXID, MXID: string;
begin
  try
    ADOQueryCmd.Connection.BeginTrans;
    CDS_Sub.DisableControls;
    with CDS_Sub do
    begin
      First;
      while not eof do
      begin
        with ADOQueryTemp do
        begin
          Close;
          sql.Clear;
          sql.Add('select * from BS_Cloth_IO where BCIOID=''' + Trim(CDS_Sub.fieldbyname('BCIOID').AsString) + '''');
          open;
        end;
        MBCIOID := Trim(ADOQueryTemp.fieldbyname('BCIOID').AsString);
        if Trim(MBCIOID) = '' then
        begin
          if not GetLSNo(ADOQueryCmd, Maxno, 'PR', 'BS_Cloth_IO', 3, 1) then
            raise Exception.Create('取编号失败！');
        end
        else
        begin
          Maxno := Trim(MBCIOID);
        end;
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('select * from BS_Cloth_IO where BCIOID=''' + Trim(Maxno) + '''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          if Trim(MBCIOID) = '' then
          begin
            Append;
            FieldByName('Fillid').Value := Trim(Dcode);
            FieldByName('Filler').Value := Trim(DName);
          end
          else
          begin
            Edit;
            FieldByName('Editid').Value := Trim(Dcode);
            FieldByName('Editer').Value := Trim(DName);
            FieldByName('EditTime').Value := SGetServerDate(ADOQueryTemp);
          end;
          RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_Sub, 'BS_Cloth_IO', 0);
          FieldByName('FromCoNo').Value := CDS_Sub.fieldbyname('FromCoNo').Value;
          FieldByName('StkCoNo').Value := CDS_Sub.fieldbyname('StkCoNo').Value;

//          FieldByName('LZORDERNO').Value := CDS_Sub.fieldbyname('LZORDERNO').Value;
//          FieldByName('LZSUBID').Value := CDS_Sub.fieldbyname('LZSUBID').Value;
          FieldByName('BCIOID').Value := Trim(Maxno);
          FieldByName('STKID').Value := Trim(Maxno);
          FieldByName('STKName').Value := FSTKName;
          FieldByName('Workshop').Value := FWorkshop;
          FieldByName('IOFlag').Value := '入库';
          FieldByName('IOQtyFlag').Value := 1;
          Post;
        end;
//        with ADOQueryCmd do
//        begin
//          Close;
//          sql.Clear;
//          sql.Add('Update BS_Cloth_IO Set StkPiece=(select Sum(isnull(Piece,0)*IOQtyFlag) from BS_Cloth_IO A where A.STKID=BS_Cloth_IO.BCIOID )');
//          sql.Add(',StkQty=(select Sum(isnull(Qty,0)*IOQtyFlag) from BS_Cloth_IO A where A.STKID=BS_Cloth_IO.BCIOID )');
//          sql.Add(' where BCIOID=''' + Trim(Maxno) + '''');
//          ExecSQL;
//        end;
//        with ADOQueryTemp do
//        begin
//          Close;
//          sql.Clear;
//          sql.Add('select stkQty,StkPiece from BS_Cloth_IO where BCIOID=''' + Trim(Maxno) + '''');
//          Open;
//        end;
//        if ADOQueryTemp.FieldByName('stkQty').Value < 0 then
//          raise Exception.Create('入库数量小于出库数量不能保存!');
//        if ADOQueryTemp.FieldByName('StkPiece').Value < 0 then
//          raise Exception.Create('入库匹数小于出库匹数不能保存!');

        Edit;
        FieldByName('BCIOID').Value := Trim(Maxno);
        Post;
        Next;
      end;
    end;

    CDS_Sub.EnableControls;

    CDS_2.DisableControls;
    with CDS_2 do
    begin
      First;
      while not eof do
      begin
        with ADOQueryTemp do
        begin
          Close;
          sql.Clear;
          sql.Add('select * from BS_Cloth_IO_MX where mxid=''' + Trim(CDS_2.fieldbyname('MXID').AsString) + '''');
          open;
        end;
        MXID := Trim(ADOQueryTemp.fieldbyname('mxid').AsString);
        if Trim(MXID) = '' then
        begin
          if not GetLSNo(ADOQueryCmd, MAXMXID, 'PRS', 'BS_Cloth_IO_MX', 3, 1) then
            raise Exception.Create('取编号失败！');
        end
        else
        begin
          MAXMXID := Trim(MXID);
        end;
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('select * from BS_Cloth_IO_MX where MXID=''' + Trim(MAXMXID) + '''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          if Trim(MXID) = '' then
          begin
            Append;

          end
          else
          begin
            Edit;

          end;
          RTSetSaveDataCDS(ADOQueryCmd, Tv2, CDS_2, 'BS_Cloth_IO_MX', 0);

//          FieldByName('LZORDERNO').Value := CDS_Sub.fieldbyname('LZORDERNO').Value;
//          FieldByName('LZSUBID').Value := CDS_Sub.fieldbyname('LZSUBID').Value;
          FieldByName('BCIOID').Value := Trim(Maxno);
          FieldByName('MXID').Value := Trim(MAXMXID);

          Post;
        end;

        Edit;
        FieldByName('MXID').Value := Trim(MAXMXID);
        Post;
        Next;
      end;
    end;

    CDS_Sub.EnableControls;

    ADOQueryCmd.Connection.CommitTrans;

    Result := True;
  except
    Result := False;
    ADOQueryCmd.Connection.RollbackTrans;
    application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
  end;

end;

procedure TfrmDyeGreyClothInEdit.TBCloseClick(Sender: TObject);
begin

  Close;
end;

procedure TfrmDyeGreyClothInEdit.FormShow(Sender: TObject);
var
  fsj: string;
begin
  inherited;
  ReadCxGrid(FSTKName + '机物料入库登记ZP', Tv1, '机物料仓库');
  ReadCxGrid(FSTKName + '机物料入库登记ZP2', Tv2, '机物料仓库');
  ReadCxGrid(FSTKName + '机物料入库登记ZP3', Tv3, '机物料仓库');
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add(' select A.* ');
    sql.Add(' from BS_Cloth_IO A');
    sql.Add(' where BCIOID=''' + Trim(FBCId) + '''');
    Open;
  end;
  SCreateCDS(ADOQueryTemp, CDS_Sub);
  SInitCDSData(ADOQueryTemp, CDS_Sub);

  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add(' select A.* ');
    sql.Add(' from BS_Cloth_IO_MX A');
    sql.Add(' where BCIOID=''' + Trim(FBCId) + '''');
    Open;
  end;
  SCreateCDS(ADOQueryTemp, CDS_2);
  SInitCDSData(ADOQueryTemp, CDS_2);
//  fsj := 'select name=CJName ,Code=null from CheJian';
//  SInitCxGridComboBoxBySql(ADOQueryTemp, v1Column7, fsj, 0, True, '');
end;

procedure TfrmDyeGreyClothInEdit.TBDelClick(Sender: TObject);
begin
  if CDS_Sub.IsEmpty then
    Exit;
  if Trim(CDS_Sub.fieldbyname('BCIOID').AsString) <> '' then
  begin
    if Application.MessageBox('确定要删除数据吗？', '提示', 32 + 4) <> IDYES then
      Exit;

    try
      ADOQueryCmd.Connection.BeginTrans;
      with ADOQueryCmd do
      begin
        Close;
        Sql.Clear;
        Sql.Add('exec P_BS_Cloth_In_Del ');
        Sql.Add(' @BCIOIDS=' + quotedstr(Trim(CDS_Sub.fieldbyname('BCIOID').AsString)));
        Sql.Add(',@DCode=' + quotedstr(Trim(DCode)));
        Sql.Add(',@DName=' + quotedstr(Trim(DName)));
        Open;
      end;
      if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
        raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
      ADOQueryCmd.Connection.CommitTrans;
      CDS_Sub.Delete;
    except
      ADOQueryCmd.Connection.RollbackTrans;
      application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
    end;
  end
  else
  begin
    CDS_Sub.Delete;
  end;

end;

procedure TfrmDyeGreyClothInEdit.TBSaveClick(Sender: TObject);
begin
  ToolBar1.setfocus();
  if CDS_Sub.IsEmpty then
    Exit;
  if CDS_Sub.Locate('IOTime', null, []) = True then
  begin
    Application.MessageBox('登记时间不能为空!', '提示', 0);
    Exit;
  end;

  if CDS_Sub.Locate('C_name', null, []) = True then
  begin
    Application.MessageBox('产品名称不能为空!', '提示', 0);
    Exit;
  end;

  if CDS_Sub.Locate('Piece', null, []) = True then
  begin
    Application.MessageBox('匹数不能为空!', '提示', 0);
    Exit;
  end;
  {if CDS_Sub.Locate('Qty',null,[])=True then
  begin
    Application.MessageBox('数量不能为空!','提示',0);
    Exit;
  end; }

  if CDS_Sub.Locate('C_Width', null, []) = True then
  begin
    Application.MessageBox('定型门幅不能为空!', '提示', 0);
    Exit;
  end;

  if CDS_Sub.Locate('QtyUnit', null, []) = True then
  begin
    Application.MessageBox('数量单位不能为空!', '提示', 0);
    Exit;
  end;

  if CDS_Sub.Locate('C_WidthNum', null, []) = True then
  begin
    Application.MessageBox('门幅个数不能为空!', '提示', 0);
    Exit;
  end;
  {if CDS_Sub.Locate('CRType;LCKNO', VarArrayOf(['回仓', Null]), [loPartialKey]) then
  begin
    Application.MessageBox('回仓的数据流程卡号不能为空!','提示',0);
    Exit;
  end; }

  if CDS_2.IsEmpty = TRUE then
  begin
    Application.MessageBox('明细不能为空!', '提示', 0);
    Exit;
  end;

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

procedure TfrmDyeGreyClothInEdit.ToolButton1Click(Sender: TObject);
begin
  inherited;
  WriteCxGrid(FSTKName + '机物料入库登记ZP', Tv1, '机物料仓库');
  WriteCxGrid(FSTKName + '机物料入库登记ZP2', Tv2, '机物料仓库');
  WriteCxGrid(FSTKName + '机物料入库登记ZP3', Tv3, '机物料仓库');
end;

procedure TfrmDyeGreyClothInEdit.ToolButton2Click(Sender: TObject);
begin
  inherited;
  if CDS_sub.IsEmpty then
    Exit;
  ToolBar1.SetFocus;
  OneKeyPost(Tv1, CDS_sub);
end;

procedure TfrmDyeGreyClothInEdit.ToolButton3Click(Sender: TObject);
begin

  with CDS_3 do
  begin
    First;
    while CDS_3.Locate('SSel', True, []) do
    begin
      with Self.CDS_2 do
      begin
        Append;
        FieldByName('piece').Value := 0;
        FieldByName('C_MXNAME').Value := CDS_Sub.FieldByName('C_NAME').AsString;
        FieldByName('C_MXCODE').Value := CDS_Sub.FieldByName('C_CODE').AsString;
        FieldByName('C_MXwidth').Value := CDS_3.FieldByName('c_mxmf').AsString;

      end;
      CDS_3.Delete;
    end;
  end;
  PANEL2.Visible := False;
end;

procedure TfrmDyeGreyClothInEdit.ToolButton4Click(Sender: TObject);
begin
  if CDS_Sub.IsEmpty then
  begin
    Application.MessageBox('请先选择主表数据!', '提示', 0);

    Exit;
  end;

  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add(' select A.* ');
    sql.Add(' from BS_CLOTH_MF A');
    sql.Add(' where C_NAME=''' + Trim(CDS_Sub.FIELDBYNAME('C_NAME').ASSTRING) + '''');
    Open;
  end;
  SCreateCDS(ADOQueryTemp, CDS_3);
  SInitCDSData(ADOQueryTemp, CDS_3);
  Panel2.Visible := True;
end;

procedure TfrmDyeGreyClothInEdit.ToolButton5Click(Sender: TObject);
begin
  if CDS_2.IsEmpty then
    Exit;
  if Trim(CDS_2.fieldbyname('MXID').AsString) <> '' then
  begin
    if Application.MessageBox('确定要删除数据吗？', '提示', 32 + 4) <> IDYES then
      Exit;

    with ADOQueryCmd do
    begin
      Close;
      Sql.Clear;
      Sql.Add('DELETE BS_CLOTH_IO_MX WHERE MXID= ' + QuotedStr(Trim(CDS_2.fieldbyname('MXID').AsString)));

      EXECSQL;
    end;
    CDS_2.Delete;

  end
  else
  begin
    CDS_2.Delete;
  end;
end;

procedure TfrmDyeGreyClothInEdit.ToolButton6Click(Sender: TObject);
begin
  panel2.Visible := faLse;
end;

procedure TfrmDyeGreyClothInEdit.ToolButton7Click(Sender: TObject);
begin
  try
    frmGreyClothHXDJSel := TfrmGreyClothHXDJSel.Create(Application);
    with frmGreyClothHXDJSel do
    begin
      FstkName := Self.FstkName;
      if ShowModal = 1 then
      begin
        frmGreyClothHXDJSel.CDS_Main.DisableControls;
        with frmGreyClothHXDJSel.CDS_Main do
        begin
          First;
          while frmGreyClothHXDJSel.CDS_Main.Locate('SSel', True, []) do
          begin
            with Self.CDS_Sub do
            begin
              Append;
              FieldByName('IOTime').Value := Trim(FormatDateTime('yyyy-MM-dd', Now));
              FieldByName('StkCoNo').Value := '本厂仓库';
              FieldByName('IOType').Value := '回修入库';
              FieldByName('StkCoName').Value := '本厂仓库';
              FieldByName('FromCoName').Value := '恒益坯布仓库';
              FieldByName('C_COde').Value := Trim(CDS_Main.fieldbyname('SPCode').AsString);
              FieldByName('C_xinhao').Value := Trim(CDS_Main.fieldbyname('SPCode').AsString);
              FieldByName('NOTE').Value := Trim(CDS_Main.fieldbyname('note').AsString);
              FieldByName('C_NAME').Value := Trim(CDS_Main.fieldbyname('SPNAME').AsString);
              FieldByName('C_Color').Value := Trim(CDS_Main.fieldbyname('SPColor').AsString);
//              FieldByName('C_JITAI').Value := Trim(CDS_Main.fieldbyname('CarNo').AsString);
              FieldByName('C_ZHUANGKUANG').Value := Trim(CDS_Main.fieldbyname('ZHUANGKUANG').AsString);
              FieldByName('C_JIAJI').Value := Trim(CDS_Main.fieldbyname('JJZT').AsString);

              FieldByName('C_Width').Value := Trim(CDS_Main.fieldbyname('PBMF').AsString);
              FieldByName('C_GramWeight').Value := Trim(CDS_Main.fieldbyname('PBKZ').AsString);

              FieldByName('C_gongyi').Value := Trim(CDS_Main.fieldbyname('GONGYI2').AsString);
              FieldByName('LZCKORDNO').Value := Trim(CDS_Main.fieldbyname('SPID').AsString);
//              FieldByName('LZORDERNO').Value := Trim(CDS_Main.fieldbyname('ORDERNO').AsString);
//              FieldByName('LZSUBID').Value := Trim(CDS_Main.fieldbyname('SUBID').AsString);
              FieldByName('Piece').Value := CDS_Main.fieldbyname('PIQTY').ASFLOAT;
              //
              FieldByName('Qty').Value := 0;
            //  CDS_Main.fieldbyname('mjgw').ASFLOAT
              FieldByName('QtyUnit').Value := 'KG';
            end;
            frmGreyClothHXDJSel.CDS_Main.Delete;
          end;
        end;
        frmGreyClothHXDJSel.CDS_Main.EnableControls;
      end;
    end;
  finally
    frmGreyClothHXDJSel.Free;
  end;
end;

procedure TfrmDyeGreyClothInEdit.Tv1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmCompanySel := TfrmCompanySel.Create(Application);
    with frmCompanySel do
    begin
      FCoType := '客户';
      if ShowModal = 1 then
      begin
        with Self.CDS_Sub do
        begin
          Edit;
          FieldByName('StkCoNo').Value := Trim(CDS_1.fieldbyname('CoCode').AsString);
          FieldByName('StkCoName').Value := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
        end;
      end;
    end;
  finally
    frmCompanySel.Free;
  end;

end;

procedure TfrmDyeGreyClothInEdit.TV2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmClothInfoSel := TfrmClothInfoSel.Create(Application);
    with frmClothInfoSel do
    begin
      FCTType := '梭织';
      if ShowModal = 1 then
      begin

        with Self.CDS_2 do
        begin
          Edit;
          FieldByName('C_MXCode').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Code').AsString);

          FieldByName('C_MXName').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Name').AsString);

          FieldByName('C_MXWidth').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Width').AsString);

          post;

        end;

      end;
    end;
  finally
    frmClothInfoSel.Free;
  end;
end;

procedure TfrmDyeGreyClothInEdit.TV2Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'FQMETER';
      flagname := '分切米数';
      MainType := FSTKName;
      if ShowModal = 1 then
      begin
        with Self.CDS_2 do
        begin
          Edit;
          FieldByName('FQMETER').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;

end;

procedure TfrmDyeGreyClothInEdit.TV2Column4PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'tube';
      flagname := '纸管';
      TBAdd.Visible := false;
      TBedit.Visible := false;
      TBDel.Visible := false;
      if ShowModal = 1 then
      begin
        with Self.CDS_2 do
        begin
          Edit;
          FieldByName('tube').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmDyeGreyClothInEdit.TV2Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'Packaging';
      flagname := '包装袋';
      TBAdd.Visible := false;
      TBedit.Visible := false;
      TBDel.Visible := false;
      if ShowModal = 1 then
      begin
        with Self.CDS_2 do
        begin
          Edit;
          FieldByName('Packaging').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmDyeGreyClothInEdit.TV2Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'seal';
      flagname := '腰封';
      TBAdd.Visible := false;
      TBedit.Visible := false;
      TBDel.Visible := false;
      if ShowModal = 1 then
      begin
        with Self.CDS_2 do
        begin
          Edit;
          FieldByName('seal').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmDyeGreyClothInEdit.TV2C_MXSHReasonPropertiesButtonClick(
  Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'C_MXSHReason';
      flagname := '门幅损耗原因';
      if ShowModal = 1 then
      begin
        Self.CDS_2.Edit;
        Self.CDS_2.FieldByName('C_MXSHReason').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);

      end;
    end;
  finally
    frmZDYHelp.Free;
  end;

end;

procedure TfrmDyeGreyClothInEdit.ButtonEdit(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'C_MXGONGYI';
      flagname := '包装工艺';
      MainType := FSTKName;
      if ShowModal = 1 then
      begin
        with Self.CDS_2 do
        begin
          Edit;
          FieldByName('C_MXGONGYI').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmDyeGreyClothInEdit.v1Column14PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin

  try
    frmCompanySel := TfrmCompanySel.Create(Application);
    with frmCompanySel do
    begin
      FCoType := '客户';
      if ShowModal = 1 then
      begin
        with Self.CDS_Sub do
        begin
          Edit;
          FieldByName('FromCoNo').Value := Trim(CDS_1.fieldbyname('CoCode').AsString);
          FieldByName('FromCoName').Value := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);

          FieldByName('SalesER').Value := Trim(CDS_1.fieldbyname('SalesER').AsString);
        end;
      end;
    end;
  finally
    frmCompanySel.Free;
  end;

end;

procedure TfrmDyeGreyClothInEdit.v2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmClothInfoSel := TfrmClothInfoSel.Create(Application);
    with frmClothInfoSel do
    begin
      FCTType := '梭织';
      if ShowModal = 1 then
      begin

        with Self.CDS_Sub do
        begin
          Edit;
          FieldByName('C_Code').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Code').AsString);

          FieldByName('C_Name').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Name').AsString);
          FieldByName('C_Spec').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Spec').AsString);
          FieldByName('C_Composition').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Composition').AsString);
//          FieldByName('C_Width').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_Width').AsString);

          FieldByName('C_GramWeight').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_GramWeight').AsString);
          FieldByName('C_PATTERN').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_PATTERN').AsString);
          FieldByName('C_color').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_color').AsString);

          FieldByName('C_GONGYI').Value := trim(frmClothInfoSel.CDS_1.Fieldbyname('C_GONGYI').AsString);

          post;

        end;

      end;
    end;
  finally
    frmClothInfoSel.Free;
  end;


//  try
//    frmZDYHelp := TfrmZDYHelp.Create(Application);
//    with frmZDYHelp do
//    begin
//      flag := 'JWLYCLName';
//      flagname := '品名';
//      MainType := FSTKName;
//      if ShowModal = 1 then
//      begin
//        with Self.CDS_Sub do
//        begin
//          Edit;
//          FieldByName('C_Name').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
//        end;
//      end;
//    end;
//  finally
//    frmZDYHelp.Free;
//  end;

end;

procedure TfrmDyeGreyClothInEdit.v2Column6PropertiesEditValueChanged(Sender: TObject);
var
  mvalue, FFieldName: string;
  FPS, FQty, FPiZhong: Double;
begin
  mvalue := TcxTextEdit(Sender).EditingText;
  FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
  if Trim(mvalue) = '' then
  begin
    mvalue := '0';
  end;

  with CDS_Sub do
  begin
    Edit;
    FieldByName(FFieldName).Value := mvalue;
    Post;
    FPS := CDS_Sub.fieldbyname('Piece').AsFloat;
    FQty := CDS_Sub.fieldbyname('Qty').AsFloat;
    FPiZhong := CDS_Sub.fieldbyname('PieceWeight').AsFloat;
  end;

  if Trim(FFieldName) <> 'PieceWeight' then
  begin
    if FPS = 0 then
      FPiZhong := FQty / 1
    else
      FPiZhong := FQty / FPS;
  end;

  with CDS_Sub do
  begin
    Edit;
    FieldByName('PieceWeight').Value := FPiZhong;
    Post;
  end;

  tv1.Controller.EditingController.ShowEdit();
end;

procedure TfrmDyeGreyClothInEdit.v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'StkPosition';
      flagname := '库位';
      MainType := FSTKName;
      if ShowModal = 1 then
      begin
        with Self.CDS_Sub do
        begin
          Edit;
          FieldByName('StkPosition').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmDyeGreyClothInEdit.v1Column8PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'C_Spec';
      flagname := '规格';
      MainType := FSTKName;
      if ShowModal = 1 then
      begin
        with Self.CDS_Sub do
        begin
          Edit;
          FieldByName('C_Spec').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

end.

