unit U_PBRklist; 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, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter, 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, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue; type TfrmPBRklist = 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; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1P_CodeName: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1Note: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1CRType: TcxGridDBColumn; v1CRTime: TcxGridDBColumn; v1Filler: TcxGridDBColumn; v1FillTime: TcxGridDBColumn; Label2: TLabel; Label3: TLabel; 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; CRNo: TEdit; v1Price: TcxGridDBColumn; v1money: TcxGridDBColumn; gangNo: TEdit; Label10: TLabel; RMDB_Main: TRMDBDataSet; v1Column4: TcxGridDBColumn; ADOQueryPrint: TADOQuery; RM1: TRMGridReport; Code: TEdit; Label15: TLabel; v1Column10: TcxGridDBColumn; Label17: TLabel; fromFactoryName: TEdit; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; v1Column2: TcxGridDBColumn; ADOQueryMain: TADOQuery; v1Column1: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; ToolButton1: TToolButton; v1Column8: TcxGridDBColumn; Label4: TLabel; kuwei: TEdit; v1Column7: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column11: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Label8: TLabel; MLTYPE: TComboBox; Tv1Column3: TcxGridDBColumn; Label9: TLabel; CPColor: TEdit; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Label11: TLabel; BatchNo: TEdit; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; ToolButton2: TToolButton; CDS_Print: TClientDataSet; DataSource2: TDataSource; Panel2: TPanel; cxGrid2: TcxGrid; TvMX: TcxGridDBTableView; TvMXColumn1: TcxGridDBColumn; vMXColumn1: TcxGridDBColumn; cxGridDBColumn8: TcxGridDBColumn; vMXColumn2: TcxGridDBColumn; TvMXColumn2: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; ToolBar2: TToolBar; ToolButton3: TToolButton; ToolButton4: TToolButton; CDS_MX: TClientDataSet; DS_MX: TDataSource; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton7: TToolButton; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure 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 ToolButton2Click(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure ToolButton7Click(Sender: TObject); private procedure InitGrid(); procedure SetStatus(); { Private declarations } public fCKName, canshu1: string; fCRType, FZZType: string; { Public declarations } end; var frmPBRklist: TfrmPBRklist; implementation uses U_DataLink, U_Fun10, U_Fun, U_ZDYHelp, U_PBRk, U_FjList_RZ; {$R *.dfm} procedure TfrmPBRklist.SetStatus(); begin // TBEdit.Visible:=False; // ToolButton1.Visible:=False; // TBDel.Visible:=False; // TBPrint2.Visible:=False; // TBPrint1.Visible:=False; // ToolButton2.Visible:=False; // ToolButton3.Visible:=False; // if Trim(DParameters2)='高权限' then // begin // case cxTabControl1.TabIndex of // 0:begin // TBEdit.Visible:=true; // ToolButton1.Visible:=true; // TBDel.Visible:=true; // ToolButton2.Visible:=true; // TBPrint1.Visible:=true; // end; // 1:begin // TBPrint2.Visible:=true; // TBPrint1.Visible:=true; // ToolButton3.Visible:=true; // end; // 2:begin // // end; // end // end // else // begin // case cxTabControl1.TabIndex of // 0:begin // TBEdit.Visible:=true; // ToolButton1.Visible:=true; // TBDel.Visible:=true; // TBPrint1.Visible:=true; // end; // 1:begin // TBPrint2.Visible:=true; // TBPrint1.Visible:=true; // end; // 2:begin // // end; // end // end; end; procedure TfrmPBRklist.InitGrid(); begin try with ADOQueryMain do begin close; sql.Clear; sql.Add('select A.* '); sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.CRNO and TFType=''坯布汇总附件'' ),0)>0 '); sql.Add('then Cast(1 as bit) else Cast(0 as bit) end as FJFlag'); sql.Add(' from CK_PB_CR A '); sql.Add('where A.CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' '); sql.Add('and A.CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' '); sql.Add('and A.CRFlag=''入库'' and A.Valid=''Y'' and CKName=''坯布仓库'' '); SQL.Add('AND MLTYPE=''面布'''); // if canshu1 = '录入' then // begin // Sql.Add(' and Filler=' + quotedstr(Trim(DName))); // end; sql.Add('order by A.CRNO,A.Code '); open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); TBFind.Click; finally end; end; procedure TfrmPBRklist.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := cafree; end; procedure TfrmPBRklist.FormDestroy(Sender: TObject); begin frmPBRklist := nil; end; procedure TfrmPBRklist.TBAddClick(Sender: TObject); begin frmPBRk := TfrmPBRk.create(self); with frmPBRk do begin fkeyNo := ''; fType := 0; fCRType := self.fCRType; FZZType := self.FZZType; FactoryName.Text := '本厂'; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo', trim(fkeyNo), []); end; free; end; end; procedure TfrmPBRklist.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 TfrmPBRklist.FormShow(Sender: TObject); begin readCxGrid(self.Caption, Tv1, '面料仓库'); SetStatus(); // InitGrid(); end; procedure TfrmPBRklist.FormCreate(Sender: TObject); begin EndDate.Date := SGetServerDate10(ADOQueryTmp); BegDate.Date := EndDate.Date - 7; cxGrid1.Align := alclient; end; procedure TfrmPBRklist.TBCloseClick(Sender: TObject); begin writeCxGrid(self.Caption, Tv1, '面料仓库'); close; end; procedure TfrmPBRklist.TBEditClick(Sender: TObject); begin if cds_main.IsEmpty then exit; with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR_Sub where YFPZNO=''' + Trim(CDS_Main.fieldbyname('CRID').AsString) + ''''); Open; end; if ADOQueryTmp.IsEmpty = False then begin Application.MessageBox('已经生成财务数据不能操作!', '提示', 0); Exit; end; with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from CK_PB_CR where Valid=''Y'' and CRFlag=''出库'''); sql.Add('and KCID=' + QuotedStr(Trim(CDS_Main.fieldbyname('KCID').AsString))); Open; end; if ADOQueryTmp.IsEmpty = False then begin Application.MessageBox('已出库数据不能操作!', '提示', 0); Exit; end; frmPBRk := TfrmPBRk.create(self); with frmPBRk do begin fkeyNo := self.cds_main.fieldbyname('CRID').AsString; fType := 1; fckName := self.fckName; fCRType := self.fCRType; if showmodal = 1 then begin TBRafresh.Click; self.CDS_Main.Locate('CRID', trim(fkeyNo), []); end; free; end; end; procedure TfrmPBRklist.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from CK_PB_CR where Valid=''Y'' and CRFlag=''出库'''); sql.Add('and KCID=' + QuotedStr(Trim(CDS_Main.fieldbyname('KCID').AsString))); Open; end; if ADOQueryTmp.IsEmpty = False then begin Application.MessageBox('已出库数据不能操作!', '提示', 0); Exit; end; with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR_Sub where YFPZNO=''' + Trim(CDS_Main.fieldbyname('CRID').AsString) + ''''); Open; end; if ADOQueryTmp.IsEmpty = False then begin Application.MessageBox('已经生成财务数据不能操作!', '提示', 0); Exit; end; if (cds_main.fieldbyname('Filler').AsString <> trim(DName)) and (trim(canshu1) <> '高权限') then begin application.MessageBox('操作员不正确,不能修改!', '提示信息', MB_ICONERROR); exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try if Trim(CDS_Main.FieldByName('CRID').AsString) <> '' then begin ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_PB_CR set Valid=''N'' where CRID=' + quotedstr(Trim(CDS_Main.FieldByName('CRID').AsString))); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('exec P_Up_PBKc ' + 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; end; except Application.MessageBox('数据删除失败!', '提示信息', 0); end; end; procedure TfrmPBRklist.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmPBRklist.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmPBRklist.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 TfrmPBRklist.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmPBRklist.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmPBRklist.ToolButton1Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try frmFjList_RZ := TfrmFjList_RZ.Create(Application); with frmFjList_RZ do begin fkeyNO := Trim(Self.CDS_Main.fieldbyname('CRNO').AsString); fType := '坯布汇总附件'; if ShowModal = 1 then begin end; end; finally frmFjList_RZ.Free; end; end; procedure TfrmPBRklist.ToolButton2Click(Sender: TObject); var MBCIOID: string; fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MBCIOID := ''; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin MBCIOID := MBCIOID + ',' + Trim(CDS_Main.fieldbyname('CRNO').AsString); Edit; FieldByName('SSel').Value := False; Post; end; end; CDS_Main.EnableControls; ExportFtErpFile('坯布入库码单.rmf', ADOQueryTmp); with ADOQueryPrint do begin Close; sql.Clear; sql.Add('exec P_Print_PBRK'); sql.add('@crno=' + QuotedStr(trim(CDS_Main.fieldbyname('CRNO').AsString))); // ShowMessage(sql.text); Open; end; SCreateCDS20(ADOQueryPrint, CDS_Print); SInitCDSData20(ADOQueryPrint, CDS_Print); try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(ADOQueryPrint.fieldbyname('CRID').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; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\坯布入库码单.rmf'; if FileExists(fPrintFile) then begin RMVariables['QRBARCODE'] := fImagePath; RM1.LoadFromFile(fPrintFile); // RMVariables['SYRName'] := Trim(SYRName); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\坯布入库码单.rmf'), '提示', 0); end; end; procedure TfrmPBRklist.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin with ADOQueryTmp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CRMX A where CRNO=' + quotedstr(Trim(CDS_Main.FIELDBYNAME('CRID').AsString))); sql.Add(' order by MJID'); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryTmp, CDS_MX); SInitCDSData20(ADOQueryTmp, CDS_MX); end; procedure TfrmPBRklist.ToolButton5Click(Sender: TObject); var UserInput: string; begin UserInput := ''; // 初始化输入值 if InputQuery('缸号修改', '请输入缸号 :', UserInput) then begin try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_PB_CR SET BatchNo= ' + QuotedStr(Trim(UserInput))); sql.Add('where CRID= ' + QuotedStr(Trim(Self.CDS_Main.fieldbyname('CRID').AsString))); 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('CRID:' + trim(Self.CDS_Main.fieldbyname('CRID').AsString) + '从' + Trim(Self.CDS_Main.fieldbyname('BatchNo').AsString) + '改为' + UserInput))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('修改成功!', '提示信息'); with CDS_MAIN do begin EDIT; FIELDBYNAME('BatchNo').Value := UserInput; POST; end; except application.MessageBox('修改失败!', '提示信息', 0); end; end else ShowMessage('用户取消了输入!'); end; procedure TfrmPBRklist.ToolButton6Click(Sender: TObject); var UserInput: string; begin UserInput := ''; // 初始化输入值 if InputQuery('颜色修改', '请输入颜色 :', UserInput) then begin try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_PB_CR SET CPColor= ' + QuotedStr(Trim(UserInput))); sql.Add('where CRID= ' + QuotedStr(Trim(Self.CDS_Main.fieldbyname('CRID').AsString))); 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('CRID:' + trim(Self.CDS_Main.fieldbyname('CRID').AsString) + '从' + Trim(Self.CDS_Main.fieldbyname('CPColor').AsString) + '改为' + UserInput))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('修改成功!', '提示信息'); with CDS_MAIN do begin EDIT; FIELDBYNAME('CPColor').Value := UserInput; POST; end; except application.MessageBox('修改失败!', '提示信息', 0); end; end else ShowMessage('用户取消了输入!'); end; procedure TfrmPBRklist.ToolButton7Click(Sender: TObject); var UserInput: string; begin UserInput := ''; // 初始化输入值 if InputQuery('品名修改', '请输入品名 :', UserInput) then begin try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_PB_CR SET CodeName= ' + QuotedStr(Trim(UserInput))); sql.Add('where CRID= ' + QuotedStr(Trim(Self.CDS_Main.fieldbyname('CRID').AsString))); 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('CRID:' + trim(Self.CDS_Main.fieldbyname('CRID').AsString) + '从' + Trim(Self.CDS_Main.fieldbyname('CodeName').AsString) + '改为' + UserInput))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('修改成功!', '提示信息'); with CDS_MAIN do begin EDIT; FIELDBYNAME('CodeName').Value := UserInput; POST; end; except application.MessageBox('修改失败!', '提示信息', 0); end; end else ShowMessage('用户取消了输入!'); end; end.