unit U_KuWeiManage_KW; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 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, cxPC, cxCheckComboBox, cxDropDownEdit, Menus, RM_e_Xls, TeEngine, Series, TeeProcs, Chart, DbChart, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type TfrmKuWeiManage_KW = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ToolButton2: TToolButton; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; Panel1: TPanel; KWNo: TEdit; RMXLSExport2: TRMXLSExport; v2Column8: TcxGridDBColumn; Label1: TLabel; v2Column12: TcxGridDBColumn; ToolButton3: TToolButton; ADOQueryPrt: TADOQuery; ToolButton4: TToolButton; ToolButton5: TToolButton; v2Column1: TcxGridDBColumn; ToolButton6: TToolButton; tbOK: TToolButton; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure CustomerChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure v2Column8PropertiesEditValueChanged(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure tbOKClick(Sender: TObject); private { Private declarations } procedure PrintReport(FZDYNo: string); procedure InitGrid(); procedure EditValueT(); procedure EditValueF(); public fFlag: integer; { Public declarations } RKFlag, FCYID, fmanage: string; end; var frmKuWeiManage_KW: TfrmKuWeiManage_KW; implementation uses U_DataLink, U_Fun, U_ZDYHelp; {$R *.dfm} procedure TfrmKuWeiManage_KW.PrintReport(FZDYNo: string); var fPrintFile, FFCYID: string; i, j: Integer; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDS_HZ.IsEmpty then Exit; ExportFtErpFile('库位标签.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\库位标签.rmf'; with ADOQueryPrt do begin close; sql.Clear; sql.Add(' select * from BS_KuWei where KWId=''' + Trim(FZDYNo) + ''''); open; end; try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(FZDYNo); 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 CDS_HZ.EnableControls; application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; RMVariables['QRBARCODE'] := fImagePath; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.PrintReport; // RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile + '!'), '提示', 0); Exit; end; end; procedure TfrmKuWeiManage_KW.InitGrid(); begin KWNo.SetFocus; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' select A.* from BS_KuWei A order by KWNO '); Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; ToolButton2.Click; end; EditValueF(); end; procedure TfrmKuWeiManage_KW.EditValueT(); var i: Integer; begin for i := 0 to tv2.ColumnCount - 1 do begin if uppercase(tv2.Columns[i].DataBinding.FieldName) <> 'SSEL' then tv2.Columns[i].Options.Editing := True; end; end; procedure TfrmKuWeiManage_KW.EditValueF(); var i: Integer; begin for i := 0 to tv2.ColumnCount - 1 do begin if uppercase(tv2.Columns[i].DataBinding.FieldName) <> 'SSEL' then tv2.Columns[i].Options.Editing := false; end; end; procedure TfrmKuWeiManage_KW.FormDestroy(Sender: TObject); begin frmKuWeiManage_KW := nil; end; procedure TfrmKuWeiManage_KW.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmKuWeiManage_KW.TBCloseClick(Sender: TObject); begin WriteCxGrid(Trim(Self.Caption), Tv2, '机台管理'); Close; end; procedure TfrmKuWeiManage_KW.FormShow(Sender: TObject); begin ReadCxGrid(Trim(Self.Caption), Tv2, '机台管理'); // Enddate.DateTime:=SGetServerDate(ADOQueryTemp); // begdate.DateTime:=Enddate.DateTime-30; InitGrid(); end; procedure TfrmKuWeiManage_KW.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmKuWeiManage_KW.ToolButton2Click(Sender: TObject); var sql: string; begin if ADOQueryMain.Active then begin sql := SGetFilters(Panel1, 1, 2); SDofilter(ADOQueryMain, sql); SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); end; end; procedure TfrmKuWeiManage_KW.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv2, ADOQueryMain, trim(Self.Caption)); end; procedure TfrmKuWeiManage_KW.cxTabControl1Change(Sender: TObject); begin InitGrid; end; procedure TfrmKuWeiManage_KW.N1Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; SelOKNo(CDS_HZ, True); end; procedure TfrmKuWeiManage_KW.N2Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; SelOKNo(CDS_HZ, False); end; procedure TfrmKuWeiManage_KW.CustomerChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmKuWeiManage_KW.FormCreate(Sender: TObject); begin fmanage := Trim(DParameters1); end; procedure TfrmKuWeiManage_KW.v2Column8PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate BS_KuWei '); sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); sql.Add(' , Editer=''' + Trim(DName) + ''''); sql.Add(' , Edittime=getdate()'); sql.Add(' where KWId=' + quotedstr(CDS_HZ.fieldbyname('KWId').AsString)); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; tv2.Controller.EditingController.ShowEdit(); except tv2.Controller.EditingController.ShowEdit(); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end end; procedure TfrmKuWeiManage_KW.ToolButton3Click(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if CDS_HZ.Locate('SSel', True, []) = False then begin Application.MessageBox('请先选择数据!', '提示', 0); Exit; end; with CDS_HZ do begin while CDS_HZ.Locate('SSel', True, []) = True do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update BS_KuWei set EditFlag=0 where KWID=' + QuotedStr(CDS_HZ.FieldByName('KWID').AsString)); ExecSQL; end; CDS_HZ.Edit; CDS_HZ.FieldByName('SSel').Value := False; CDS_HZ.Post; PrintReport(Trim(CDS_HZ.fieldbyname('KWId').AsString)); Next; end; end; end; procedure TfrmKuWeiManage_KW.ToolButton4Click(Sender: TObject); var maxId: string; begin KWNo.SetFocus; if GetLSNo(ADOQueryCmd, maxId, 'KW', 'BS_KuWei', 4, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('insert into BS_KuWei(KWId,Filler) values(' + quotedstr(Trim(maxId)) + ',' + quotedstr(Trim(dname)) + ')'); ExecSQL; end; InitGrid(); EditValueT(); end; procedure TfrmKuWeiManage_KW.ToolButton5Click(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if CDS_HZ.Locate('SSel', True, []) = False then begin Application.MessageBox('请先选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with CDS_HZ do begin while not Eof do begin if CDS_HZ.Locate('SSel', True, []) = True then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete BS_KuWei where KWID=' + QuotedStr(CDS_HZ.FieldByName('KWID').AsString)); ExecSQL; end; end; CDS_HZ.Edit; CDS_HZ.FieldByName('SSel').Value := False; CDS_HZ.Post; Next; end; end; InitGrid(); end; procedure TfrmKuWeiManage_KW.ToolButton6Click(Sender: TObject); var i: Integer; begin if CDS_HZ.IsEmpty then Exit; EditValueT(); end; procedure TfrmKuWeiManage_KW.tbOKClick(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if CDS_HZ.FieldByName('ssel').AsBoolean = False then begin Application.MessageBox('请先选择数据!', '提示', 0); Exit; end; ModalResult := 1; end; end.