unit U_frameSampleInfo;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, DBCtrls, DB, ADODB, ExtCtrls,Jpeg, cxControls, cxPC;

type
  TFrameSapleInfo = class(TFrame)
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    Label1: TLabel;
    Label2: TLabel;
    Image1: TImage;
    ADOQueryTmp: TADOQuery;
    Label3: TLabel;
    Label4: TLabel;
    cxTabControl1: TcxTabControl;
    ADOConnection1: TADOConnection;
    procedure DBText1Click(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
  private
    function ToCreateConn():Boolean;
  public
    fPicType:string;
    fP_yhNo:string;
    procedure GetSampleData(mPlanNo:string);
    procedure GetSampleData_YH(mP_YHNO:string);
  end;

implementation
uses
  U_ADODBmd,U_global;
{$R *.dfm}

procedure TFrameSapleInfo.DBText1Click(Sender: TObject);
begin

end;
//===============================================================
  //函数功能:染整调用印花小样信息
//===============================================================
procedure TFrameSapleInfo.GetSampleData(mPlanNo:string);
var
  ghy:TADOBlobstream;
  pic:Tjpegimage;
begin
  if not ToCreateConn() then exit;
  with ADOQueryTmp do
  begin
    close;
    sql.Clear;
    sql.Add('select distinct P_YHNO from MD_Product_YH where planNo='''+mPlanNo+'''');
    open;
  end;
  Image1.Picture.assign(NIL);
  with ADOQuery1 do
  begin
    close;
    parameters.ParamByName('PP_YHNO').Value :=trim(ADOQueryTmp.fieldByName('P_YHNO').AsString);
    open;
    Label3.Caption := trim(fieldByName('P_YHNO').AsString) ;
    Label4.Caption := fieldByName('Plates').AsString ;
    if fieldByName('PatFile').AsString='' then
      exit;
   //////////////////////////////////////////////
   ghy := TADOBlobstream.Create(Adoquery1.fieldByName('picture') as TblobField, bmRead);
   try
     Pic:=TJpegImage.Create;
     try
       Pic.LoadFromStream(ghy);
       Image1.Picture.assign(pic);
     finally
       Pic.Free;
      end;
   finally
     ghy.Free ;
   end;

  end;
  ADOQuery1.Close;
  ADOQueryTmp.Close;


end;
//===============================================================
  //函数功能:印花配方调用印花小样信息
//===============================================================
procedure TFrameSapleInfo.GetSampleData_YH(mP_YHNO:string);
var
  ghy:TADOBlobstream;
  pic:Tjpegimage;
begin
  fP_yhNo:=mP_YHNO;
  if not ToCreateConn() then exit;
  if cxTabControl1.TabIndex=0 then
    fPicType:='SO'
  else if cxTabControl1.TabIndex=1 then
    fPicType:='KY'
  else
    fPicType:='DH';
  Image1.Picture.assign(NIL);
  with ADOQuery1 do
  begin
    close;
    sql.Clear ;
    sql.Add('select A.P_YHNO,A.Plates,C.picture,B.PatFile');
    sql.Add('from SD_Swplan A');
    sql.Add('inner join SD_SWDetail B on A.P_YHNO=B.P_YHNO');
    sql.Add('and A.P_YHNo='+quotedStr(mP_YHNO));
    if fPicType='SO' then
      sql.Add('inner join sd_swPicture c on C.patFile=B.patFile1')
    else if fPicType='KY' then
      sql.Add('inner join sd_swPicture c on C.patFile=B.patFile')
    //大货
    else
      sql.Add('inner join sd_swPicture c on C.patFile=B.patFile2');
    open;
    Label3.Caption := trim(fieldByName('P_YHNO').AsString) ;
    Label4.Caption := fieldByName('Plates').AsString ;

    if recordCount<=0 then exit;
    //if fieldByName('PatFile').AsString='' then
    //  exit;
   //////////////////////////////////////////////
   ghy := TADOBlobstream.Create(Adoquery1.fieldByName('picture') as TblobField, bmRead);
   IF ghy=nil then exit;
   try
     Pic:=TJpegImage.Create;
     try
       Pic.LoadFromStream(ghy);
       Image1.Picture.assign(pic);
     finally
       Pic.Free;
      end;
   finally
     ghy.Free ;
   end;

  end;
  ADOQuery1.Close;
  ADOQueryTmp.Close;


end;



procedure TFrameSapleInfo.cxTabControl1Change(Sender: TObject);
begin
  GetSampleData_YH(fP_yhNo);
end;
//////////////////////////////////////////////////////
  //函数功能:建立数据库连接
/////////////////////////////////////////////////////
function TFrameSapleInfo.ToCreateConn():Boolean;
begin
 try
   with ADOConnection1 do
   begin
    Connected:=false;
    ConnectionString:=gConString;
    Connected:=true;
   end;
   result:=true;
 except
   result:=false;
   application.MessageBox('数据库连接失败!','警告信息',0); 
 end;
end;

end.