unit U_PieceSampleKcList; 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, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, cxCalendar, RM_e_Xls, cxTextEdit; type TfrmPieceSampleKcList = 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; v1Column11: TcxGridDBColumn; cv1Column12: TcxGridDBColumn; lbl1: TLabel; yptype: TEdit; cv1Column13: TcxGridDBColumn; btn1: TToolButton; Edit1: TEdit; lbl2: TLabel; btn2: TButton; v1Column12: TcxGridDBColumn; ToolButton4: TToolButton; RMXLSExport1: TRMXLSExport; ADOPrint: TADOQuery; ToolButton5: TToolButton; Panel5: TPanel; Label2: TLabel; Button5: TButton; Button6: TButton; Edit2: TEdit; ToolButton6: TToolButton; CheckBox1: TCheckBox; Tv1Column1: TcxGridDBColumn; ToolButton7: TToolButton; Label6: TLabel; Note: TEdit; 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); procedure btn2Click(Sender: TObject); procedure btn1Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure v1NotePropertiesEditValueChanged(Sender: TObject); procedure Tv1Column1PropertiesEditValueChanged(Sender: TObject); procedure ToolButton7Click(Sender: TObject); private procedure InitGrid(); procedure SetStatus(); procedure InitImage(); { Private declarations } public fType: integer; fCKName: string; canshu1: string; { Public declarations } end; var frmPieceSampleKcList: TfrmPieceSampleKcList; var Mach: array of TfrmSlt; implementation uses U_DataLink, U_Fun10, U_ZDYHelp, U_Fun, U_SysLogHelp; {$R *.dfm} procedure TfrmPieceSampleKcList.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 TfrmPieceSampleKcList.SetStatus(); begin ToolButton1.Visible := true; ToolButton5.Visible := true; btn1.Visible := true; ToolButton6.Visible := true; if fType = 10 then begin TOk.Visible := true; v1Ssel.Visible := true; ToolButton1.Visible := True; end; if canshu1 = '查询' then begin ToolButton1.Visible := False; ToolButton5.Visible := False; btn1.Visible := False; ToolButton6.Visible := False; end; end; procedure TfrmPieceSampleKcList.InitGrid(); begin try with adoqueryMain do begin close; sql.Clear; sql.Add(' select A.*,nkuwei=REPLACE(kuwei,CHAR(10), '''') '); SQL.Add(' from CK_Sample_CR A '); sql.Add(' where CKName=' + quotedstr(trim(fCKName))); if CheckBox1.Checked = True then begin sql.Add('and A.kcQty=0 '); end else begin sql.Add('and A.kcQty<>0 '); end; SQL.Add('AND Chkstatus=''1'''); sql.ADD(' and A.Valid=''Y'' and A.CRFlag=''入库'' '); if Trim(P_Code.Text) <> '' then begin SQL.Add('AND P_CODE LIKE ' + quotedstr('%' + trim(P_Code.Text) + '%')); end; if Trim(P_Color.Text) <> '' then begin SQL.Add('AND P_Color LIKE ' + quotedstr('%' + trim(P_Color.Text) + '%')); end; sql.Add(' order by A.CRTime desc,A.CRNO desc'); open; end; SCreateCDS20(adoqueryMain, CDS_Main); SInitCDSData20(adoqueryMain, CDS_Main); finally end; end; procedure TfrmPieceSampleKcList.FormClose(Sender: TObject; var Action: TCloseAction); begin writeCxGrid(self.Caption + tv1.Name, Tv1, '面料仓库'); if fType = 10 then Action := cahide else Action := cafree; end; procedure TfrmPieceSampleKcList.FormDestroy(Sender: TObject); begin frmPieceSampleKcList := nil; end; procedure TfrmPieceSampleKcList.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 TfrmPieceSampleKcList.FormShow(Sender: TObject); begin readCxGrid(self.Caption + tv1.Name, Tv1, '面料仓库'); SetStatus(); // InitGrid(); end; procedure TfrmPieceSampleKcList.TBCloseClick(Sender: TObject); begin close; end; procedure TfrmPieceSampleKcList.TBRafreshClick(Sender: TObject); begin with adoqueryMain do begin close; sql.Clear; sql.Add(' select A.*,nkuwei=REPLACE(kuwei,CHAR(10), '''') '); SQL.Add(' from CK_Sample_CR A '); sql.Add(' where CKName=' + quotedstr(trim(fCKName))); if CheckBox1.Checked = True then begin sql.Add('and A.kcQty=0 '); end else begin sql.Add('and A.kcQty<>0 '); end; SQL.Add('AND Chkstatus=''1'''); sql.ADD(' and A.Valid=''Y'' and A.CRFlag=''入库'' '); if Trim(P_Code.Text) <> '' then begin SQL.Add('AND P_CODE LIKE ' + quotedstr('%' + trim(P_Code.Text) + '%')); end; if Trim(P_Color.Text) <> '' then begin SQL.Add('AND P_Color LIKE ' + quotedstr('%' + trim(P_Color.Text) + '%')); end; sql.Add(' order by A.CRTime desc,A.CRNO desc'); open; end; SCreateCDS20(adoqueryMain, CDS_Main); SInitCDSData20(adoqueryMain, CDS_Main); end; procedure TfrmPieceSampleKcList.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmPieceSampleKcList.TOkClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; ModalResult := 1; end; procedure TfrmPieceSampleKcList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, true); end; procedure TfrmPieceSampleKcList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, false); end; procedure TfrmPieceSampleKcList.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 TfrmPieceSampleKcList.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 TfrmPieceSampleKcList.ToolButton1Click(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 TfrmPieceSampleKcList.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); FieldByName('nkuwei').Value := trim(edtKuWei.Text); post; end; end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; end end; procedure TfrmPieceSampleKcList.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin InitImage(); end; procedure TfrmPieceSampleKcList.ToolButton3Click(Sender: TObject); begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('exec P_Up_SampleKcAll'); execsql; end; end; procedure TfrmPieceSampleKcList.btn2Click(Sender: TObject); var maxno, maxno2: string; F1: string; begin if trim(Edit1.Text) = '' then exit; if trim(edtKuWei.Text) = '' then exit; try ADOQueryCmd.Connection.BeginTrans; F1 := CDS_Main.FieldByName('CRNO').AsString; while CDS_Main.Locate('SSel', true, []) do begin 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('select * from CK_Sample_CR where crno= ' + quotedstr(trim(CDS_Main.FieldByName('CRNO').AsString))); Open; end; if (StrToFloat(Edit1.Text) < (ADOQueryCmd.FieldByName('kcqty').AsFloat)) then begin if GetLSNo(ADOQueryTmp, maxno, 'SPR', 'CK_Sample_CR', 3, 1) = False then //ADOQueryTmp yaoduiyingma begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; if GetLSNo(ADOQueryTmp, maxno2, 'SPC', 'CK_Sample_CR', 3, 1) = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('exec P_Up_BPCP @rkID=' + quotedstr(trim(CDS_Main.fieldbyname('crno').AsString))); sql.Add(',@maxno=' + quotedstr(trim(maxno))); SQL.Add(',@fqty=' + quotedstr(trim(Edit1.Text))); SQL.Add(',@kuwei=' + quotedstr(Trim(edtkuwei.text))); sql.Add(',@maxno2=' + quotedstr(trim(maxno2))); sql.Add(',@filler=' + quotedstr(trim(DName))); 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; end; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('分匹成功!', '提示', 0); except ADOQueryCmd.Connection.RollbackTrans; end end; procedure TfrmPieceSampleKcList.btn1Click(Sender: TObject); begin if Panel2.Visible = False then begin Panel2.Visible := True; lbl2.Visible := True; Edit1.Visible := True; btn2.visible := True; Button1.Visible := False; end else Panel2.Visible := False; end; procedure TfrmPieceSampleKcList.ToolButton4Click(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 ADOPrint 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(ADOPrint.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 TfrmPieceSampleKcList.ToolButton5Click(Sender: TObject); begin Panel5.Visible := True; Edit2.Text := Trim(CDS_Main.fieldbyname('kcqty').AsString); end; procedure TfrmPieceSampleKcList.Button5Click(Sender: TObject); var MAXNO: string; begin try ADOQueryCmd.Connection.BeginTrans; if GetLSNo(ADOQueryTmp, MAXNO, 'SPC', 'CK_Sample_CR', 3, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); ADOQueryCmd.Connection.RollbackTrans; Exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from CK_Sample_CR'); sql.Add('where 1<>1'); open; end; with ADOQueryCmd do begin Append; FieldByName('Filler').Value := trim(DName); FieldByName('FillTime').Value := SGetServerDate(ADOQueryTmp); FieldByName('crTime').Value := SGetServerDate(ADOQueryTmp); FieldByName('CKName').Value := trim(fCKName); FieldByName('CRNO').Value := trim(MAXNO); FieldByName('inoutno').Value := Trim(MAXNO); FieldByName('CRQtyFlag').Value := -1; FieldByName('CRFlag').Value := '出库'; FieldByName('CRTYPE').Value := '库存调整'; FieldByName('kuwei').Value := trim(CDS_Main.fieldbyname('kuwei').AsString); FieldByName('factoryName').Value := trim(CDS_Main.fieldbyname('factoryName').AsString); FieldByName('P_Code').Value := trim(CDS_Main.fieldbyname('P_Code').AsString); // FieldByName('YWY').Value := trim(CDS_Main.fieldbyname('YWY').AsString); FieldByName('P_CodeName').Value := trim(CDS_Main.fieldbyname('P_CodeName').AsString); FieldByName('P_Color').Value := trim(CDS_Main.fieldbyname('P_Color').AsString); FieldByName('QtyUnit').Value := trim(CDS_Main.fieldbyname('QtyUnit').AsString); FieldByName('yptype').Value := trim(CDS_Main.fieldbyname('yptype').AsString); FieldByName('p_cf').Value := trim(CDS_Main.fieldbyname('p_cf').AsString); FieldByName('p_hx').Value := trim(CDS_Main.fieldbyname('p_hx').AsString); FieldByName('p_SPEC').Value := trim(CDS_Main.fieldbyname('p_SPEC').AsString); FieldByName('P_MF').Value := trim(CDS_Main.fieldbyname('P_MF').AsString); FieldByName('p_KZ').Value := trim(CDS_Main.fieldbyname('p_KZ').AsString); FieldByName('QTY').Value := CDS_Main.fieldbyname('kcQty').AsFloat - STRTOFLOATDEF(Edit2.Text, 0); FieldByName('Orderno').Value := trim(CDS_Main.fieldbyname('Orderno').AsString); FieldByName('mainID').Value := trim(CDS_Main.fieldbyname('mainID').AsString); FieldByName('subID').Value := trim(CDS_Main.fieldbyname('subID').AsString); FieldByName('MJID').Value := trim(CDS_Main.fieldbyname('MJID').AsString); Post; end; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('exec P_Up_SampleKc ' + quotedstr(trim(CDS_Main.fieldbyname('MJID').AsString))); // ShowMessage(SQL.Text); Open; end; if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '操作失败' then begin CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库数量超出库存数量!', '提示', 0); Exit; end; with ADOQueryTmp do begin Close; SQL.Clear; sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('修改样布库存'))); sql.Add(',' + quotedstr(trim('原库存:' + Trim(CDS_Main.fieldbyname('kcqty').AsString) + ';现库存:' + Trim(edit2.Text)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; with CDS_Main do begin Edit; CDS_Main.fieldbyname('kcqty').AsString := edit2.text; Post; end; CDS_Main.EnableControls; Panel5.Visible := False; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('操作成功!', '提示', 0); // InitGrid(); except CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; end; end; procedure TfrmPieceSampleKcList.Button6Click(Sender: TObject); begin panel5.Visible := False; end; procedure TfrmPieceSampleKcList.ToolButton6Click(Sender: TObject); begin frmSysLogHelp := TfrmSysLogHelp.create(self); with frmSysLogHelp do begin // fModel := '样布库存'; facction := '修改样布库存'; showmodal; free; end; end; procedure TfrmPieceSampleKcList.CheckBox1Click(Sender: TObject); begin TBRafresh.Click(); end; procedure TfrmPieceSampleKcList.v1NotePropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from sy_user where username=' + QuotedStr(Trim(DName))); // ShowMessage(SQL.text); open; end; if (trim(DName) = '李亚娣') or (Trim(ADOQueryTmp.fieldbyname('UDEPT').AsString) = '总经办') then begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_Sample_CR '); sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); SQL.Add('WHERE CRNO=' + QuotedStr(Trim(CDS_Main.fieldbyname('CRNO').AsString))); // ShowMessage(SQL.text); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; tv1.Controller.EditingController.ShowEdit(); except tv1.Controller.EditingController.ShowEdit(); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end end; end; procedure TfrmPieceSampleKcList.Tv1Column1PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_Sample_CR '); sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); SQL.Add('WHERE CRNO=' + QuotedStr(Trim(CDS_Main.fieldbyname('CRNO').AsString))); // ShowMessage(SQL.text); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; tv1.Controller.EditingController.ShowEdit(); except tv1.Controller.EditingController.ShowEdit(); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end end; procedure TfrmPieceSampleKcList.ToolButton7Click(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 ADOPrint 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(ADOPrint.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; end.