unit U_ZdyAttachSX;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ComObj,
  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, cxCalendar,
  cxButtonEdit, cxTextEdit, Menus, cxLookAndFeelPainters, cxButtons,
  cxContainer, cxImage, cxDBEdit;

type

  FdDy=record
               inc: integer; //客户端套接字句柄
               FDdys:string[32]; //客户端套接字
               FdDysName:string[32]; //客户端套接字
       end;
  TfrmZdyAttachSX = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBDel: TToolButton;
    TBClose: TToolButton;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    Panel1: TPanel;
    ToolButton2: TToolButton;
    ADOQueryMain: TADOQuery;
    ToolButton1: TToolButton;
    RM1: TRMGridReport;
    RMDB_Main: TRMDBDataSet;
    Label3: TLabel;
    DEFstr6: TEdit;
    cxGridPopupMenu2: TcxGridPopupMenu;
    DS_HZ: TDataSource;
    CDS_HZ: TClientDataSet;
    ToolButton3: TToolButton;
    Label1: TLabel;
    ZdyName: TEdit;
    ToolButton4: TToolButton;
    Label2: TLabel;
    OpenDialog1: TOpenDialog;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    v2Column2: TcxGridDBColumn;
    v2Column6: TcxGridDBColumn;
    v2DEFstr3: TcxGridDBColumn;
    v2Column16: TcxGridDBColumn;
    v2Column3: TcxGridDBColumn;
    v2Column4: TcxGridDBColumn;
    v2Mrate: TcxGridDBColumn;
    v2defflt1: TcxGridDBColumn;
    v2Column14: TcxGridDBColumn;
    v2Column15: TcxGridDBColumn;
    v2Column8: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    Pan_image: TPanel;
    Picture4: TcxDBImage;
    DSImage: TDataSource;
    ADOQueryImage: TADOQuery;
    Label5: TLabel;
    Filler: TEdit;
    DEFstr3: TEdit;
    Label9: TLabel;
    DEFstr2: TEdit;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    Panel2: TPanel;
    Label4: TLabel;
    RadioGroup1: TRadioGroup;
    cxButton1: TcxButton;
    cxButton2: TcxButton;
    ToYJ: TToolButton;
    TFZ: TToolButton;
    v2Ssel: TcxGridDBColumn;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    cxGrid1: TcxGrid;
    TV1: TcxGridDBTableView;
    V2Column1: TcxGridDBColumn;
    cxGridDBColumn1: TcxGridDBColumn;
    V2Column10: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    Label6: TLabel;
    Label7: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    CP_Sub: TClientDataSet;
    DS_CP: TDataSource;
    ADOQueryTmp: TADOQuery;
    V1Column1: TcxGridDBColumn;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure DEFstr6Change(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure cxButton2Click(Sender: TObject);
    procedure cxButton1Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure Tv2CellClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure FormResize(Sender: TObject);
    procedure ToYJClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure TFZClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView;
      APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
      ANewItemRecordFocusingChanged: Boolean);
  private
    fFlileFlag:string;
    procedure InitImage();
    procedure InitSub();
    { Private declarations }
    procedure InitGrid();

  public
    canshu1:string;
    fkhType:string;
    dFdDy: array[0..20] of FdDy; 
  end;

//var
//  frmZdyAttachSX: TfrmZdyAttachSX;

implementation
uses
  U_DataLink,U_Fun,U_ZDYHelp,U_ZdyAttInputCP, U_ZdyAttInputCP_other;

{$R *.dfm}
procedure TfrmZdyAttachSX.InitImage();
begin
  with ADOQueryImage do
  begin
    close;
    sql.Clear;
    sql.Add('select * from TP_File A');
    sql.Add('where WBID='+quotedstr(trim(CDS_HZ.fieldbyname('ATID').AsString)));
    open;
  end;
end;

procedure TfrmZdyAttachSX.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered:=False;
      Close;
      SQL.Clear;
      sql.Add(' select A.* ');
      sql.Add(',RKQty=(select Sum(B.Qty) from CK_BanCP_CR B where B.CRFlag=''入库'' and B.C_Color=A.DEFstr3 ');
      sql.Add(' and (B.C_CodeName=A.ZdyName or B.C_CodeName=A.defNote3) and B.CRType=''检验入库'' and convert(varchar(4),B.CRTime,120)=convert(varchar(4),getdate(),120))');
      sql.Add(' from KH_Zdy_Attachment A ');
      SQL.Add(' where A.Type=''CP'' ');
      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)) + '''');
      sql.Add(' order by zdyName,dbo.getNum(Defstr3) ');
      //ShowMessage(SQL.Text);
      Open;
    end;
    SCreateCDS20(ADOQueryMain,CDS_HZ);
    SInitCDSData20(ADOQueryMain,CDS_HZ);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmZdyAttachSX.InitSub();
begin

  if CDS_HZ.IsEmpty then
    exit;
  with ADOQueryTmp do
  begin
    close;
    sql.Clear;
    sql.Add('select * from KH_Zdy_Attachment_Sub ');
    sql.Add('where ATID =' + quotedstr((CDS_HZ.fieldbyname('ATID').AsString)));
    open;
 //   ShowMessage(SQL.Text);
  end;
  SCreateCDS20(ADOQueryTmp, CP_Sub);
  SInitCDSData20(ADOQueryTmp, CP_Sub);
end;

procedure TfrmZdyAttachSX.FormDestroy(Sender: TObject);
begin
 // frmZdyAttachCP:=nil;
end;

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

procedure TfrmZdyAttachSX.TBCloseClick(Sender: TObject);
begin
  WriteCxGrid('产品资料13',Tv2,'客户自定义');
  Close;
end;
procedure TfrmZdyAttachSX.TBDelClick(Sender: TObject);
begin
  if CDS_HZ.IsEmpty then Exit;
  if CDS_HZ.Locate('Ssel',True,[])=false then
  begin
    application.MessageBox('没有选择数据','提示');
    exit;
  end;
  if Application.MessageBox('确定要删除数据吗？','提示',32+4)<>IDYES then Exit;
  CDS_HZ.DisableControls;
  with CDS_HZ do
  begin
    First;
    while not eof do
    begin
      if FieldByName('Ssel').AsBoolean=True then
      begin
        if Trim(CDS_HZ.fieldbyname('ATID').AsString)<>'' then
        begin
          with ADOQueryCmd do
          begin
            Close;
            SQL.Clear;
            sql.Add('delete KH_Zdy_Attachment where ATID='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+'''');
            sql.Add('delete KH_Zdy_Attachment_Sub where ATID='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+'''');
            sql.Add('delete KH_Zdy where ZdyNo='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+'''');
            ExecSQL;
          end;
        end;
        CDS_HZ.Delete;
      end
      else
      next;
    end;
  end;
  CDS_HZ.EnableControls;
end;

procedure TfrmZdyAttachSX.FormShow(Sender: TObject);
begin
  ReadCxGrid('产品资料13',Tv2,'客户自定义');
  ToolButton4.Visible:=false;
  TBDel.Visible:=false;
  ToYJ.Visible:=false;
  BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 90;
  EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
  if canshu1='高权限' then
  begin
    ToolButton4.Visible:=true;
    TBDel.Visible:=true;
    ToYJ.Visible:=true;
  end;
  fFlileFlag:=UserDataFlag+'YP';
  //InitGrid();
end;

procedure TfrmZdyAttachSX.TBRafreshClick(Sender: TObject);
begin
  Panel1.SetFocus;
  InitGrid();
end;

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

procedure TfrmZdyAttachSX.DEFstr6Change(Sender: TObject);
begin
  ToolButton2.Click;
end;


procedure TfrmZdyAttachSX.ToolButton1Click(Sender: TObject);
begin
  if ADOQueryMain.IsEmpty then Exit;
  TcxGridToExcel(self.Caption,cxgrid2);
//  SelExportData(Tv2,ADOQueryMain,'产品资料列表');
end;

procedure TfrmZdyAttachSX.ToolButton4Click(Sender: TObject);
begin
  if CDS_HZ.IsEmpty then
  Exit;

  if CDS_HZ.Locate('SSel',True,[])=False then
  begin
    Application.MessageBox('请先选择数据！','提示',0);
    Exit;
  end;
  try
    frmZdyAttInputCP_other:=TfrmZdyAttInputCP_other.Create(Application);
    with frmZdyAttInputCP_other do
    begin
      FFlag:=1;
      FCYID:=Trim(Self.CDS_HZ.fieldbyname('ATID').AsString);
      fkhType:=self.fkhType;
      fFlileFlag:=self.fFlileFlag;
      if ShowModal=1 then
      begin
        TBRafresh.Click;
      end;
    end;
  finally
    frmZdyAttInputCP_other.Free;
  end;
  {
  try
    frmZdyAttInputCP:=TfrmZdyAttInputCP.Create(Application);
    with frmZdyAttInputCP do
    begin
      FCYID:=Trim(Self.CDS_HZ.fieldbyname('ATID').AsString);
      fkhType:=self.fkhType;
      if ShowModal=1 then
      begin
        TBRafresh.Click;
      end;
    end;
  finally
    frmZdyAttInputCP.Free;
  end;}
end;

procedure TfrmZdyAttachSX.ToolButton3Click(Sender: TObject);
begin
  try
    frmZdyAttInputCP_other:=TfrmZdyAttInputCP_other.Create(Application);
    with frmZdyAttInputCP_other do
    begin
      FFlag:=0;
      FCYID:='';
      fkhType:=self.fkhType;
      fFlileFlag:=self.fFlileFlag;
      if ShowModal=1 then
      begin
        TBRafresh.Click;
      end;
    end;
  finally
    frmZdyAttInputCP_other.Free;
  end;
  {
  try
    frmZdyAttInputCP:=TfrmZdyAttInputCP.Create(Application);
    with frmZdyAttInputCP do
    begin
      FCYID:='';
      fkhType:=self.fkhType;
      if ShowModal=1 then
      begin
        TBRafresh.Click;
      end;
    end;
  finally
    frmZdyAttInputCP.Free;
  end;  }
end;

procedure TfrmZdyAttachSX.ToolButton5Click(Sender: TObject);
var
  excelApp,WorkBook:Variant;
  i,j,k,ExcelRowCount:integer;
  maxId:string;
begin
  try
    ExcelApp:=CreateOleObject('Excel.Application');
    openDialog1.Filter:='*.CSV;*.xls';
    if  opendialog1.Execute then
    begin
      WorkBook :=ExcelApp.WorkBooks.Open(OpenDialog1.FileName);
    end
    else
      exit;
     ExcelApp.Visible := false;
     ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count;
  except
    application.MessageBox('加载EXCEL错误！','错误信息',MB_ICONERROR);
    exit;
  end;
  try
    k:=0;
    for i:=1  to 20 do
    begin
      if trim(excelapp.Cells[1,i].value)='' then break;
      if trim(excelapp.Cells[1,i].value)='系统编号' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='ZdyCode';
        dFdDy[k].FdDysName:='系统编号';
      end;

      if trim(excelapp.Cells[1,i].value)='花型编号' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='ZdyName';
        dFdDy[k].FdDysName:='花型编号';
      end;

      if trim(excelapp.Cells[1,i].value)='跟单同花型' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='defNote3';
        dFdDy[k].FdDysName:='defNote3';
      end;

      if trim(excelapp.Cells[1,i].value)='色号' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='DEFstr3';
        dFdDy[k].FdDysName:='色号';
      end;
      if trim(excelapp.Cells[1,i].value)='中英文颜色' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='DEFstr6';
        dFdDy[k].FdDysName:='中英文颜色';
      end;
      if trim(excelapp.Cells[1,i].value)='规格' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='DEFstr1';
        dFdDy[k].FdDysName:='规格';
      end;
      if trim(excelapp.Cells[1,i].value)='成份' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='DEFstr2';
        dFdDy[k].FdDysName:='成份';
      end;
      if trim(excelapp.Cells[1,i].value)='门幅' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='DEFstr7';
        dFdDy[k].FdDysName:='门幅';
      end;
      if trim(excelapp.Cells[1,i].value)='克重' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='DEFstr8';
        dFdDy[k].FdDysName:='克重';
      end;
      if trim(excelapp.Cells[1,i].value)='操作员' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='Filler';
        dFdDy[k].FdDysName:='操作员';
      end;
      if trim(excelapp.Cells[1,i].value)='操作时间' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='FillTime';
        dFdDy[k].FdDysName:='操作时间';
      end;
      if trim(excelapp.Cells[1,i].value)='成本' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='DEFFlt2';
        dFdDy[k].FdDysName:='成本';
      end;
      if trim(excelapp.Cells[1,i].value)='制卡代号' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='defstr9';
        dFdDy[k].FdDysName:='制卡代号';
      end;
      if trim(excelapp.Cells[1,i].value)='价格A' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='Price1';
        dFdDy[k].FdDysName:='价格A';
      end;
      if trim(excelapp.Cells[1,i].value)='价格B' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='Price2';
        dFdDy[k].FdDysName:='价格B';
      end;
      if trim(excelapp.Cells[1,i].value)='价格C' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='Price3';
        dFdDy[k].FdDysName:='价格C';
      end;
      if trim(excelapp.Cells[1,i].value)='初次市场' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='CCShiChang';
        dFdDy[k].FdDysName:='初次市场';
      end;
      if trim(excelapp.Cells[1,i].value)='客户唛头' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='KHMaiTou';
        dFdDy[k].FdDysName:='客户唛头';
      end;
      if trim(excelapp.Cells[1,i].value)='客户代号' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='KHDaiMa';
        dFdDy[k].FdDysName:='客户代号';
      end;
      if trim(excelapp.Cells[1,i].value)='中间商' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='ZJSName';
        dFdDy[k].FdDysName:='中间商';
      end;
      if trim(excelapp.Cells[1,i].value)='头距' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='TouJu';
        dFdDy[k].FdDysName:='头距';
      end;
      if trim(excelapp.Cells[1,i].value)='网布' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='DBName';
        dFdDy[k].FdDysName:='网布';
      end;
      if trim(excelapp.Cells[1,i].value)='针数' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='ZhenQty';
        dFdDy[k].FdDysName:='针数';
      end;
      if trim(excelapp.Cells[1,i].value)='前道风格' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='FengGe';
        dFdDy[k].FdDysName:='前道风格';
      end;
      if trim(excelapp.Cells[1,i].value)='后道风格' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='HDFengGe';
        dFdDy[k].FdDysName:='后道风格';
      end;
      if trim(excelapp.Cells[1,i].value)='前道价格' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='QDPrice';
        dFdDy[k].FdDysName:='前道价格';
      end;
      if trim(excelapp.Cells[1,i].value)='后道价格' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='HDPrice';
        dFdDy[k].FdDysName:='后道价格';
      end;
      if trim(excelapp.Cells[1,i].value)='前道加工厂' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='QDJGName';
        dFdDy[k].FdDysName:='前道加工厂';
      end;
      if trim(excelapp.Cells[1,i].value)='后道加工厂' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='HDJGName';
        dFdDy[k].FdDysName:='后道加工厂';
      end;
      if trim(excelapp.Cells[1,i].value)='辅料备注' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='FLNote';
        dFdDy[k].FdDysName:='辅料备注';
      end;
      if trim(excelapp.Cells[1,i].value)='YM' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='Note';
        dFdDy[k].FdDysName:='YM';
      end;
      if trim(excelapp.Cells[1,i].value)='备注' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='CPNote';
        dFdDy[k].FdDysName:='备注';
      end;
      if trim(excelapp.Cells[1,i].value)='样品位置' then
      begin
        dFdDy[k].inc:=i;
        dFdDy[k].FDdys:='YPPlace';
        dFdDy[k].FdDysName:='样品位置';
      end;

      k:=k+1;
    end;
  except
  end;

  ADOQueryCmd.Connection.BeginTrans;
  try
    for i := 2 to excelrowcount do
    begin
      if GetLSNo(ADOQueryCmd,maxId,'AT','KH_Zdy_Attachment',4,1)=False then
      begin
        ADOQueryCmd.Connection.RollbackTrans;
        Application.MessageBox('取最大号失败！','提示',0);
        Exit;
      end;

      with ADOQueryCmd do
      begin
        close;
        sql.Clear;
        sql.Add('select * from KH_Zdy_Attachment where 1=2');
        open;
      end;
      ADOQueryCmd.Append;
      for j:=0 to k-1 do
      begin
        ADOQueryCmd.fieldbyname(dFdDy[j].FDdys).Value:=excelapp.Cells[i,dFdDy[j].inc].Value;
      end;
      ADOQueryCmd.FieldByName('ATID').Value:=Trim(maxId);
      ADOQueryCmd.FieldByName('zdyCode').Value:=Trim(maxId);
      ADOQueryCmd.FieldByName('khType').Value:=Trim(fkhType);
      ADOQueryCmd.FieldByName('Type').Value:='CP';
      ADOQueryCmd.FieldByName('Filler').Value:=Trim(DName);
      ADOQueryCmd.Post;

    end;
    WorkBook.Close;
    ExcelApp.Quit;
    ExcelApp := Unassigned;
    WorkBook := Unassigned;
    ADOQueryCmd.Connection.CommitTrans;
    InitGrid();
  except
    WorkBook.Close;
    ExcelApp.Quit;
    ExcelApp := Unassigned;
    WorkBook := Unassigned;
     ADOQueryCmd.Connection.RollbackTrans;
  end;
end;

procedure TfrmZdyAttachSX.cxButton2Click(Sender: TObject);
begin
  Panel2.Visible:=false;
end;

procedure TfrmZdyAttachSX.cxButton1Click(Sender: TObject);
var
  fPrintFile:string;
   Txt,fImagePath:string;
   Moudle: THandle;
   Makebar:TMakebar;
   Mixtext:TMixtext;
begin
  IF CDS_HZ.IsEmpty then exit;
  try
    Moudle:=LoadLibrary('MakeQRBarcode.dll');
    @Makebar:=GetProcAddress(Moudle,'Make');
    @Mixtext:=GetProcAddress(Moudle,'MixText');
    Txt:=Trim(CDS_HZ.fieldbyname('ZDYCODE').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;

  fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\'+trim(RadioGroup1.Items[RadioGroup1.ItemIndex])+'.rmf' ;
  if FileExists(fPrintFile) then
  begin
    RMVariables['QRBARCODE']:=fImagePath;
    RM1.LoadFromFile(fPrintFile);
 //   Rm2.DefaultCopies:=strtointdef(trim(ComboBox1.Text),1);
   // RM1.ShowReport;
    RM1.PrintReport;
  end
  else
     Application.MessageBox(PChar('没有找到文件'+fPrintFile),'提示',0);

end;

procedure TfrmZdyAttachSX.ToolButton6Click(Sender: TObject);
begin
  Panel2.Left:=(self.Width-Panel2.Width) div 2;
  Panel2.Top:=(self.Height-Panel2.Height) div 2 -100;
  Panel2.Visible:=true;
end;

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

procedure TfrmZdyAttachSX.FormResize(Sender: TObject);
begin
  Pan_image.Left:=self.Width-Pan_image.Width-30;
  Pan_image.Top:=self.Height-Pan_image.Height-80;
end;

procedure TfrmZdyAttachSX.ToYJClick(Sender: TObject);
var
  FValue,FFValue,FColumn,FFColumn,FZdyName:String;
begin
  FColumn:=Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName;
  FFColumn:=Tv2.Controller.FocusedColumn.Summary.GroupFormat;
  FValue:=Trim(CDS_HZ.fieldbyname(FColumn).AsString);
  if Trim(FFColumn)<>'' then
  begin
    FFValue:=Trim(CDS_HZ.fieldbyname(FFColumn).AsString);
  end;
  if FValue='' then
  begin
    FValue:='0';
  end;
  FZdyName:=Trim(CDS_HZ.fieldbyname('ZdyName').AsString);
  with CDS_HZ do
  begin
    DisableControls;
    First;
    while not Eof do
    begin
      if FZdyName=Trim(CDS_HZ.fieldbyname('ZdyName').AsString) then
      begin
        Edit;
        if FValue='' then
        begin
          CDS_HZ.FieldByName(FColumn).Value:=null;
        end else
        begin
          CDS_HZ.FieldByName(FColumn).Value:=FValue;
        end;
        if Trim(FFColumn)<>'' then
        begin
          if FFValue='' then
          begin
            CDS_HZ.FieldByName(FFColumn).Value:=null;
          end else
          begin
            CDS_HZ.FieldByName(FFColumn).Value:=FFValue;
          end;
        end;
        with ADOQueryCmd do
        begin
          close;
          sql.Clear;
          sql.Add('update KH_Zdy_Attachment set ');
          sql.Add( FColumn+'='+trim(FValue));
          sql.Add(' where ATID='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+'''');
          ExecSQL;
        end;
      end;
      Next;
    end;
    EnableControls;
  end;
end;

procedure TfrmZdyAttachSX.FormCreate(Sender: TObject);
begin
  canshu1:=Trim(DParameters1);
end;

procedure TfrmZdyAttachSX.TFZClick(Sender: TObject);
begin
  if CDS_HZ.IsEmpty then
  Exit;
  try
    frmZdyAttInputCP_other:=TfrmZdyAttInputCP_other.Create(Application);
    with frmZdyAttInputCP_other do
    begin
      FFlag:=2;
      FCYID:=Trim(Self.CDS_HZ.fieldbyname('ATID').AsString);
      fkhType:=self.fkhType;
      fFlileFlag:=self.fFlileFlag;
      if ShowModal=1 then
      begin
        TBRafresh.Click;
      end;
    end;
  finally
    frmZdyAttInputCP_other.Free;
  end;
end;

procedure TfrmZdyAttachSX.N1Click(Sender: TObject);
begin
  SelOKNo(CDS_HZ,True);
end;

procedure TfrmZdyAttachSX.N2Click(Sender: TObject);
begin
  SelOKNo(CDS_HZ,false);
end;

procedure TfrmZdyAttachSX.Tv2FocusedRecordChanged(
  Sender: TcxCustomGridTableView; APrevFocusedRecord,
  AFocusedRecord: TcxCustomGridRecord;
  ANewItemRecordFocusingChanged: Boolean);
begin
  InitSub();
end;

end.


