unit U_PieceSampleRklist; 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, cxContainer, cxTextEdit, cxCurrencyEdit, cxCheckBox, RM_System, RM_Dataset, RM_Common, RM_Class, RM_GridReport, cxPC, Menus, U_SLT, jpeg, ComObj, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, BtnEdit; type FdDy = record inc: integer; //客户端套接字句柄 FDdys: string[32]; //客户端套接字 FdDysName: string[32]; //客户端套接字 end; TfrmPieceSampleRklist = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1P_CodeName: TcxGridDBColumn; v1P_SPEC: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; v1Note: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1CRType: TcxGridDBColumn; v1CRTime: TcxGridDBColumn; v1Filler: TcxGridDBColumn; v1FillTime: TcxGridDBColumn; Label2: TLabel; Label3: TLabel; P_CodeName: TEdit; CRType: TComboBox; Label5: TLabel; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; CDS_Main: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; ckName: TComboBox; Label6: TLabel; v1P_Code: TcxGridDBColumn; v1INoutNo: TcxGridDBColumn; Label7: TLabel; inoutNo: TEdit; v1Price: TcxGridDBColumn; v1money: TcxGridDBColumn; kuwei: TEdit; Label9: TLabel; gangNo: TEdit; Label10: TLabel; v1Column3: TcxGridDBColumn; RMDB_Main: TRMDBDataSet; v1Column4: TcxGridDBColumn; ADOQueryPrint: TADOQuery; RM1: TRMGridReport; OrderNo: TEdit; Label14: TLabel; P_Code: TEdit; Label15: TLabel; v1Column10: TcxGridDBColumn; Label17: TLabel; P_Color: TEdit; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; ToolButton1: TToolButton; GroupBox1: TGroupBox; ScrollBox1: TScrollBox; adoqueryPicture: TADOQuery; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; ToolButton2: TToolButton; OpenDialog1: TOpenDialog; Label8: TLabel; Label11: TLabel; P_KZ: TEdit; P_MF: TEdit; Label4: TLabel; Label12: TLabel; P_SPEC: TEdit; P_CF: TEdit; ToolButton3: TToolButton; lbl1: TLabel; yptype: TEdit; cv1Column11: TcxGridDBColumn; cv1Column12: TcxGridDBColumn; Edit1: TEdit; cxstylrpstry1: TcxStyleRepository; dazi1: TcxStyle; btn1: TToolButton; pnl1: TPanel; lbl2: TLabel; CY1: TEdit; btn2: TButton; v1Column11: TcxGridDBColumn; cxTabControl1: TcxTabControl; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; Panel2: TPanel; Label13: TLabel; Label16: TLabel; Button1: TButton; edtKuWei: TBtnEditA; Edit2: TEdit; Button2: TButton; CheckBox1: TCheckBox; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure P_CodeNameChange(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 TBFindClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure ToolButton2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure btn2Click(Sender: TObject); procedure btn1Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure edtKuWeiBtnClick(Sender: TObject); procedure inoutNoKeyPress(Sender: TObject; var Key: Char); procedure CRTypeChange(Sender: TObject); procedure CheckBox1Click(Sender: TObject); private procedure InitGrid(); procedure SetStatus(); procedure InitImage(); { Private declarations } public dFdDy: array[0..30] of FdDy; //客户端连接数组 fCKName, canshu1: string; fCRType: string; { Public declarations } end; //var // frmPieceSampleRklist: TfrmPieceSampleRklist; var Mach: array of TfrmSlt; implementation uses U_DataLink, U_Fun10, U_Fun, U_ZDYHelp, U_FileUp, U_PieceSampleRk; {$R *.dfm} procedure TfrmPieceSampleRklist.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 TfrmPieceSampleRklist.SetStatus(); begin TBEdit.Visible := False; TBDel.Visible := False; ToolButton4.Visible := False; ToolButton5.Visible := False; if trim(canshu1) = '仓库' then begin TBadd.Visible := true; TBDel.Visible := False; ToolButton1.Visible := False; ToolButton2.Visible := False; TBEdit.Visible := true; TBDel.Visible := true; btn1.Visible := True; end; if Trim(canshu1) = '高权限' then begin TBEdit.Visible := true; TBDel.Visible := true; end else begin end; if cxTabControl1.TabIndex = 0 then begin ToolButton4.Visible := True; end else if cxTabControl1.TabIndex = 1 then begin ToolButton5.Visible := True; end; end; procedure TfrmPieceSampleRklist.InitGrid(); var Pwhere: string; begin if SGetFilters(Panel1, 1, 2) <> '' then Pwhere := ' and ' + SGetFilters(Panel1, 1, 2); try with adoqueryTmp do begin close; sql.Clear; sql.Add('select A.*,fromFactoryName2=(case when CRType=''客户退样'' then '''' else fromFactoryName end) from CK_Sample_CR A '); sql.Add('where 1=1 '); if CheckBox1.Checked = true then begin sql.Add(' and A.CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add(' and A.CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); end; sql.Add(' and A.CRFlag=''入库'' and isnull(VisType,'''')<>''寄样'' and A.Valid=''Y'' and CKName=' + quotedstr(trim(fCKName))); if cxTabControl1.TabIndex = 0 then begin sql.Add(' and ISNULL(Chkstatus,0)= ''0'''); end else begin sql.Add(' and Chkstatus= ''1'''); end; SQL.Add(Pwhere); // ShowMessage(SQL.Text); open; end; SCreateCDS20(adoqueryTmp, CDS_Main); SInitCDSData20(adoqueryTmp, CDS_Main); finally end; end; procedure TfrmPieceSampleRklist.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := cafree; end; procedure TfrmPieceSampleRklist.FormDestroy(Sender: TObject); begin // frmPieceSampleRklist:=nil; end; procedure TfrmPieceSampleRklist.TBAddClick(Sender: TObject); begin frmPieceSampleRk := TfrmPieceSampleRk.create(self); with frmPieceSampleRk do begin fkeyNo := ''; fType := 0; fCKName := trim(self.fCKName); canshu1 := self.canshu1; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo', trim(fkeyNo), []); end; free; end; end; procedure TfrmPieceSampleRklist.P_CodeNameChange(Sender: TObject); begin if ADOQueryTmp.Active = False then Exit; SDofilter(ADOQueryTmp, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryTmp, CDS_Main); SInitCDSData20(ADOQueryTmp, CDS_Main); end; procedure TfrmPieceSampleRklist.FormShow(Sender: TObject); begin readCxGrid(trim(self.Caption), Tv1, '样品仓库'); SetStatus(); // InitGrid(); end; procedure TfrmPieceSampleRklist.FormCreate(Sender: TObject); begin EndDate.Date := SGetServerDate10(ADOQueryTmp); BegDate.Date := EndDate.Date - 7; end; procedure TfrmPieceSampleRklist.TBCloseClick(Sender: TObject); begin writeCxGrid(trim(self.Caption), Tv1, '样品仓库'); close; end; procedure TfrmPieceSampleRklist.TBEditClick(Sender: TObject); begin if cds_main.IsEmpty then exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select A.* from CK_Sample_CR A'); SQL.Add('where A.MJID=''' + trim(cds_main.fieldbyname('MJID').AsString) + ''' '); SQL.Add('and A.CRFlag=''出库'' and A.valid=''Y'' '); Open; end; if not ADOQueryCmd.IsEmpty then begin Application.MessageBox('此单已经产生出库,不能修改!', '提示', 0); Exit; end; frmPieceSampleRk := TfrmPieceSampleRk.create(self); with frmPieceSampleRk do begin fkeyNo := self.cds_main.fieldbyname('CRNO').AsString; fType := 1; fCKName := trim(self.fCKName); canshu1 := Self.canshu1; if Self.cds_main.fieldbyname('CRTYPE').AsString = '调样入库' then begin // frmPieceSampleRk.crtype.Items.Clear; frmPieceSampleRk.crtype.Items.Add('调样入库'); end; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo', trim(fkeyNo), []); end; free; end; end; procedure TfrmPieceSampleRklist.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人数据!', '提示', 0); 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; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('exec P_Up_SampleKc ' + quotedstr(Trim(CDS_Main.FieldByName('MJID').AsString))); Open; end; if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '操作失败' then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库数量超出入库数量!', '提示', 0); Exit; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; end; except Application.MessageBox('数据删除失败!', '提示信息', 0); end; end; procedure TfrmPieceSampleRklist.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmPieceSampleRklist.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmPieceSampleRklist.TBFindClick(Sender: TObject); begin if ADOQueryTmp.Active = False then Exit; SDofilter(ADOQueryTmp, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryTmp, CDS_Main); SInitCDSData20(ADOQueryTmp, CDS_Main); end; procedure TfrmPieceSampleRklist.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmPieceSampleRklist.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmPieceSampleRklist.ToolButton1Click(Sender: TObject); begin try frmFileUp := TfrmFileUp.Create(Application); with frmFileUp do begin Code.Text := Trim(Self.CDS_Main.fieldbyname('MJID').AsString); CYID := Trim(Self.CDS_Main.fieldbyname('MJID').AsString); if ShowModal = 1 then begin //Self.InitGrid(); //Self.CDS_Main.Locate('SPID',CYID,[]); end; end; finally frmFileUp.Free; end; end; procedure TfrmPieceSampleRklist.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin // InitImage(); end; procedure TfrmPieceSampleRklist.ToolButton2Click(Sender: TObject); var excelApp, WorkBook: Variant; i, j, k, ExcelRowCount: integer; maxId: string; begin if GetLSNo(ADOQueryCmd, maxId, 'SP', 'CK_Sample_CR', 4, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; 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 30 do begin if trim(excelApp.Cells[1, i].value) = '' then break; //遍历界面绑定界面中显示的字段和名称 for j := 0 to Tv1.ColumnCount - 1 do begin if trim(excelApp.Cells[1, i].value) = trim(Tv1.Columns[j].Caption) then begin dFdDy[k].inc := i; dFdDy[k].FDdys := trim(Tv1.Columns[j].DataBinding.FieldName); dFdDy[k].FdDysName := trim(Tv1.Columns[j].Caption); end; end; k := k + 1; end; except application.MessageBox('加载数组错误!', '错误信息', MB_ICONERROR); exit; end; ADOQueryCmd.Connection.BeginTrans; try for i := 2 to ExcelRowCount do begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from CK_Sample_CR where 1=2'); open; end; ADOQueryCmd.Append; //添加第i条数据 for j := 1 to k - 1 do begin if trim(dFdDy[j].FDdys) <> '' then ADOQueryCmd.fieldbyname(dFdDy[j].FDdys).Value := excelApp.Cells[i, dFdDy[j].inc].Value; end; ADOQueryCmd.FieldByName('Filler').Value := Trim(DName); ADOQueryCmd.FieldByName('CRNO').Value := Trim(maxId) + inttostr(i); ADOQueryCmd.FieldByName('INoutNo').Value := Trim(maxId) + inttostr(i); ADOQueryCmd.FieldByName('MJID').Value := Trim(maxId) + inttostr(i); ADOQueryCmd.FieldByName('CKName').Value := trim(fCKName); ADOQueryCmd.FieldByName('CRTime').Value := formatdateTime('yyyy-MM-dd', now); ADOQueryCmd.FieldByName('CRType').Value := '期初入库'; ADOQueryCmd.FieldByName('CRFlag').Value := '入库'; ADOQueryCmd.FieldByName('CRQtyFlag').Value := 1; ADOQueryCmd.Post; end; WorkBook.Close; excelApp.Quit; excelApp := Unassigned; WorkBook := Unassigned; ADOQueryCmd.Connection.CommitTrans; with ADOQueryCmd do begin close; sql.Clear; sql.Add('exec P_Up_SampleKcAll'); execsql; end; InitGrid(); except WorkBook.Close; excelApp.Quit; excelApp := Unassigned; WorkBook := Unassigned; ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('保存数据错误!', '错误信息', MB_ICONERROR); exit; end; end; procedure TfrmPieceSampleRklist.ToolButton3Click(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDS_Main.IsEmpty then Exit; ExportFtErpFile('样品入库标签.rmf', ADOQueryTmp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\样品入库标签.rmf'; while CDS_Main.Locate('SSel', True, []) do begin with ADOQueryPrint do begin Close; sql.Clear; // sql.Add('select * from CP_YDang A inner join CK_Sample_CR B on A.CYNo=B.P_Code and A.CYColor=B.P_COLOR '); sql.Add('select * from CK_Sample_CR A '); sql.Add('where CRNO=''' + Trim(CDS_Main.fieldbyname('CRNO').AsString) + ''''); // showmessage(sql.Text); Open; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(ADOQueryPrint.fieldbyname('crno').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; RMVariables['QRBARCODE'] := fImagePath; if FileExists(fPrintFile) then begin RM1.ShowPrintDialog := False; Rm1.DefaultCopies := strtointdef(trim(Edit1.Text), 1); RM1.LoadFromFile(fPrintFile); // RM1.DefaultCopies := 1; RM1.PrintReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); Exit; end; CDS_Main.edit; CDS_Main.FieldByName('ssel').Value := False; end; end; procedure TfrmPieceSampleRklist.btn2Click(Sender: TObject); var maxno, maxno2: string; F1: string; ZS: double; begin if trim(cy1.Text) = '' then exit; try ADOQueryCmd.Connection.BeginTrans; F1 := CDS_Main.FieldByName('CRNO').AsString; while CDS_Main.Locate('SSel', true, []) do begin if not TryStrToFloat(Trim(CY1.Text), ZS) then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('您填写的非数字!', '提示', 0); Exit; end; if F1 <> trim(CDS_Main.FieldByName('CRNO').AsString) then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('不能选择多个库存!', '提示', 0); Exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('UPDATE CK_Sample_CR SET QTY=' + quotedstr(Trim(CY1.Text))); 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; if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '操作失败' then begin CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库数量超出库存数量!', '提示', 0); Exit; end; with CDS_Main do begin Edit; FieldByName('SSel').Value := false; end; end; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('修改成功!', '提示', 0); pnl1.Visible := False; except ADOQueryCmd.Connection.RollbackTrans; end end; procedure TfrmPieceSampleRklist.btn1Click(Sender: TObject); begin if cds_main.IsEmpty then begin exit; end; if cds_main.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if pnl1.Visible = False then begin pnl1.Visible := True; end else pnl1.Visible := False; end; procedure TfrmPieceSampleRklist.ToolButton4Click(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'' '); sql.Add('where CRNO=' + quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('确认成功!', '提示信息'); TBRafresh.Click; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('确认失败!', '提示信息', 0); end; end; procedure TfrmPieceSampleRklist.ToolButton5Click(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'' '); sql.Add('where CRNO=' + quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('取消确认成功!', '提示信息'); TBRafresh.Click; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('取消确认失败!', '提示信息', 0); end; end; procedure TfrmPieceSampleRklist.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmPieceSampleRklist.ToolButton6Click(Sender: TObject); begin if Panel2.Visible = False then begin Panel2.Visible := True; Edit1.Visible := False; btn2.Visible := False; lbl2.Visible := False; Button1.Visible := True; end else Panel2.Visible := False; end; procedure TfrmPieceSampleRklist.Button1Click(Sender: TObject); begin if trim(edtKuWei.Text) = '' then exit; if CDS_Main.Locate('ssel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; 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; application.MessageBox('修改成功!', '提示信息'); except ADOQueryCmd.Connection.RollbackTrans; end end; procedure TfrmPieceSampleRklist.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 TfrmPieceSampleRklist.inoutNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmPieceSampleRklist.CRTypeChange(Sender: TObject); begin InitGrid(); end; procedure TfrmPieceSampleRklist.CheckBox1Click(Sender: TObject); begin InitGrid(); end; end.