unit U_WarpRollerRklist; 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, RM_e_Xls, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type TfrmWarpRollerRklist = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; Label2: TLabel; CRType: TComboBox; Label5: TLabel; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; CDS_Main: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; ckName: TComboBox; Label6: TLabel; Label7: TLabel; JZRKNo: TEdit; gangNo: TEdit; Label10: TLabel; RMDB_Main: TRMDBDataSet; ADOQueryPrint: TADOQuery; RM1: TRMGridReport; WBCode: TEdit; Label15: TLabel; Label17: TLabel; FactoryName: TEdit; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; ToolButton1: TToolButton; RMXLSExport1: TRMXLSExport; ADOQueryMain: TADOQuery; Label4: TLabel; fromFactoryName: TEdit; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Ssel: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1CRTime: TcxGridDBColumn; v1CRType: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Note: TcxGridDBColumn; v1Column5: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; 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); private procedure InitGrid(); procedure SetStatus(); procedure InitForm(); { Private declarations } public fCKName, canshu1: string; fCRType: string; { Public declarations } end; var frmWarpRollerRklist: TfrmWarpRollerRklist; implementation uses U_DataLink, U_Fun10, U_Fun, U_ZDYHelp, U_WarpRollerRk, U_SXYLGS; {$R *.dfm} procedure TfrmWarpRollerRklist.InitForm(); var fsj: string; begin readCxGrid(self.Caption, Tv1, '仓储管理'); SetStatus(); fsj := 'select distinct(CRType) name from CK_WarpBeam_CR where CRFlag=''入库'' '; SInitComBoxBySql(ADOQueryCmd, CRType, False, fsj); end; procedure TfrmWarpRollerRklist.SetStatus(); begin // TBEdit.Visible := False; // TBDel.Visible := False; // TBAdd.Visible := False; end; procedure TfrmWarpRollerRklist.InitGrid(); begin try with adoqueryMain do begin close; sql.Clear; sql.Add(' select A.* '); SQL.Add(',khname=(select TOP 1 khname from PD_Plan_Main e where e.mainid=(select TOP 1 mainid from PD_Plan_Card_MS f where f.pcid=A.pcid))'); SQL.Add(',P_CODE=(select TOP 1 P_CODE from PD_Plan_SUB e where e.SUBID=(select TOP 1 SUBID from PD_Plan_Card_MS f where f.pcid=A.pcid))'); SQL.Add('from CK_WarpBeam_CR A '); sql.Add(' where A.CRFlag=''入库'' '); SQL.Add(' and A.CRTime>=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)))); SQL.Add(' and A.CRTime<' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); SQL.Add(' and A.Valid =''Y'' '); // ShowMessage(SQL.Text); open; end; SCreateCDS20(adoqueryMain, CDS_Main); SInitCDSData20(adoqueryMain, CDS_Main); finally end; end; procedure TfrmWarpRollerRklist.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := cafree; end; procedure TfrmWarpRollerRklist.FormDestroy(Sender: TObject); begin frmWarpRollerRklist := nil; end; procedure TfrmWarpRollerRklist.TBAddClick(Sender: TObject); begin frmWarpRollerRk := TfrmWarpRollerRk.create(self); with frmWarpRollerRk do begin fkeyNo := ''; fType := 0; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('JZRKID', trim(fkeyNo), []); end; free; end; end; procedure TfrmWarpRollerRklist.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 TfrmWarpRollerRklist.FormShow(Sender: TObject); begin InitForm(); InitGrid(); end; procedure TfrmWarpRollerRklist.FormCreate(Sender: TObject); begin EndDate.Date := SGetServerDate10(ADOQueryTmp); BegDate.Date := EndDate.Date; end; procedure TfrmWarpRollerRklist.TBCloseClick(Sender: TObject); begin writeCxGrid(self.Caption, Tv1, '仓储管理'); close; end; procedure TfrmWarpRollerRklist.TBEditClick(Sender: TObject); var WSql: string; begin if cds_main.IsEmpty then exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select A.* from CK_WarpBeam_CR A'); SQL.Add('where A.KCID=''' + trim(cds_main.fieldbyname('KCID').AsString) + ''' '); SQL.Add('and A.CRFLAG=''出库'' and A.valid=''Y'' '); Open; end; if not ADOQueryCmd.IsEmpty then begin Application.MessageBox('此单已经产生出库,不能修改!', '提示', 0); Exit; end; WSql := ''; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin if WSql <> '' then WSql := WSql + '' + ',' + QuotedStr(Trim(CDS_Main.fieldbyname('JZRKID').AsString)) else WSql := ' in (' + QuotedStr(Trim(CDS_Main.fieldbyname('JZRKID').AsString)); Edit; FieldByName('SSel').Value := False; Post; end; end; CDS_Main.EnableControls; WSql := WSql + ')'; frmWarpRollerRk := TfrmWarpRollerRk.create(self); with frmWarpRollerRk do begin fkeyNo := WSql; fType := 1; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('JZRKID', trim(fkeyNo), []); end; free; end; end; procedure TfrmWarpRollerRklist.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('JZRKID').AsString) <> '' then begin ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin while CDS_Main.Locate('SSel', True, []) = True do begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_WarpBeam_CR set Valid=''N'' where JZRKID=' + quotedstr(Trim(CDS_Main.FieldByName('JZRKID').AsString))); ExecSQL; end; CDS_Main.Edit; CDS_Main.FieldByName('SSel').Value := False; CDS_Main.Post; Next; end; end; // with ADOQueryCmd do // begin // Close; // SQL.Clear; // SQL.Add('exec P_Up_WarpRoller ' + quotedstr(Trim(CDS_Main.FieldByName('KCID').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; TBRafresh.Click; end; except Application.MessageBox('数据删除失败!', '提示信息', 0); end; end; procedure TfrmWarpRollerRklist.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmWarpRollerRklist.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmWarpRollerRklist.TBFindClick(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 TfrmWarpRollerRklist.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmWarpRollerRklist.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmWarpRollerRklist.ToolButton1Click(Sender: TObject); var fPrintFile, FFCYID, FKCID: string; DPS, i, j: Integer; 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'; CDS_Main.DisableControls; while CDS_Main.locate('ssel', True, []) do begin FKCID := Trim(CDS_Main.fieldbyname('KCID').AsString); try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := FKCID; 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); CDS_Main.EnableControls; exit; end; with ADOQueryPrint do begin close; sql.Clear; sql.Add('select A.* from CK_WarpRoller_CR A'); sql.Add(' where A.CRFlag=''入库'' and A.Valid=''Y'' '); sql.Add(' and A.KCID= ' + quotedstr(Trim(FKCID))); open; end; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE'] := fImagePath; RM1.ShowPrintDialog := False; RM1.LoadFromFile(fPrintFile); RM1.PrintReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); CDS_Main.EnableControls; Exit; end; with CDS_Main do begin edit; fieldbyname('SSEL').value := False; post; end; end; CDS_Main.EnableControls; end; end.