unit U_JYGLlist;

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, RM_Common,
  RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset, cxTextEdit, cxPC,
  cxCheckBox, Menus, U_SLT, jpeg, cxLookAndFeels, cxLookAndFeelPainters,
  cxNavigator, dxBarBuiltInMenu;

type
  TfrmJYGLlist = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBAdd: TToolButton;
    TBEdit: TToolButton;
    TBDel: TToolButton;
    TBExport: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    Label1: TLabel;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v1P_CodeName: TcxGridDBColumn;
    v1P_SPEC: TcxGridDBColumn;
    v1P_MF: TcxGridDBColumn;
    v1P_KZ: TcxGridDBColumn;
    v1Qty: TcxGridDBColumn;
    v1QtyUnit: TcxGridDBColumn;
    v1Note: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    v1CRType: TcxGridDBColumn;
    v1CRTime: TcxGridDBColumn;
    v1CRNO: TcxGridDBColumn;
    v1Filler: TcxGridDBColumn;
    v1FillTime: TcxGridDBColumn;
    Label2: TLabel;
    CRType: TComboBox;
    Label5: TLabel;
    ADOQueryCmd: TADOQuery;
    ADOQueryTmp: TADOQuery;
    DataSource1: TDataSource;
    CDS_Main: TClientDataSet;
    cxGridPopupMenu1: TcxGridPopupMenu;
    ADOPrint: TADOQuery;
    RMXLSExport1: TRMXLSExport;
    v1P_Code: TcxGridDBColumn;
    v1inoutNO: TcxGridDBColumn;
    inoutNo: TEdit;
    Label7: TLabel;
    v1custName: TcxGridDBColumn;
    v1Column1: TcxGridDBColumn;
    v1Column2: TcxGridDBColumn;
    RMDB_Main: TRMDBDataSet;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    cxStyle_gridRow: TcxStyle;
    cxStyle_gridFoot: TcxStyle;
    cxStyle_gridHead: TcxStyle;
    cxStyle_gridGroupBox: TcxStyle;
    cxStyle_yellow: TcxStyle;
    cxStyle_Red: TcxStyle;
    cxStyle_fontBlack: TcxStyle;
    cxStyle_fontclFuchsia: TcxStyle;
    cxStyle_fontclPurple: TcxStyle;
    cxStyle_fontclGreen: TcxStyle;
    cxStyle_fontclBlue: TcxStyle;
    cxStyle_fontclTeal: TcxStyle;
    cxStyle_fontclOlive: TcxStyle;
    Label8: TLabel;
    ToFactoryName: TEdit;
    ADOQueryMain: TADOQuery;
    v1Column18: TcxGridDBColumn;
    RM1: TRMGridReport;
    v1Column5: TcxGridDBColumn;
    P_CodeName: TEdit;
    P_Color: TEdit;
    Label10: TLabel;
    Label11: TLabel;
    P_Code: TEdit;
    Label14: TLabel;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    GroupBox1: TGroupBox;
    ScrollBox1: TScrollBox;
    v1Column3: TcxGridDBColumn;
    v1Column4: TcxGridDBColumn;
    adoqueryPicture: TADOQuery;
    tbChk: TToolButton;
    tbChkNo: TToolButton;
    cxTabControl1: TcxTabControl;
    btn1: TToolButton;
    cv1Column6: TcxGridDBColumn;
    v1Column6: TcxGridDBColumn;
    v1Column7: TcxGridDBColumn;
    Label3: TLabel;
    ORDERNO: TEdit;
    v1Column8: TcxGridDBColumn;
    Tv1Column1: TcxGridDBColumn;
    Label4: TLabel;
    TOZZKH: TEdit;
    Tv1Column2: TcxGridDBColumn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBAddClick(Sender: TObject);
    procedure OrderNoChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure TBCloseClick(Sender: TObject);
    procedure TBEditClick(Sender: TObject);
    procedure TBDelClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure TBExportClick(Sender: TObject);
    procedure v1Column6CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
    procedure cxTabControl1Change(Sender: TObject);
    procedure tbChkClick(Sender: TObject);
    procedure tbChkNoClick(Sender: TObject);
    procedure btn1Click(Sender: TObject);
  private
    procedure InitGrid();
    function YSData(ADO: TADOQuery): Boolean;
    function YSData_Other(ADO: TADOQuery; fYFName: string; fmoney: double): Boolean;
    procedure SetStatus();
    procedure InitImage();
    { Private declarations }
  public
    canshu1, canshu2, fCKName: string;
    { Public declarations }
  end;

var
  Mach: array of TfrmSlt;

implementation

uses
  U_DataLink, U_Fun10, U_ZDYHelp, U_JYGLCK;
{$R *.dfm}

procedure TfrmJYGLlist.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 TfrmJYGLlist.SetStatus();
begin
  tbADD.Visible := False;
  tbEdit.Visible := False;
  tbChk.Visible := False;
  tbChkNo.Visible := False;
  TBDel.Visible := False;
  cv1Column6.Visible := False;
  cv1Column6.Hidden := True;

  v1Column1.Visible := true;
  v1Column1.Hidden := False;
  v1Column2.Visible := true;
  v1Column2.Hidden := False;
  Tv1Column1.Visible := true;
  Tv1Column1.Hidden := False;
//  btn1.Visible := False;
  if Trim(CanShu1) = '仓库' then
  begin
    label8.Visible := False;
    btn1.Visible := False;
    ToFactoryName.Visible := False;
//    v1TocustName.Visible := False;
//    v1TocustName.Hidden := True;
  end;
  if Trim(canshu1) = '录入' then
  begin
    cv1Column6.Visible := True;
    cv1Column6.Hidden := False;
  end;

  if Trim(canshu1) = '管理' then
  begin
    v1Column1.Visible := false;
    v1Column1.Hidden := true;
    v1Column2.Visible := false;
    v1Column2.Hidden := true;
    Tv1Column1.Visible := false;
    Tv1Column1.Hidden := true;
  end;

  if Trim(canshu1) = '录入' then
  begin
    cv1Column6.Visible := True;
    cv1Column6.Hidden := False;
  end;
  case cxTabControl1.TabIndex of
    0:
      begin
        if Trim(CanShu1) = '管理' then
        begin
//          tbADD.Visible := True;
//         tbEdit.Visible := True;
          tbChk.Visible := True;
//          TBDel.Visible := True;
        end;
        if Trim(CanShu1) = '录入' then
        begin
          tbADD.Visible := True;
          tbEdit.Visible := True;
          TBDel.Visible := True;

        end;
        if Trim(CanShu1) = '仓库' then
        begin

          tbChk.Visible := True;

        end;
      end;
    1:
      begin
        if Trim(CanShu1) = '管理' then
        begin
          tbChkNo.Visible := True;
        end;
        if Trim(CanShu1) = '仓库' then
        begin
          tbChkNo.Visible := True;
        end;

      end;
    2:
      begin

      end;
  end;
end;

function TfrmJYGLlist.YSData(ADO: TADOQuery): Boolean;
var
  CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou, cust: string;
begin
  Result := False;
  with ADOQueryTmp do
  begin
    Close;
    SQL.Clear;
    sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(ADO.fieldbyname('custName').asstring) + ''' and YFDefFlag1=0 ');
    Open;
  end;

  if not ADOQueryTmp.IsEmpty then
  begin
    CRID := ADOQueryTmp.fieldbyname('CRID').AsString;
  end
  else
  begin
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('Update YF_Money_CRID set CRID=CRID+1');
      sql.Add('select * from YF_Money_CRID ');
      Open;
    end;
    CRID := ADOQueryCmd.fieldbyname('CRID').AsString;
    with ADOQueryCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('select * from YF_Money_KC where 1<>1');
      Open;
    end;
    with ADOQueryCmd do
    begin
      Append;
      FieldByName('CRID').Value := StrToInt(CRID);
      FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring);
      FieldByName('ZdyStr1').Value := '应收收';
      Post;
    end;
  end;

  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('delete  from YF_Money_CR ');
    sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + '''');
    sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + '''');
    sql.Add(' and YFName=''产品销售'' ');
    execsql;
  end;

  with ADOQueryTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from YF_Money_CR ');
    sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + '''');
    sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + '''');
    sql.Add(' and YFName=''产品销售'' ');
    Open;
  end;

  if ADOQueryTmp.IsEmpty then
  begin
    if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 4, 1) = False then
    begin
      Application.MessageBox('取应收最大号失败!', '提示', 0);
      Exit;
    end;

    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from YF_Money_CR where 1<>1');
      Open;
    end;

    with ADOQueryCmd do
    begin
      Append;
      FieldByName('YFID').Value := Trim(YFID);
      FieldByName('YFTypeId').Value := Trim(ADO.fieldbyname('CRNO').AsString);
      FieldByName('CRID').Value := StrToInt(CRID);
      FieldByName('Filler').Value := Trim(DName);
      FieldByName('CRType').Value := '应收款登记';
      FieldByName('CRFlag').Value := '应收收';
      FieldByName('QtyFlag').Value := 1;
      FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring);
      FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', ADO.fieldbyname('CRTime').AsDateTime));
      FieldByName('YFType').Value := '自动生成';
      FieldByName('ps').Value := ADO.fieldbyname('RollNum').AsFloat;
      FieldByName('Qty').Value := ADO.fieldbyname('Qty').AsFloat;
      FieldByName('Price').Value := ADO.fieldbyname('Price').AsFloat;
      FieldByName('Money').Value := ADO.fieldbyname('Money').AsFloat;
      FieldByName('BBMoney').Value := ADO.fieldbyname('Money').AsFloat;
      FieldByName('HuiLv').Value := 1;
      FieldByName('BZType').Value := '人民币';
      FieldByName('QtyUnit').Value := Trim(ADO.fieldbyname('QtyUnit').AsString);
      FieldByName('ComTaiTou').Value := Trim(cust);
      FieldByName('YFName').Value := '产品销售';
      FieldByName('MainId').Value := Trim(ADO.fieldbyname('CRNO').AsString);
      FieldByName('subID').Value := Trim(ADO.fieldbyname('CRID').AsString);
      FieldByName('status').Value := '0';
      Post;
    end;
  end
  else
  begin
    YFID := Trim(ADOQueryTmp.fieldbyname('YFID').AsString);
  end;

  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
    sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
    sql.Add(' where CRID=' + CRID);
    ExecSQL;
  end;

  Result := True;
end;

function TfrmJYGLlist.YSData_Other(ADO: TADOQuery; fYFName: string; fmoney: double): Boolean;
var
  CRID, YFID, Price, PriceUnit, OrderUnit, FComTaiTou, cust: string;
begin
  Result := False;
  with ADOQueryTmp do
  begin
    Close;
    SQL.Clear;
    sql.Add('select * from YF_Money_KC where FactoryName=''' + Trim(ADO.fieldbyname('custName').asstring) + ''' and YFDefFlag1=0 ');
    Open;
  end;

  if not ADOQueryTmp.IsEmpty then
  begin
    CRID := ADOQueryTmp.fieldbyname('CRID').AsString;
  end
  else
  begin
    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('Update YF_Money_CRID set CRID=CRID+1');
      sql.Add('select * from YF_Money_CRID ');
      Open;
    end;
    CRID := ADOQueryCmd.fieldbyname('CRID').AsString;
    with ADOQueryCmd do
    begin
      Close;
      SQL.Clear;
      sql.Add('select * from YF_Money_KC where 1<>1');
      Open;
    end;
    with ADOQueryCmd do
    begin
      Append;
      FieldByName('CRID').Value := StrToInt(CRID);
      FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring);
      FieldByName('ZdyStr1').Value := '应收收';
      Post;
    end;
  end;

  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('delete  from YF_Money_CR ');
    sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + '''');
    sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + '''');
    sql.Add(' and YFName=''' + trim(fYFName) + ''' ');
    execsql;
  end;

  with ADOQueryTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select * from YF_Money_CR ');
    sql.Add(' where MainID=''' + Trim(ADO.fieldbyname('CRNO').AsString) + '''');
    sql.Add(' and subID=''' + Trim(ADO.fieldbyname('CRID').AsString) + '''');
    sql.Add(' and YFName=''' + trim(fYFName) + ''' ');
    Open;
  end;

  if ADOQueryTmp.IsEmpty then
  begin
    if GetLSNo(ADOQueryCmd, YFID, 'CS', 'YF_Money_CR', 4, 1) = False then
    begin
      Application.MessageBox('取应收最大号失败!', '提示', 0);
      Exit;
    end;

    with ADOQueryCmd do
    begin
      Close;
      sql.Clear;
      sql.Add('select * from YF_Money_CR where 1<>1');
      Open;
    end;

    with ADOQueryCmd do
    begin
      Append;
      FieldByName('YFID').Value := Trim(YFID);
      FieldByName('YFTypeId').Value := Trim(ADO.fieldbyname('CRNO').AsString);
      FieldByName('CRID').Value := StrToInt(CRID);
      FieldByName('Filler').Value := Trim(DName);
      FieldByName('CRType').Value := '应收款登记';
      FieldByName('CRFlag').Value := '应收收';
      FieldByName('QtyFlag').Value := 1;
      FieldByName('FactoryName').Value := Trim(ADO.fieldbyname('custName').asstring);
      FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', ADO.fieldbyname('CRTIme').AsDateTime));
      FieldByName('YFType').Value := '自动生成';
      FieldByName('Qty').Value := 1;
      FieldByName('Price').Value := fmoney;
      FieldByName('Money').Value := fmoney;
      FieldByName('BBMoney').Value := fmoney;
      FieldByName('HuiLv').Value := 1;
      FieldByName('BZType').Value := '人民币';
      FieldByName('QtyUnit').Value := '个';
      FieldByName('ComTaiTou').Value := Trim(cust);
      FieldByName('YFName').Value := fYFName;
      FieldByName('MainId').Value := Trim(ADO.fieldbyname('CRNO').AsString);
      FieldByName('subID').Value := Trim(ADO.fieldbyname('CRID').AsString);
      FieldByName('status').Value := '0';
      Post;
    end;
  end
  else
  begin
    YFID := Trim(ADOQueryTmp.fieldbyname('YFID').AsString);
  end;

  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
    sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)');
    sql.Add(' where CRID=' + CRID);
    ExecSQL;
  end;

  Result := True;
end;

procedure TfrmJYGLlist.InitGrid();
begin
  try
    with ADOQueryMain do
    begin
      close;
      sql.Clear;
      sql.Add(' select A.* ');
      SQL.Add(' from CK_Sample_CR A ');
      sql.Add('  where CRFlag=''出库'' and A.valid=''Y'' ');
      sql.Add(' and VisType=''寄样''  and CKName=' + quotedstr(trim(fCKName)));


      case cxTabControl1.TabIndex of
        0:
          begin
            sql.Add(' and  isnull(A.Chkstatus,''0'')=''0''');
          end;
        1:
          begin
            sql.Add(' and  isnull(A.Chkstatus,''0'')=''1''');
            sql.Add(' and CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' ');
            sql.Add(' and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' ');
          end;
        2:
          begin
            sql.Add(' and CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' ');
            sql.Add(' and CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' ');
          end;
      end;
//      showmessage(sql.Text);
      open;
    end;
    SCreateCDS20(ADOQueryMain, CDS_Main);
    SInitCDSData20(ADOQueryMain, CDS_Main);
  finally
  end;
end;

procedure TfrmJYGLlist.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := cafree;
end;

procedure TfrmJYGLlist.TBAddClick(Sender: TObject);
begin
  frmJYGLCK := TfrmJYGLCK.create(self);
  with frmJYGLCK do
  begin
    fkeyNo := '';
    fType := 0;
    fCKName := trim(self.fCKName);
    canshu1 := Self.canshu1;
    jyfs := '库存';
    if showmodal = 1 then
    begin
      TBRafresh.Click;
      self.CDS_Main.Locate('crNo', trim(fkeyNo), []);
    end;
    free;
  end;
end;

procedure TfrmJYGLlist.OrderNoChange(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 TfrmJYGLlist.FormShow(Sender: TObject);
begin
  readCxGrid(trim(self.Caption), Tv1, '样品仓库');
  SetStatus();
  InitGrid();
end;

procedure TfrmJYGLlist.FormCreate(Sender: TObject);
begin
  EndDate.Date := SGetServerDate10(ADOQueryTmp);
  BegDate.Date := EndDate.Date - 7;
  cxGrid1.Align := alclient;
end;

procedure TfrmJYGLlist.TBCloseClick(Sender: TObject);
begin
  writeCxGrid(trim(self.Caption), Tv1, '样品仓库');
  close;
end;

procedure TfrmJYGLlist.TBEditClick(Sender: TObject);
begin
  if cds_main.IsEmpty then
    exit;

  if (cds_main.fieldbyname('Filler').AsString <> trim(DName)) and (trim(canshu2) <> '高权限') then
  begin
    application.MessageBox('操作员不正确，不能修改！', '提示信息', MB_ICONERROR);
    exit;
  end;

  with ADOQueryTmp do
  begin
    close;
    sql.Clear;
    sql.Add('select * from CK_Sample_CR where Chkstatus=''1'' ');
    SQL.Add('and inoutno=' + quotedstr(trim(cds_main.fieldbyname('inoutno').AsString)));
    SQL.Add('AND VALID=''Y''');
    Open;
  end;
  if ADOQueryTmp.IsEmpty = False then
  begin
    application.MessageBox('请先撤销已审核的数据！', '提示信息', MB_ICONERROR);
    exit;
  end;
  frmJYGLCK := TfrmJYGLCK.create(self);
  with frmJYGLCK do
  begin
    fkeyNo := self.cds_main.fieldbyname('crno').AsString;
    fxiugai := self.cds_main.fieldbyname('inoutno').AsString;
    fType := 1;
    InoutNo.Enabled := false;
    fCKName := trim(self.fCKName);
    if showmodal = 1 then
    begin
      TBRafresh.Click;
      self.CDS_Main.Locate('CRNO', trim(fkeyNo), []);
    end;
    free;
  end;
end;

procedure TfrmJYGLlist.TBDelClick(Sender: TObject);
var
  YFID, CRID, note: string;
begin
  if CDS_Main.IsEmpty then
    Exit;
  if Trim(CDS_Main.fieldbyname('Filler').AsString) <> Trim(DName) then
  begin
    Application.MessageBox('不能操作他人数据!', '提示', 0);
    Exit;
  end;
  with ADOQueryTmp do
  begin
    close;
    sql.Clear;
    sql.Add('select * from CK_Sample_CR where Chkstatus=''1'' ');
    SQL.Add('and inoutno=' + quotedstr(trim(cds_main.fieldbyname('inoutno').AsString)));
    SQL.Add('AND VALID=''Y''');
    Open;
  end;
  if ADOQueryTmp.IsEmpty = False then
  begin
    application.MessageBox('请先撤销已审核的数据！', '提示信息', MB_ICONERROR);
    exit;
  end;
  if Application.MessageBox('确定要删除数据吗？', '提示', 32 + 4) <> IDYES then
    Exit;
  try
    if Trim(CDS_Main.FieldByName('CRNO').AsString) <> '' then
    begin
      ADOQueryCmd.Connection.BeginTrans;
      with ADOQueryCmd do
      begin
        Close;
        SQL.Clear;
        sql.Add('update CK_Sample_CR set Valid=''N''  where CRNO=' + quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString)));
        ExecSQL;
      end;

      ADOQueryCmd.Connection.CommitTrans;
      CDS_Main.Delete;
    end;
  except
    Application.MessageBox('数据删除失败！', '提示信息', 0);
  end;
end;

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

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

procedure TfrmJYGLlist.v1Column6CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean);
var
  colIdx0, colIdx1: integer;
begin
  colIdx0 := tv1.GetColumnByFieldName('CRNO').Index;
  if (ARow1.Values[colIdx0] = ARow2.Values[colIdx0]) then
    AAreEqual := True
  else
    AAreEqual := False;

end;

procedure TfrmJYGLlist.N1Click(Sender: TObject);
begin
  SelOKNo(CDS_Main, True);
end;

procedure TfrmJYGLlist.N2Click(Sender: TObject);
begin
  SelOKNo(CDS_Main, False);
end;

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

procedure TfrmJYGLlist.cxTabControl1Change(Sender: TObject);
begin
  SetStatus();
  InitGrid();
end;

procedure TfrmJYGLlist.tbChkClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then
    exit;
  if CDS_Main.Locate('ssel', true, []) = false then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;
  try

    ADOQueryCmd.Connection.BeginTrans;
    with CDS_Main do
    begin
      DisableControls;
      First;
      while not eof do
      begin
        if Fieldbyname('ssel').AsBoolean then
        begin
          with ADOQueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('update  CK_Sample_CR SET Chkstatus=''1'',Chktime=getdate(),Chker= ' + quotedstr(trim(DName)));
            sql.Add('where crno=' + quotedstr(trim(CDS_Main.fieldbyname('crno').AsString)));
            execsql;
          end;
          with ADOQueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('select * from   CK_Sample_CR    ');
            sql.Add('where crno=' + quotedstr(trim(CDS_Main.fieldbyname('crno').AsString)));
            Open;
          end;
          if ADOQueryCmd.fieldbyname('mjid').AsString <> '' then
          begin
            with ADOQueryCmd do
            begin
              Close;
              SQL.Clear;
              SQL.Add('exec P_Up_SampleKc ' + quotedstr(trim(CDS_Main.fieldbyname('MJID').AsString)));
              Open;
            end;
          end;
        end;
        next;
      end;
      First;
      EnableControls;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    application.MessageBox('审核成功！', '提示信息');
    TBRafresh.Click;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    application.MessageBox('审核失败！', '提示信息', 0);
  end;
end;

procedure TfrmJYGLlist.tbChkNoClick(Sender: TObject);
begin
  if CDS_Main.IsEmpty then
    exit;
  if CDS_Main.Locate('ssel', true, []) = false then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;
  try

    ADOQueryCmd.Connection.BeginTrans;
    with CDS_Main do
    begin
      DisableControls;
      First;
      while not eof do
      begin
        if Fieldbyname('ssel').AsBoolean then
        begin
          with ADOQueryCmd do
          begin
            close;
            sql.Clear;
            sql.Add('update  CK_Sample_CR SET Chkstatus=''0'',Chktime=null ,	Chker=null  ');
            sql.Add('where crno=' + quotedstr(trim(CDS_Main.fieldbyname('crno').AsString)));
            execsql;
          end;

          with ADOQueryCmd do
          begin
            Close;
            SQL.Clear;
            SQL.Add('exec P_Up_SampleKc ' + quotedstr(trim(CDS_Main.fieldbyname('MJID').AsString)));
            Open;
          end;
        end;
        next;
      end;
      First;
      EnableControls;
    end;
    ADOQueryCmd.Connection.CommitTrans;
    application.MessageBox('撤销审核成功！', '提示信息');
    TBRafresh.Click;
  except
    ADOQueryCmd.Connection.RollbackTrans;
    application.MessageBox('撤销审核失败！', '提示信息', 0);
  end;
end;

procedure TfrmJYGLlist.btn1Click(Sender: TObject);
begin
  frmJYGLCK := TfrmJYGLCK.create(self);
  with frmJYGLCK do
  begin
    fkeyNo := '';
    fType := 0;
    fCKName := trim(self.fCKName);
    canshu1 := Self.canshu1;
    jyfs := '日常';
    if showmodal = 1 then
    begin
      TBRafresh.Click;
      self.CDS_Main.Locate('crNo', trim(fkeyNo), []);
    end;
    free;
  end;
end;

end.

