unit U_TJCKCKOK;

interface

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

type
  TfrmTJCKCKOK = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    Label3: TLabel;
    OrderNo: TEdit;
    ClientDataSet6: TClientDataSet;
    DataSource6: TDataSource;
    ADOQuery1: TADOQuery;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    ScrollBox3: TScrollBox;
    ScrollBox4: TScrollBox;
    Panel3: TPanel;
    Label2: TLabel;
    Panel5: TPanel;
    Label9: TLabel;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    v2Column2: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridDBColumn5: TcxGridDBColumn;
    v2Column1: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    Panel4: TPanel;
    Label12: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label21: TLabel;
    Label25: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    ChuanY: TBtnEditC;
    DLYDate: TDateTimePicker;
    MPRTCodeName: TEdit;
    MPRTSpec: TEdit;
    MPRTCF: TEdit;
    MPRTMF: TEdit;
    MPRTKZ: TEdit;
    MPRTKZNote: TEdit;
    MPRTCode: TBtnEditA;
    LiDanPerson: TEdit;
    ScrollBox6: TScrollBox;
    Panel7: TPanel;
    Label13: TLabel;
    cxGrid5: TcxGrid;
    Tv5: TcxGridDBTableView;
    v5Column8: TcxGridDBColumn;
    cxGridDBColumn9: TcxGridDBColumn;
    v5Column2: TcxGridDBColumn;
    v5Column7: TcxGridDBColumn;
    cxGridDBColumn8: TcxGridDBColumn;
    v5Column3: TcxGridDBColumn;
    v5Column4: TcxGridDBColumn;
    v5Column5: TcxGridDBColumn;
    v5Column1: TcxGridDBColumn;
    v5Column9: TcxGridDBColumn;
    v5Column6: TcxGridDBColumn;
    cxGridLevel4: TcxGridLevel;
    Panel2: TPanel;
    Label4: TLabel;
    Edit1: TEdit;
    Label5: TLabel;
    Edit2: TEdit;
    cxGrid6: TcxGrid;
    Tv6: TcxGridDBTableView;
    v3Column1: TcxGridDBColumn;
    cxGridDBColumn2: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridDBColumn11: TcxGridDBColumn;
    cxGridDBColumn14: TcxGridDBColumn;
    cxGridDBColumn12: TcxGridDBColumn;
    Tv6Column1: TcxGridDBColumn;
    Tv6Column2: TcxGridDBColumn;
    Tv6Column3: TcxGridDBColumn;
    v3Column2: TcxGridDBColumn;
    v3Column3: TcxGridDBColumn;
    v3Column4: TcxGridDBColumn;
    v3Column5: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    v3Column6: TcxGridDBColumn;
    v3Column7: TcxGridDBColumn;
    v3Column8: TcxGridDBColumn;
    v3Column9: TcxGridDBColumn;
    v3Column10: TcxGridDBColumn;
    v3Column12: TcxGridDBColumn;
    v3Column13: TcxGridDBColumn;
    v3Column11: TcxGridDBColumn;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn10: TcxGridDBColumn;
    cxGridDBColumn13: 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;
    cxGridDBColumn29: TcxGridDBColumn;
    cxGridDBColumn30: TcxGridDBColumn;
    cxGridDBColumn31: TcxGridDBColumn;
    cxGridDBColumn32: TcxGridDBColumn;
    cxGridDBColumn33: TcxGridDBColumn;
    cxGridLevel3: TcxGridLevel;
    ToolBar2: TToolBar;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    Tv3Column1: TcxGridDBColumn;
    CDS_OrderNo: TClientDataSet;
    DS_OrderNo: TDataSource;
    cxGrid4: TcxGrid;
    TvOrdeNo: TcxGridDBTableView;
    cxGridDBColumn34: TcxGridDBColumn;
    cxGridDBColumn35: TcxGridDBColumn;
    cxGrid4Level1: TcxGridLevel;
    ClientDataSet2: TClientDataSet;
    DataSource2: TDataSource;
    ClientDataSet5: TClientDataSet;
    DataSource5: TDataSource;
    ClientDataSet1: TClientDataSet;
    DataSource1: TDataSource;
    ClientDataSet3: TClientDataSet;
    DataSource3: TDataSource;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1Column2: TcxGridDBColumn;
    v1Column7: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    v1SOrddefstr1: TcxGridDBColumn;
    v1PRTColor: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    v1PRTOrderQty: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1OrderUnit: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBRafreshClick(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure v6Column2PropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure v6Column14PropertiesButtonClick(Sender: TObject;
      AButtonIndex: Integer);
    procedure OrderNoKeyPress(Sender: TObject; var Key: Char);
    procedure Edit2Change(Sender: TObject);
    procedure TvOrdeNoDblClick(Sender: TObject);
    procedure v5Column8PropertiesEditValueChanged(Sender: TObject);
    procedure v2Column2PropertiesEditValueChanged(Sender: TObject);
    procedure v1Column2PropertiesEditValueChanged(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
  private
    { Private declarations }
    FMainId,SParameters1:String;
    procedure InitGrid();
    procedure InitGridCK();
  public
    { Public declarations }
  end;

var
  frmTJCKCKOK: TfrmTJCKCKOK;

implementation
uses
  U_DataLink,U_RTFun, U_GYSList;
{$R *.dfm}

procedure TfrmTJCKCKOK.FormDestroy(Sender: TObject);
begin
  frmTJCKCKOK:=nil;
end;

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

procedure TfrmTJCKCKOK.TBRafreshClick(Sender: TObject);
begin
  InitGrid();
end;
procedure TfrmTJCKCKOK.InitGrid();
begin
  with ADOQuery1 do
  begin
    Close;
    sql.Clear;
    sql.Add('select JM.OrderNo, A.*,B.PSName OrdPSName,C.ConNo,C.FactoryNoName,D.Price, ');
    sql.Add(' JS.PRTHX,JS.PRTColor,JS.PRTColorNo,');
    sql.Add(' JSKCPS=(select sum(PS*QtyFlag) from JYOrder_Main_MD JMM where JMM.RKMDID=A.MDID ),');
    sql.Add(' JSKCQty=(select sum(Qty*QtyFlag) from JYOrder_Main_MD JMM where JMM.RKMDID=A.MDID )');
    sql.Add(' from JYOrder_Main_MD  A');
    sql.Add(' inner join JYOrder_Main JM on A.OrdMainId=JM.MainId');
    sql.Add(' left join JYOrder_Sub JS on A.OrdSubId=JS.SubId');
    sql.Add(' inner join JYOrder_Process B on A.PSID=B.PSID');
    sql.Add(' inner join Contract_Main C on A.ConMainid=C.MainID');
    sql.Add(' inner join Contract_Sub D on A.ConSubid=D.SubID');
    SQL.Add(' where isnull(A.CKName,'''')=''调节仓库'' ');
    sql.Add(' and isnull(A.CRFlag,'''')=''入库'' ');
    sql.Add(' and A.KCQty>0');
    Open;
  end;
  SCreateCDS20(ADOQuery1,ClientDataSet6);
  SInitCDSData20(ADOQuery1,ClientDataSet6);
end;

procedure TfrmTJCKCKOK.TBCloseClick(Sender: TObject);
begin
  close;
end;

procedure TfrmTJCKCKOK.cxTabControl1Change(Sender: TObject);
begin
  InitGrid();
  
end;

procedure TfrmTJCKCKOK.v6Column2PropertiesButtonClick(Sender: TObject;
  AButtonIndex: Integer);
begin
  try
    frmGYSList:=TfrmGYSList.Create(Application);
    with frmGYSList do
    begin
      if ShowModal=1 then
      begin
        with Self.ClientDataSet6 do
        begin
          Edit;
          FieldByName('DutyFactoryNo').Value:=Trim(frmGYSList.Order_Main.fieldbyname('ZKID').AsString) ;
          FieldByName('DutyFactoryName').Value:=Trim(frmGYSList.Order_Main.fieldbyname('KHNameJC').AsString);
          //Post;
        end;
      end;
    end;
  finally
    frmGYSList.Free;
  end;
end;

procedure TfrmTJCKCKOK.v6Column14PropertiesButtonClick(Sender: TObject;
  AButtonIndex: Integer);
begin
  try
    frmGYSList:=TfrmGYSList.Create(Application);
    with frmGYSList do
    begin
      if ShowModal=1 then
      begin
        with Self.ClientDataSet6 do
        begin
          Edit;
          FieldByName('ToFactoryNo').Value:=Trim(frmGYSList.Order_Main.fieldbyname('ZKID').AsString) ;
          FieldByName('ToFactoryName').Value:=Trim(frmGYSList.Order_Main.fieldbyname('KHNameJC').AsString);
          //Post;
        end;
      end;
    end;
  finally
    frmGYSList.Free;
  end;
end;

procedure TfrmTJCKCKOK.OrderNoKeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#13 then
  begin
    if Trim(OrderNo.Text)='' then Exit;
    with ADOQuery1 do
    begin
      Close;
      sql.Clear;
      sql.Add('select JM.OrderNo, A.*,B.PSName OrdPSName,C.ConNo,C.FactoryNoName,D.Price, ');
      sql.Add(' JS.PRTHX,JS.PRTColor,JS.PRTColorNo,');
      sql.Add(' JSKCPS=(select sum(PS*QtyFlag) from JYOrder_Main_MD JMM where JMM.RKMDID=A.MDID ),');
      sql.Add(' JSKCQty=(select sum(Qty*QtyFlag) from JYOrder_Main_MD JMM where JMM.RKMDID=A.MDID )');
      sql.Add(' from JYOrder_Main_MD  A');
      sql.Add(' inner join JYOrder_Main JM on A.OrdMainId=JM.MainId');
      sql.Add(' left join JYOrder_Sub JS on A.OrdSubId=JS.SubId');
      sql.Add(' inner join JYOrder_Process B on A.PSID=B.PSID');
      sql.Add(' inner join Contract_Main C on A.ConMainid=C.MainID');
      sql.Add(' inner join Contract_Sub D on A.ConSubid=D.SubID');
      sql.Add(' where JM.OrderNo like '''+'%'+Trim(OrderNo.Text)+'%'+'''');
      sql.Add(' and isnull(A.CRFlag,'''')=''入库'' ');
      sql.Add(' and A.KCQty>0');
      Open;
    end;
    SCreateCDS20(ADOQuery1,ClientDataSet6);
    SInitCDSData20(ADOQuery1,ClientDataSet6);
  end;

end;

procedure TfrmTJCKCKOK.Edit2Change(Sender: TObject);
var
  mvalue:String;
begin
  mvalue:=Trim(Edit2.Text);
  if Length(Trim(mvalue))<2 then
  begin
    cxGrid4.Visible:=False;
    Exit;
  end;
  mvalue:='%'+Trim(mvalue)+'%';
  with ADOQuery1 do
  begin
    Close;
    sql.Clear;
    sql.Add('select OrderNo,MPRTCodeName,A.MainId from JYOrder_Main A');
    sql.Add(' where A.orderno like :orderno ');
    //sql.Add(' and A.MainId in(select MainId from JYOrder_Sub B where B.Mainid=A.MainId and B.subId in(select OrdSubId from Contract_Cloth_LL))');
    Parameters.ParamByName('orderno').Value:=mvalue;
    Open;
  end;
  SCreateCDS20(ADOQuery1,CDS_OrderNo);
  SInitCDSData20(ADOQuery1,CDS_OrderNo);
  if CDS_OrderNo.IsEmpty then cxGrid4.Visible:=False else cxGrid4.Visible:=True;
end;

procedure TfrmTJCKCKOK.TvOrdeNoDblClick(Sender: TObject);
begin
  Edit2.Text:=CDS_OrderNo.fieldbyname('OrderNo').AsString;
  cxGrid4.Visible:=False;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYOrder_Main where Orderno='''+Trim(Edit2.Text)+'''');
    Open;
  end;
  SCSHData(ADOQueryTemp,Panel4,2);
  FMainId:=Trim(ADOQueryTemp.fieldbyname('MainId').AsString);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYOrder_Sub where MainId='''+Trim(FMainId)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSet1);
  SInitCDSData20(ADOQueryTemp,ClientDataSet1);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from Contract_Main A inner join Contract_Sub B on A.MainId=B.MainId ');
    sql.Add(' where A.ConNo like '''+'%'+Trim(Edit2.Text)+'%'+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSet5);
  SInitCDSData20(ADOQueryTemp,ClientDataSet5);
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from JYOrder_Process where MainId='''+Trim(FMainId)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSet2);
  SInitCDSData20(ADOQueryTemp,ClientDataSet2);
  //InitGrid();
end;

procedure TfrmTJCKCKOK.v5Column8PropertiesEditValueChanged(
  Sender: TObject);
var
  PSID:String;
  Mvalue:Boolean;
begin
  Mvalue:=TcxCheckBox(Sender).EditingValue;
  PSID:=Trim(ClientDataSet5.fieldbyname('SubID').AsString);
  with ClientDataSet5 do
  begin
    while  ClientDataSet5.Locate('SSel',True,[])=True do
    begin
      Edit;
      FieldByName('SSel').Value:=False;
      Post;
    end;
    ClientDataSet5.Locate('SubID',PSID,[]);
    Edit;
    FieldByName('SSel').Value:=Mvalue;
    Post;
  end;
  InitGridCK();
end;

procedure TfrmTJCKCKOK.v2Column2PropertiesEditValueChanged(
  Sender: TObject);
var
  PSID:String;
  Mvalue:Boolean;
begin
  Mvalue:=TcxCheckBox(Sender).EditingValue;
  PSID:=Trim(ClientDataSet2.fieldbyname('PSID').AsString);
  with ClientDataSet2 do
  begin
    while  ClientDataSet2.Locate('SSel',True,[])=True do
    begin
      Edit;
      FieldByName('SSel').Value:=False;
      Post;
    end;
    ClientDataSet2.Locate('PSID',PSID,[]);
    Edit;
    FieldByName('SSel').Value:=Mvalue;
    Post;
  end;
  InitGridCK();
end;

procedure TfrmTJCKCKOK.v1Column2PropertiesEditValueChanged(
  Sender: TObject);
var
  PSID:String;
  Mvalue:Boolean;
begin
  Mvalue:=TcxCheckBox(Sender).EditingValue;
  PSID:=Trim(ClientDataSet1.fieldbyname('SubID').AsString);
  with ClientDataSet1 do
  begin
    while  ClientDataSet1.Locate('SSel',True,[])=True do
    begin
      Edit;
      FieldByName('SSel').Value:=False;
      Post;
    end;
    ClientDataSet1.Locate('SubID',PSID,[]);
    Edit;
    FieldByName('SSel').Value:=Mvalue;
    Post;
  end;
  InitGridCK();
end;
procedure TfrmTJCKCKOK.InitGridCK();
var
  FPSID,FOrdSubId,FConSubId:String;
begin
  if ClientDataSet2.Locate('SSel',True,[])=True then
  begin
    FPSID:=Trim(ClientDataSet2.fieldbyname('PSID').AsString);
  end else
  begin
    FPSID:='';
  end;
  if ClientDataSet5.Locate('SSel',True,[])=True then
  begin
    FConSubId:=Trim(ClientDataSet5.fieldbyname('SubId').AsString);
  end else
  begin
    FConSubId:='';
  end;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select A.*,B.PSName OrdPSName,C.ConNo,C.FactoryNoName,D.Price ');
    sql.Add(' from JYOrder_Main_MD  A');
    sql.Add(' inner join JYOrder_Process B on A.PSID=B.PSID');
    sql.Add(' inner join Contract_Main C on A.ConMainid=C.MainID');
    sql.Add(' inner join Contract_Sub D on A.ConSubid=D.SubID');
    sql.Add(' where A.ORDMainId='''+Trim(FMainId)+'''');
    if Trim(FPSID)<>'' then
    begin
      sql.Add(' and A.PSID='''+Trim(FPSID)+'''');
    end;
    if Trim(FConSubId)<>'' then
    begin
      sql.Add(' and A.ConSubID='''+Trim(FConSubId)+'''');
    end;
    if ClientDataSet1.Locate('SSel',True,[])=True then
    begin
      FOrdSubId:=Trim(ClientDataSet1.fieldbyname('SubId').AsString);
    end else
    begin
      FOrdSubId:='';
    end;
    if Trim(SParameters1)<>'高权限' then
    begin
      SQL.Add(' and A.Filler='''+Trim(DName)+'''');
    end;
   // sql.Add(' and A.MDType=''外围'' ');
    SQL.Add(' and isnull(CKName,'''')=''调节仓库'' ');
    sql.Add(' and isnull(CRFlag,'''')=''出库'' ');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,ClientDataSet3);
  SInitCDSData20(ADOQueryTemp,ClientDataSet3);
end;

procedure TfrmTJCKCKOK.ToolButton3Click(Sender: TObject);
begin
  if Trim(FMainId)='' then
  begin
    Application.MessageBox('没有选择订单!','提示',0);
    Exit;
  end;
  if ClientDataSet5.Locate('SSel',True,[])=False then
  begin
    Application.MessageBox('没有选择加工合同!','提示',0);
    Exit;
  end;
  if ClientDataSet2.Locate('SSel',True,[])=False then
  begin
    Application.MessageBox('没有选择生产流程!','提示',0);
    Exit;
  end;

  with ClientDataSet6 do
  begin
    Append;
    ClientDataSet5.Locate('SSel',True,[]);
    ClientDataSet2.Locate('SSel',True,[]);
    FieldByName('ConNo').Value:=ClientDataSet5.fieldbyname('ConNo').Value;
    FieldByName('FactoryNo').Value:=ClientDataSet5.fieldbyname('FactoryNoName').Value;
    FieldByName('FactoryName').Value:=ClientDataSet5.fieldbyname('FactoryNoName').Value;
    FieldByName('FactoryNoName').Value:=ClientDataSet5.fieldbyname('FactoryNoName').Value;
    FieldByName('Price').Value:=ClientDataSet5.fieldbyname('Price').Value;
    FieldByName('PSName').Value:=ClientDataSet2.fieldbyname('PSName').Value;
    FieldByName('QtyUnit').Value:=ClientDataSet5.fieldbyname('C_Unit').Value;
    FieldByName('Filler').Value:=Trim(DName);
    FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp);
    Post;
  end;
end;

end.
