unit U_ContractCGJGSPList;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
  cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
  cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses,
  cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter,
  RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport,
  cxTextEdit, cxPC, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdFTP,ShellAPI, cxCheckBox,jpeg,IniFiles;

type
  TfrmContractCGJGSPList = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBFind: TToolButton;
    TBPrint: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    Label1: TLabel;
    Label2: TLabel;
    cxGridPopupMenu1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    DataSource1: TDataSource;
    Label3: TLabel;
    ConNo: TEdit;
    Label5: TLabel;
    C_CodeName: TEdit;
    Order_Main: TClientDataSet;
    Label4: TLabel;
    FactoryNoName: TEdit;
    RM1: TRMGridReport;
    RMDBMain: TRMDBDataSet;
    RMXLSExport1: TRMXLSExport;
    CDS_PRT: TClientDataSet;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1OrderNo: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    v1DeliveryDate: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1FactoryNo1Name: TcxGridDBColumn;
    v1PRTSpec: TcxGridDBColumn;
    v1Qty1: TcxGridDBColumn;
    v1PRTOrderQty: TcxGridDBColumn;
    v1OrderUnit: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1PRTQty: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    v1Column3: TcxGridDBColumn;
    ConType: TComboBox;
    Label14: TLabel;
    ToolButton2: TToolButton;
    v1Column6: TcxGridDBColumn;
    v1Column7: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    ToolButton3: TToolButton;
    ODPat: TOpenDialog;
    IdFTP1: TIdFTP;
    SaveDialog1: TSaveDialog;
    v1Column14: TcxGridDBColumn;
    v1Column15: TcxGridDBColumn;
    TBChkNO: TToolButton;
    TBChkOk: TToolButton;
    v1Column16: TcxGridDBColumn;
    v1Column17: TcxGridDBColumn;
    ToolButton8: TToolButton;
    cxTabControl1: TcxTabControl;
    v1Column10: TcxGridDBColumn;
    v1Column11: TcxGridDBColumn;
    ComboBox1: TComboBox;
    Panel2: TPanel;
    Label6: TLabel;
    PChkNote: TEdit;
    ToolButton1: TToolButton;
    v1Column12: TcxGridDBColumn;
    v1Column13: TcxGridDBColumn;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure TBFindClick(Sender: TObject);
    procedure TBPrintClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ConNoChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure conPress(Sender: TObject; var Key: Char);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure TBChkOkClick(Sender: TObject);
    procedure TBChkNOClick(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure ToolButton8Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
  private
    FInt,PFInt:Integer;
    canshu1:string;
    lstPat: TStringList;
		AJpeg: TJPEGImage;
    procedure InitGrid();
    procedure InitForm();
    function  DelData():Boolean;
    procedure ReadINIFile10();
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmContractCGJGSPList: TfrmContractCGJGSPList;

implementation
uses
  U_DataLink,U_RTFun,U_ClothContractInPutSXMX,U_ZDYHelp
  {U_ClothContractInPutSX,
  U_ProductOrderList,U_ZDYHelp,
  ,U_ClothContractInPutHZ,U_ClothContractInPutPB}, U_ModuleNote;

{$R *.dfm}

procedure TfrmContractCGJGSPList.FormDestroy(Sender: TObject);
begin
  frmContractCGJGSPList:=nil;
end;

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

procedure TfrmContractCGJGSPList.TBCloseClick(Sender: TObject);
var
  FPath:String;
begin
  Close;
  WriteCxGrid('�ɹ��ӹ���ͬPChk',Tv1,'������ͬ����');
end;

procedure TfrmContractCGJGSPList.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      sql.Clear;
      sql.Add('select A.*,B.*,Money=B.C_Qty*B.Price from Contract_Main A inner join Contract_Sub B on A.MainId=B.MainId ');
      sql.Add(' where isnull(SSPerson,'''')<>'''' and isnull(Chker,'''')<>'''' ');
      if cxTabControl1.TabIndex=0 then
      begin
        sql.Add(' and isnull(PChker,'''')='''' ');
      end else
      begin
        sql.Add(' and A.FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''');
        sql.Add(' and A.FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+'''');
        if cxTabControl1.TabIndex<>3 then
        begin
          sql.Add(' and isnull(PChker,'''')<>'''' ');
          if cxTabControl1.TabIndex=1 then
          begin
            sql.Add(' and isnull(PChkStatus,'''')=''����ͨ��'' ');
          end else
          if cxTabControl1.TabIndex=2 then
          begin
            sql.Add(' and isnull(PChkStatus,'''')=''������ͨ��'' ');
          end;
        end;

      end;

      Open;
    end;
    SCreateCDS20(ADOQueryMain,Order_Main);
    SInitCDSData20(ADOQueryMain,Order_Main);
  finally
    ADOQueryMain.EnableControls;
  end;

end;

procedure TfrmContractCGJGSPList.InitForm();
var
  FSJ:string;
begin
  
  ReadCxGrid('�ɹ��ӹ���ͬPChk',Tv1,'������ͬ����');
  EndDate.DateTime:=SGetServerDate10(ADOQueryTemp);
  BegDate.DateTime:=EndDate.DateTime-30;
  FSJ:='select ZdyName Name,ZdyName Code from KH_Zdy where TYpe=''JGGX'' and ZdyName not like ''%�ؼ�%'' ';
  SInitComBoxBySql(ADOQueryTemp,ConType,False,Fsj);
end;

procedure TfrmContractCGJGSPList.TBFindClick(Sender: TObject);
begin
  if ADOQueryMain.Active=False then Exit;
  SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
  SCreateCDS20(ADOQueryMain,Order_Main);
  SInitCDSData20(ADOQueryMain,Order_Main);
end;

function TfrmContractCGJGSPList.DelData():Boolean;
begin
  try
    Result:=false;
    ADOQueryCmd.Connection.BeginTrans;
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+'''');
      ExecSQL;
    end;
    with ADOQueryTemp do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from Contract_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
      Open;
    end;
    if ADOQueryTemp.IsEmpty then
    begin
      with ADOQueryCmd do
      begin
        Close;
        sql.Clear;
        sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
        ExecSQL;
      end;
    end;
    if Trim(Order_Main.fieldbyname('SubId').AsString)='' then
    begin
      with ADOQueryCmd do
      begin
        Close;
        sql.Clear;
        sql.Add('delete Contract_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
        ExecSQL;
      end;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    Result:=True;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    Result:=False;
    Application.MessageBox('����ɾ���쳣��','��ʾ',0);
  end;
end;

procedure TfrmContractCGJGSPList.TBPrintClick(Sender: TObject);
var
   fPrintFile,FConNoM,RPTName:string;

begin
  if Order_Main.IsEmpty then Exit;
  if Trim(ComboBox1.Text)='' then
  begin
    Application.MessageBox('�������Ʋ���Ϊ��!','��ʾ',0);
    Exit;
  end;
  RPTName:='Report\'+Trim(ComboBox1.Text)+'.rmf';
 // fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\�ɹ��ӹ���ͬ.rmf' ;
  fPrintFile:= ExtractFilePath(Application.ExeName) +RPTName;
  with ADOQueryTemp do
  begin
    Filtered:=False;
    Close;
    sql.Clear;
    sql.Add('select A.*,B.*,Money=B.C_Qty*B.Price,C.*,D.KHName,D.ZKTelNo,D.ZKFax,D.ZKAddress  ');
    sql.Add(' ,C.ZdyName,C.ZdyStr1,C.ZdyStr2,C.ZdyStr3,C.ZdyStr4');
    sql.Add(' from Contract_Main A inner join Contract_Sub B on A.MainId=B.MainId');
    sql.Add(' left join KH_Zdy C on A.CompanyName=C.ZdyName and C.Type=''GSTT'' ');
    sql.Add(' left join ZH_KH_Info D on A.FactoryNo=D.ZKID');
    sql.Add(' where A.Mainid='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp,CDS_PRT);
  SInitCDSData20(ADOQueryTemp,CDS_PRT);
  if FileExists(fPrintFile) then
  begin
    //RMVariables['begindate']:=begindate.DateTime;
    //RMVariables['enddate']:=enddate.DateTime;
    //RMVariables['printtime']:=Now;
    //RMVariables['printer']:=Trim(gUserName);
    RM1.LoadFromFile(fPrintFile);
    RM1.ShowReport;
  end else
  begin
    Application.MessageBox(PChar('û����'+ExtractFilePath(Application.ExeName)+RPTName),'��ʾ',0);
  end;

end;

procedure TfrmContractCGJGSPList.TBRafreshClick(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmContractCGJGSPList.ConNoChange(Sender: TObject);
begin
  if ADOQueryMain.Active=False then Exit;
  SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
  SCreateCDS20(ADOQueryMain,Order_Main);
  SInitCDSData20(ADOQueryMain,Order_Main);
end;

procedure TfrmContractCGJGSPList.FormShow(Sender: TObject);
begin
  InitForm();
end;

procedure TfrmContractCGJGSPList.conPress(Sender: TObject;
  var Key: Char);
begin
  if Key=#13 then
  begin
    if Length(Trim(ConNo.Text))<3 then Exit;
    try
      ADOQueryMain.DisableControls;

      with ADOQueryMain do
      begin
        Filtered:=False;
        Close;
        sql.Clear;
        sql.Add('select A.*,B.*,Money=B.C_Qty*B.Price from Contract_Main A inner join Contract_Sub B on A.MainId=B.MainId ');
        sql.Add(' where A.ConNo like '''+'%'+Trim(ConNo.text)+'%'+'''');
        sql.Add(' and isnull(SSPerson,'''')<>'''' and isnull(Chker,'''')<>'''' ');
        if cxTabControl1.TabIndex=0 then
        begin
          sql.Add(' and isnull(PChker,'''')='''' ');
        end else
        begin
          if cxTabControl1.TabIndex<>3 then
          begin
            sql.Add(' and isnull(PChker,'''')<>'''' ');
            if cxTabControl1.TabIndex=1 then
            begin
              sql.Add(' and isnull(PChkStatus,'''')=''����ͨ��'' ');
            end else
            if cxTabControl1.TabIndex=2 then
            begin
              sql.Add(' and isnull(PChkStatus,'''')=''������ͨ��'' ');
            end;
          end;

        end;
        Open;
      end;
      SCreateCDS20(ADOQueryMain,Order_Main);
      SInitCDSData20(ADOQueryMain,Order_Main);
    finally
      ADOQueryMain.EnableControls;
    end;
  end;
end;

procedure TfrmContractCGJGSPList.ToolButton2Click(Sender: TObject);
begin
  try
    frmClothContractInPutSXMX:=TfrmClothContractInPutSXMX.Create(Application);
    with frmClothContractInPutSXMX do
    begin
      PState:=1;
      FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString);
      FConNo:=Trim(Self.Order_Main.fieldbyname('ConNo').AsString);
      TBSave.Visible:=False;
      ToolBar2.Visible:=False;
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmClothContractInPutSXMX.Free;
  end;
end;

procedure TfrmContractCGJGSPList.ToolButton3Click(Sender: TObject);
begin
  try
    frmModuleNote:=TfrmModuleNote.Create(Application);
    with frmModuleNote do
    begin
      flag:='�ɹ��ӹ���ͬ';
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmModuleNote.Free;
  end;
end;

procedure TfrmContractCGJGSPList.FormCreate(Sender: TObject);
begin
  canshu1:=Trim(DParameters1);
  cxTabControl1.TabIndex:=0;
end;

procedure TfrmContractCGJGSPList.ReadINIFile10();
var
  programIni:Tinifile;  //�������
  FileName:string;
begin
  FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI';
  programIni:=Tinifile.create(FileName);
  server:=programIni.ReadString('SERVER','��������ַ','127.0.0.1');
  programIni.Free;
end;

procedure TfrmContractCGJGSPList.TBChkOkClick(Sender: TObject);
begin
  if cxTabControl1.TabIndex<>0 then Exit;
  if Order_Main.IsEmpty then Exit;
  if Application.MessageBox('ȷ��Ҫִ�д˲�����','��ʾ',32+4)<>IDYES then Exit;
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    SQL.Add('Update Contract_Main Set PChkStatus=''����ͨ��'',PChker='''+Trim(DName)+'''');
    sql.Add(',PChkTIme=getdate() where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
    ExecSQL;
  end;
  Order_Main.Delete;
end;

procedure TfrmContractCGJGSPList.TBChkNOClick(Sender: TObject);
begin
  if cxTabControl1.TabIndex=0 then Exit;
  if cxTabControl1.TabIndex=3 then Exit;
  if Order_Main.IsEmpty then Exit;
  with ADOQueryTemp do
  if Application.MessageBox('ȷ��Ҫִ����������������','��ʾ',32+4)<>IDYES then Exit;
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    SQL.Add('Update Contract_Main Set PChkStatus=NUll,PChker=NUll,PChkNote=NULL ');
    sql.Add(',PChkTIme=Null where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
    ExecSQL;
  end;
  Order_Main.Delete;
end;

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

procedure TfrmContractCGJGSPList.ToolButton8Click(Sender: TObject);
begin
  if Order_Main.IsEmpty then Exit;
  TcxGridToExcel('�ɹ��ӹ���ͬ',cxGrid1);
end;

procedure TfrmContractCGJGSPList.ToolButton1Click(Sender: TObject);
begin
  if cxTabControl1.TabIndex>1 then Exit;
  if Order_Main.IsEmpty then Exit;
  if Trim(PChkNote.Text)='' then
  begin
    Application.MessageBox('������ע����Ϊ��!','��ʾ',0);
    Exit;
  end;
  if Application.MessageBox('ȷ��Ҫ������ͨ����','��ʾ',32+4)<>IDYES then Exit;
  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    SQL.Add(' Update Contract_Main Set PChkStatus=''������ͨ��'',PChker='''+Trim(DName)+'''');
    sql.Add(',PChkTime=getdate(),PChkNote='''+Trim(PChkNote.Text)+'''');
    sql.add(' where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+'''');
    ExecSQL;
  end;
  //ChkNote.Text:='';
  Order_Main.Delete;
end;

end.