unit U_KuWeiList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxButtonEdit, cxDropDownEdit, cxPC, Buttons, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter, cxNavigator; type TfrmKuWeiList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBDel: TToolButton; TBClose: TToolButton; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; Order_Main: TClientDataSet; Panel1: TPanel; v1Column7: TcxGridDBColumn; ToolButton4: TToolButton; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport2: TRMXLSExport; CDS_PRT: TClientDataSet; Label2: TLabel; QuYu: TEdit; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column6: TcxGridDBColumn; Label1: TLabel; FenQu: TEdit; Label5: TLabel; Pai: TEdit; Label6: TLabel; KWName: TEdit; Label7: TLabel; Ceng: TEdit; v1Column4: TcxGridDBColumn; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; Panel2: TPanel; ComboBox1: TComboBox; Label3: TLabel; Tv1Column1: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure CustomerNoNameChange(Sender: TObject); procedure N2Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ZJStatusChange(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); private canshu1: string; DQdate: TDateTime; procedure InitGrid(); procedure InitForm(); function DelData(): Boolean; procedure PrtData(KWID: string); { Private declarations } public FFInt, FCloth: Integer; { Public declarations } end; var frmKuWeiList: TfrmKuWeiList; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_KuWeiInPutCeng; {$R *.dfm} procedure TfrmKuWeiList.FormDestroy(Sender: TObject); begin frmKuWeiList := nil; end; procedure TfrmKuWeiList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmKuWeiList.FormCreate(Sender: TObject); begin cxgrid1.Align := alClient; canshu1 := Trim(DParameters1); end; procedure TfrmKuWeiList.TBCloseClick(Sender: TObject); begin WriteCxGrid('库位列表', Tv1, '库位管理'); Close; end; procedure TfrmKuWeiList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from KuWei A where KWType=''GG'' and Valid=''Y'' '); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmKuWeiList.InitForm(); begin ReadCxGrid('库位列表', Tv1, '库位管理'); InitGrid(); end; procedure TfrmKuWeiList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; procedure TfrmKuWeiList.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Order_Main.Locate('SSel', True, []) = False then begin application.MessageBox('请选择数据!', '提示信息'); exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if DelData() then begin //Order_Main.Delete; end; end; function TfrmKuWeiList.DelData(): Boolean; begin try Result := false; ADOQueryCmd.Connection.BeginTrans; Order_Main.DisableControls; with Order_Main do begin First; while Order_Main.Locate('SSel',True,[]) do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' UPdate KuWei Set Valid=''N'', DelTime=getdate(),DelerCode=''' + Trim(DCode) + ''',Deler=''' + Trim(DName) + ''''); sql.Add(' where KWID=''' + Trim(Order_Main.fieldbyname('KWID').AsString) + ''''); ExecSQL; end; Order_Main.Delete; end; end; Order_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmKuWeiList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel(Self.Caption, cxGrid1); end; procedure TfrmKuWeiList.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmKuWeiList.TBAddClick(Sender: TObject); begin try frmKuWeiInPutCeng := TfrmKuWeiInPutCeng.Create(Application); with frmKuWeiInPutCeng do begin if ShowModal = 1 then begin InitGrid(); end; end; finally frmKuWeiInPutCeng.Free; end; end; procedure TfrmKuWeiList.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmKuWeiList.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmKuWeiList.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmKuWeiList.CustomerNoNameChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; procedure TfrmKuWeiList.N2Click(Sender: TObject); begin SelOKNo(Order_Main, false); end; procedure TfrmKuWeiList.N1Click(Sender: TObject); begin SelOKNo(Order_Main, True); end; procedure TfrmKuWeiList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmKuWeiList.ZJStatusChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmKuWeiList.ToolButton4Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Trim(ComboBox1.Text) = '' then begin Application.MessageBox('方向不能为空!', '提示', 0); Exit; end; if Order_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; Order_Main.DisableControls; with Order_Main do begin First; while Locate('SSel', True, []) do begin PrtData(Trim(Order_Main.fieldbyname('KWID').AsString)); Edit; FieldByName('SSel').Value := False; end; end; Order_Main.EnableControls; end; procedure TfrmKuWeiList.PrtData(KWID: string); var fPrintFile, Txt, fImagePath: string; i, j: Integer; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\库位标签.rmf'; if FileExists(fPrintFile) = False then begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\库位标签.rmf'), '提示', 0); exit; end; with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select * from KuWei where KWID=''' + Trim(KWID) + ''''); Open; end; SCreateCDS20(ADOQueryTemp, CDS_PRT); SInitCDSData20(ADOQueryTemp, CDS_PRT); try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(KWID); 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 Trim(ComboBox1.Text) = '→' then begin RMVariables['FangXiang'] := '→→→→'; end else if Trim(ComboBox1.Text) = '←' then begin RMVariables['FangXiang'] := '←←←←'; end; RM1.LoadFromFile(fPrintFile); //RM1.ShowReport; RM1.PrintReport; end; procedure TfrmKuWeiList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin ModalResult := 1; end; end.