unit U_ClothSCInPutSC;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
  cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxMemo,
  cxRichEdit, ComCtrls, cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit,
  StdCtrls, ToolWin, DBClient, ADODB, ExtCtrls, BtnEdit, cxDropDownEdit,
  StrUtils, cxPC, ShellAPI, cxCalendar;

type
  TfrmClothSCInPutSC = class(TForm)
    ToolBar1: TToolBar;
    TBSave: TToolButton;
    TBClose: TToolButton;
    ScrollBox1: TScrollBox;
    Label1: TLabel;
    ConNo: TEdit;
    ADOTemp: TADOQuery;
    ADOCmd: TADOQuery;
    ADOQuery1: TADOQuery;
    Label2: TLabel;
    QDTime: TDateTimePicker;
    Label3: TLabel;
    C_CodeName: TcxButtonEdit;
    KZQty: TEdit;
    Label11: TLabel;
    CarType: TcxButtonEdit;
    MFQty: TEdit;
    Label9: TLabel;
    Label14: TLabel;
    CompanyName: TcxButtonEdit;
    Label15: TLabel;
    ZhuanQty: TEdit;
    ADOQueryTemp: TADOQuery;
    Label18: TLabel;
    Label19: TLabel;
    Panel2: TPanel;
    ToolBar3: TToolBar;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    DataSource2: TDataSource;
    CDS_YuanLiao: TClientDataSet;
    Label20: TLabel;
    DayQty: TEdit;
    Label21: TLabel;
    KaiFu: TcxButtonEdit;
    Label22: TLabel;
    ADOQueryCmd: TADOQuery;
    Label5: TLabel;
    DeliveryDate: TDateTimePicker;
    FFConNO: TComboBox;
    Label4: TLabel;
    C_Color: TEdit;
    Label6: TLabel;
    Label8: TLabel;
    Label12: TLabel;
    PiKgQty: TEdit;
    PiQty: TEdit;
    Label10: TLabel;
    Label13: TLabel;
    C_Qty: TEdit;
    Label16: TLabel;
    cxPageControl1: TcxPageControl;
    cxTabSheet1: TcxTabSheet;
    cxTabSheet2: TcxTabSheet;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    v2Column2: TcxGridDBColumn;
    cxGridDBColumn2: TcxGridDBColumn;
    v2Column4: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    cxTabSheet4: TcxTabSheet;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    cxGridLevel2: TcxGridLevel;
    v3Column1: TcxGridDBColumn;
    v3Column2: TcxGridDBColumn;
    v3Column3: TcxGridDBColumn;
    v3Column4: TcxGridDBColumn;
    v3Column5: TcxGridDBColumn;
    v3Column6: TcxGridDBColumn;
    v3Column7: TcxGridDBColumn;
    v3Column8: TcxGridDBColumn;
    v3Column9: TcxGridDBColumn;
    v3Column10: TcxGridDBColumn;
    v3Column11: TcxGridDBColumn;
    v3Column12: TcxGridDBColumn;
    v3Column13: TcxGridDBColumn;
    v3Column14: TcxGridDBColumn;
    v3Column15: TcxGridDBColumn;
    v3Column16: TcxGridDBColumn;
    v3Column17: TcxGridDBColumn;
    v3Column18: TcxGridDBColumn;
    v3Column19: TcxGridDBColumn;
    v3Column20: TcxGridDBColumn;
    v3Column21: TcxGridDBColumn;
    v3Column22: TcxGridDBColumn;
    v3Column23: TcxGridDBColumn;
    v3Column24: TcxGridDBColumn;
    cxGrid5: TcxGrid;
    Tv5: TcxGridDBTableView;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridDBColumn5: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridDBColumn8: TcxGridDBColumn;
    cxGridDBColumn9: TcxGridDBColumn;
    cxGridDBColumn10: TcxGridDBColumn;
    cxGridDBColumn11: TcxGridDBColumn;
    cxGridDBColumn12: TcxGridDBColumn;
    cxGridDBColumn13: TcxGridDBColumn;
    cxGridDBColumn14: TcxGridDBColumn;
    cxGridDBColumn15: TcxGridDBColumn;
    cxGridDBColumn16: TcxGridDBColumn;
    cxGridDBColumn17: TcxGridDBColumn;
    cxGridDBColumn18: TcxGridDBColumn;
    cxGridDBColumn19: TcxGridDBColumn;
    cxGridDBColumn20: TcxGridDBColumn;
    cxGridDBColumn21: TcxGridDBColumn;
    cxGridDBColumn22: TcxGridDBColumn;
    cxGridDBColumn23: TcxGridDBColumn;
    cxGridDBColumn24: TcxGridDBColumn;
    cxGridDBColumn25: TcxGridDBColumn;
    cxGridDBColumn26: TcxGridDBColumn;
    cxGridDBColumn27: TcxGridDBColumn;
    cxGridDBColumn28: TcxGridDBColumn;
    cxGridLevel3: TcxGridLevel;
    Panel1: TPanel;
    Panel3: TPanel;
    cxGrid6: TcxGrid;
    Tv6: TcxGridDBTableView;
    cxGridDBColumn41: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    cxGridDBColumn42: TcxGridDBColumn;
    cxGridLevel4: TcxGridLevel;
    ClientDataSet6: TClientDataSet;
    DataSource6: TDataSource;
    ClientDataSet5: TClientDataSet;
    DataSource3: TDataSource;
    ClientDataSet3: TClientDataSet;
    DataSource5: TDataSource;
    Panel4: TPanel;
    Label26: TLabel;
    C_Code: TEdit;
    Label27: TLabel;
    Label28: TLabel;
    PiZhong: TEdit;
    Label7: TLabel;
    Label17: TLabel;
    ZhenCun: TcxButtonEdit;
    ZongZhenQty: TEdit;
    Label23: TLabel;
    ChouZhen: TcxButtonEdit;
    Label29: TLabel;
    SongBu: TcxButtonEdit;
    Label24: TLabel;
    v2Column1: TcxGridDBColumn;
    Label25: TLabel;
    JGPrice: TEdit;
    Label30: TLabel;
    v2Column3: TcxGridDBColumn;
    ToolButton1: TToolButton;
    v2Column5: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    Label31: TLabel;
    ToolButton2: TToolButton;
    Label32: TLabel;
    GZGSType: TComboBox;
    Label36: TLabel;
    PiKgQtyFD: TEdit;
    Label37: TLabel;
    Label38: TLabel;
    Price: TEdit;
    Label39: TLabel;
    Label40: TLabel;
    C_Note: TRichEdit;
    v2Column7: TcxGridDBColumn;
    v2Column8: TcxGridDBColumn;
    v2Column9: TcxGridDBColumn;
    Label55: TLabel;
    WFGYS: TBtnEditC;
    Label41: TLabel;
    v2Column10: TcxGridDBColumn;
    v2Column11: TcxGridDBColumn;
    Label42: TLabel;
    LabName: TComboBox;
    cxTabSheet3: TcxTabSheet;
    cxGrid7: TcxGrid;
    Tv7: TcxGridDBTableView;
    cxGridDBColumn3: TcxGridDBColumn;
    cxGridDBColumn29: TcxGridDBColumn;
    cxGridDBColumn30: TcxGridDBColumn;
    cxGridDBColumn31: TcxGridDBColumn;
    cxGridLevel5: TcxGridLevel;
    Tv7Column1: TcxGridDBColumn;
    ClientDataSet7: TClientDataSet;
    DataSource7: TDataSource;
    Panel5: TPanel;
    Label43: TLabel;
    XSConNo: TBtnEditC;
    ToolButton5: TToolButton;
    v7Column1: TcxGridDBColumn;
    v7Column2: TcxGridDBColumn;
    v7Column3: TcxGridDBColumn;
    v7Column4: TcxGridDBColumn;
    v7Column5: TcxGridDBColumn;
    v7Column6: TcxGridDBColumn;
    v7Column7: TcxGridDBColumn;
    v7Column8: TcxGridDBColumn;
    v7Column9: TcxGridDBColumn;
    v7Column10: TcxGridDBColumn;
    Label44: TLabel;
    GCCode: TEdit;
    Label45: TLabel;
    BatchNoHZ: TEdit;
    Label46: TLabel;
    WzPrice: TEdit;
    Label47: TLabel;
    CustomerNoName: TEdit;
    v3Column25: TcxGridDBColumn;
    v3Column26: TcxGridDBColumn;
    v3Column27: TcxGridDBColumn;
    v3Column28: TcxGridDBColumn;
    v3Column29: TcxGridDBColumn;
    v3Column30: TcxGridDBColumn;
    v3Column31: TcxGridDBColumn;
    v3Column32: TcxGridDBColumn;
    v3Column33: TcxGridDBColumn;
    v3Column34: TcxGridDBColumn;
    v3Column35: TcxGridDBColumn;
    v3Column36: TcxGridDBColumn;
    v5Column1: TcxGridDBColumn;
    v5Column2: TcxGridDBColumn;
    v5Column3: TcxGridDBColumn;
    v5Column4: TcxGridDBColumn;
    v5Column5: TcxGridDBColumn;
    v5Column6: TcxGridDBColumn;
    v5Column7: TcxGridDBColumn;
    v5Column8: TcxGridDBColumn;
    v5Column9: TcxGridDBColumn;
    v5Column10: TcxGridDBColumn;
    v5Column11: TcxGridDBColumn;
    v5Column12: TcxGridDBColumn;
    ConPayment: TEdit;
    Label48: TLabel;
    ConPRTPrice: TEdit;
    Label49: TLabel;
    ConDYMoney: TEdit;
    Label50: TLabel;
    ZdyNameZ: TEdit;
    Label51: TLabel;
    Label33: TLabel;
    BZNote: TcxButtonEdit;
    Label34: TLabel;
    ZZYQ: TcxButtonEdit;
    Label35: TLabel;
    ZZSH: TcxButtonEdit;
    Label52: TLabel;
    MFZZS: TcxButtonEdit;
    Label53: TLabel;
    ALBL: TcxButtonEdit;
    Label54: TLabel;
    gongyi: TcxButtonEdit;
    Label56: TLabel;
    SQRatio: TEdit;
    Label57: TLabel;
    JHChejian: TcxButtonEdit;
    C_Spec: TRichEdit;
    Label58: TLabel;
    ZongJieNote: TcxButtonEdit;
    SJCarNO: TcxButtonEdit;
    ShaChang: TEdit;
    KZ: TEdit;
    MF: TEdit;
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBSaveClick(Sender: TObject);
    procedure C_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure cxGridDBColumn1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure v2Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure PiQtyChange(Sender: TObject);
    procedure Tv6DblClick(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure Tv5MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure WFGYSBtnUpClick(Sender: TObject);
    procedure WFGYSBtnDnClick(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure XSConNoBtnUpClick(Sender: TObject);
    procedure XSConNoBtnDnClick(Sender: TObject);
    procedure cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure v2Column11PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure SJCarNOPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
  private
    FXS, Fint: Integer;
    procedure InitData();
    procedure ZDYHelp(FButn: TcxButtonEdit; LType: string);
    function SaveData(): Boolean;
    { Private declarations }
  public
    PState, FCopyInt: Integer;
    FMainId, FConNo, PType, FSubId: string;
    { Public declarations }
  end;

var
  frmClothSCInPutSC: TfrmClothSCInPutSC;
  newh: hwnd;

implementation

uses
  U_DataLink, U_ZDYHelp, U_RTFun, U_CompressionFun, U_ZdyAttachGYS,
  U_ShaKCSelList, U_SCPerson, U_ContractListNXSel, U_FjList_RZ, U_JTAllSel;

{$R *.dfm}

procedure TfrmClothSCInPutSC.TBCloseClick(Sender: TObject);
begin
  ModalResult := 1;
end;

procedure TfrmClothSCInPutSC.InitData();
var
  PBNO, PBFlag: string;
begin
  if PState = 1 then
  begin
    ConNo.ReadOnly := True;
  end;
  with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    sql.Add(' exec Cloth_QryList :MainId,:WSql');
    if PState = 1 then
    begin
      ADOQuery1.Parameters.ParamByName('MainId').Value := Trim(FMainId);
      ADOQuery1.Parameters.ParamByName('WSQl').Value := '';
    end;
    if PState = 0 then
    begin
      ADOQuery1.Parameters.ParamByName('MainId').Value := Trim(FMainId);
      ADOQuery1.Parameters.ParamByName('WSql').Value := ' and 1<>1 ';
    end;
    Open;
  end;
  SCSHData(ADOQuery1, ScrollBox1, 0);
  SCSHData(ADOQuery1, ScrollBox1, 2);
  XSConNo.Text := Trim(ADOQuery1.fieldbyname('XSConNo').AsString);
  XSConNo.TxtCode := Trim(ADOQuery1.fieldbyname('ConSubId').AsString);
  CustomerNoName.Text := Trim(ADOQuery1.fieldbyname('CustomerNoName').AsString);
  ConPayment.Text := Trim(ADOQuery1.fieldbyname('ConPayment').AsString);
  ZdyNameZ.Text := Trim(ADOQuery1.fieldbyname('ZdyNameZ').AsString);
  ConPRTPrice.Text := Trim(ADOQuery1.fieldbyname('ConPRTPrice').AsString);
  ConDYMoney.Text := Trim(ADOQuery1.fieldbyname('ConDYMoney').AsString);
  with ADOTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select A.* ');
    sql.Add(',YLQty=Cast(C_Qty*PBQty*0.01*(1+isnull(ZPSH,0)*0.01) as decimal(18,1))');
    if FCopyInt <> 1 then
    begin
      sql.Add(',CKQty=(select sum(Qty) from CK_SXPB_CR SQ where SQ.PBNO=C.ConNo and SQ.SPName=A.YCLName ');
      sql.Add('         and isnull(SQ.PBNO,'''')<>'''' and ZFFlag=0 and CKName=''纱线'' and CRFlag=''出库'' and CRType=''织造加工出库'' )');
    end;

    sql.Add('from Cloth_YCL_PB A ');
    sql.Add('inner join Cloth_Sub B on A.SubId=B.SubId');
    SQL.Add(' inner join Cloth_Main C on B.Mainid=C.MainId');
    sql.Add(' where A.MainId=''' + Trim(FMainId) + '''');
    Open;
  end;
  SCreateCDS20(ADOTemp, CDS_YuanLiao);
  SInitCDSData20(ADOTemp, CDS_YuanLiao);
  with ADOTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from Cloth_PaiZhen where MainId=''' + Trim(FMainId) + '''');
    sql.Add(' and PZType=''排针'' ');
    Open;
  end;
  SCreateCDS20(ADOTemp, ClientDataSet3);
  SInitCDSData20(ADOTemp, ClientDataSet3);
  if ClientDataSet3.IsEmpty then
  begin
    with ClientDataSet3 do
    begin
      Append;
      Post;
      Append;
      Post;

    end;
  end;
  with ADOTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from Cloth_PaiZhen where MainId=''' + Trim(FMainId) + '''');
    sql.Add(' and PZType=''三角'' ');
    Open;
  end;
  SCreateCDS20(ADOTemp, ClientDataSet5);
  SInitCDSData20(ADOTemp, ClientDataSet5);
  if PState = 0 then
  begin
    with ADOTemp do
    begin
      Close;
      SQL.Clear;
      sql.Add('select Top 1* from Cloth_Main order by FillTime desc ');
      Open;
    end;
    QDTime.DateTime := SGetServerDate(ADOTemp);
    QDTime.Checked := True;
    DeliveryDate.Date := QDTime.DateTime;
  end;

  if FCopyInt = 1 then
  begin
    FMainId := '';
    ConNo.Text := '';
    ConNo.ReadOnly := False;
    CDS_YuanLiao.DisableControls;
    with CDS_YuanLiao do
    begin
      First;
      while not Eof do
      begin
        Edit;
        FieldByName('MainId').Value := '';
        FieldByName('SubId').Value := '';
        FieldByName('PBId').Value := '';
        FieldByName('BegPBQty').Value := Null;
        Post;
        Next;
      end;
    end;
    CDS_YuanLiao.EnableControls;
    ClientDataSet3.DisableControls;
    with ClientDataSet3 do
    begin
      First;
      while not Eof do
      begin
        Edit;
        FieldByName('MainId').Value := '';
        FieldByName('SubId').Value := '';
        FieldByName('PZId').Value := '';
        Post;
        Next;
      end;
    end;
    ClientDataSet3.EnableControls;
    ClientDataSet5.DisableControls;
    with ClientDataSet5 do
    begin
      First;
      while not Eof do
      begin
        Edit;
        FieldByName('MainId').Value := '';
        FieldByName('SubId').Value := '';
        FieldByName('PZId').Value := '';
        Post;
        Next;
      end;
    end;
    ClientDataSet5.EnableControls;
  end;
  FFConNO.Items.Clear;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select Top 5 ConNo from Cloth_Main  ');   //where ConNO like ''PB%''
    sql.Add(' order by ConNO DESC');
    Open;
  end;
  with ADOQueryTemp do
  begin
    First;
    while not Eof do
    begin
      FFConNO.Items.Add(ADOQueryTemp.fieldbyname('ConNo').AsString);
      Next;
    end;
  end;
  with ADOTemp do
  begin
    close;
    sql.Clear;
    sql.Add('select TFID,FileName,TFdate,Filler,FillTime from TP_File ');
    sql.Add('where WBID=' + quotedstr(FMainId));
    sql.Add('and TFType=''PB附件'' ');
    open;
  end;
  SCreateCDS20(ADOTemp, ClientDataSet6);
  SInitCDSData20(ADOTemp, ClientDataSet6);
  with ADOTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from Cloth_WJG where MainId=''' + Trim(FMainId) + '''');
    Open;
  end;
  SCreateCDS20(ADOTemp, ClientDataSet7);
  SInitCDSData20(ADOTemp, ClientDataSet7);
end;

procedure TfrmClothSCInPutSC.ZDYHelp(FButn: TcxButtonEdit; LType: string);
begin

end;

procedure TfrmClothSCInPutSC.FormShow(Sender: TObject);
begin
  InitData();
end;

function TfrmClothSCInPutSC.SaveData(): Boolean;
var
  maxno, maxsubno, maxpbno, maxpzno, maxsjno: string;
begin
  try
    ADOCmd.Connection.BeginTrans;
    if Trim(FMainId) = '' then
    begin
      if GetLSNo(ADOCmd, maxno, 'CM', 'Cloth_Main', 4, 1) = False then
      begin
        ADOCmd.Connection.RollbackTrans;
        Application.MessageBox('生成流水号异常！', '提示', 0);
        exit;
      end;
    end
    else
    begin
      maxno := Trim(FMainId);
    end;

    ///保存主表
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      SQL.Add('select * from Cloth_Main where MainId=''' + Trim(FMainId) + '''');
      Open;
    end;
    with ADOCmd do
    begin
      if Trim(FMainId) = '' then
      begin
        Append;
      end
      else
      begin
        Edit;
      end;
      FieldByName('MainId').Value := Trim(maxno);
      RTSetsavedata(ADOCmd, 'Cloth_Main', ScrollBox1, 0);
      FieldByName('XSConNo').Value := Trim(XSConNo.Text);
      FieldByName('ConSubId').Value := Trim(XSConNo.TxtCode);
      FieldByName('ConType').Value := '生产';
      if Trim(FMainId) = '' then
      begin
        FieldByName('Filler').Value := Trim(DName);
      end
      else
      begin
        FieldByName('Editer').Value := Trim(DName);
        FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp);
      end;
      Post;
    end;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('Update Cloth_Main Set ConMainId=(select MainId from JYOrderCon_Sub_PB A where A.SubId=Cloth_Main.ConSubId)');
      sql.Add(' where MainId=''' + Trim(maxno) + '''');
      ExecSQL;
    end;
    //FMainId:=Trim(maxno);
    with ADOTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from Cloth_Main where ConNo=''' + Trim(ConNo.Text) + '''');
      Open;
    end;
    if ADOTemp.RecordCount > 1 then
    begin
      ADOCmd.Connection.RollbackTrans;
      Application.MessageBox('订单号重复!', '提示', 0);
      Exit;
    end;


    ///保存子表
    if Trim(FSubId) = '' then
    begin
      if GetLSNo(ADOTemp, maxsubno, '9', 'Cloth_Sub', 4, 1) = False then
      begin
        ADOCmd.Connection.RollbackTrans;
        Application.MessageBox('取子流水号失败！', '提示', 0);
        Exit;
      end;
    end
    else
    begin
      maxsubno := Trim(FSubId);
    end;
    with ADOCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('select * from Cloth_Sub where ');
      sql.Add('  SubId=''' + Trim(maxsubno) + '''');
      Open;
    end;
    with ADOCmd do
    begin
      if Trim(FSubId) = '' then
        Append
      else
        Edit;
      FieldByName('MainId').Value := Trim(maxno);
      FieldByName('SubId').Value := Trim(maxsubno);
      RTSetsavedata(ADOCmd, 'Cloth_Sub', ScrollBox1, 2);
      Post;
    end;
    ///保存子表
    ///保存配比表
    with CDS_YuanLiao do
    begin
      First;
      while not Eof do
      begin
        if Trim(CDS_YuanLiao.fieldbyname('PBId').AsString) = '' then
        begin
          if GetLSNo(ADOTemp, maxpbno, 'PB', 'Cloth_YCL_PB', 4, 1) = False then
          begin
            ADOCmd.Connection.RollbackTrans;
            Application.MessageBox('取配比子流水号失败！', '提示', 0);
            Exit;
          end;
        end
        else
        begin
          maxpbno := Trim(CDS_YuanLiao.fieldbyname('PBId').AsString);
        end;
        with ADOCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from Cloth_YCL_PB where ');
          sql.Add('  PBId=''' + Trim(maxpbno) + '''');
          Open;
        end;
        with ADOCmd do
        begin
          if Trim(CDS_YuanLiao.fieldbyname('PBId').AsString) = '' then
          begin
            Append;
            FieldByName('Filler').Value := Trim(DName);
            FieldByName('FillTime').Value := SGetServerDateTime(ADOTemp);
          end
          else
          begin
            Edit;
            FieldByName('Editer').Value := Trim(DName);
            FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp);
          end;
          FieldByName('MainId').Value := Trim(maxno);
          FieldByName('SubId').Value := Trim(maxsubno);
          FieldByName('PBId').Value := Trim(maxpbno);
          FieldByName('SPId').Value := Trim(CDS_YuanLiao.fieldbyname('SPId').AsString);
          RTSetSaveDataCDS(ADOCmd, Tv2, CDS_YuanLiao, 'Cloth_YCL_PB', 0);
          Post;
        end;
        CDS_YuanLiao.Edit;
        CDS_YuanLiao.FieldByName('SubId').Value := Trim(maxsubno);
        CDS_YuanLiao.FieldByName('MainId').Value := Trim(maxno);
        CDS_YuanLiao.FieldByName('PBId').Value := Trim(maxpbno);
        //Order_Sub.Post;
        Next;
      end;
    end;
    ///保存配比表
    ///保存排针表
    ClientDataSet3.DisableControls;
    with ClientDataSet3 do
    begin
      First;
      while not Eof do
      begin
        if Trim(ClientDataSet3.fieldbyname('PZId').AsString) = '' then
        begin
          if GetLSNo(ADOCmd, maxpzno, 'PZ', 'Cloth_PaiZhen', 4, 1) = False then
          begin
            ADOCmd.Connection.RollbackTrans;
            Application.MessageBox('取排针流水号失败！', '提示', 0);
            Exit;
          end;
        end
        else
        begin
          maxpzno := Trim(ClientDataSet3.fieldbyname('PZId').AsString);
        end;
        with ADOCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from Cloth_PaiZhen where ');
          sql.Add('  PZId=''' + Trim(maxpzno) + '''');
          Open;
        end;
        with ADOCmd do
        begin
          if Trim(ClientDataSet3.fieldbyname('PZId').AsString) = '' then
          begin
            Append;
            FieldByName('Filler').Value := Trim(DName);
            FieldByName('FillTime').Value := SGetServerDateTime(ADOTemp);
          end
          else
          begin
            Edit;
            FieldByName('Editer').Value := Trim(DName);
            FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp);
          end;
          FieldByName('MainId').Value := Trim(maxno);
          FieldByName('SubId').Value := Trim(maxsubno);
          FieldByName('PZId').Value := Trim(maxpzno);
          RTSetSaveDataCDS(ADOCmd, Tv3, ClientDataSet3, 'Cloth_PaiZhen', 0);
          FieldByName('PZType').Value := '排针';
          FieldByName('PZName').Value := ClientDataSet3.fieldbyname('PZName').AsString;
          Post;
        end;
        ClientDataSet3.Edit;
        ClientDataSet3.FieldByName('PZId').Value := Trim(maxpzno);
        //Order_Sub.Post;
        Next;
      end;
    end;
    ClientDataSet3.EnableControls;
    ///保存排针表
    ///保存三角表
    ClientDataSet5.DisableControls;
    with ClientDataSet5 do
    begin
      First;
      while not Eof do
      begin
        if Trim(ClientDataSet5.fieldbyname('PZId').AsString) = '' then
        begin
          if GetLSNo(ADOCmd, maxsjno, 'PZ', 'Cloth_PaiZhen', 4, 1) = False then
          begin
            ADOCmd.Connection.RollbackTrans;
            Application.MessageBox('取三角流水号失败！', '提示', 0);
            Exit;
          end;
        end
        else
        begin
          maxsjno := Trim(ClientDataSet5.fieldbyname('PZId').AsString);
        end;
        with ADOCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from Cloth_PaiZhen where ');
          sql.Add('  PZId=''' + Trim(maxsjno) + '''');
          Open;
        end;
        with ADOCmd do
        begin
          if Trim(ClientDataSet5.fieldbyname('PZId').AsString) = '' then
          begin
            Append;
            FieldByName('Filler').Value := Trim(DName);
            FieldByName('FillTime').Value := SGetServerDateTime(ADOTemp);
          end
          else
          begin
            Edit;
            FieldByName('Editer').Value := Trim(DName);
            FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp);
          end;
          FieldByName('MainId').Value := Trim(maxno);
          FieldByName('SubId').Value := Trim(maxsubno);
          FieldByName('PZId').Value := Trim(maxsjno);
          RTSetSaveDataCDS(ADOCmd, Tv5, ClientDataSet5, 'Cloth_PaiZhen', 0);
          FieldByName('PZType').Value := '三角';
          Post;
        end;
        ClientDataSet5.Edit;
        ClientDataSet5.FieldByName('PZId').Value := Trim(maxsjno);
        //Order_Sub.Post;
        Next;
      end;
    end;
    ClientDataSet5.EnableControls;
    ///保存三角表
    ///保存外加工表
    ClientDataSet7.DisableControls;
    with ClientDataSet7 do
    begin
      First;
      while not Eof do
      begin
        if Trim(ClientDataSet7.fieldbyname('JGId').AsString) = '' then
        begin
          if GetLSNo(ADOCmd, maxsjno, 'JG', 'Cloth_WJG', 4, 1) = False then
          begin
            ADOCmd.Connection.RollbackTrans;
            Application.MessageBox('取外发加工流水号失败！', '提示', 0);
            Exit;
          end;
        end
        else
        begin
          maxsjno := Trim(ClientDataSet7.fieldbyname('JGId').AsString);
        end;
        with ADOCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from Cloth_WJG where ');
          sql.Add('  JGId=''' + Trim(maxsjno) + '''');
          Open;
        end;
        with ADOCmd do
        begin
          if Trim(ClientDataSet7.fieldbyname('JGId').AsString) = '' then
          begin
            Append;
            FieldByName('Filler').Value := Trim(DName);
            FieldByName('FillTime').Value := SGetServerDateTime(ADOTemp);
          end
          else
          begin
            Edit;
            FieldByName('Editer').Value := Trim(DName);
            FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp);
          end;
          FieldByName('MainId').Value := Trim(maxno);
          FieldByName('SubId').Value := Trim(maxsubno);
          FieldByName('JGId').Value := Trim(maxsjno);
          FieldByName('WFGYSNo').Value := Trim(ClientDataSet7.fieldbyname('WFGYSNo').AsString);
          FieldByName('WFGYSNameJC').Value := Trim(ClientDataSet7.fieldbyname('WFGYSNameJC').AsString);
          RTSetSaveDataCDS(ADOCmd, Tv7, ClientDataSet7, 'Cloth_WJG', 0);
          Post;
        end;
        ClientDataSet7.Edit;
        ClientDataSet7.FieldByName('JGId').Value := Trim(maxsjno);
        //Order_Sub.Post;
        Next;
      end;
    end;
    ClientDataSet7.EnableControls;
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('select WFGYSName from Cloth_WJG where MainId=''' + Trim(maxno) + '''');
      sql.Add(' group by WFGYSName having count(*)>1');
      Open;
    end;
    if ADOCmd.RecordCount > 0 then
    begin
      ADOCmd.Connection.RollbackTrans;
      Application.MessageBox('外发加工单位在一张订单中只能存在一次!', '提示', 0);
      Exit;
    end;
    ////////////////更新外发表数据
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('Update Cloth_WJG Set JGMoney=isnull(JGPrice,0)*isnull(WFWCQtyZP,0)');
      sql.Add(',JSMoney=isnull(JGPrice,0)*isnull(WFWCQtyZP,0)-isnull(KKMoney,0)');
      sql.Add(' where MainId=''' + Trim(maxno) + '''');
      ExecSQL;
    end;
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('exec P_Update_Cloth_Sub_WJG_Qty :MainId');
      Parameters.ParamByName('MainId').Value := Trim(maxno);
      ExecSQL;
    end;
    ///////////////更新外发表数据
    ///保存外加工表
    ///更新附件表主键
    ClientDataSet6.DisableControls;
    with ClientDataSet6 do
    begin
      First;
      while not Eof do
      begin
        with ADOCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('Update TP_File Set WBID=''' + Trim(maxno) + '''');
          sql.Add(' where TFID=''' + Trim(ClientDataSet6.fieldbyname('TFID').AsString) + '''');
          ExecSQL;
        end;
        Next;
      end;
    end;
    ClientDataSet6.EnableControls;
    ///更新附件表主键
//    with ADOCmd do
//    begin
//      Close;
//      sql.Clear;
//      sql.Add('UPdate Cloth_Sub Set BatchNoHZ=[dbo].[F_Get_Order_SubStr_PB](Cloth_Sub.MainId,''SXBatChNo'')');
//      sql.Add(' where MainId='''+Trim(maxno)+'''');
//      ExecSQL;
//    end;
    ADOCmd.Connection.CommitTrans;
    FMainId := Trim(maxno);
    FSubId := Trim(maxsubno);
    Result := True;
  except
    Result := False;
    ClientDataSet3.EnableControls;
    ClientDataSet5.EnableControls;
    ClientDataSet6.EnableControls;
    CDS_YuanLiao.EnableControls;
    ADOCmd.Connection.RollbackTrans;
    Application.MessageBox('保存失败！', '提示', 0);
  end;
end;

procedure TfrmClothSCInPutSC.TBSaveClick(Sender: TObject);
var
  FReal: Double;
begin
  ShaChang.SetFocus;
  if Trim(XSConNo.Text) = '' then
  begin
    Application.MessageBox('合同号不能为空！', '提示', 0);
    Exit;
  end;
  if Trim(ConNo.Text) = '' then
  begin
    Application.MessageBox('订单号不能为空！', '提示', 0);
    Exit;
  end;
  if Trim(C_CodeName.Text) = '' then
  begin
    Application.MessageBox('产品名称不能为空!', '提示', 0);
    Exit;
  end;
  if Trim(C_Code.Text) = '' then
  begin
    Application.MessageBox('产品编号不能为空!', '提示', 0);
    Exit;
  end;
  if Trim(LabName.Text) = '' then
  begin
    Application.MessageBox('标签格式不能为空!', '提示', 0);
    Exit;
  end;
  {if DeliveryDate.Checked=False then
  begin
    Application.MessageBox('交货日期不能为空!','提示',0);
    Exit;
  end;}
  if QDTime.Checked = False then
  begin
    Application.MessageBox('下单日期不能为空!', '提示', 0);
    Exit;
  end;
  {if Trim(C_Qty.Text)='' then
  begin
    Application.MessageBox('订单数量不能为空!','提示',0);
    Exit;
  end; }
  if Trim(C_Qty.Text) <> '' then
  begin
    if TryStrToFloat(C_Qty.Text, FReal) = False then
    begin
      Application.MessageBox('订单数量非法数字!', '提示', 0);
      Exit;
    end;
  end;
  if Trim(DayQty.Text) <> '' then
  begin
    if TryStrToFloat(DayQty.Text, FReal) = False then
    begin
      Application.MessageBox('日产非法数字!', '提示', 0);
      Exit;
    end;
  end;
  if Trim(ZongZhenQty.Text) <> '' then
  begin
    if TryStrToFloat(ZongZhenQty.Text, FReal) = False then
    begin
      Application.MessageBox('总针数非法数字!', '提示', 0);
      Exit;
    end;
  end;
  if Trim(ZhuanQty.Text) = '' then
  begin
    ZhuanQty.Text := '0';
  end;
  if TryStrToFloat(ZhuanQty.Text, FReal) = False then
  begin
    Application.MessageBox('转数非法数字!', '提示', 0);
    Exit;
  end;
  if Trim(PiQty.Text) = '' then
  begin
    Application.MessageBox('匹数不能为空!', '提示', 0);
    Exit;
  end;
  if TryStrToFloat(PiQty.Text, FReal) = False then
  begin
    Application.MessageBox('匹数非法数字!', '提示', 0);
    Exit;
  end;
  if Trim(PiQty.Text) = '' then
  begin
    Application.MessageBox('匹重不能为空!', '提示', 0);
    Exit;
  end;
  if TryStrToFloat(PiQty.Text, FReal) = False then
  begin
    Application.MessageBox('匹重非法数字!', '提示', 0);
    Exit;
  end;
  {if Trim(PiZhong.Text)='' then
  begin
    Application.MessageBox('皮重不能为空!','提示',0);
    Exit;
  end; }
  if Trim(PiZhong.Text) <> '' then
  begin
    if TryStrToFloat(PiZhong.Text, FReal) = False then
    begin
      Application.MessageBox('空加非法数字!', '提示', 0);
      Exit;
    end;
  end;

  if Trim(GZGSType.Text) = '' then
  begin
    Application.MessageBox('工资公式不能为空!', '提示', 0);
    Exit;
  end;
//  if Trim(KZQty.Text) <> '' then
//  begin
//    if TryStrToFloat(Trim(KZQty.Text), FReal) = False then
//    begin
//      Application.MessageBox('克重非法数字!', '提示', 0);
//      Exit;
//    end;
//  end;
//  if Trim(MFQty.Text) <> '' then
//  begin
//    if TryStrToFloat(Trim(MFQty.Text), FReal) = False then
//    begin
//      Application.MessageBox('门幅非法数字!', '提示', 0);
//      Exit;
//    end;
//  end;
//  if CDS_YuanLiao.IsEmpty then
//  begin
//    Application.MessageBox('原料配比内容不能为空!','提示',0);
//    Exit;
//  end;
//  if CDS_YuanLiao.Locate('PBQty',Null,[])=True then
//  begin
//    Application.MessageBox('原料配比不能为空!','提示',0);
//    Exit;
//  end;
  if CDS_YuanLiao.Locate('YCLName', Null, []) = True then
  begin
    Application.MessageBox('原料名称不能为空!', '提示', 0);
    Exit;
  end;
  if SaveData() then
  begin
    Application.MessageBox('保存成功！', '提示', 0);
    ModalResult := 1;
  end;
end;

procedure TfrmClothSCInPutSC.C_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
var
  fsj: string;
  FWZ: Integer;
begin
  fsj := Trim(TEdit(Sender).Hint);
  if fsj = '' then
  begin
    {try
      frmCPManageCX:=TfrmCPManageCX.Create(Application);
      with frmCPManageCX do
      begin
        if ShowModal=1 then
        begin
          Self.C_CodeName.Text:=Trim(frmCPManageCX.CDS_Main.fieldbyname('CYName').AsString);
          Self.C_Code.Text:=Trim(frmCPManageCX.CDS_Main.fieldbyname('CYNo').AsString);
          Self.C_Spec.Text:=Trim(frmCPManageCX.CDS_Main.fieldbyname('CYSpec').AsString);
        end;
      end;
    finally
      frmCPManageCX.Free;
    end;  }
  end
  else
  begin
    FWZ := Pos('/', fsj);
    try
      frmZDYHelp := TfrmZDYHelp.Create(Application);
      with frmZDYHelp do
      begin
        flag := Copy(fsj, 1, FWZ - 1);
        flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ);
        if Trim(flag) = 'C_CodeName' then
        begin
          fnote := True;
          V1Note.Caption := '类型';
        end;
        if ShowModal = 1 then
        begin
          TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
        end;
      end;
    finally
      frmZDYHelp.Free;
    end;
  end;

end;

procedure TfrmClothSCInPutSC.ToolButton3Click(Sender: TObject);
var
  OpenDiaLog: TOpenDialog;
  fFileName: string;
  fFilePath: string;
  maxNo: string;
  FJStream: TMemoryStream;
  mfileSize: integer;
  mCreationTime: TdateTime;
  mWriteTime: TdateTime;
begin
  //if cxPageControl1.ActivePageIndex=0 then Exit;
  if cxPageControl1.ActivePageIndex = 0 then
  begin
    with CDS_YuanLiao do
    begin
      Append;
      FieldByName('PBQty').Value := 0;
      Post;
    end;
  end
  else if cxPageControl1.ActivePageIndex = 1 then
  begin
    if Fint = 1 then
    begin
      with ClientDataSet3 do
      begin
        Append;
        Post;
      end;
    end
    else if Fint = 2 then
      with ClientDataSet5 do
      begin
        Append;
        Post;
      end;
  end
  else if cxPageControl1.ActivePageIndex = 2 then
  begin
    try
      adoqueryCmd.Connection.BeginTrans;
      OpenDiaLog := TOpenDialog.Create(Self);
      if OpenDiaLog.Execute then
      begin
        fFilePath := OpenDiaLog.FileName;
        fFileName := ExtractFileName(OpenDiaLog.FileName);
        Panel4.Caption := '正在加载文件，请稍等...';
        Panel4.Visible := true;
        application.ProcessMessages;
        if GetLSNo(ADOQueryCmd, maxNo, 'FJ', 'TP_File', 4, 1) = False then
        begin
          adoqueryCmd.Connection.RollbackTrans;
          Application.MessageBox('取最大号失败！', '提示', 0);
          Exit;
        end;
        //获取文件信息
        GetFileInfo(fFilePath, mfileSize, mCreationTime, mWriteTime);
        with adoqueryCmd do
        begin
          close;
          sql.Clear;
          sql.Add('delete from TP_File ');
          sql.Add('where TFID=' + quotedstr(trim(maxNo)));
          execsql;
        end;
        try
          FJStream := TMemoryStream.Create;
          with adoqueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('select * from TP_File ');
            sql.Add('where TFID=' + quotedstr(trim(maxNo)));
            open;
            append;
            fieldbyname('TFID').Value := trim(maxNo);
            fieldbyname('TFType').Value := 'PB附件';
            fieldbyname('Filler').Value := trim(DName);
            fieldbyname('FileName').Value := trim(fFileName);
            fieldbyname('TFDate').Value := mWriteTime;
            FJStream.LoadFromFile(fFilePath);
            CompressionStream(FJStream);
            tblobfield(FieldByName('Filesother')).LoadFromStream(FJStream);
            post;
          end;
          with ClientDataSet6 do
          begin
            Append;
            FieldByName('TFID').Value := Trim(maxNo);
            FieldByName('FillTime').Value := SGetServerDateTime(ADOTemp);
            FieldByName('TFdate').Value := mWriteTime;
            FieldByName('Filler').Value := Trim(DName);
            fieldbyname('FileName').Value := trim(fFileName);
            Post;
          end;
        finally
          FJStream.Free;
        end;
      end;
      adoqueryCmd.Connection.CommitTrans;
      Panel4.Visible := False;
    except
      Panel4.Visible := False;
      adoqueryCmd.Connection.RollbackTrans;
      application.MessageBox('附件保存失败！', '提示信息', 0);
    end;
  end
  else if cxPageControl1.ActivePageIndex = 3 then
  begin
    with ClientDataSet7 do
    begin
      Append;
      Post;
    end;
  end;

end;

procedure TfrmClothSCInPutSC.ToolButton4Click(Sender: TObject);
begin
  if cxPageControl1.ActivePageIndex = 0 then
  begin
    if CDS_YuanLiao.IsEmpty then
      Exit;
    if Trim(CDS_YuanLiao.fieldbyname('PBId').AsString) <> '' then
    begin
      if Application.MessageBox('确定要删除数据吗？', '提示', 32 + 4) <> IDYES then
        Exit;
      with ADOCmd do
      begin
        Close;
        sql.Clear;
        sql.Add('delete Cloth_YCL_PB where PBId=''' + Trim(CDS_YuanLiao.fieldbyname('PBId').AsString) + '''');
        ExecSQL;
      end;
    end;
    CDS_YuanLiao.Delete;
  end
  else if cxPageControl1.ActivePageIndex = 1 then
  begin
    if Fint = 1 then
    begin
      if ClientDataSet3.IsEmpty then
        Exit;
      if Application.MessageBox('确定要删除排针数据吗？', '提示', 32 + 4) <> IDYES then
        Exit;
      with ADOCmd do
      begin
        Close;
        sql.Clear;
        sql.Add('delete Cloth_PaiZhen where PZID=''' + Trim(ClientDataSet3.fieldbyname('PZID').AsString) + '''');
        ExecSQL;
      end;
      ClientDataSet3.Delete;
    end
    else if Fint = 2 then
    begin
      if ClientDataSet5.IsEmpty then
        Exit;
      if Application.MessageBox('确定要删除三角数据吗？', '提示', 32 + 4) <> IDYES then
        Exit;
      with ADOCmd do
      begin
        Close;
        sql.Clear;
        sql.Add('delete Cloth_PaiZhen where PZID=''' + Trim(ClientDataSet5.fieldbyname('PZID').AsString) + '''');
        ExecSQL;
      end;
      ClientDataSet5.Delete;
    end;

  end
  else if cxPageControl1.ActivePageIndex = 2 then
  begin
    if ClientDataSet6.IsEmpty then
      Exit;
    if Application.MessageBox('确定要删除数据吗？', '提示', 32 + 4) <> IDYES then
      Exit;
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete TP_File where TFID=''' + Trim(ClientDataSet6.fieldbyname('TFID').AsString) + '''');
      ExecSQL;
    end;
    ClientDataSet6.Delete;
  end
  else if cxPageControl1.ActivePageIndex = 3 then
  begin
    if ClientDataSet7.IsEmpty then
      Exit;
    if Application.MessageBox('确定要删除数据吗？', '提示', 32 + 4) <> IDYES then
      Exit;
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete Cloth_WJG where JGID=''' + Trim(ClientDataSet7.fieldbyname('JGID').AsString) + '''');
      ExecSQL;
    end;
    with ADOCmd do
    begin
      Close;
      sql.Clear;
      sql.Add(' exec P_Update_Cloth_Sub_WJG_Qty :Mainid');
      Parameters.ParamByName('Mainid').Value := Trim(FMainId);
      ExecSQL;
    end;
    ClientDataSet7.Delete;
  end;

end;

procedure TfrmClothSCInPutSC.cxGridDBColumn1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'SXYCLName';
      flagname := '原材料名称';
      if ShowModal = 1 then
      begin
        Self.CDS_YuanLiao.Edit;
        Self.CDS_YuanLiao.FieldByName('YCLName').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmClothSCInPutSC.v2Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp := TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag := 'PinPai';
      flagname := '品牌';
      if ShowModal = 1 then
      begin
        Self.CDS_YuanLiao.Edit;
        Self.CDS_YuanLiao.FieldByName('PinPai').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;

end;

procedure TfrmClothSCInPutSC.PiQtyChange(Sender: TObject);
var
  FQty1, FQty2: string;
begin
  {FQty1:=Qty1.Text;
  if Trim(FQty1)='' then
  begin
    FQty1:='0';
  end;
  FQty2:=Qty2.Text;
  if Trim(FQty2)='' then
  begin
    FQty2:='0';
  end;
  C_Qty.Text:=FloatToStr(StrToFloat(FQty1)*StrToFloat(FQty2)); }
end;

procedure TfrmClothSCInPutSC.Tv6DblClick(Sender: TObject);
var
  sFieldName: string;
  fileName: string;
  ff: TADOBlobStream;
  FJStream: TMemoryStream;
begin
  if ClientDataSet6.IsEmpty then
    exit;
  Panel4.Caption := '正在下载文件，请稍等...';
  Panel4.Visible := true;
  application.ProcessMessages;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from TP_File where TFID=''' + Trim(ClientDataSet6.fieldbyname('TFID').AsString) + '''');
    Open;
  end;
  sFieldName := 'D:\图片查看';
  if not DirectoryExists(pchar(sFieldName)) then
    CreateDirectory(pchar(sFieldName), nil);
  fileName := ClientDataSet6.fieldbyname('FileName').AsString;
  sFieldName := sFieldName + '\' + trim(fileName);
  try
    ff := TADOBlobstream.Create(ADOQueryTemp.fieldByName('FilesOther') as TblobField, bmRead);
    FJStream := TMemoryStream.Create;
    ff.SaveToStream(FJStream);
    UnCompressionStream(FJStream);
    FJStream.SaveToFile(sFieldName);
    Panel4.Visible := False;
    ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL);
  finally
    Panel4.Visible := False;
    FJStream.free;
    ff.Free;
  end;
end;

procedure TfrmClothSCInPutSC.ToolButton1Click(Sender: TObject);
begin
  if cxPageControl1.ActivePageIndex <> 0 then
    Exit;
  try
    frmShaKCSelList := TfrmShaKCSelList.Create(Application);
    with frmShaKCSelList do
    begin
      if ShowModal = 1 then
      begin
        with CDS_YuanLiao do
        begin
          Append;
          FieldByName('YCLName').Value := frmShaKCSelList.CDS_Main.fieldbyname('SPName').Value;
          FieldByName('YCLSpec').Value := frmShaKCSelList.CDS_Main.fieldbyname('SPSpec').Value;
          FieldByName('PinPai').Value := frmShaKCSelList.CDS_Main.fieldbyname('SXPinPai').Value;
          FieldByName('GYSName').Value := frmShaKCSelList.CDS_Main.fieldbyname('FactoryName').Value;
          FieldByName('BatchNo').Value := frmShaKCSelList.CDS_Main.fieldbyname('BatchNo').Value;
          FieldByName('SPID').Value := frmShaKCSelList.CDS_Main.fieldbyname('SPID').Value;
          //Post;
        end;
      end;
    end;
  finally
    frmShaKCSelList.Free;
  end;
end;

procedure TfrmClothSCInPutSC.ToolButton2Click(Sender: TObject);
begin
  if cxPageControl1.ActivePageIndex <> 0 then
    Exit;
  if CDS_YuanLiao.IsEmpty then
    Exit;
  try
    frmShaKCSelList := TfrmShaKCSelList.Create(Application);
    with frmShaKCSelList do
    begin
      if ShowModal = 1 then
      begin
        with CDS_YuanLiao do
        begin
          Edit;
          FieldByName('YCLName').Value := frmShaKCSelList.CDS_Main.fieldbyname('SPName').Value;
          FieldByName('YCLSpec').Value := frmShaKCSelList.CDS_Main.fieldbyname('SPSpec').Value;
          FieldByName('PinPai').Value := frmShaKCSelList.CDS_Main.fieldbyname('SXPinPai').Value;
          FieldByName('GYSName').Value := frmShaKCSelList.CDS_Main.fieldbyname('FactoryName').Value;
         // FieldByName('BatchNo').Value:=frmShaKCSelList.CDS_Main.fieldbyname('BatchNo').Value;
          FieldByName('SPID').Value := frmShaKCSelList.CDS_Main.fieldbyname('SPID').Value;
          //Post;
        end;
      end;
    end;
  finally
    frmShaKCSelList.Free;
  end;
end;

procedure TfrmClothSCInPutSC.Tv3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Fint := 1;
end;

procedure TfrmClothSCInPutSC.Tv5MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Fint := 2;
end;

procedure TfrmClothSCInPutSC.WFGYSBtnUpClick(Sender: TObject);
begin
  try
    frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application);
    with frmZdyAttachGYS do
    begin

      if ShowModal = 1 then
      begin
        Self.WFGYS.Text := Trim(CDS_HZ.fieldbyname('ZdyName').AsString);
      end;
    end;
  finally
    frmZdyAttachGYS.Free;
  end;
end;

procedure TfrmClothSCInPutSC.WFGYSBtnDnClick(Sender: TObject);
begin
  WFGYS.Text := '';
end;

procedure TfrmClothSCInPutSC.ToolButton5Click(Sender: TObject);
begin
  if Trim(XSConNo.Text) = '' then
    Exit;
  try
    frmFjList_RZ := TfrmFjList_RZ.Create(Application);
    with frmFjList_RZ do
    begin
    //  PState:=1;
      //if Trim(DParameters1)<>'高权限'  then cxButton1.Visible:=false;
      cxButton1.Visible := false;
      fileName.Visible := False;
      cxButton2.Visible := false;
      with Self.ADOQueryTemp do
      begin
        Close;
        SQL.Clear;
        sql.Add('select * from JYOrderCon_Sub_PB where Subid=''' + Trim(XSConNo.TxtCode) + '''');
        Open;
      end;
      fkeyNO := Trim(Self.ADOQueryTemp.fieldbyname('MainId').AsString);
      fType := '合同';
      if ShowModal = 1 then
      begin

      end;
    end;
  finally
    frmFjList_RZ.Free;
  end;
end;

procedure TfrmClothSCInPutSC.XSConNoBtnUpClick(Sender: TObject);
var
  FConNo, FForOrderNo: string;
begin
  try
    frmContractListNXSel := TfrmContractListNXSel.Create(Application);
    with frmContractListNXSel do
    begin
      if ShowModal = 1 then
      begin
        FForOrderNo := Trim(frmContractListNXSel.Order_Main.fieldbyname('ConNo').AsString);
        Self.XSConNo.Text := Trim(frmContractListNXSel.Order_Main.fieldbyname('ConNo').AsString);
        Self.XSConNo.TxtCode := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('SubId').AsString);
        Self.CustomerNoName.Text := Trim(frmContractListNXSel.Order_Main.fieldbyname('CustomerNoName').AsString);
        Self.C_CodeName.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('PrtCodeName').AsString);
        Self.C_Code.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('PrtCode').AsString);
        Self.C_Color.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('PRTColor').AsString);
        Self.MF.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('prtmf').AsString);
        Self.KZ.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('prtkz').AsString);
        Self.C_Spec.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('prtspec').AsString);
        Self.SQRatio.Text := Trim(frmContractListNXSel.Order_Main.fieldbyname('SQRatio').AsString);

        Self.PiKgQty.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('PiZhong').AsString);
        Self.PiQty.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('PiShu').AsString);
        Self.C_Qty.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('PRTOrderQty').AsString);

        Self.CompanyName.Text := Trim(frmContractListNXSel.Order_Main.fieldbyname('SYRName').AsString);
        Self.SQRatio.Text := Trim(frmContractListNXSel.Order_Main.fieldbyname('SQRatio').AsString);
        DeliveryDate.Date := frmContractListNXSel.Order_Main.fieldbyname('DlyDate').AsDateTime;
        Self.ConPayment.Text := Trim(frmContractListNXSel.Order_Main.fieldbyname('Payment').AsString);
        Self.ZdyNameZ.Text := Trim(frmContractListNXSel.Order_Main.fieldbyname('ZdyNameZ').AsString);
        Self.ConPRTPrice.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('PRTPrice').AsString);
        Self.ConDYMoney.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('DYMoney').AsString);
        Self.ZZSH.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('ZZSunHao').AsString);
        Self.MFZZS.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('MeiFenZhuanSu').AsString);
        Self.ZZYQ.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('ZhenZhiNote').AsString);
        Self.gongyi.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('KFNote').AsString);
        Self.ZongJieNote.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('ZongJieNote').AsString);
        Self.DayQty.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('CYCL').AsString);
        Self.CarType.Text := Trim(frmContractListNXSel.ClientDataSet2.fieldbyname('CarType').AsString);
      end;
    end;
  finally
    frmContractListNXSel.Free;
  end;
  if Trim(FMainId) = '' then
  begin
    with ADOTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select ConNum=count(ConNo) from Cloth_Main where XSConNo=''' + Trim(XSConNo.Text) + '''');
      Open;
    end;
    if ADOTemp.FieldByName('ConNum').AsInteger = 0 then
    begin
      ConNo.Text := Trim(FForOrderNo);          //XSConNo.Text
    end
    else
    begin
      ConNo.Text := Trim(FForOrderNo) + '-' + INTTOSTR(ADOTemp.FieldByName('ConNum').AsInteger);
    end;
  end;
end;

procedure TfrmClothSCInPutSC.XSConNoBtnDnClick(Sender: TObject);
begin
  XSConNo.Text := '';
  XSConNo.TxtCode := '';
end;

procedure TfrmClothSCInPutSC.cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application);
    with frmZdyAttachGYS do
    begin

      if ShowModal = 1 then
      begin
        with Self.ClientDataSet7 do
        begin
          Edit;
          FieldByName('WFGYSName').Value := Trim(CDS_HZ.fieldbyname('CoName').AsString);
          FieldByName('WFGYSNo').Value := Trim(CDS_HZ.fieldbyname('CoCode').AsString);
          FieldByName('WFGYSNameJC').Value := Trim(CDS_HZ.fieldbyname('CoHRName').AsString);
        end;
      end;
    end;
  finally
    frmZdyAttachGYS.Free;
  end;
end;

procedure TfrmClothSCInPutSC.v2Column11PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application);
    with frmZdyAttachGYS do
    begin

      if ShowModal = 1 then
      begin
        with Self.CDS_YuanLiao do
        begin
          Edit;
          FieldByName('GYSName').Value := Trim(CDS_HZ.fieldbyname('CoName').AsString);
        end;
      end;
    end;
  finally
    frmZdyAttachGYS.Free;
  end;
end;

procedure TfrmClothSCInPutSC.SJCarNOPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
var
  FSJCarNO: string;
begin
  try
    frmJTAllSel := TfrmJTAllSel.Create(Application);
    with frmJTAllSel do
    begin

      if ShowModal = 1 then
      begin
        with frmJTAllSel.ClientDataSet1 do
        begin
          while frmJTAllSel.ClientDataSet1.Locate('SSel', true, []) do
          begin
            if trim(FSJCarNO) = '' then
              FSJCarNO := trim(ClientDataSet1.fieldbyname('MCNO').AsString)
            else
              FSJCarNO := FSJCarNO + ',' + trim(ClientDataSet1.fieldbyname('MCNO').AsString);

            JHChejian.Text := trim(ClientDataSet1.fieldbyname('MCCJ').AsString);
            frmJTAllSel.ClientDataSet1.delete;
          end;
        end;
      end;
    end;
  finally
    frmJTAllSel.Free;
  end;
  SJCarNO.Text := FSJCarNO;
end;

end.

