unit U_MLManage_LRTJ;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, DB, cxDBData, ADODB, DBClient, cxGridLevel,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
  cxControls, cxGridCustomView, cxGrid, ComCtrls, ToolWin,
  cxGridCustomPopupMenu, cxGridPopupMenu, cxContainer, cxTextEdit,
  cxMaskEdit, cxDropDownEdit, cxCalendar, StdCtrls, ExtCtrls, BtnEdit,
  cxButtonEdit,jpeg,U_SLT,Math, Menus, RM_Common, RM_Class, RM_GridReport,
  RM_System, RM_Dataset,U_SLT_PBSK,U_BPZdy_LRSHK, IdBaseComponent,U_SLT_TJ_SX,
  IdComponent, IdTCPConnection, IdTCPClient, IdFTP,IniFiles,ShellAPI;

type
  TfrmMLManage_LRTJ = class(TForm)
    CDS_Sub: TClientDataSet;
    ADOQueryMain: TADOQuery;
    ADOQueryCmd: TADOQuery;
    ADOQueryTemp: TADOQuery;
    cxGridPopupMenu1: TcxGridPopupMenu;
    Order_GX: TClientDataSet;
    DataSource1: TDataSource;
    OrdBP_SH: TClientDataSet;
    Ord_HX: TClientDataSet;
    adoqueryPicture: TADOQuery;
    RMDB_Main: TRMDBDataSet;
    RM1: TRMGridReport;
    ADOQueryPrint: TADOQuery;
    CDS_Print: TClientDataSet;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    SaveDialog1: TSaveDialog;
    ODPat: TOpenDialog;
    IdFTP1: TIdFTP;
    PopupMenu2: TPopupMenu;
    MenuItem1: TMenuItem;
    Ord_ZB: TClientDataSet;
    Panel2: TPanel;
    Ord_Col: TClientDataSet;
    DataSource2: TDataSource;
    ADOQueryCol: TADOQuery;
    TJName: TLabel;
    TJGYMX: TLabel;
    Panel14: TPanel;
    Panel4: TPanel;
    ScrollBox2: TScrollBox;
    ADOQuery1: TADOQuery;
    ADOCmd: TADOQuery;
    Panel16: TPanel;
    ScrollBox3: TPanel;
    LBCPAP: TLabel;
    BTLP: TButton;
    BTNP: TButton;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure BTLPClick(Sender: TObject);
    procedure BTNPClick(Sender: TObject);
  private
    Fint,my,mz:Integer;
    procedure InitSubGrid();
    function  SaveData():Boolean;
    procedure InitColor();
    procedure BHCZhu();
    procedure ReadINIFile10();
    procedure SavePrint(var CP,TP:string);
    procedure CreThumb(AJPeg:TJPEGImage;Image1:TImage;Width, Height: Integer);
    procedure ShowImage1();
    procedure InitColor1();
    procedure SaveImage(maxnoWB:string);
    procedure initFY();
    { Private declarations }
  public
    lstPat,lstPat2: TStringList;
    FCYID,FCYCode,FCPID,FCPNO,FBPID,FGYName,FML,FGYLX,FGSNo,FHXBPID,FGSName,FSKID,FBPIDSH,formid:String;
    FGYLXName,PatFile,FTJCoNo,FPTID,FTJTP,FileName,FileName1,FTJHX:string;
    FTJML,FTJGYName:String;
    procedure initimageSH();
    procedure imagePL(FFF:Integer);
    procedure ShowImage();
    procedure SaveImage1(maxnoWB:string);
    { Public declarations }
  end;

var
  frmMLManage_LRTJ: TfrmMLManage_LRTJ;
  Mach1: array of TfrmSLT_TJ_SX;
  Mach: array of TfrmSLT_PBSK;
implementation
uses
  U_DataLink,U_Fun;

{$R *.dfm}

procedure TfrmMLManage_LRTJ.ShowImage1();
begin
  
end;

procedure TfrmMLManage_LRTJ.ShowImage();
begin

end;

procedure TfrmMLManage_LRTJ.InitColor1();
begin

end;

procedure TfrmMLManage_LRTJ.ReadINIFile10();
var
  programIni:Tinifile;  //配置文件名
  FileName5:string;
begin
  FileName5:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI';
  programIni:=Tinifile.create(FileName5);
  server:=programIni.ReadString('SERVER','服务器地址','127.0.0.1');
  programIni.Free;
end;

procedure TfrmMLManage_LRTJ.InitColor();
begin
end;

procedure TfrmMLManage_LRTJ.initFY();
begin
  with adoqueryPicture do
  begin
    close;
    sql.Clear;
    sql.Add('select Count(IMID) GS from Image_Info ');
    sql.Add('where TJML='''+trim(FTJML)+'''');
    Open;
  end;
  my:=1;
  mz:=Ceil(adoqueryPicture.fieldbyname('GS').AsInteger/50);
  LBCPAP.Caption:=IntToStr(my)+'/'+inttostr(mz);
end;

procedure TfrmMLManage_LRTJ.initimageSH();
var
  i,j,p,x:integer;
  jpg:TJpegImage;
  myStream: TADOBlobStream;
  Fstr:string;
begin
  Fstr:=' and TJML='''+trim(FTJML)+''' and TJGYName='''+trim(FTJGYName)+'''';
  j:=length(Mach1);
  if j>0 then
  begin
    for i:=0 to j-1 do
    begin
      Mach1[i].free;
    end;
  end;
  SetLength(Mach1, 0);
  try
    with adoqueryPicture do
    begin
      close;
      sql.Clear;
      sql.Add(' exec P_View_Image :WBID,:ImageType,:IFType,:Ye,:YeQty,:WPS  ');
      Parameters.ParamByName('WBID').Value:='CP1910290001';
      Parameters.ParamByName('ImageType').Value:='TJ';
      Parameters.ParamByName('IFType').Value:='小';
      Parameters.ParamByName('Ye').Value:=my;
      Parameters.ParamByName('YeQty').Value:=100;
      Parameters.ParamByName('WPS').Value:=Trim(Fstr);
      open;
    end;
    j:=adoqueryPicture.RecordCount;
    if j<1 then exit;
    adoqueryPicture.DisableControls;
    adoqueryPicture.First;
    SetLength(Mach1, j);
    with adoqueryPicture do
    begin
      First;
      i:=0;
      x:=0;    //列
      p:=0;    //行
      while not eof do
      begin
        if (i<50*my) and (i>=50*(my-1)) then
        begin
          jpg:=TJpegImage.Create();
          myStream:=tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('ImageFile')),bmread);
          jpg.LoadFromStream(myStream);
          if (i-50*(my-1))<10*(p+1) then
          begin

          end
          else
          begin
            p:=p+1;
          end;
          Mach1[i]:=TfrmSLT_TJ_SX.Create(Self);
          Mach1[i].Name:=trim(adoqueryPicture.fieldbyname('IMID').AsString);
          Mach1[i].FImagePath:=trim(adoqueryPicture.fieldbyname('ImagePath').AsString);
          Mach1[i].Parent:=ScrollBox2;
          Mach1[I].Left:=0+(x-10*p)*135;
          Mach1[I].Top:=p*190;
          Mach1[I].FIMID:=trim(adoqueryPicture.fieldbyname('IMID').AsString);
          Mach1[I].FTJHX:=trim(adoqueryPicture.fieldbyname('TJHX').AsString);
          Mach1[I].YW.Caption:=trim(adoqueryPicture.fieldbyname('TJHX').AsString);
          Mach1[I].TJMLNo.Caption:=trim(adoqueryPicture.fieldbyname('TJMLNo').AsString);
          Mach1[I].ZW.Caption:=trim(adoqueryPicture.fieldbyname('TJCol').AsString);
          Mach1[I].SH.Caption:=trim(adoqueryPicture.fieldbyname('TJColNo').AsString);
          Mach1[I].FIMNO:=trim(adoqueryPicture.fieldbyname('IMNO').AsString);
          Mach1[I].FTJTPID:=Trim(adoqueryPicture.fieldbyname('WBID').AsString);
          Mach1[i].Formid:='3';
          if self.formid='2' then
          begin
            Mach1[I].Memo1.Visible:=true;
          end;
          if triM(adoqueryPicture.fieldbyname('IMID').AsString)<>'' then
          begin
            Mach1[i].Init('',adoqueryPicture.fieldbyname('ImagePath').AsString,jpg);
          end;
          Mach1[i].cxImage1.Visible:=True;
          Mach1[i].cxImage1.Properties.Stretch:=True;
          x:=x+1;
        end;
        i:=i+1;
        Next;
      end;
    end;
    adoqueryPicture.EnableControls;
  finally
    jpg.free;
  end;
end;

procedure TfrmMLManage_LRTJ.SavePrint(var CP,TP:string);
begin
 
end;

procedure TfrmMLManage_LRTJ.InitSubGrid();
begin
  
end;

procedure TfrmMLManage_LRTJ.SaveImage(maxnoWB:string);
begin

end;

procedure TfrmMLManage_LRTJ.SaveImage1(maxnoWB:string);
begin

end;

procedure TfrmMLManage_LRTJ.FormShow(Sender: TObject);
var
  fsj:String;
begin
  initFY();
  initimageSH();
end;

function TfrmMLManage_LRTJ.SaveData():Boolean;
begin
end;

procedure TfrmMLManage_LRTJ.BHCZhu();
begin
 
end;

procedure TfrmMLManage_LRTJ.imagePL(FFF:Integer);
begin

end;

procedure TfrmMLManage_LRTJ.CreThumb(AJPeg:TJPEGImage;Image1:TImage;Width, Height: Integer);
var
  Bitmap: TBitmap;
  Ratio: Double;
  ARect: TRect;
  AHeight, AHeightOffset: Integer;
  AWidth, AWidthOffset: Integer;
begin
  Bitmap := TBitmap.Create;
  try
    Ratio := AJPeg.Width /AJPeg.Height;
    if Ratio > 1.333 then
    begin
      AHeight := Round(Width / Ratio);
      AHeightOffset := (Height - AHeight) div 2;
      AWidth := Width;
      AWidthOffset := 0;
    end
    else
    begin
      AWidth := Round(Height * Ratio);
      AWidthOffset := (Width - AWidth) div 2;
      AHeight := Height;
      AHeightOffset := 0;
    end;
    Bitmap.Width := Width;
    Bitmap.Height := Height;
    Bitmap.Canvas.Brush.Color := clBtnFace;
    Bitmap.Canvas.FillRect(Rect(0, 0, Width, Height));
    ARect := Rect(AWidthOffset, AHeightOffset, AWidth + AWidthOffset, AHeight + AHeightOffset);
    Bitmap.Canvas.StretchDraw(ARect, AJPeg);
    Image1.Picture.Assign(BitMap);
  finally
    Bitmap.Free;
  end;
end;

procedure TfrmMLManage_LRTJ.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Finalize(Mach1);
  Finalize(Mach);
end;

procedure TfrmMLManage_LRTJ.FormCreate(Sender: TObject);
begin
  lstPat := TStringList.Create;
  lstPat2 := TStringList.Create;
end;

procedure TfrmMLManage_LRTJ.BTLPClick(Sender: TObject);
begin
  if my<=1 then exit;
  my:=my-1;
  LBCPAP.Caption:=IntToStr(my)+'/'+inttostr(mz);
  initimageSH();
end;

procedure TfrmMLManage_LRTJ.BTNPClick(Sender: TObject);
begin
  if my>=mz then exit;
  my:=my+1;
  LBCPAP.Caption:=IntToStr(my)+'/'+inttostr(mz);
  initimageSH();
end;


end.
