unit U_KnitPlanInPut;

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, Math, cxLookAndFeels,
  cxLookAndFeelPainters, dxBarBuiltInMenu, cxNavigator, dxSkinsCore,
  dxSkinsDefaultPainters, dxDateRanges, U_BaseInput, System.ImageList,
  Vcl.ImgList, Vcl.Menus, dxSkinBasic, dxSkinBlack, dxSkinBlue, dxSkinBlueprint,
  dxSkinCaramel, dxSkinCoffee, dxSkinDarkroom, dxSkinDarkSide,
  dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy,
  dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian,
  dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis,
  dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black,
  dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
  dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue,
  dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray,
  dxSkinOffice2013White, dxSkinOffice2016Colorful, dxSkinOffice2016Dark,
  dxSkinOffice2019Black, dxSkinOffice2019Colorful, dxSkinOffice2019DarkGray,
  dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic,
  dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringtime, dxSkinStardust,
  dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinTheBezier, dxSkinValentine,
  dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark,
  dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint, dxSkinWXI,
  dxSkinXmas2008Blue, dxScrollbarAnnotations;

type
  TfrmKnitPlanInPut = class(TfrmBaseInput)
    ToolBar1: TToolBar;
    TBSave: TToolButton;
    TBClose: TToolButton;
    ScrollBox1: TScrollBox;
    Label1: TLabel;
    ADOQuery1: TADOQuery;
    Label2: TLabel;
    OrdDate: TDateTimePicker;
    Label3: TLabel;
    Label14: TLabel;
    ADOQueryTemp: TADOQuery;
    Label18: TLabel;
    Panel2: TPanel;
    DataSource2: TDataSource;
    CDS_YuanLiao: TClientDataSet;
    Label22: TLabel;
    ADOQueryCmd: TADOQuery;
    Label5: TLabel;
    DlyDate: TDateTimePicker;
    Label8: TLabel;
    Label12: TLabel;
    OrdPieceWeight: TEdit;
    OrdPiece: TEdit;
    Label13: TLabel;
    OrdQty: 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;
    Panel1: TPanel;
    Panel3: TPanel;
    ClientDataSet5: TClientDataSet;
    DataSource3: TDataSource;
    ClientDataSet3: TClientDataSet;
    DataSource5: TDataSource;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    OrdTare: TEdit;
    v2Column1: TcxGridDBColumn;
    v2Column3: TcxGridDBColumn;
    v2Column5: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    Label31: TLabel;
    v2Column7: TcxGridDBColumn;
    v2Column8: TcxGridDBColumn;
    v2Column9: TcxGridDBColumn;
    v2Column10: TcxGridDBColumn;
    Label47: TLabel;
    Label54: TLabel;
    C_GramWeight: TEdit;
    C_Width: TEdit;
    C_Name: TEdit;
    Label43: TLabel;
    cxGrid5: TcxGrid;
    TV5: TcxGridDBTableView;
    cxGridDBColumn32: TcxGridDBColumn;
    cxGridDBColumn34: TcxGridDBColumn;
    cxGridDBColumn35: TcxGridDBColumn;
    cxGridDBColumn36: TcxGridDBColumn;
    cxGridDBColumn37: TcxGridDBColumn;
    cxGridDBColumn38: TcxGridDBColumn;
    cxGridDBColumn39: TcxGridDBColumn;
    cxGridDBColumn40: TcxGridDBColumn;
    cxGridDBColumn43: TcxGridDBColumn;
    cxGridDBColumn44: TcxGridDBColumn;
    cxGridDBColumn45: TcxGridDBColumn;
    cxGridDBColumn46: TcxGridDBColumn;
    cxGridDBColumn47: TcxGridDBColumn;
    cxGridDBColumn48: TcxGridDBColumn;
    cxGridDBColumn49: TcxGridDBColumn;
    cxGridDBColumn50: TcxGridDBColumn;
    cxGridDBColumn51: TcxGridDBColumn;
    cxGridDBColumn52: TcxGridDBColumn;
    cxGridDBColumn53: TcxGridDBColumn;
    cxGridDBColumn54: TcxGridDBColumn;
    cxGridDBColumn55: TcxGridDBColumn;
    cxGridDBColumn56: TcxGridDBColumn;
    cxGridDBColumn57: TcxGridDBColumn;
    cxGridDBColumn58: TcxGridDBColumn;
    cxGridDBColumn59: TcxGridDBColumn;
    cxGridDBColumn60: TcxGridDBColumn;
    cxGridDBColumn61: TcxGridDBColumn;
    cxGridDBColumn62: TcxGridDBColumn;
    cxGridDBColumn63: TcxGridDBColumn;
    cxGridDBColumn64: TcxGridDBColumn;
    cxGridDBColumn65: TcxGridDBColumn;
    cxGridDBColumn66: TcxGridDBColumn;
    cxGridDBColumn67: TcxGridDBColumn;
    cxGridDBColumn68: TcxGridDBColumn;
    cxGridDBColumn69: TcxGridDBColumn;
    cxGridDBColumn70: TcxGridDBColumn;
    cxGridDBColumn71: TcxGridDBColumn;
    cxGridDBColumn72: TcxGridDBColumn;
    cxGridDBColumn73: TcxGridDBColumn;
    cxGridDBColumn74: TcxGridDBColumn;
    cxGridDBColumn75: TcxGridDBColumn;
    cxGridDBColumn76: TcxGridDBColumn;
    cxGridDBColumn77: TcxGridDBColumn;
    cxGridDBColumn78: TcxGridDBColumn;
    cxGridDBColumn79: TcxGridDBColumn;
    cxGridDBColumn80: TcxGridDBColumn;
    cxGridDBColumn81: TcxGridDBColumn;
    cxGridDBColumn82: TcxGridDBColumn;
    cxGridDBColumn83: TcxGridDBColumn;
    cxGridDBColumn84: TcxGridDBColumn;
    cxGridDBColumn85: TcxGridDBColumn;
    cxGridDBColumn86: TcxGridDBColumn;
    cxGridDBColumn87: TcxGridDBColumn;
    cxGridDBColumn88: TcxGridDBColumn;
    cxGridDBColumn89: TcxGridDBColumn;
    cxGridDBColumn90: TcxGridDBColumn;
    cxGridDBColumn91: TcxGridDBColumn;
    cxGridDBColumn92: TcxGridDBColumn;
    cxGridDBColumn93: TcxGridDBColumn;
    cxGridDBColumn94: TcxGridDBColumn;
    cxGridDBColumn95: TcxGridDBColumn;
    cxGridDBColumn96: TcxGridDBColumn;
    cxGridDBColumn97: TcxGridDBColumn;
    cxGridDBColumn98: TcxGridDBColumn;
    cxGridDBColumn99: TcxGridDBColumn;
    cxGridDBColumn100: TcxGridDBColumn;
    cxGridDBColumn101: TcxGridDBColumn;
    cxGridDBColumn102: TcxGridDBColumn;
    cxGridDBColumn103: TcxGridDBColumn;
    cxGridDBColumn104: TcxGridDBColumn;
    cxGridDBColumn105: TcxGridDBColumn;
    cxGridDBColumn106: TcxGridDBColumn;
    cxGridDBColumn107: TcxGridDBColumn;
    cxGridDBColumn108: TcxGridDBColumn;
    cxGridDBColumn109: TcxGridDBColumn;
    cxGridDBColumn110: TcxGridDBColumn;
    cxGridDBColumn111: TcxGridDBColumn;
    cxGridDBColumn112: TcxGridDBColumn;
    cxGridDBColumn113: TcxGridDBColumn;
    cxGridDBColumn114: TcxGridDBColumn;
    cxGridDBColumn115: TcxGridDBColumn;
    cxGridDBColumn116: TcxGridDBColumn;
    cxGridDBColumn117: TcxGridDBColumn;
    cxGridDBColumn118: TcxGridDBColumn;
    cxGridDBColumn119: TcxGridDBColumn;
    cxGridLevel6: TcxGridLevel;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    v3Column37: TcxGridDBColumn;
    v3Column38: TcxGridDBColumn;
    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;
    v3Column25: TcxGridDBColumn;
    v3Column26: TcxGridDBColumn;
    v3Column27: TcxGridDBColumn;
    v3Column28: TcxGridDBColumn;
    v3Column29: TcxGridDBColumn;
    v3Column30: TcxGridDBColumn;
    v3Column31: TcxGridDBColumn;
    v3Column32: TcxGridDBColumn;
    v3Column33: TcxGridDBColumn;
    v3Column34: TcxGridDBColumn;
    v3Column35: TcxGridDBColumn;
    v3Column36: TcxGridDBColumn;
    v3Column39: TcxGridDBColumn;
    v3Column40: TcxGridDBColumn;
    v3Column41: TcxGridDBColumn;
    v3Column42: TcxGridDBColumn;
    v3Column43: TcxGridDBColumn;
    v3Column44: TcxGridDBColumn;
    v3Column45: TcxGridDBColumn;
    v3Column46: TcxGridDBColumn;
    v3Column47: TcxGridDBColumn;
    v3Column48: TcxGridDBColumn;
    v3Column49: TcxGridDBColumn;
    v3Column50: TcxGridDBColumn;
    v3Column51: TcxGridDBColumn;
    v3Column52: TcxGridDBColumn;
    v3Column53: TcxGridDBColumn;
    v3Column54: TcxGridDBColumn;
    v3Column55: TcxGridDBColumn;
    v3Column56: TcxGridDBColumn;
    v3Column57: TcxGridDBColumn;
    v3Column58: TcxGridDBColumn;
    v3Column59: TcxGridDBColumn;
    v3Column60: TcxGridDBColumn;
    v3Column61: TcxGridDBColumn;
    v3Column62: TcxGridDBColumn;
    v3Column63: TcxGridDBColumn;
    v3Column64: TcxGridDBColumn;
    v3Column65: TcxGridDBColumn;
    v3Column66: TcxGridDBColumn;
    v3Column67: TcxGridDBColumn;
    v3Column68: TcxGridDBColumn;
    v3Column69: TcxGridDBColumn;
    v3Column70: TcxGridDBColumn;
    v3Column71: TcxGridDBColumn;
    v3Column72: TcxGridDBColumn;
    v3Column73: TcxGridDBColumn;
    v3Column74: TcxGridDBColumn;
    v3Column75: TcxGridDBColumn;
    v3Column76: TcxGridDBColumn;
    v3Column77: TcxGridDBColumn;
    v3Column78: TcxGridDBColumn;
    v3Column79: TcxGridDBColumn;
    v3Column80: TcxGridDBColumn;
    v3Column81: TcxGridDBColumn;
    v3Column82: TcxGridDBColumn;
    v3Column83: TcxGridDBColumn;
    v3Column84: TcxGridDBColumn;
    v3Column85: TcxGridDBColumn;
    v3Column86: TcxGridDBColumn;
    v3Column87: TcxGridDBColumn;
    v3Column88: TcxGridDBColumn;
    v3Column89: TcxGridDBColumn;
    v3Column90: TcxGridDBColumn;
    v3Column91: TcxGridDBColumn;
    v3Column92: TcxGridDBColumn;
    v3Column93: TcxGridDBColumn;
    v3Column94: TcxGridDBColumn;
    v3Column95: TcxGridDBColumn;
    v3Column96: TcxGridDBColumn;
    v3Column97: TcxGridDBColumn;
    v3Column98: TcxGridDBColumn;
    v3Column99: TcxGridDBColumn;
    v3Column100: TcxGridDBColumn;
    v3Column101: TcxGridDBColumn;
    v3Column102: TcxGridDBColumn;
    v3Column103: TcxGridDBColumn;
    v3Column104: TcxGridDBColumn;
    v3Column105: TcxGridDBColumn;
    v3Column106: TcxGridDBColumn;
    v3Column107: TcxGridDBColumn;
    v3Column108: TcxGridDBColumn;
    v3Column109: TcxGridDBColumn;
    v3Column110: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    v3Column111: TcxGridDBColumn;
    v3Column112: TcxGridDBColumn;
    v3Column113: TcxGridDBColumn;
    v3Column114: TcxGridDBColumn;
    v3Column115: TcxGridDBColumn;
    v3Column116: TcxGridDBColumn;
    v3Column117: TcxGridDBColumn;
    v3Column118: TcxGridDBColumn;
    v3Column119: TcxGridDBColumn;
    v3Column120: TcxGridDBColumn;
    v3Column121: TcxGridDBColumn;
    v3Column122: TcxGridDBColumn;
    v3Column123: TcxGridDBColumn;
    v3Column124: TcxGridDBColumn;
    v3Column125: TcxGridDBColumn;
    v3Column126: TcxGridDBColumn;
    v3Column127: TcxGridDBColumn;
    v3Column128: TcxGridDBColumn;
    v3Column129: TcxGridDBColumn;
    v3Column130: TcxGridDBColumn;
    v3Column131: TcxGridDBColumn;
    v3Column132: TcxGridDBColumn;
    v3Column133: TcxGridDBColumn;
    v3Column134: TcxGridDBColumn;
    v3Column135: TcxGridDBColumn;
    v3Column136: TcxGridDBColumn;
    v3Column137: TcxGridDBColumn;
    v3Column138: TcxGridDBColumn;
    v3Column139: TcxGridDBColumn;
    v3Column140: TcxGridDBColumn;
    v3Column141: TcxGridDBColumn;
    v3Column142: TcxGridDBColumn;
    v3Column143: TcxGridDBColumn;
    v3Column144: TcxGridDBColumn;
    v3Column145: TcxGridDBColumn;
    v3Column146: TcxGridDBColumn;
    v2Column12: TcxGridDBColumn;
    lbl2: TLabel;
    CustName: TBtnEditC;
    C_Code: TBtnEditC;
    ConNo: TBtnEditC;
    Saleser: TEdit;
    OurCoName: TBtnEditC;
    C_Deal: TBtnEditC;
    Label7: TLabel;
    OrderNo: TEdit;
    ToolBar3: TToolBar;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    OrdType: TComboBox;
    Label4: TLabel;
    FtyCoName: TBtnEditC;
    ToolButton8: TToolButton;
    PM_3: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    PM_5: TPopupMenu;
    MenuItem1: TMenuItem;
    MenuItem2: TMenuItem;
    Label6: TLabel;
    C_revolution: TEdit;
    Label9: TLabel;
    C_Color: TBtnEditC;
    Label10: TLabel;
    C_KnitNote: TBtnEditC;
    Label11: TLabel;
    C_Composition: TBtnEditC;
    Label15: TLabel;
    C_KnitGramWeight: TEdit;
    Label17: TLabel;
    Label19: TLabel;
    C_Figure: TBtnEditC;
    C_Yarn: TBtnEditC;
    Label20: TLabel;
    KGQty: TEdit;
    lbl1: TLabel;
    C_I_Name: TEdit;
    C_Spec: TEdit;
    OrdSNote: TRichEdit;
    btn1: TToolButton;
    lbl3: TLabel;
    SSBL: TBtnEditC;
    OrdUnit: TComboBox;
    Label21: TLabel;
    Label23: TLabel;
    C_DYARN: TBtnEditC;
    C_jiaceng: TBtnEditC;
    Label24: TLabel;
    khconno: TEdit;
    lbl4: TLabel;
    lbl5: TLabel;
    C_Material_Name: TBtnEditC;
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBSaveClick(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure cxGridDBColumn1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure v2Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure Tv5MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure v2Column11PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
    procedure OrdPieceWeightChange(Sender: TObject);
    procedure OrdPieceChange(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure C_CodeKeyPress(Sender: TObject; var Key: Char);
    procedure ConNoKeyPress(Sender: TObject; var Key: Char);
    procedure MCTypeBtnUpClick(Sender: TObject);
    procedure CustNameBtnUpClick(Sender: TObject);
    procedure C_CodeBtnUpClick(Sender: TObject);
    procedure ConNoBtnUpClick(Sender: TObject);
    procedure CustNameBtnDnClick(Sender: TObject);
    procedure OurCoNameBtnUpClick(Sender: TObject);
    procedure FtyCoNameBtnUpClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure MenuItem1Click(Sender: TObject);
    procedure MenuItem2Click(Sender: TObject);
    procedure btn1Click(Sender: TObject);
  private
    FXS, FGridFlag: Integer;
    procedure InitData();
    procedure ZDYHelp(FButn: TcxButtonEdit; LType: string);
    function SaveData(): Boolean;
    function SaveData2(): Boolean;
    { Private declarations }
  public
    PState, FCopyInt: Integer;
    FMainId, FConNo, PType, FSubId, FConMId, FConSId: string;
    { Public declarations }
  end;

var
  frmKnitPlanInPut: TfrmKnitPlanInPut;
  newh: hwnd;

implementation

uses
  U_DataLink, U_ZDYHelp, U_RTFun, U_ClothInfoSel, U_CompanySel, U_YarnInfoSel,
  U_TradeSalesContractSel;

{$R *.dfm}

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

procedure TfrmKnitPlanInPut.InitData();
var
  PBNO, PBFlag: string;
begin
  if PState = 1 then
  begin
    ConNo.enabled := false;
    with ADOQuery1 do
    begin
      Close;
      sql.Clear;
      SQL.Add('select A.*');
      sql.Add('from Knit_Plan_Card A');
      sql.Add(' where A.SubId=''' + Trim(FSubId) + '''');
      sql.Add(' and A.MainId=''' + Trim(FMainId) + '''');
      sql.Add(' and Status <> ''-1'' ');
      Open;
    end;
    if ADOQuery1.IsEmpty = False then
    begin
      OrderNo.Enabled := false;
      OrdType.Enabled := false;
      DlyDate.Enabled := false;
      OrdDate.Enabled := false;
      OurCoName.Enabled := false;
      CustName.Enabled := false;
      FtyCoName.Enabled := false;
      Saleser.Enabled := false;
      C_KnitGramWeight.Enabled := false;
      C_Code.Enabled := false;
      C_Name.Enabled := false;
      C_Width.Enabled := false;
      C_GramWeight.Enabled := false;
      C_Spec.Enabled := false;
      OrdPieceWeight.Enabled := false;
      C_Color.Enabled := false;
      C_Composition.Enabled := false;
      C_Deal.Enabled := false;
      C_KnitNote.Enabled := false;
      C_Figure.Enabled := false;
      C_Yarn.Enabled := false;
      KGQty.Enabled := false;
      SSBL.Enabled := false;
      OrdSNote.Enabled := false;
    end;
  end;
  with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    sql.Add('select * from knit_Plan_Main A where A.MainId=''' + Trim(FMainId) + '''');
    Open;
  end;
  SCSHData(ADOQuery1, ScrollBox1, 0);
  CustName.TxtCode := ADOQuery1.FieldByName('CustNo').AsString;

  with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    sql.Add('select * from knit_Plan_Sub A where A.MainId=''' + Trim(FMainId) + '''');
    Open;
  end;
  SCSHData(ADOQuery1, ScrollBox1, 2);

  FConMId := ADOQuery1.fieldbyname('ConMID').AsString;
  FConSId := ADOQuery1.fieldbyname('ConSId').AsString;

  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select A.* ');
    sql.Add(',YLQty=Cast(OrdQty*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 knit_Plan_Yarn A ');
    sql.Add('inner join knit_Plan_Sub B on A.SubId=B.SubId');
    SQL.Add(' inner join knit_Plan_Main C on B.Mainid=C.MainId');
    sql.Add(' where A.MainId=''' + Trim(FMainId) + '''');
    Open;
  end;
  SCreateCDS(ADOQueryTemp, CDS_YuanLiao);
  SInitCDSData(ADOQueryTemp, CDS_YuanLiao);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from knit_Plan_Arrange where MainId=''' + Trim(FMainId) + '''');
    sql.Add(' and PZType=''����'' ');
    Open;
  end;
  SCreateCDS(ADOQueryTemp, ClientDataSet3);
  SInitCDSData(ADOQueryTemp, ClientDataSet3);
  if ClientDataSet3.IsEmpty then
  begin
    with ClientDataSet3 do
    begin
      Append;
      Post;
      Append;
      Post;

    end;
  end;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from knit_Plan_Arrange where MainId=''' + Trim(FMainId) + '''');
    sql.Add(' and PZType=''����'' ');
    Open;
  end;
  SCreateCDS(ADOQueryTemp, ClientDataSet5);
  SInitCDSData(ADOQueryTemp, ClientDataSet5);
  if PState = 0 then
  begin
    with ADOQueryTemp do
    begin
      Close;
      SQL.Clear;
      sql.Add('select Top 1* from knit_Plan_Main order by FillTime desc ');
      Open;
    end;
    OrdDate.DateTime := SGetServerDate(ADOQueryTemp);
    OrdDate.Checked := True;
    DlyDate.Date := OrdDate.DateTime;
  end;

  if FCopyInt = 1 then
  begin
    FMainId := '';
    ConNo.Text := '';
    ConNo.enabled := true;
    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;

end;

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

end;

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

function TfrmKnitPlanInPut.SaveData(): Boolean;
var
  maxno, maxsubno, maxpbno, maxpzno, maxsjno: string;
begin
  try
    ADOQueryCmd.Connection.BeginTrans;
    if Trim(FMainId) = '' then
    begin
      if OrdType.Text = '�����' then
      begin
        if GetLSNo(ADOQueryCmd, maxno, 'DH', 'knit_Plan_Main', 4, 1) = False then
        begin
          ADOQueryCmd.Connection.RollbackTrans;
          Application.MessageBox('������ˮ���쳣��', '��ʾ', 0);
          exit;
        end;
      end;
      if OrdType.Text = '������' then
      begin
        if GetLSNo(ADOQueryCmd, maxno, 'SY', 'knit_Plan_Main', 4, 1) = False then
        begin
          ADOQueryCmd.Connection.RollbackTrans;
          Application.MessageBox('������ˮ���쳣��', '��ʾ', 0);
          exit;
        end;
      end;
      if OrdType.Text = '�ⷢ��' then
      begin
        if GetLSNo(ADOQueryCmd, maxno, 'KM', 'knit_Plan_Main', 4, 1) = False then
        begin
          ADOQueryCmd.Connection.RollbackTrans;
          Application.MessageBox('������ˮ���쳣��', '��ʾ', 0);
          exit;
        end;
      end;

      OrderNo.Text := maxno;
    end
    else
    begin
      maxno := Trim(FMainId);
    end;

//////////////////////////            ��������              //////////////////////////
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      SQL.Add('select * from knit_Plan_Main where MainId=''' + Trim(FMainId) + '''');
      Open;
    end;
    with ADOQueryCmd do
    begin
      if Trim(FMainId) = '' then
      begin
        Append;
      end
      else
      begin
        Edit;
      end;
      FieldByName('MainId').Value := Trim(maxno);
      FieldByName('CustNo').Value := Trim(CustName.TxtCode);
      RTSetsavedata(ADOQueryCmd, 'knit_Plan_Main', ScrollBox1, 0);

      if Trim(FMainId) = '' then
      begin
        FieldByName('Filler').Value := Trim(DName);
      end
      else
      begin
        FieldByName('Editer').Value := Trim(DName);
        FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp);
      end;
      Post;
    end;
//////////////////////////            ��������              //////////////////////////
///
//////////////////////////            �����ӱ�              //////////////////////////
    if Trim(FSubId) = '' then
    begin
      if GetLSNo(ADOQueryTemp, maxsubno, 'KS', 'knit_Plan_Sub', 4, 1) = False then
      begin
        ADOQueryCmd.Connection.RollbackTrans;
        Application.MessageBox('ȡ����ˮ��ʧ�ܣ�', '��ʾ', 0);
        Exit;
      end;
    end
    else
    begin
      maxsubno := Trim(FSubId);
    end;
    with ADOQueryCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('select * from knit_Plan_Sub where ');
      sql.Add('  SubId=''' + Trim(maxsubno) + '''');
      Open;
    end;
    with ADOQueryCmd do
    begin
      if Trim(FSubId) = '' then
        Append
      else
        Edit;
      FieldByName('MainId').Value := Trim(maxno);
      FieldByName('SubId').Value := Trim(maxsubno);
      FieldByName('ConMId').Value := Trim(FConMId);
      FieldByName('ConSId').Value := Trim(FConSId);
      RTSetsavedata(ADOQueryCmd, 'knit_Plan_Sub', ScrollBox1, 2);
      Post;
    end;
//////////////////////////            �����ӱ�              //////////////////////////
///
//////////////////////////            �����ǩ��              //////////////////////////
    with ADOQueryCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('select * from Trade_Cloth_Inspect_Rule where ');
      sql.Add('  RuleID=''' + Trim(maxno) + '''');
      Open;
    end;
    with ADOQueryCmd do
    begin
      if Trim(ADOQueryCmd.FieldByName('RuleID').ToString) = '' then
      begin
        Append;
        FieldByName('Filler').Value := Trim(DName);
      end
      else
      begin
        Edit;
        FieldByName('Editer').Value := Trim(DName);
        FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTemp);

      end;
      FieldByName('RuleID').Value := Trim(maxno);
      FieldByName('RuleBeforeTare').value := '1';
      Post;
    end;
//////////////////////////            �����ǩ��              //////////////////////////
///
//////////////////////////            ������ȱ�              //////////////////////////
    with CDS_YuanLiao do
    begin
      First;
      while not Eof do
      begin
        if Trim(CDS_YuanLiao.fieldbyname('PBId').AsString) = '' then
        begin
          if GetLSNo(ADOQueryTemp, maxpbno, 'PB', 'knit_Plan_Yarn', 4, 1) = False then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            Application.MessageBox('ȡ�������ˮ��ʧ�ܣ�', '��ʾ', 0);
            Exit;
          end;
        end
        else
        begin
          maxpbno := Trim(CDS_YuanLiao.fieldbyname('PBId').AsString);
        end;
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from knit_Plan_Yarn where ');
          sql.Add('  PBId=''' + Trim(maxpbno) + '''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          if Trim(CDS_YuanLiao.fieldbyname('PBId').AsString) = '' then
          begin
            Append;
            FieldByName('Filler').Value := Trim(DName);
            FieldByName('FillTime').Value := SGetServerDateTime(ADOQueryTemp);
          end
          else
          begin
            Edit;
            FieldByName('Editer').Value := Trim(DName);
            FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp);
          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(ADOQueryCmd, Tv2, CDS_YuanLiao, 'knit_Plan_Yarn', 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);

        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(ADOQueryCmd, maxpzno, 'PZ', 'knit_Plan_Arrange', 4, 1) = False then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            Application.MessageBox('ȡ������ˮ��ʧ�ܣ�', '��ʾ', 0);
            Exit;
          end;
        end
        else
        begin
          maxpzno := Trim(ClientDataSet3.fieldbyname('PZId').AsString);
        end;
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from knit_Plan_Arrange where ');
          sql.Add('  PZId=''' + Trim(maxpzno) + '''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          if Trim(ClientDataSet3.fieldbyname('PZId').AsString) = '' then
          begin
            Append;
            FieldByName('Filler').Value := Trim(DName);
            FieldByName('FillTime').Value := SGetServerDateTime(ADOQueryTemp);
          end
          else
          begin
            Edit;
            FieldByName('Editer').Value := Trim(DName);
            FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp);
          end;
          FieldByName('MainId').Value := Trim(maxno);
          FieldByName('SubId').Value := Trim(maxsubno);
          FieldByName('PZId').Value := Trim(maxpzno);
          RTSetSaveDataCDS(ADOQueryCmd, Tv3, ClientDataSet3, 'knit_Plan_Arrange', 0);
          FieldByName('PZType').Value := '����';
          FieldByName('PZName').Value := ClientDataSet3.fieldbyname('PZName').AsString;
          Post;
        end;
        ClientDataSet3.Edit;
        ClientDataSet3.FieldByName('PZId').Value := Trim(maxpzno);

        Next;
      end;
    end;
    ClientDataSet3.EnableControls;
//////////////////////////            ���������              //////////////////////////
///
//////////////////////////            �������DZ�              //////////////////////////
    ClientDataSet5.DisableControls;
    with ClientDataSet5 do
    begin
      First;
      while not Eof do
      begin
        if Trim(ClientDataSet5.fieldbyname('PZId').AsString) = '' then
        begin
          if GetLSNo(ADOQueryCmd, maxsjno, 'PZ', 'knit_Plan_Arrange', 4, 1) = False then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            Application.MessageBox('ȡ������ˮ��ʧ�ܣ�', '��ʾ', 0);
            Exit;
          end;
        end
        else
        begin
          maxsjno := Trim(ClientDataSet5.fieldbyname('PZId').AsString);
        end;
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from knit_Plan_Arrange where ');
          sql.Add('  PZId=''' + Trim(maxsjno) + '''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          if Trim(ClientDataSet5.fieldbyname('PZId').AsString) = '' then
          begin
            Append;
            FieldByName('Filler').Value := Trim(DName);
            FieldByName('FillTime').Value := SGetServerDateTime(ADOQueryTemp);
          end
          else
          begin
            Edit;
            FieldByName('Editer').Value := Trim(DName);
            FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp);
          end;
          FieldByName('MainId').Value := Trim(maxno);
          FieldByName('SubId').Value := Trim(maxsubno);
          FieldByName('PZId').Value := Trim(maxsjno);
          RTSetSaveDataCDS(ADOQueryCmd, Tv5, ClientDataSet5, 'knit_Plan_Arrange', 0);
          FieldByName('PZType').Value := '����';
          Post;
        end;
        ClientDataSet5.Edit;
        ClientDataSet5.FieldByName('PZId').Value := Trim(maxsjno);

        Next;
      end;
    end;
    ClientDataSet5.EnableControls;
//////////////////////////            �������DZ�              //////////////////////////


    ADOQueryCmd.Connection.CommitTrans;
    FMainId := Trim(maxno);
    FSubId := Trim(maxsubno);
    Result := True;
  except
    Result := False;
    ClientDataSet3.EnableControls;
    ClientDataSet5.EnableControls;
    CDS_YuanLiao.EnableControls;
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('����ʧ�ܣ�', '��ʾ', 0);
  end;
end;

procedure TfrmKnitPlanInPut.TBSaveClick(Sender: TObject);
var
  FReal: Double;
  maxConNo: string;
begin
  //OrdDate.SetFocus;

  if Trim(ConNo.Text) = '' then
  begin
    if GetLSNo(ADOQueryCmd, maxConNo, 'MS', 'knit_Plan_Main', 3, 1) = False then
    begin
      Application.MessageBox('������ˮ���쳣��', '��ʾ', 0);
      exit;
    end;
    ConNo.Text := maxConNo;
  end;

  if Trim(ConNo.Text) = '' then
  begin
    Application.MessageBox('�����Ų���Ϊ��!', '��ʾ', 0);
    Exit;
  end;
  if Trim(OrdType.Text) = '' then
  begin
    Application.MessageBox('�ƻ������Ͳ���Ϊ��!', '��ʾ', 0);
    Exit;
  end;

  if Trim(CustName.Text) = '' then
  begin
    Application.MessageBox('�ͻ�����Ϊ��!', '��ʾ', 0);
    Exit;
  end;
  if Trim(C_Name.Text) = '' then
  begin
    Application.MessageBox('��Ʒ���Ʋ���Ϊ��!', '��ʾ', 0);
    Exit;
  end;
  if Trim(C_Code.Text) = '' then
  begin
    Application.MessageBox('��Ʒ��Ų���Ϊ��!', '��ʾ', 0);
    Exit;
  end;

  if Trim(OrdQty.Text) = '' then
  begin
    Application.MessageBox('����������Ϊ��!', '��ʾ', 0);
    Exit;
  end;
//  if Trim(OrdPieceWeight.Text) = '' then
//  begin
//    Application.MessageBox('ƥ�ز���Ϊ��!', '��ʾ', 0);
//    Exit;
//  end;
  if Trim(OrdPiece.Text) = '' then
  begin
    Application.MessageBox('ƥ������Ϊ��!', '��ʾ', 0);
    Exit;
  end;

  if Trim(OrdTare.Text) = '' then
  begin
    OrdTare.Text := '0';
  end;

  if Trim(OrdTare.Text) = '' then
  begin
    Application.MessageBox('�ռӲ���Ϊ��!', '��ʾ', 0);
    Exit;
  end;

  if TryStrToFloat(OrdQty.Text, FReal) = False then
  begin
    Application.MessageBox('�������Ƿ�����!', '��ʾ', 0);
    Exit;
  end;
//  if TryStrToFloat(OrdPieceWeight.Text, FReal) = False then
//  begin
//    Application.MessageBox('ƥ�طǷ�����!', '��ʾ', 0);
//    Exit;
//  end;
  if TryStrToFloat(OrdPiece.Text, FReal) = False then
  begin
    Application.MessageBox('ƥ���Ƿ�����!', '��ʾ', 0);
    Exit;
  end;
  if TryStrToFloat(OrdTare.Text, FReal) = False then
  begin
    Application.MessageBox('�ռӷǷ�����!', '��ʾ', 0);
    Exit;
  end;

//  if Trim(C_Spec.Text) = '' 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);
    FMainId := '';
    FSubId := '';
//    ModalResult := 1;
  end;
end;

procedure TfrmKnitPlanInPut.ToolButton3Click(Sender: TObject);
begin
  if cxPageControl1.ActivePageIndex <> 0 then
    Exit;
  try
    frmYarnInfoSel := TfrmYarnInfoSel.Create(Application);
    with frmYarnInfoSel do
    begin
      if ShowModal = 1 then
      begin
        with CDS_YuanLiao do
        begin
          Append;
          FieldByName('PinPai').Value := frmYarnInfoSel.CDS_1.fieldbyname('Brand').Value;
          FieldByName('Denier').Value := frmYarnInfoSel.CDS_1.fieldbyname('Denier').Value;
          FieldByName('Y_Name').Value := frmYarnInfoSel.CDS_1.fieldbyname('Y_Name').Value;
          FieldByName('Y_Spec').Value := frmYarnInfoSel.CDS_1.fieldbyname('Y_Spec').Value;
          FieldByName('PBQty').Value := 0;
          Post;
        end;
      end;
    end;
  finally
    frmYarnInfoSel.Free;
  end;

end;

procedure TfrmKnitPlanInPut.ToolButton4Click(Sender: TObject);
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 ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete knit_Plan_Yarn where PBId=''' + Trim(CDS_YuanLiao.fieldbyname('PBId').AsString) + '''');
      ExecSQL;
    end;
  end;
  CDS_YuanLiao.Delete;

end;

procedure TfrmKnitPlanInPut.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 TfrmKnitPlanInPut.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 TfrmKnitPlanInPut.Tv3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  FGridFlag := 1;
end;

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

procedure TfrmKnitPlanInPut.v2Column11PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmCompanySel := TfrmCompanySel.Create(Application);
    with frmCompanySel do
    begin

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

procedure TfrmKnitPlanInPut.OrdPieceWeightChange(Sender: TObject);
var
  FOrdQty, FOrdPieceWeight: Double;
begin
//  FOrdQty := StrToFloatDef(OrdQty.Text, 0);
//  FOrdPieceWeight := StrToFloatDef(OrdPieceWeight.Text, 0);
//  if FOrdPieceWeight > 0 then
//    OrdPiece.Text := IntToStr(Ceil(FOrdQty / FOrdPieceWeight));

end;

procedure TfrmKnitPlanInPut.OurCoNameBtnUpClick(Sender: TObject);
begin
  try
    frmCompanySel := TfrmCompanySel.Create(Application);
    with frmCompanySel do
    begin
      FCoType := '��˾';
      if ShowModal = 1 then
      begin
        OurCoName.TxtCode := Trim(CDS_1.fieldbyname('CoCode').AsString);
        OurCoName.Text := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
        FtyCoName.TxtCode := Trim(CDS_1.fieldbyname('CoCode').AsString);
        FtyCoName.Text := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
      end;
    end;
  finally
    frmCompanySel.Free;
  end;

end;

procedure TfrmKnitPlanInPut.OrdPieceChange(Sender: TObject);
var
  FOrdQty, FOrdPieceWeight, FOrdPiece: Double;
begin
  FOrdPieceWeight := StrToFloatDef(OrdPieceWeight.Text, 0);
  FOrdPiece := StrToFloatDef(OrdPiece.Text, 0);
//  if FOrdPiece > 0 then
//    OrdQty.Text := FloatToStr(FOrdPieceWeight * FOrdPiece)
//  else
//    OrdQty.Text := '0';
end;

procedure TfrmKnitPlanInPut.ToolButton5Click(Sender: TObject);
var
  FSZ, FSC, FLS, ZZL: Double;
begin
  ZZL := 0;
  with CDS_YuanLiao do
  begin
    First;
    while not eof do
    begin
      FSZ := StrToFloatDef(FieldByName('YCLSpec').AsString, 1);
      FSC := StrToFloatDef(FieldByName('ShaChang').AsString, 1);
      FLS := StrToFloatDef(FieldByName('YongShaLuShu').AsString, 1);
      ZZL := ZZL + FSZ * FSC * FLS;
      Next;
    end;
  end;

  with CDS_YuanLiao do
  begin
    First;
    while not eof do
    begin
      FSZ := StrToFloatDef(FieldByName('YCLSpec').AsString, 1);
      FSC := StrToFloatDef(FieldByName('ShaChang').AsString, 1);
      FLS := StrToFloatDef(FieldByName('YongShaLuShu').AsString, 1);
      Edit;
      FieldByName('PBQty').Value := FSZ * FSC * FLS / ZZL * 100;
      FieldByName('PBQty2').Value := FSZ * FSC * FLS / ZZL * 100;
      Next;
    end;
  end;
end;

procedure TfrmKnitPlanInPut.C_CodeKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    Key := #0;
    SelectNext(ActiveControl as TWinControl, True, True);
  end;
end;

procedure TfrmKnitPlanInPut.MCTypeBtnUpClick(Sender: TObject);
var
  fsj: string;
  FWZ: Integer;
begin
  fsj := Trim(TBtnEditC(Sender).Hint);

  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 ShowModal = 1 then
      begin
        TBtnEditC(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;

end;

procedure TfrmKnitPlanInPut.MenuItem1Click(Sender: TObject);
begin
  with ClientDataSet5 do
  begin
    Append;
    Post;
  end;
end;

procedure TfrmKnitPlanInPut.MenuItem2Click(Sender: TObject);
begin
  if ClientDataSet5.IsEmpty then
    Exit;
  if Application.MessageBox('ȷ��Ҫɾ������������', '��ʾ', 32 + 4) <> IDYES then
    Exit;
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('delete knit_Plan_Arrange where PZID=''' + Trim(ClientDataSet5.fieldbyname('PZID').AsString) + '''');
    ExecSQL;
  end;
  ClientDataSet5.Delete;
end;

procedure TfrmKnitPlanInPut.N1Click(Sender: TObject);
begin
  with ClientDataSet3 do
  begin
    Append;
    Post;
  end;
end;

procedure TfrmKnitPlanInPut.N2Click(Sender: TObject);
begin
  if ClientDataSet3.IsEmpty then
    Exit;
  if Application.MessageBox('ȷ��Ҫɾ������������', '��ʾ', 32 + 4) <> IDYES then
    Exit;
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('delete knit_Plan_Arrange where PZID=''' + Trim(ClientDataSet3.fieldbyname('PZID').AsString) + '''');
    ExecSQL;
  end;
  ClientDataSet3.Delete;
end;

procedure TfrmKnitPlanInPut.ConNoKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    Key := #0;
    SelectNext(ActiveControl as TWinControl, True, True);
  end;
end;

function TfrmKnitPlanInPut.SaveData2(): Boolean;
var
  maxpzno, maxno, maxsubno, maxsjno, Fpbnname: string;
begin
  try
    ADOQueryCmd.Connection.BeginTrans;
    ClientDataSet3.DisableControls;
    with ClientDataSet3 do
    begin
      First;
      while not Eof do
      begin
        if Trim(ClientDataSet3.fieldbyname('PZId').AsString) = '' then
        begin
          if GetLSNo(ADOQueryCmd, maxpzno, 'PZB', 'knit_Plan_Arrange', 4, 1) = False then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            Application.MessageBox('ȡ������ˮ��ʧ�ܣ�', '��ʾ', 0);
            Exit;
          end;
        end
        else
        begin
          maxpzno := Trim(ClientDataSet3.fieldbyname('PZId').AsString);
        end;
//        with ADOQueryCmd do
//        begin
//          Close;
//          SQL.Clear;
//          sql.Add('select * from knit_Plan_Arrange where ');
//          sql.Add('  PZname=''' + Trim(edt1.Text) + '''');
//          Open;
//        end;
//        if ADOQueryCmd.IsEmpty = false then
//          Application.MessageBox('�����ظ�!', '��ʾ', 0);
//        Exit;
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from knit_Plan_Arrange where ');
          sql.Add('  PZId=''' + Trim(maxpzno) + '''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          if Trim(ClientDataSet3.fieldbyname('PZId').AsString) = '' then
          begin
            Append;
            FieldByName('Filler').Value := Trim(DName);
            FieldByName('FillTime').Value := SGetServerDateTime(ADOQueryTemp);
          end
          else
          begin
            Edit;
            FieldByName('Editer').Value := Trim(DName);
            FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp);
          end;
          FieldByName('MainId').Value := Trim(maxno);
          FieldByName('SubId').Value := Trim(maxsubno);
          FieldByName('PZId').Value := Trim(maxpzno);
          RTSetSaveDataCDS(ADOQueryCmd, Tv3, ClientDataSet3, 'knit_Plan_Arrange', 0);
          FieldByName('PZType').Value := '����';
          Post;
        end;
        ClientDataSet3.Edit;
        ClientDataSet3.FieldByName('PZId').Value := Trim(maxpzno);
        //Order_Sub.Post;
        Next;
      end;
    end;
    ClientDataSet3.EnableControls;
    ///���������
    ///�������DZ�
    ClientDataSet5.DisableControls;
    with ClientDataSet5 do
    begin
      First;
      while not Eof do
      begin
        if Trim(ClientDataSet5.fieldbyname('PZId').AsString) = '' then
        begin
          if GetLSNo(ADOQueryCmd, maxsjno, 'PZB', 'knit_Plan_Arrange', 4, 1) = False then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            Application.MessageBox('ȡ������ˮ��ʧ�ܣ�', '��ʾ', 0);
            Exit;
          end;
        end
        else
        begin
          maxsjno := Trim(ClientDataSet5.fieldbyname('PZId').AsString);
        end;
//        with ADOQueryCmd do
//        begin
//          Close;
//          SQL.Clear;
//          sql.Add('select * from knit_Plan_Arrange where ');
//          sql.Add('  PZname=''' + Trim(edt1.Text) + '''');
//          Open;
//        end;
//        if ADOQueryCmd.IsEmpty = false then
//          Application.MessageBox('�����ظ�!', '��ʾ', 0);
//        Exit;
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from knit_Plan_Arrange where ');
          sql.Add('  PZId=''' + Trim(maxsjno) + '''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          if Trim(ClientDataSet5.fieldbyname('PZId').AsString) = '' then
          begin
            Append;
            FieldByName('Filler').Value := Trim(DName);
            FieldByName('FillTime').Value := SGetServerDateTime(ADOQueryTemp);
          end
          else
          begin
            Edit;
            FieldByName('Editer').Value := Trim(DName);
            FieldByName('EditTime').Value := SGetServerDateTime(ADOQueryTemp);
          end;
          FieldByName('MainId').Value := Trim(maxno);
          FieldByName('SubId').Value := Trim(maxsubno);
          FieldByName('PZId').Value := Trim(maxsjno);
          RTSetSaveDataCDS(ADOQueryCmd, Tv5, ClientDataSet5, 'knit_Plan_Arrange', 0);
          FieldByName('PZType').Value := '����';
          FieldByName('PBName').Value := C_Name.Text;
          Post;
        end;
        ClientDataSet5.Edit;
        ClientDataSet5.FieldByName('PZId').Value := Trim(maxsjno);
        //Order_Sub.Post;
        Next;
      end;
    end;
    ClientDataSet5.EnableControls;
    ///�������DZ�
    ADOQueryCmd.Connection.CommitTrans;

    Result := True;
  except
    Result := False;
    ClientDataSet3.EnableControls;
    ClientDataSet5.EnableControls;

    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('����ʧ�ܣ�', '��ʾ', 0);
  end;
end;

procedure TfrmKnitPlanInPut.FtyCoNameBtnUpClick(Sender: TObject);
begin
  try
    frmCompanySel := TfrmCompanySel.Create(Application);
    with frmCompanySel do
    begin
      FCoType := '��Ӧ��';
      if ShowModal = 1 then
      begin
        OurCoName.TxtCode := Trim(CDS_1.fieldbyname('CoCode').AsString);
        OurCoName.Text := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
      end;
    end;
  finally
    frmCompanySel.Free;
  end;
end;

procedure TfrmKnitPlanInPut.btn1Click(Sender: TObject);
begin
//  if trim(ConNo.Text) = '' then
//  begin
//    Application.MessageBox('��ͬ��Ϊ��!', '��ʾ', 0);
//    Exit;
//  end;
  if C_I_Name.Text = '' then
  begin
    Application.MessageBox('�ڲ��ͺŲ���Ϊ��!', '��ʾ', 0);
    Exit;
  end;

  with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    sql.Add('select top 1 * from knit_Plan_Main A inner join knit_Plan_Sub B on A.MainId=B.MainId  ');
    sql.Add('where C_I_Name=' + QuotedStr(C_I_Name.Text));

//    sql.Add(' and A.Saleser=''' + Trim(Saleser.Text) + ''')');
    Open;
  end;
  if ADOQuery1.IsEmpty then
    Exit;
  C_Width.Text := ADOQuery1.fieldbyname('C_Width').AsString; //�ŷ�
  OrdPieceWeight.Text := ADOQuery1.fieldbyname('OrdPieceWeight').AsString; //ƥ��
  C_revolution.Text := ADOQuery1.fieldbyname('C_revolution').AsString; //�䲼ת��
  C_KnitGramWeight.Text := ADOQuery1.fieldbyname('C_KnitGramWeight').AsString; //��������
  C_GramWeight.Text := ADOQuery1.fieldbyname('C_GramWeight').AsString; //��Ʒ����
  C_Color.Text := ADOQuery1.fieldbyname('C_Color').AsString; //��ɫ
  C_name.Text := ADOQuery1.fieldbyname('C_name').AsString;
//  C_I_Name.Text := ADOQuery1.fieldbyname('C_I_Name').AsString; //�ڲ��ͺ�
  C_Spec.Text := ADOQuery1.fieldbyname('C_Spec').AsString;  //ɴ��
  C_Deal.Text := ADOQuery1.fieldbyname('C_Deal').AsString;  //����
  C_Composition.Text := ADOQuery1.fieldbyname('C_Composition').AsString;   //�ɷ�
  C_Yarn.Text := ADOQuery1.fieldbyname('C_Yarn').AsString;    //��ɴ
  C_Figure.Text := ADOQuery1.fieldbyname('C_Figure').AsString;  //�Ứ
  C_KnitNote.Text := ADOQuery1.fieldbyname('C_KnitNote').AsString;  //����Ҫ��
  OrdSNote.Text := ADOQuery1.fieldbyname('OrdSNote').AsString;  //��ע
  //self.OrdSNote.Text := ADOQuery1.fieldbyname('ConSNote').AsString;
end;

procedure TfrmKnitPlanInPut.ConNoBtnUpClick(Sender: TObject);
begin
  try
    frmTradeSalesContractSel := TfrmTradeSalesContractSel.Create(Application);
    with frmTradeSalesContractSel do
    begin
      if ShowModal = 1 then
      begin
        self.ConNo.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('ConNo').AsString; //��ͬ��
        FConMId := frmTradeSalesContractSel.CDS_1.fieldbyname('ConMID').AsString;
        FConSId := frmTradeSalesContractSel.CDS_1.fieldbyname('ConSId').AsString;

        self.DlyDate.date := frmTradeSalesContractSel.CDS_1.fieldbyname('DlyDate').AsDateTime; //��������
        self.OurCoName.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('SellName').AsString; //��˾̧ͷ
        self.CustName.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('BuyName').AsString; //�ͻ�
        self.FtyCoName.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('MiddleName').AsString; //�ӹ���λ
        self.Saleser.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('Saleser').AsString; //ҵ��Ա

        self.C_Code.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Code').AsString; //��Ʒ���
        self.C_Name.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Name').AsString; //��Ʒ����
        self.C_Width.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Width').AsString; //�ŷ�
        Self.C_KnitGramWeight.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('C_KnitGramWeight').AsString; //��������
        self.C_GramWeight.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('C_GramWeight').AsString; //��Ʒ����
        self.C_Color.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Color').AsString; //��ɫ
        if frmTradeSalesContractSel.CDS_1.fieldbyname('ConUnit').Value <> 'Roll' then
        begin
          self.OrdQty.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('ConQty').Value; //����
        end
        else
        begin
          self.OrdPiece.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('ConQty').Value; //ƥ��
        end;

        self.C_Spec.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Spec').AsString;
        self.C_Deal.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Deal').AsString;
        self.C_Composition.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Composition').AsString;
        self.C_Yarn.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Yarn').AsString;
        self.C_Figure.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Figure').AsString;

        self.OrdSNote.Text := frmTradeSalesContractSel.CDS_1.fieldbyname('ConSNote').AsString;
      end;
    end;
  finally
    frmTradeSalesContractSel.Free;
  end;

end;

procedure TfrmKnitPlanInPut.C_CodeBtnUpClick(Sender: TObject);
begin
  try
    frmClothInfoSel := TfrmClothInfoSel.Create(Application);
    with frmClothInfoSel do
    begin
      if ShowModal = 1 then
      begin
        Self.C_Code.Text := frmClothInfoSel.CDS_1.fieldbyname('C_Code').AsString;
        Self.C_Name.Text := frmClothInfoSel.CDS_1.fieldbyname('C_Name').AsString;

        Self.C_I_Name.Text := frmClothInfoSel.CDS_1.fieldbyname('C_Name').AsString;

        Self.C_Width.Text := frmClothInfoSel.CDS_1.fieldbyname('C_Width').AsString;
        Self.C_KnitGramWeight.Text := frmClothInfoSel.CDS_1.fieldbyname('C_KnitGramWeight').AsString;
        Self.C_GramWeight.Text := frmClothInfoSel.CDS_1.fieldbyname('C_GramWeight').AsString;
        Self.C_Spec.Text := frmClothInfoSel.CDS_1.fieldbyname('C_Spec').AsString;
        Self.C_Color.Text := frmClothInfoSel.CDS_1.fieldbyname('C_Color').AsString;
        Self.C_Figure.Text := frmClothInfoSel.CDS_1.fieldbyname('C_Figure').AsString;
        Self.C_Yarn.Text := frmClothInfoSel.CDS_1.fieldbyname('C_Yarn').AsString;

        Self.C_jiaceng.Text := frmClothInfoSel.CDS_1.fieldbyname('C_jiaceng').AsString;
        Self.C_DYARN.Text := frmClothInfoSel.CDS_1.fieldbyname('C_DYARN').AsString;

        Self.OrdSNote.Text := frmClothInfoSel.CDS_1.fieldbyname('Note').AsString;
        Self.C_Deal.Text := frmClothInfoSel.CDS_1.fieldbyname('C_Deal').AsString;

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

procedure TfrmKnitPlanInPut.CustNameBtnDnClick(Sender: TObject);
begin
  TBtnEditC(Sender).TxtCode := '';
  TBtnEditC(Sender).Text := '';
end;

procedure TfrmKnitPlanInPut.CustNameBtnUpClick(Sender: TObject);
begin
  try
    frmCompanySel := TfrmCompanySel.Create(Application);
    with frmCompanySel do
    begin
      FCoType := '�ͻ�';
      if ShowModal = 1 then
      begin
        CustName.TxtCode := Trim(CDS_1.fieldbyname('CoCode').AsString);
        CustName.Text := Trim(CDS_1.fieldbyname('CoAbbrName').AsString);
        Saleser.Text := Trim(CDS_1.fieldbyname('Saleser').AsString);
      end;
    end;
  finally
    frmCompanySel.Free;
  end;

end;

end.