unit U_CPManage;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,U_SLT,
  Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
  cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
  cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
  cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
  cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
  RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, jpeg, cxLookAndFeels,
  cxLookAndFeelPainters, dxSkinsCore, 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, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic,
  dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust,
  dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters,
  dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue,
  dxSkinscxPCPainter, cxNavigator, cxTLdxBarBuiltInMenu;

type
  TfrmCPManage = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBAdd: TToolButton;
    TBDel: TToolButton;
    TBClose: TToolButton;
    DataSource1: TDataSource;
    ADOQueryTree20: TADOQuery;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    cxGridPopupMenu1: TcxGridPopupMenu;
    cxSplitter1: TcxSplitter;
    Panel1: TPanel;
    Label2: TLabel;
    CYID: TEdit;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    Label1: TLabel;
    CYName: TEdit;
    Label4: TLabel;
    CYEName: TEdit;
    Label5: TLabel;
    CYSpec: TEdit;
    DataSource2: TDataSource;
    ADOQueryMain: TADOQuery;
    CDS_Main: TClientDataSet;
    ToolButton1: TToolButton;
    ToolButton4: TToolButton;
    RM1: TRMGridReport;
    RMDB_Main: TRMDBDataSet;
    ODPat: TOpenDialog;
    IdFTP1: TIdFTP;
    SaveDialog1: TSaveDialog;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    Label3: TLabel;
    CYNO: TEdit;
    ToolButton7: TToolButton;
    Panel2: TPanel;
    DSCYNO: TDataSource;
    CDS_CYNO: TClientDataSet;
    Edit1: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    CYKZ: TEdit;
    Label8: TLabel;
    Label9: TLabel;
    CYCF: TEdit;
    CYECF: TEdit;
    Label10: TLabel;
    CYMF: TEdit;
    ADOQueryTree: TClientDataSet;
    Panel5: TPanel;
    cxDBTreeList1: TcxDBTreeList;
    cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
    Label11: TLabel;
    Label12: TLabel;
    defstr1: TEdit;
    Label13: TLabel;
    DefStr2: TEdit;
    Label14: TLabel;
    defnote2: TEdit;
    Label15: TLabel;
    defnote3: TEdit;
    Label16: TLabel;
    Panel3: TPanel;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1Column19: TcxGridDBColumn;
    v1Column12: TcxGridDBColumn;
    v1Column15: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    v1Column5: TcxGridDBColumn;
    v1Column3: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    v1Column8: TcxGridDBColumn;
    v1Column7: TcxGridDBColumn;
    v1Column16: TcxGridDBColumn;
    v1Column9: TcxGridDBColumn;
    v1Column42: TcxGridDBColumn;
    v1Column11: TcxGridDBColumn;
    v1Column14: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    v1Column13: TcxGridDBColumn;
    v1Column17: TcxGridDBColumn;
    v1Column18: TcxGridDBColumn;
    v1Column20: TcxGridDBColumn;
    v1Column21: TcxGridDBColumn;
    v1Column22: TcxGridDBColumn;
    v1Column23: TcxGridDBColumn;
    v1Column24: TcxGridDBColumn;
    v1Column25: TcxGridDBColumn;
    v1Column26: TcxGridDBColumn;
    v1Column27: TcxGridDBColumn;
    v1Column28: TcxGridDBColumn;
    v1Column29: TcxGridDBColumn;
    v1Column30: TcxGridDBColumn;
    v1Column31: TcxGridDBColumn;
    Tv1Column1: TcxGridDBColumn;
    Tv1Column2: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    GroupBox1: TGroupBox;
    ScrollBox1: TScrollBox;
    adoqueryPicture: TADOQuery;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure cxDBTreeList1DblClick(Sender: TObject);
    procedure TBAddClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure CYIDKeyPress(Sender: TObject; var Key: Char);
    procedure CYNoChange(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure Tv1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure ToolButton7Click(Sender: TObject);
    procedure CYSpecChange(Sender: TObject);
    procedure v1Column19PropertiesChange(Sender: TObject);
    procedure CYMFChange(Sender: TObject);
    procedure CYNameChange(Sender: TObject);
    procedure CYNOKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    CPID: string;
    PState: Integer;
    FCPID, FTopID: string;
    procedure InitTree();
    procedure InitGrid();
    procedure ReadINIFile();
    procedure InitImage();
    procedure TJGS();
  public
    { Public declarations }
  end;

var
  frmCPManage: TfrmCPManage;
   Mach: array of TfrmSlt;

implementation

uses
  U_DataLink, U_Fun, U_CPAdd, U_FileUp, U_YPCR;

{$R *.dfm}

procedure TfrmCPManage.InitTree();
var
  i: Integer;
begin
  with ADOQueryTree20 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from CP_Type order by CPlevel,CPOrder,CPName');
    Open;
  end;
  SCreateCDS20(ADOQueryTree20, ADOQueryTree);
  SInitCDSData20(ADOQueryTree20, ADOQueryTree);
  cxDBTreeList1.Items[0].Expand(false);
  //cxDBTreeList1.Items[1].Expand(False);
end;

procedure TfrmCPManage.InitGrid();
begin
  Panel2.Visible := True;
  Panel2.Refresh;
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType');
      Parameters.ParamByName('Code').Value := '';
      Parameters.ParamByName('PState').Value := 0;
      Parameters.ParamByName('CYType').Value := Trim(ADOQueryTree.fieldbyname('CPID').AsString);
      Open;
    end;
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
  finally
    ADOQueryMain.EnableControls;
  end;
  Panel2.Visible := False;
end;

procedure TfrmCPManage.TJGS();
var
  i, j: Integer;
begin
  i := 0;
  j := 0;
  CDS_Main.DisableControls;
  with CDS_Main do
  begin
    first;
    while not Eof do
    begin
      if FieldByName('CYPriceKg').Value = 0 then
      begin
        i := i + 1;
      end
      else
      begin
        j := j + 1;
      end;
      Next;
    end;
  end;
  CDS_Main.EnableControls;
  Label11.Caption := '������Ʒ����:' + Trim(IntToStr(j));
  Label12.Caption := 'δ������Ʒ����:' + Trim(IntToStr(i));
end;

procedure TfrmCPManage.FormDestroy(Sender: TObject);
begin
  frmCPManage := nil;
end;

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

procedure TfrmCPManage.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('��Ʒ�б�YT', Tv1, '��Ʒ����');
  if DirectoryExists(ExtractFileDir('D:\Right1209')) then
    winexec('cmd /c rd /s /q D:\Right1209', sw_hide);
  Close;
end;

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

procedure TfrmCPManage.FormShow(Sender: TObject);
begin
  InitTree();
  ReadCxGrid('��Ʒ�б�YT', Tv1, '��Ʒ����');
  if DParameters1 = '1' then
  begin
    TBAdd.Visible := False;
    TBDel.Visible := False;
    ToolButton3.Visible := False;
    ToolButton5.Visible := False;
  end;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select CYID='''' ');
    Open;
  end;
  SCreateCDS20(ADOQueryTemp, CDS_CYNO);
  SInitCDSData20(ADOQueryTemp, CDS_CYNO);
  with ADOQueryMain do
  begin
    Filtered := False;
    Close;
    SQL.Clear;
    SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType');
    Parameters.ParamByName('Code').Value := '';
    Parameters.ParamByName('PState').Value := 0;
    Parameters.ParamByName('CYType').Value := 'XXXXXXX';
    Open;
  end;
  SCreateCDS20(ADOQueryMain, CDS_Main);
  SInitCDSData20(ADOQueryMain, CDS_Main);
  CDS_CYNO.Delete;
end;

procedure TfrmCPManage.cxDBTreeList1DblClick(Sender: TObject);
begin
  InitGrid();
  TJGS();
end;

procedure TfrmCPManage.TBAddClick(Sender: TObject);
var
  i: Integer;
  FieldName: string;
begin
  try
    frmCPAdd := TfrmCPAdd.Create(Application);
    with frmCPAdd do
    begin
      CopyInt := 0;
      FCYID := '';
      FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
      FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString);
      if ShowModal = 1 then
      begin
        Self.CDS_Main.Append;
        for i := 0 to frmCPAdd.Tv1.ColumnCount - 1 do
        begin
          FieldName := frmCPAdd.Tv1.Columns[i].DataBinding.FilterFieldName;
          if Trim(FieldName) <> '' then
          begin
            Self.CDS_Main.FieldByName(FieldName).Value := frmCPAdd.CDS_Sub.FieldByName(FieldName).Value;
          end;
        end;
        CDS_Main.FieldByName('CPName').Value := Trim(ADOQueryTree.fieldbyname('CPName').AsString);
        CDS_Main.FieldByName('CYID').Value := CDS_Sub.fieldbyname('CYID').Value;
        CDS_Main.FieldByName('CYType').Value := CDS_Sub.fieldbyname('CYType').Value;
        Self.CDS_Main.Post;
      end;
    end;
  finally
    frmCPAdd.Free;
  end;
end;

procedure TfrmCPManage.TBRafreshClick(Sender: TObject);
begin
  InitTree();
  InitGrid();
  TJGS();
end;

procedure TfrmCPManage.ToolButton3Click(Sender: TObject);
var
  i: Integer;
  FieldName: string;
begin
  try
    frmCPAdd := TfrmCPAdd.Create(Application);
    with frmCPAdd do
    begin
      CopyInt := 0;
      FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString);
      FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
      FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString);
      if ShowModal = 1 then
      begin
        Self.CDS_Main.Edit;
        for i := 0 to frmCPAdd.Tv1.ColumnCount - 1 do
        begin
          FieldName := frmCPAdd.Tv1.Columns[i].DataBinding.FilterFieldName;
          if Trim(FieldName) <> '' then
          begin
            Self.CDS_Main.FieldByName(FieldName).Value := frmCPAdd.CDS_Sub.FieldByName(FieldName).Value;
          end;
        end;
        CDS_Main.FieldByName('CPName').Value := Trim(ADOQueryTree.fieldbyname('CPName').AsString);
        CDS_Main.FieldByName('CYID').Value := CDS_Sub.fieldbyname('CYID').Value;
        CDS_Main.FieldByName('CYType').Value := CDS_Sub.fieldbyname('CYType').Value;
        Self.CDS_Main.Post;
      end;
    end;
  finally
    frmCPAdd.Free;
  end;
end;

procedure TfrmCPManage.ToolButton2Click(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
    TJGS();
  end;

end;

procedure TfrmCPManage.CYIDKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    if Trim(CYID.Text) = '' then
      Exit;
    with ADOQueryMain do
    begin
      Close;
      Filtered := False;
      sql.Clear;
      sql.Add('exec P_Select_CP_YDang :Code,1,'''' ');
      Parameters.ParamByName('Code').Value := Trim(CYID.Text);
      Open;
    end;
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
    CYID.Text := '';
    ADOQueryTree.Locate('CPID', CPID, []);
  end;
end;

procedure TfrmCPManage.CYNoChange(Sender: TObject);
begin
  //if Length(Trim(TEdit(Sender).Text))<4 then Exit;
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
    TJGS();
  end;

end;

procedure TfrmCPManage.ToolButton1Click(Sender: TObject);
begin
  if CDS_Main.IsEmpty then
    Exit;
  TcxGridToExcel('��Ʒ����', cxGrid1);
end;

procedure TfrmCPManage.ToolButton4Click(Sender: TObject);
var
  fPrintFile, FFCYID: string;
  DPS, i, j: Integer;
  Txt, fImagePath: string;
  Moudle: THandle;
  Makebar: TMakebar;
  Mixtext: TMixtext;
begin
  CYID.SetFocus;
  if CDS_Main.IsEmpty then
    Exit;
  //if CDS_CYNO.IsEmpty then Exit;
  if Trim(Edit1.Text) <> '' then
  begin
    if TryStrToInt(Edit1.Text, i) = False then
    begin
      Application.MessageBox('����¼�����!', '��ʾ', 0);
      exit;
    end;
  end;

  fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\��Ʒ��ǩ.rmf';
  CDS_Main.DisableControls;
  DPS := 0;
  FFCYID := '';
  i := 1;
  if Trim(Edit1.Text) = '' then
  begin
    j := 1;
  end
  else
  begin
    j := StrToInt(Edit1.Text);
  end;
  with CDS_Main do
  begin
    First;
    while not Eof do
    begin
      if CDS_Main.FieldByName('SSel').AsBoolean = True then
      begin

        try
          Moudle := LoadLibrary('MakeQRBarcode.dll');
          @Makebar := GetProcAddress(Moudle, 'Make');
          @Mixtext := GetProcAddress(Moudle, 'MixText');
          Txt := Trim(CDS_Main.fieldbyname('CYID').AsString);
          fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp';
          if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then
            CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil);
          if FileExists(fImagePath) then
            DeleteFile(fImagePath);
          Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3);
        except
          application.MessageBox('����������ʧ�ܣ�', '��ʾ��Ϣ', MB_ICONERROR);
          exit;
        end;
        RMVariables['QRBARCODE'] := fImagePath;

        for i := 1 to j do
        begin
          if FileExists(fPrintFile) then
          begin
            RM1.LoadFromFile(fPrintFile);
            RM1.PrintReport;
          //  RM1.ShowReport;
          end
          else
          begin
            Application.MessageBox(PChar('û����' + ExtractFilePath(Application.ExeName) + 'Report\��Ʒ��ǩ.rmf'), '��ʾ', 0);
            Exit;
          end;
        end;

        if DPS = 0 then
        begin
          FFCYID := Trim(CDS_Main.fieldbyname('CYID').AsString);
        end;
      end;
      //CDS_Main.Locate('CYID',Trim(CDS_CYNO.fieldbyname('CYID').AsString),[]);

      Next;
    end;
  end;
  CDS_Main.EnableControls;
  CDS_Main.Locate('CYID', FFCYID, []);
  Edit1.Text := '1';

end;

procedure TfrmCPManage.ToolButton5Click(Sender: TObject);
begin
  try
    frmFileUp := TfrmFileUp.Create(Application);
    with frmFileUp do
    begin
      Code.Text := Trim(Self.CDS_Main.fieldbyname('CYNO').AsString);
      CYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString);
      if ShowModal = 1 then
      begin
        Self.InitGrid();
        Self.CDS_Main.Locate('CYID', CYID, []);
      end;
    end;
  finally
    frmFileUp.Free;
  end;
end;

procedure TfrmCPManage.ToolButton6Click(Sender: TObject);
var
  fHandle: THandle;
  FInt: Integer;
  FFName, FPath: string;
begin
  {FPath:='C:\HTTP1209\';
  if  DirectoryExists(ExtractFileDir(FPath)) then
    winexec('cmd /c rd /s /q C:\HTTP1209',sw_hide);}
  with ADOQueryTemp do
  begin
    close;
    sql.Clear;
    sql.Add('select * from XD_File where CYNO=''' + Trim(CDS_Main.fieldbyname('CYNO').AsString) + '''');
    Open;
    if IsEmpty then
    begin
      Application.MessageBox('��ƷͼƬδ�ϴ���', '��ʾ', 0);
      Exit;
    end;
  end;
  try
    ReadINIFile();
    server := ReadINIFileStr('SYSTEMSET.INI', 'SERVER', '��������ַ', '127.0.0.1');
    if Length(server) < 6 then
    begin
      server := '127.0.0.1';
    end;
    IdFTP1.Host := server; //PicSvr;
    IdFTP1.Username := 'three';
    IdFTP1.Password := '641010';
    IdFTP1.Connect();
  except
    IdFTP1.Quit;
    Application.MessageBox('�޷����ӵ��ļ������������飡', '��ʾ', MB_ICONWARNING);
    Exit;
  end;
  FPath := 'D:\Right1209\';
  if not DirectoryExists(ExtractFileDir(FPath)) then
    CreateDir(ExtractFileDir(FPath));
  FFName := Trim(ADOQueryTemp.fieldbyname('FileName').AsString);
  FFName := FPath + FFName;
  if FileExists(FFName) then
  begin
    FInt := 1;
  end;
  if FInt <> 1 then
    IdFTP1.Get('YP\' + Trim(ADOQueryTemp.fieldbyname('FileName').AsString), FPath + Trim(ADOQueryTemp.fieldbyname('FileName').AsString));
  if IdFTP1.Connected then
    IdFTP1.Quit;
  ShellExecute(Handle, 'open', PChar(FPath + Trim(ADOQueryTemp.fieldbyname('FileName').AsString)), '', '', SW_SHOWNORMAL);

end;

procedure TfrmCPManage.ReadINIFile();
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 TfrmCPManage.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
  ToolButton6.Click;
end;

procedure TfrmCPManage.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
  if CDS_Main.IsEmpty then
    Exit;
  with ADOQueryTemp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from CP_YDang where CYID=''' + Trim(CDS_Main.fieldbyname('CYID').asstring) + '''');
    Open;
  end;
  CPID := Trim(ADOQueryTemp.fieldbyname('CYType').AsString);
  ADOQueryTree.Locate('CPID', CPID, []);
  InitImage();
end;

procedure TfrmCPManage.InitImage();
var
  i,j:integer;
  jpg:TJpegImage;
  myStream: TADOBlobStream;
begin

  j:=length(Mach);
  if j>0 then
  begin
    for i:=0 to j-1 do
    begin
      Mach[i].free;
    end;
  end;
  SetLength(Mach, 0);
  IF CDS_Main.IsEmpty then exit;                             
  try
    with adoqueryPicture do
    begin
      close;
      sql.Clear;
      sql.Add(' select A.TFID,A.WBID,A.FilesOther,B.FileName from TP_File A,XD_File B  where A.TFID =B.XFID and A.WBID='+quotedstr(trim(CDS_Main.fieldbyname('CYID').AsString)));
      open;
    end;
    j:=adoqueryPicture.RecordCount;
    if j<1 then exit;
    adoqueryPicture.DisableControls;
    adoqueryPicture.First;
    SetLength(Mach, j);
    jpg:=TJpegImage.Create();
    for i:=0 to j-1 do
    begin
      if triM(adoqueryPicture.fieldbyname('FilesOther').AsString)<>'' then
      begin
        myStream:=tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')),bmread);
        jpg.LoadFromStream(myStream);
        Mach[i] := TfrmSlt.Create(Self);
        Mach[i].Name:=trim(adoqueryPicture.fieldbyname('TFID').AsString);
        Mach[i].Parent := ScrollBox1;
        Mach[I].Left:=0+i*165;
        Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString,adoqueryPicture.fieldbyname('FileName').AsString,jpg);
      end;
      adoqueryPicture.Next;
    end;
     adoqueryPicture.EnableControls;
  finally
    jpg.free;
    application.ProcessMessages;
  end;
end;
//var
//  jpg: TJpegImage;
//  myStream: TADOBlobStream;
//begin
//  if CDS_Main.IsEmpty then
//    Exit;
//  if Trim(CDS_Main.fieldbyname('CYID').AsString) = '' then
//    Exit;
// // if cxPageControl1.ActivePageIndex=6 then
//  begin
//    Image2.Picture.Assign(nil);
//    try
//      with ADOQueryTemp do
//      begin
//        close;
//        sql.Clear;
//        sql.Add(' select * from TP_File A where A.WBID=''' + Trim(CDS_Main.fieldbyname('CYID').AsString) + '''');
//        sql.Add(' and TFType=''��Ʒ'' ');
//        open;
//        if RecordCount > 0 then
//        begin
//          if trim(ADOQueryTemp.fieldbyname('FilesOther').AsString) <> '' then
//          begin
//            myStream := tadoblobstream.Create(tblobfield(ADOQueryTemp.fieldbyname('FilesOther')), bmread);
//            if myStream = nil then
//              exit;
//            jpg := TJPEGImage.Create;
//            jpg.LoadFromStream(myStream);
//            Image2.Picture.Assign(jpg);
//          end;
//        end;
//      end;
//    finally
//      jpg.Free;
//      myStream.Free;
//    end;
//  end;
//end;

procedure TfrmCPManage.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  {if Key= then
  begin
    if CDS_Main.IsEmpty then Exit;
    if Application.MessageBox('ȷ��6666Ҫɾ��������','��ʾ',32+4)<>IDYES then Exit;
    if Trim(CDS_Main.fieldbyname('CYID').AsString)<>'' then
    begin
      with ADOQueryCmd do
      begin
        Close;
        SQL.Clear;
        sql.Add('delete CP_YDang where CYID='''+Trim(CDS_Main.fieldbyname('CYID').AsString)+'''');
        ExecSQL;
      end;
    end;

    CDS_Main.Delete;
  end;  }
end;

procedure TfrmCPManage.Tv1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = 46 then
  begin
    TBDel.Click;
  end;
end;

procedure TfrmCPManage.ToolButton7Click(Sender: TObject);
var
  i: Integer;
  FieldName: string;
begin

  try
    frmCPAdd := TfrmCPAdd.Create(Application);
    with frmCPAdd do
    begin
      CopyInt := 1;
      FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString);
      FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
      FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString);
      if ShowModal = 1 then
      begin
        Self.CDS_Main.Append;
        for i := 0 to frmCPAdd.Tv1.ColumnCount - 1 do
        begin
          FieldName := frmCPAdd.Tv1.Columns[i].DataBinding.FilterFieldName;
          if Trim(FieldName) <> '' then
          begin
            Self.CDS_Main.FieldByName(FieldName).Value := frmCPAdd.CDS_Sub.FieldByName(FieldName).Value;
          end;
        end;
        CDS_Main.FieldByName('CPName').Value := Trim(ADOQueryTree.fieldbyname('CPName').AsString);
        CDS_Main.FieldByName('CYID').Value := CDS_Sub.fieldbyname('CYID').Value;
        CDS_Main.FieldByName('CYType').Value := CDS_Sub.fieldbyname('CYType').Value;
        Self.CDS_Main.Post;
      end;
    end;
  finally
    frmCPAdd.Free;
  end;
end;

procedure TfrmCPManage.CYSpecChange(Sender: TObject);
begin
  if Length(Trim(CYSpec.Text)) < 3 then
    Exit;
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
  end;
end;

procedure TfrmCPManage.v1Column19PropertiesChange(Sender: TObject);
var
  mvalue: Boolean;
begin
 { mvalue:=TcxCheckBox(Sender).EditingValue;
  if mvalue=True then
  begin
    with CDS_CYNO do
    begin
      if Locate('CYID',Trim(CDS_Main.fieldbyname('CYID').AsString),[])=False then
      begin
        Append;
        FieldByName('CYID').Value:=Trim(CDS_Main.fieldbyname('CYID').AsString);
        Post;
      end;
    end;
  end else
  begin
    //with CDS_CYNO do
    //begin
    CDS_CYNO.Locate('CYID',Trim(CDS_Main.fieldbyname('CYID').AsString),[]);
    CDS_CYNO.Delete;
    //end;
  end; }
end;

procedure TfrmCPManage.CYMFChange(Sender: TObject);
begin
  //if Length(Trim(TEdit(Sender).Text))<2 then Exit;
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
    TJGS();
  end;

end;

procedure TfrmCPManage.CYNameChange(Sender: TObject);
begin
  //if Length(Trim(TEdit(Sender).Text))<2 then Exit;
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
    TJGS();
  end;

end;

procedure TfrmCPManage.CYNOKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    if Trim(CYNO.Text) = '' then
      Exit;
    if Length(Trim(CYNO.Text)) < 4 then
      Exit;
    with ADOQueryMain do
    begin
      Close;
      Filtered := False;
      sql.Clear;
      sql.Add('exec P_Select_CP_YDang :Code,2,'''' ');
      Parameters.ParamByName('Code').Value := '%' + Trim(CYNO.Text) + '%';
      Open;
    end;
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
    CYID.Text := '';
    ADOQueryTree.Locate('CPID', CPID, []);
    TJGS();
  end;
end;

end.