unit U_ElevatorKcList;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData,
  cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
  cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView,
  cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
  cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu,
  cxGridPopupMenu, cxCheckBox, RM_Common, RM_Class, RM_GridReport,
  RM_System, RM_Dataset ,MMSystem, Menus, BtnEdit,U_SLT,jpeg;

type
  TfrmElevatorKcList = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBExport: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1P_CodeName: TcxGridDBColumn;
    v1P_SPEC: TcxGridDBColumn;
    v1Qty: TcxGridDBColumn;
    v1QtyUnit: TcxGridDBColumn;
    v1Note: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    v1CRType: TcxGridDBColumn;
    v1CRTime: TcxGridDBColumn;
    Label3: TLabel;
    P_CodeName: TEdit;
    ADOQueryCmd: TADOQuery;
    ADOQueryTmp: TADOQuery;
    DataSource1: TDataSource;
    CDS_Main: TClientDataSet;
    cxGridPopupMenu1: TcxGridPopupMenu;
    TOk: TToolButton;
    v1Ssel: TcxGridDBColumn;
    Label7: TLabel;
    P_Color: TEdit;
    Label8: TLabel;
    Label9: TLabel;
    kuwei: TEdit;
    v1Column5: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    ADOQueryPrint: TADOQuery;
    RMDB_Main: TRMDBDataSet;
    RM1: TRMGridReport;
    v1Column8: TcxGridDBColumn;
    ADOQueryMain: TADOQuery;
    Label13: TLabel;
    v1Column9: TcxGridDBColumn;
    P_Code: TEdit;
    Label18: TLabel;
    v1Column16: TcxGridDBColumn;
    Label31: TLabel;
    FactoryName: TEdit;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    v1Column3: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    ToolButton2: TToolButton;
    v1Column2: TcxGridDBColumn;
    Panel2: TPanel;
    Label1: TLabel;
    Button1: TButton;
    edtKuWei: TBtnEditA;
    ToolButton1: TToolButton;
    v1Column1: TcxGridDBColumn;
    GroupBox1: TGroupBox;
    ScrollBox1: TScrollBox;
    v1Column7: TcxGridDBColumn;
    v1Column10: TcxGridDBColumn;
    adoqueryPicture: TADOQuery;
    ToolButton3: TToolButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure P_CodeNameChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure TOkClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure edtKuWeiBtnClick(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Tv1CellClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure ToolButton3Click(Sender: TObject);
  private
    procedure InitGrid();
    procedure SetStatus();
    procedure InitImage();
    { Private declarations }
  public
    fType:integer;
    fCKName:string;
    
    { Public declarations }
  end;

var
  frmElevatorKcList: TfrmElevatorKcList;
var
   Mach: array of TfrmSlt;
implementation
uses
  U_DataLink,U_Fun10,U_ZDYHelp;
{$R *.dfm}

procedure TfrmElevatorKcList.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 ');
      if CDS_Main.IsEmpty=False then
      begin
        sql.Add('and A.WBID='+quotedstr(trim(CDS_Main.fieldbyname('MJID').AsString)));
      end else
      begin
        sql.add(' and 1=2');
      end;
      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;
procedure TfrmElevatorKcList.SetStatus();
begin
  if fType=10 then
  begin
    TOk.Visible:=true;
    v1Ssel.Visible:=true;
    ToolButton1.Visible:=True;
  end;
end;

procedure TfrmElevatorKcList.InitGrid();
begin
  try
    with adoqueryMain do
    begin
      close;
      sql.Clear;
      sql.Add(' select A.* ');
      SQL.Add(' from CK_Sample_CR A ');
      sql.Add(' where A.Qty<>0 and CKName='+quotedstr(trim(fCKName)));
      sql.ADD(' and  A.Valid=''Y'' and A.CRFlag=''入库'' ');
      sql.Add(' order by A.CRTime desc,A.CRNO desc');
      open;
    end;
    SCreateCDS20(adoqueryMain,CDS_Main);
    SInitCDSData20(adoqueryMain,CDS_Main);
  finally
  end;
end;

procedure TfrmElevatorKcList.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  writeCxGrid(self.Caption+tv1.Name,Tv1,'面料仓库');
  if fType=10 then
    Action:=cahide
  else
    Action:=cafree;
end;

procedure TfrmElevatorKcList.FormDestroy(Sender: TObject);
begin
  frmElevatorKcList:=nil;
end;

procedure TfrmElevatorKcList.P_CodeNameChange(Sender: TObject);
begin
  if adoqueryMain.Active=False then Exit;
  SDofilter(adoqueryMain,SGetFilters(Panel1,1,2));
  SCreateCDS20(adoqueryMain,CDS_Main);
  SInitCDSData20(adoqueryMain,CDS_Main);
end;

procedure TfrmElevatorKcList.FormShow(Sender: TObject);
begin
  readCxGrid(self.Caption+tv1.Name,Tv1,'面料仓库');
  SetStatus();
  InitGrid();
end;

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

procedure TfrmElevatorKcList.TBRafreshClick(Sender: TObject);
begin
  initGrid();
end;

procedure TfrmElevatorKcList.TBExportClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then Exit;
  TcxGridToExcel(self.Caption,cxgrid1);
end;

procedure TfrmElevatorKcList.TOkClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then Exit;
  ModalResult:=1;
end;

procedure TfrmElevatorKcList.N1Click(Sender: TObject);
begin
 SelOKNo(CDS_Main,true);
end;

procedure TfrmElevatorKcList.N2Click(Sender: TObject);
begin
 SelOKNo(CDS_Main,false);
 
end;

procedure TfrmElevatorKcList.edtKuWeiBtnClick(Sender: TObject);
begin
  try
    frmZDYHelp:=TfrmZDYHelp.Create(Application);
    with frmZDYHelp do
    begin
      flag:='mykuwei';
      flagname:='库位';
      if ShowModal=1 then
      begin
        edtKuWei.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
      end;
    end;
  finally
    frmZDYHelp.Free;
  end;
end;

procedure TfrmElevatorKcList.ToolButton2Click(Sender: TObject);
begin
  if adoqueryMain.Active=False then Exit;
  SDofilter(adoqueryMain,SGetFilters(Panel1,1,2));
  SCreateCDS20(adoqueryMain,CDS_Main);
  SInitCDSData20(adoqueryMain,CDS_Main);
end;

procedure TfrmElevatorKcList.ToolButton1Click(Sender: TObject);
begin
  if Panel2.Visible=False then
    Panel2.Visible:=True
  else
    Panel2.Visible:=False;
end;

procedure TfrmElevatorKcList.Button1Click(Sender: TObject);
begin
  if trim(edtKuWei.Text)='' then exit;
  try
    ADOQueryCmd.Connection.BeginTrans;
    while  CDS_Main.Locate('SSel',true,[]) do
    begin
      with ADOQueryCmd do
      begin
        close;
        sql.Clear;
        sql.Add('update CK_Sample_CR set kuwei='+quotedstr(trim(edtKuWei.Text)));
        sql.Add(' where CRNO='+quotedstr(trim(CDS_Main.FieldByName('CRNO').AsString)));
        execsql;
      end;
      with CDS_Main do
      begin
        Edit;
        FieldByName('SSel').Value:=false;
        FieldByName('KuWei').Value:=trim(edtKuWei.Text);

      end;

    end;
    ADOQueryCmd.Connection.CommitTrans;
  except
    ADOQueryCmd.Connection.RollbackTrans;
  end
end;

procedure TfrmElevatorKcList.Tv1CellClick(Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
begin
  InitImage();
end;

procedure TfrmElevatorKcList.ToolButton3Click(Sender: TObject);
begin
  with ADOQueryCmd do
  begin
    close;
    sql.Clear;
    sql.Add('exec P_Up_SampleKcAll');
    execsql;
  end;
end;

end.
