unit U_BGJCKMXGYSInput;

interface

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

type
  TfrmBGJCKMXGYSInput = class(TForm)
    ToolBar1: TToolBar;
    TBSave: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    Panel2: TPanel;
    ADOQueryTemp: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryCmd: TADOQuery;
    ADOQuery1: TADOQuery;
    ClientDataSet7: TClientDataSet;
    cxGridPopupMenu7: TcxGridPopupMenu;
    DataSource7: TDataSource;
    ClientDataSet2: TClientDataSet;
    cxGridPopupMenu2: TcxGridPopupMenu;
    DataSource2: TDataSource;
    Panel3: TPanel;
    ToolBar2: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridDBColumn5: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    Panel4: TPanel;
    Panel5: TPanel;
    Label14: TLabel;
    Panel6: TPanel;
    ComTaiTou: TEdit;
    Label2: TLabel;
    BGDate: TDateTimePicker;
    v2Column1: TcxGridDBColumn;
    Label4: TLabel;
    EditCount: TEdit;
    CDS_BGName: TClientDataSet;
    cxGridPopupMenu5: TcxGridPopupMenu;
    DS_BGName: TDataSource;
    Label1: TLabel;
    OrderNo: TEdit;
    ClientDataSet3: TClientDataSet;
    cxGridPopupMenu1: TcxGridPopupMenu;
    DataSource3: TDataSource;
    cxGridPopupMenu3: TcxGridPopupMenu;
    ToolBar3: TToolBar;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    cxGrid6: TcxGrid;
    Tv6: TcxGridDBTableView;
    cxGridDBColumn10: TcxGridDBColumn;
    cxGridLevel6: TcxGridLevel;
    Tv6Column1: TcxGridDBColumn;
    Label8: TLabel;
    BCOrderNo: TEdit;
    v2Column2: TcxGridDBColumn;
    ClientDataSet6: TClientDataSet;
    cxGridPopupMenu6: TcxGridPopupMenu;
    DataSource6: TDataSource;
    Label12: TLabel;
    MLenStr: TEdit;
    cxGrid5: TcxGrid;
    TVBGName: TcxGridDBTableView;
    cxGridDBColumn17: TcxGridDBColumn;
    cxGridDBColumn18: TcxGridDBColumn;
    cxGridDBColumn30: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    cxGridDBColumn24: TcxGridDBColumn;
    cxGridDBColumn25: TcxGridDBColumn;
    cxGridLevel4: TcxGridLevel;
    cxGrid1: TcxGrid;
    Tv3: TcxGridDBTableView;
    v3Column1: TcxGridDBColumn;
    cxGridDBColumn2: TcxGridDBColumn;
    v3Column8: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridDBColumn8: TcxGridDBColumn;
    cxGridDBColumn9: TcxGridDBColumn;
    v3Column16: TcxGridDBColumn;
    v3Column17: TcxGridDBColumn;
    v3Column18: TcxGridDBColumn;
    v3Column20: TcxGridDBColumn;
    v3Column19: TcxGridDBColumn;
    v3Column4: TcxGridDBColumn;
    v3Column5: TcxGridDBColumn;
    Tv3Column2: TcxGridDBColumn;
    Tv3Column3: TcxGridDBColumn;
    v3Column6: TcxGridDBColumn;
    v3Column7: TcxGridDBColumn;
    v3Column10: TcxGridDBColumn;
    v3Column11: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    Panel7: TPanel;
    cxGrid7: TcxGrid;
    Tv7: TcxGridDBTableView;
    cxGridDBColumn11: TcxGridDBColumn;
    cxGridDBColumn12: TcxGridDBColumn;
    cxGridDBColumn13: TcxGridDBColumn;
    cxGridDBColumn14: TcxGridDBColumn;
    cxGridDBColumn15: TcxGridDBColumn;
    cxGridDBColumn16: TcxGridDBColumn;
    cxGridLevel3: TcxGridLevel;
    cxGrid4: TcxGrid;
    TvFee: TcxGridDBTableView;
    cxGridDBColumn19: TcxGridDBColumn;
    cxGridDBColumn20: TcxGridDBColumn;
    cxGridDBColumn21: TcxGridDBColumn;
    cxGridDBColumn22: TcxGridDBColumn;
    cxGridDBColumn23: TcxGridDBColumn;
    cxGridDBColumn33: TcxGridDBColumn;
    TvFeeColumn2: TcxGridDBColumn;
    TvFeeColumn1: TcxGridDBColumn;
    TvFeeColumn3: TcxGridDBColumn;
    cxGridDBColumn26: TcxGridDBColumn;
    cxGridLevel5: TcxGridLevel;
    DS_Fee: TDataSource;
    cxGridPopupMenu4: TcxGridPopupMenu;
    CDS_Fee: TClientDataSet;
    v2Column3: TcxGridDBColumn;
    v2Column4: TcxGridDBColumn;
    cxSplitter1: TcxSplitter;
    v2Column5: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    v2Column7: TcxGridDBColumn;
    ToolButton5: TToolButton;
    ClientDataSetJS: TClientDataSet;
    v6Column1: TcxGridDBColumn;
    ClientDataSetJS1: TClientDataSet;
    ToolButton6: TToolButton;
    Label3: TLabel;
    ChengJiaoType: TBtnEditA;
    Label5: TLabel;
    HaiYunFee: TEdit;
    Label6: TLabel;
    BaoFee: TEdit;
    Label7: TLabel;
    Label9: TLabel;
    procedure FormDestroy(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Tv7CellDblClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure cxGridDBColumn2PropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure TBSaveClick(Sender: TObject);
    procedure Tv7FocusedRecordChanged(Sender: TcxCustomGridTableView;
      APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
      ANewItemRecordFocusingChanged: Boolean);
    procedure cxPageControl1Change(Sender: TObject);
    procedure Tv7DblClick(Sender: TObject);
    procedure TVBGNameDblClick(Sender: TObject);
    procedure cxGridDBColumn1PropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure cxGridDBColumn4PropertiesEditValueChanged(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure v2Column2PropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure ToolButton5Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
  private
    { Private declarations }
    function SaveData():Boolean;
    procedure InitGridMD();
  public
    { Public declarations }
    FOrderNo,FBGID,FBCID:String;
  end;

var
  frmBGJCKMXGYSInput: TfrmBGJCKMXGYSInput;

implementation
uses
  U_DataLink,U_RTFun, U_ZDYHelp, U_ZDYHelpSel,U_ModuleNote, U_GYSList;

{$R *.dfm}

procedure TfrmBGJCKMXGYSInput.FormDestroy(Sender: TObject);
begin
  frmBGJCKMXGYSInput:=nil;
end;

procedure TfrmBGJCKMXGYSInput.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('tv2',Tv2,'������ϸ');
  WriteCxGrid('tv6',Tv6,'������ϸ');
  Close;
end;

procedure TfrmBGJCKMXGYSInput.FormShow(Sender: TObject);
begin
  ReadCxGrid('tv2',Tv2,'������ϸ');
  ReadCxGrid('tv6',Tv6,'������ϸ');
  BGDate.DateTime:=SGetServerDate(ADOQueryTemp);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYorder_BG where BGID='''+Trim(FBGID)+'''');
    Open;
  end;
  SCSHDataNew(ADOQueryTemp,Panel5,2);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYorder_BG_CK where BCID='''+Trim(FBCID)+'''');
    Open;
  end;
  SCSHDataNew(ADOQueryTemp,Panel2,2);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYOrder_BG_Qty where BGID='''+Trim(FBGID)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSet7);
  SInitCDSData20(ADOQueryTemp,ClientDataSet7);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYOrder_Main_MD_HZ where BGID='''+Trim(FBGID)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,CDS_Fee);
  SInitCDSData20(ADOQueryTemp,CDS_Fee);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYOrder_BG_Name where BGID='''+Trim(FBGID)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,CDS_BGName);
  SInitCDSData20(ADOQueryTemp,CDS_BGName);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYOrder_BG_KPFee where BCID='''+Trim(FBCID)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSet2);
  SInitCDSData20(ADOQueryTemp,ClientDataSet2);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYOrder_BG_CKName_Qty where BCID='''+Trim(FBCID)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSet6);
  SInitCDSData20(ADOQueryTemp,ClientDataSet6);
  BCOrderNo.SetFocus;
end;

procedure TfrmBGJCKMXGYSInput.Tv7CellDblClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
begin
  with ClientDataSet2 do
  begin
    Append;
    FieldByName('PSName').Value:=Trim(ClientDataSet7.fieldbyname('PSName10').AsString);
    FieldByName('FactoryNo').Value:=Trim(ClientDataSet7.fieldbyname('FactoryNo').AsString);
    FieldByName('FactoryName').Value:=Trim(ClientDataSet7.fieldbyname('FactoryName').AsString);
    FieldByName('BQUnit').Value:=Trim(ClientDataSet7.fieldbyname('QtyUnit').AsString);
    FieldByName('BQPS').Value:=ClientDataSet7.fieldbyname('MDPS').Value;
    FieldByName('BQQty').Value:=ClientDataSet7.fieldbyname('MDQty').Value;
    Post;
  end;
end;

procedure TfrmBGJCKMXGYSInput.cxGridDBColumn2PropertiesButtonClick(
  Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmGYSList:=TfrmGYSList.Create(Application);
    with frmGYSList do
    begin
      if ShowModal=1 then
      begin
        with ClientDataSet2 do
        begin
          edit;
          FieldByName('FactoryNo').Value:=Trim(frmGYSList.Order_Main.fieldbyname('ZKID').AsString) ;
          FieldByName('FactoryName').Value:=Trim(frmGYSList.Order_Main.fieldbyname('KHNameJC').AsString);
          //Post;
        end;
      end;
    end;
  finally
    frmGYSList.Free;
  end;
end;

procedure TfrmBGJCKMXGYSInput.ToolButton1Click(Sender: TObject);
begin
  with ClientDataSet2 do
  begin
    Append;
    if Trim(MLenStr.Text)<>'' then
    begin
      FieldByName('MLen').Value:=StrToFloat(MLenStr.Text);
    end;
    Post;
  end;
end;

procedure TfrmBGJCKMXGYSInput.ToolButton2Click(Sender: TObject);
begin
  if ClientDataSet2.IsEmpty then Exit;
  if Trim(ClientDataSet2.fieldbyname('BFID').AsString)<>'' then
  begin
    if Application.MessageBox('ȷ��Ҫɾ��������','��ʾ',32+4)<>IDYES then Exit;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete JYOrder_BG_KPFee where BFID='''+Trim(ClientDataSet2.fieldbyname('BFID').AsString)+'''');
      ExecSQL;
    end;
  end;
  ClientDataSet2.Delete;
end;
function TfrmBGJCKMXGYSInput.SaveData():Boolean;
var
  maxno,maxsubno,maxNQNo:String;
begin
  try
    ADOQueryCmd.Connection.BeginTrans;
    ///��������
    if Trim(FBCID)='' then
    begin
      if GetLSNo(ADOQueryCmd,maxno,'BC','JYOrder_BG_CK',3,1)=False then
      begin
        ADOQueryCmd.Connection.RollbackTrans;
        Application.MessageBox('ȡ����ʧ��!','��ʾ',0);
        Exit;
      end;
    end else
    begin
      maxno:=Trim(FBCID);
    end;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      SQL.Add('select * from JYOrder_BG_CK where BCId='''+Trim(FBCID)+'''');
      Open;
    end;
    with ADOQueryCmd do
    begin
      if Trim(FBCID)='' then
      begin
        Append;
        FieldByName('Filler').Value:=Trim(DName);
      end else
      begin
        Edit;
        FieldByName('Editer').Value:=Trim(DName);
        FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp);
      end;
      FieldByName('BGID').Value:=Trim(FBGID);
      FieldByName('BCID').Value:=Trim(maxno);
      RTSetsavedata(ADOQueryCmd,'JYOrder_BG_CK',Panel2,2);
      Post;
    end;

    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from JYOrder_BG_CK where BCorderno='''+Trim(BCOrderNo.Text)+'''');
      sql.Add(' and Valid=''Y'' ');
      Open;
    end;
    if ADOQueryTemp.RecordCount>1 then
    begin
      ADOQueryCmd.Connection.RollbackTrans;
      Application.MessageBox('����ʶ����ظ�!','��ʾ',0);
      Exit;
    end;

    ///���濪Ʊ�����ӱ�
    with ClientDataSet2 do
    begin
      First;
      while not Eof do
      begin
        if Trim(ClientDataSet2.fieldbyname('BFId').AsString)='' then
        begin
          if GetLSNo(ADOQueryCmd,maxsubno,'BF','JYOrder_BG_KPFee',4,1)=False then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            Application.MessageBox('ȡ����ˮ��ʧ�ܣ�','��ʾ',0);
            Exit;
          end;
        end else
        begin
          maxsubno:=Trim(ClientDataSet2.fieldbyname('BFId').AsString);
        end;
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from JYOrder_BG_KPFee where BFId='''+Trim(maxsubno)+'''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          if Trim(ClientDataSet2.fieldbyname('BFId').AsString)='' then
            Append
          else
            Edit;
          FieldByName('BGId').Value:=Trim(FBGID);
          FieldByName('BCId').Value:=Trim(maxno);
          FieldByName('BFId').Value:=Trim(maxsubno);
          RTSetSaveDataCDS(ADOQueryCmd,Tv2,ClientDataSet2,'JYOrder_BG_KPFee',0);
          FieldByName('FactoryNo').Value:=ClientDataSet2.fieldbyname('FactoryNo').Value;
          FieldByName('PSName').Value:=ClientDataSet2.fieldbyname('PSName').Value;
          Post;
        end;
        ClientDataSet2.Edit;
        ClientDataSet2.FieldByName('BFId').Value:=Trim(maxsubno);
        //Order_Sub.Post;
        Next;
      end;
    end;
    ///���汨��������Ϣ�ӱ�
    with ClientDataSet6 do
    begin
      First;
      while not Eof do
      begin
        if Trim(ClientDataSet6.fieldbyname('NQId').AsString)='' then
        begin
          if GetLSNo(ADOQueryCmd,maxNQNo,'NQId','JYOrder_BG_CKName_Qty',4,1)=False then
          begin
            ADOQueryCmd.Connection.RollbackTrans;
            Application.MessageBox('ȡ����ˮ��ʧ�ܣ�','��ʾ',0);
            Exit;
          end;
        end else
        begin
          maxNQNo:=Trim(ClientDataSet6.fieldbyname('NQId').AsString);
        end;
        with ADOQueryCmd do
        begin
          Close;
          SQL.Clear;
          sql.Add('select * from JYOrder_BG_CKName_Qty where NQId='''+Trim(maxNQNo)+'''');
          Open;
        end;
        with ADOQueryCmd do
        begin
          if Trim(ClientDataSet6.fieldbyname('NQId').AsString)='' then
            Append
          else
            Edit;
          FieldByName('BGId').Value:=Trim(FBGID);
          FieldByName('BCId').Value:=Trim(maxno);
          FieldByName('NQId').Value:=Trim(maxNQNo);
          RTSetSaveDataCDS(ADOQueryCmd,Tv6,ClientDataSet6,'JYOrder_BG_CKName_Qty',0);
          Post;
        end;
        ClientDataSet6.Edit;
        ClientDataSet6.FieldByName('NQId').Value:=Trim(maxNQNo);
        //Order_Sub.Post;
        Next;
      end;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Result:=True;
  except
    Result:=False;
    ADOQueryCmd.Connection.RollbackTrans;
    Application.MessageBox('����ʧ�ܣ�','��ʾ',0);
  end;
end;

procedure TfrmBGJCKMXGYSInput.TBSaveClick(Sender: TObject);
var
  FReal:Double;//a39978874
begin
  ToolBar1.SetFocus;
  if Trim(BCOrderNo.Text)='' then
  begin
    Application.MessageBox('����ʶ��Ų���Ϊ�գ�','��ʾ',0);
    Exit;
  end;

  if ClientDataSet2.IsEmpty then
  begin
    Application.MessageBox('������ϸ����Ϊ��!','��ʾ',0);
    Exit;
  end;
  if ClientDataSet2.Locate('BFName',Null,[])=True then
  begin
    Application.MessageBox('�������Ʋ���Ϊ��!','��ʾ',0);
    Exit;
  end;
  if ClientDataSet2.Locate('BFQty',Null,[])=True then
  begin
    Application.MessageBox('������������Ϊ��!','��ʾ',0);
    Exit;
  end;
  if ClientDataSet2.Locate('BFPrice',Null,[])=True then
  begin
    Application.MessageBox('���õ��۲���Ϊ��!','��ʾ',0);
    Exit;
  end;
  if ClientDataSet2.Locate('BFUnit',Null,[])=True then
  begin
    Application.MessageBox('���õ�λ����Ϊ��!','��ʾ',0);
    Exit;
  end;
  if ClientDataSet2.Locate('BFMoney',Null,[])=True then
  begin
    Application.MessageBox('���ý���Ϊ��!','��ʾ',0);
    Exit;
  end;
  if ClientDataSet6.IsEmpty then
  begin
    Application.MessageBox('����Ʒ����Ϣ����Ϊ��!','��ʾ',0);
    Exit;
  end;
  if SaveData() then
  begin
    Application.MessageBox('����ɹ���','��ʾ',0);
    ModalResult:=1;
  end;


end;

procedure TfrmBGJCKMXGYSInput.Tv7FocusedRecordChanged(
  Sender: TcxCustomGridTableView; APrevFocusedRecord,
  AFocusedRecord: TcxCustomGridRecord;
  ANewItemRecordFocusingChanged: Boolean);
begin
  InitGridMD();
end;
procedure TfrmBGJCKMXGYSInput.InitGridMD();
var
  fsj:string;
begin
  try
    ADOQueryTemp.DisableControls;
    with ADOQueryTemp do
    begin
      Close;
      Filtered:=False;
      sql.Clear;
      sql.Add('exec P_View_MD_BGMX :begdate,:enddate,:orderno,:MDType,:WSql');
      Parameters.ParamByName('begdate').Value:='';
      Parameters.ParamByName('enddate').Value:='';
      Parameters.ParamByName('orderno').Value:=Trim(orderNo.Text);
      Parameters.ParamByName('MDType').Value:='';
      fsj:=' and isnull(JMM.CKName,'''')='''' ';
      fsj:=fsj+' and JMM.PSName='''+Trim(ClientDataSet7.fieldbyname('PSName').AsString)+'''';
      fsj:=fsj+' and JMM.FactoryName='''+Trim(ClientDataSet7.fieldbyname('FactoryName').AsString)+'''';
      Parameters.ParamByName('WSql').Value:=fsj;
      Open;
    end;
    SCreateCDS20(ADOQueryTemp,ClientDataSet3);
    SInitCDSData20(ADOQueryTemp,ClientDataSet3);
  finally
    ADOQueryTemp.EnableControls;
  end;
end;

procedure TfrmBGJCKMXGYSInput.cxPageControl1Change(Sender: TObject);
begin
  InitGridMD();
end;

procedure TfrmBGJCKMXGYSInput.Tv7DblClick(Sender: TObject);
begin
  with ClientDataSet2 do
  begin
    Append;
    FieldByName('FactoryName').Value:=ClientDataSet7.fieldbyname('FactoryName').Value;
    FieldByName('FactoryNo').Value:=ClientDataSet7.fieldbyname('FactoryNo').Value;
    FieldByName('PSName').Value:=ClientDataSet7.fieldbyname('PSName').Value;
    if Trim(ClientDataSet7.fieldbyname('BQUnit').AsString)<>'M' then
    begin
      FieldByName('BFQty').Value:=ClientDataSet7.fieldbyname('BQQty').Value;
      if Trim(MLenStr.Text)<>'' then
      begin
        FieldByName('BFMQty').Value:=ClientDataSet7.fieldbyname('BQQty').Value*strtofloat(MLenStr.Text);
      end;
    end else
    begin
      FieldByName('BFMQty').Value:=ClientDataSet7.fieldbyname('BQQty').Value;
    end;
    FieldByName('BFUnit').Value:='M';
    if Trim(MLenStr.Text)<>'' then
    begin
      FieldByName('MLen').Value:=StrToFloat(MLenStr.Text);
    end;
    Post;
  end;
end;

procedure TfrmBGJCKMXGYSInput.TVBGNameDblClick(Sender: TObject);
begin
  with ClientDataSet6 do
  begin
    Append;
    FieldByName('BGName').Value:=CDS_BGName.fieldbyname('BGName').Value;
    Post;
  end;
end;

procedure TfrmBGJCKMXGYSInput.cxGridDBColumn1PropertiesButtonClick(
  Sender: TObject; AButtonIndex: Integer);
begin
  try
    frmZDYHelp:=TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag:='BFName';
      flagname:='���ط�������';
      if ShowModal=1 then
      begin
        with Self.ClientDataSet2 do
        begin
          Edit;
          FieldByName('BFName').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
        end;
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmBGJCKMXGYSInput.cxGridDBColumn4PropertiesEditValueChanged(
  Sender: TObject);
var
  mvalue,FName,FPrice,FQty,FMQty,FMoney,FMLen:string;
begin
  FName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName);
  mvalue:=TcxTextEdit(Sender).EditingText;
  if Trim(mvalue)='' then
  begin
    mvalue:='0';
  end;
  with ClientDataSet2 do
  begin
    Edit;
    FieldByName(FName).Value:=mvalue;
    Post;
  end;
  FQty:=Trim(ClientDataSet2.fieldbyname('BFQty').AsString);
  if Trim(FQty)='' then
  begin
    FQty:='0';
  end;
  FMLen:=Trim(ClientDataSet2.fieldbyname('MLen').AsString);
  if Trim(FMLen)='' then
  begin
    FMLen:='0';
  end;
  if (Trim(FName)='MLen') or (Trim(FName)='BFQty') then
  begin
    with ClientDataSet2 do
    begin
      Edit;
      FieldByName('BFMQty').Value:=StrToFloat(FQty)*StrToFloat(FMLen);
      Post;
    end;
  end;
  FPrice:=Trim(ClientDataSet2.fieldbyname('BFPrice').AsString);
  FQty:=Trim(ClientDataSet2.fieldbyname('BFQty').AsString);
  FMQty:=Trim(ClientDataSet2.fieldbyname('BFMQty').AsString);
  FMoney:=Trim(ClientDataSet2.fieldbyname('BFMoney').AsString);
  if Trim(FPrice)='' then
  begin
    FPrice:='0';
  end;
  if Trim(FQty)='' then
  begin
    FQty:='0';
  end;
  if Trim(FMQty)='' then
  begin
    FMQty:='0';
  end;
  if Trim(FMoney)='' then
  begin
    FMoney:='0';
  end;
  with ClientDataSet2 do
  begin
    Edit;
    if Trim(FName)='BFPrice' then
    begin
      if Trim(ClientDataSet2.fieldbyname('BFUnit').AsString)='M' then
      begin
        FieldByName('BFMoney').Value:=StrToFloat(FPrice)*StrToFloat(FMQty);
      end else
      begin
        FieldByName('BFMoney').Value:=StrToFloat(FPrice)*StrToFloat(FQty);
      end;
    end else
    begin
      if Trim(ClientDataSet2.fieldbyname('BFUnit').AsString)='M' then
      begin
        if Trim(FMQty)<>'0' then
          FieldByName('BFPrice').Value:=StrToFloat(FMoney)*1.00/StrToFloat(FMQty)
        else
          FieldByName('BFPrice').Value:=0;
      end else
      begin
        if Trim(FQty)<>'0' then
          FieldByName('BFPrice').Value:=StrToFloat(FMoney)*1.00/StrToFloat(FQty)
        else
          FieldByName('BFPrice').Value:=0;
      end;
    end;
    Post;
  end;
end;

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

procedure TfrmBGJCKMXGYSInput.v2Column2PropertiesButtonClick(Sender: TObject;
  AButtonIndex: Integer);
begin
  try
    frmGYSList:=TfrmGYSList.Create(Application);
    with frmGYSList do
    begin
      if ShowModal=1 then
      begin
        with ClientDataSet2 do
        begin
          edit;
          FieldByName('FactoryNo').Value:=Trim(frmGYSList.Order_Main.fieldbyname('ZKID').AsString) ;
          FieldByName('FactoryName').Value:=Trim(frmGYSList.Order_Main.fieldbyname('KHNameJC').AsString);
          //Post;
        end;
      end;
    end;
  finally
    frmGYSList.Free;
  end;
end;

procedure TfrmBGJCKMXGYSInput.ToolButton5Click(Sender: TObject);
var
  Fqty1,Fqty2:string;
  Qty1,Qty2:Double;
  i:Integer;
begin
  if ClientDataSet2.IsEmpty then Exit;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYOrder_BG_KPFee where 1<>1');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSetJS);
  SInitCDSData20(ADOQueryTemp,ClientDataSetJS);
  SCreateCDS20(ADOQueryTemp,ClientDataSetJS1);
  SInitCDSData20(ADOQueryTemp,ClientDataSetJS1);
  ClientDataSet2.DisableControls;
  with ClientDataSet2 do
  begin
    First;
    while not Eof do
    begin
      with ClientDataSetJS do
      begin
        Append;
        Post;
      end;
      with ClientDataSetJS1 do
      begin
        Append;
        Post;
      end;
      for i:=0 to Tv2.ColumnCount-1 do
      begin
        with ClientDataSetJS do
        begin
          Edit;
          FieldByName(Tv2.Columns[i].DataBinding.FieldName).Value:=ClientDataSet2.fieldbyname(Tv2.Columns[i].DataBinding.FieldName).Value;
          Post;
        end;
        with ClientDataSetJS1 do
        begin
          Edit;
          FieldByName(Tv2.Columns[i].DataBinding.FieldName).Value:=ClientDataSet2.fieldbyname(Tv2.Columns[i].DataBinding.FieldName).Value;
          Post;
        end;
      end;
      Next;
    end;
  end;
  ClientDataSet2.EnableControls;
  ClientDataSet2.DisableControls;

  with ClientDataSet2 do
  begin
    First;
    while not Eof do
    begin
      if Trim(ClientDataSet2.FieldByName('PSXH').AsString)<>'' then
      begin
        if Trim(ClientDataSet2.FieldByName('PSXH').AsString)<>'1' then
        begin
          Qty1:=0;
          Qty2:=0;
          with ClientDataSetJS do
          begin
            First;
            while not Eof do
            begin
              if ClientDataSetJS.FieldByName('PSXH').AsInteger=ClientDataSet2.FieldByName('PSXH').AsInteger-1 then
              begin
                if Trim(ClientDataSetJS.fieldbyname('BFUnit').AsString)='M' then
                  Qty1:=Qty1+ ClientDataSetJS.FieldByName('BFMQty').AsFloat
                else
                  Qty1:=Qty1+ ClientDataSetJS.FieldByName('BFQty').AsFloat;
              end;
              Next;
            end;
          end;
          with ClientDataSetJS1 do
          begin
            First;
            while not Eof do
            begin
              if ClientDataSetJS1.FieldByName('PSXH').AsInteger=ClientDataSet2.FieldByName('PSXH').AsInteger then
              begin
                if Trim(ClientDataSetJS1.fieldbyname('BFUnit').AsString)='M' then
                  Qty2:=Qty2+ ClientDataSetJS1.FieldByName('BFMQty').AsFloat
                else
                  Qty2:=Qty2+ ClientDataSetJS1.FieldByName('BFQty').AsFloat;
              end;
              Next;
            end;
          end;
          Edit;
          FieldByName('PSSHQty').Value:=Qty1-Qty2;
          Post;
        end;
      end;
      Next;
    end;
  end;
  ClientDataSet2.EnableControls;
end;

procedure TfrmBGJCKMXGYSInput.ToolButton6Click(Sender: TObject);
begin
  if Trim(EditCount.Text)='1' then Exit;
  if Application.MessageBox('ȷ��Ҫִ�и��Ʋ�����ִ�д˲�����,֮ǰ�����ݽ�����!','��ʾ',32+4)<>IDYES then Exit;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYOrder_BG_KPFee where BCID=');
    sql.Add('(select BCID from JYOrder_BG_CK CK where CK.BCOrderNo='''+Trim(BCOrderNo.Text)+''' and Valid=''Y'' )');
    Open;
  end;
  if ADOQueryTemp.IsEmpty then
  begin
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from JYOrder_BG_KPFee where BCID=');
      sql.Add('(select Top 1 BCID from JYOrder_BG_CK CK where CK.BCOrderNo='''+Trim(BCOrderNo.Text)+''' order by BCID desc )');
      Open;
    end;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSet2);
  SInitCDSData20(ADOQueryTemp,ClientDataSet2);
  with ClientDataSet2 do
  begin
    First;
    while not eof do
    begin
      Edit;
      FieldByName('BFID').Value:='';
      FieldByName('BCID').Value:='';
      FieldByName('BGID').Value:='';
      Post;
      next;
    end;
  end;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYOrder_BG_CKName_Qty where BCID=');
    sql.Add('(select BCID from JYOrder_BG_CK CK where CK.BCOrderNo='''+Trim(BCOrderNo.Text)+''' and Valid=''Y'' )');
    Open;
  end;
  if ADOQueryTemp.IsEmpty then
  begin
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from JYOrder_BG_CKName_Qty where BCID=');
      sql.Add('(select Top 1 BCID from JYOrder_BG_CK CK where CK.BCOrderNo='''+Trim(BCOrderNo.Text)+''' order by BCID desc )');
      Open;
    end;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSet6);
  SInitCDSData20(ADOQueryTemp,ClientDataSet6);
  with ClientDataSet6 do
  begin
    First;
    while not eof do
    begin
      Edit;
      FieldByName('NQID').Value:='';
      FieldByName('BCID').Value:='';
      FieldByName('BGID').Value:='';
      Post;
      next;
    end;
  end;
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('Update JYOrder_BG_CK Set Valid=''N'' where BCID=');
    sql.Add('(select BCID from JYOrder_BG_CK CK where CK.BCOrderNo='''+Trim(BCOrderNo.Text)+''' and Valid=''Y'' )');
    ExecSQL;
  end;
end;

end.