unit U_DJBRKList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, cxContainer, cxImage, cxDBEdit, cxMaskEdit, cxCurrencyEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, 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; type TfrmDJBRKList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; RMDBHZ: TRMDBDataSet; CDS_HZ: TClientDataSet; CDS_PRT: TClientDataSet; TBDel: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; TBAdd: TToolButton; TBEdit: TToolButton; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; SPName: TEdit; FactoryName: TEdit; SPID: TEdit; SPSpec: TEdit; Label6: TLabel; SPCF: TEdit; Label7: TLabel; OrderNo: TEdit; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; Label9: TLabel; ToFactoryName: TEdit; Label12: TLabel; CRType: TComboBox; v1Column18: TcxGridDBColumn; Label10: TLabel; KuWei: TEdit; v1Column19: TcxGridDBColumn; Label11: TLabel; RCGangNo: TEdit; Label13: TLabel; SPColor: TEdit; Panel2: TPanel; Picture4: TcxDBImage; ADOQueryImage: TADOQuery; DSImage: TDataSource; v1Column21: TcxGridDBColumn; ToolButton1: TToolButton; cxGrid1: TcxGrid; TvMX: TcxGridDBTableView; cxGridDBColumn8: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; CDS_MX: TClientDataSet; DS_MX: TDataSource; cxGridPopupMenu2: TcxGridPopupMenu; Label14: TLabel; spcode: TEdit; v1Column5: TcxGridDBColumn; ToolButton2: TToolButton; Panel4: TPanel; Label15: TLabel; Label24: TLabel; Label25: TLabel; Label16: TLabel; cxCurrencyEdit1: TcxCurrencyEdit; Button1: TButton; Button2: TButton; cxCurrencyEdit2: TcxCurrencyEdit; QTYUNIT: TComboBox; JGC: TcxButtonEdit; jgcno: TcxCurrencyEdit; Button3: TButton; Button4: TButton; Button5: TButton; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Label17: TLabel; Qty: TEdit; Tv1Column3: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure SPIDKeyPress(Sender: TObject; var Key: Char); procedure SPIDChange(Sender: TObject); procedure SPSpecChange(Sender: TObject); procedure FactoryNameChange(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure FormResize(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton2Click(Sender: TObject); procedure JGCClick(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure JGCPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); procedure Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private canshu1, canshu2: string; procedure InitGrid(); procedure InitImage(fsubID: string); procedure InitMXGrid(MCRNO: string); { Private declarations } public { Public declarations } end; var frmDJBRKList: TfrmDJBRKList; implementation uses U_DataLink, U_RTFun, U_DJBCKInPut, U_ZdyAttachGYS, U_KuWeiListSel; {$R *.dfm} procedure TfrmDJBRKList.InitMXGrid(MCRNO: string); begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CRMX where CRNO=' + quotedstr(Trim(MCRNO))); sql.Add(' order by MXID'); Open; end; SCreateCDS20(ADOQueryTemp, CDS_MX); SInitCDSData20(ADOQueryTemp, CDS_MX); end; procedure TfrmDJBRKList.InitImage(fsubID: string); begin ADOQueryImage.close; // IF fwbid='' then exit; with ADOQueryImage do begin close; sql.Clear; sql.Add('select * from TP_File A'); sql.Add('inner join JYOrder_Sub B on B.HXFile=A.WBID'); sql.Add('where B.SubID=' + quotedstr(trim(fsubID))); open; end; end; procedure TfrmDJBRKList.FormDestroy(Sender: TObject); begin frmDJBRKList := nil; end; procedure TfrmDJBRKList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmDJBRKList.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; canshu1 := Trim(DParameters1); canshu2 := Trim(DParameters2); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; end; procedure TfrmDJBRKList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(',BPBigType=(select BPBigType from JYOrder_Main where Mainid=A.ORDMainIdRK) '); sql.Add(',PRTEColor=(select PRTEColor from JYOrder_sub where subid=A.ORDsubIdRK) '); sql.Add(' from CK_SXPB_CR A'); sql.add(' where A.CRTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); sql.Add(' and A.CRTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''''); sql.Add(' and isnull(CKName,'''')=''待检布'''); SQL.Add(' and CRFlag=''入库'' '); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmDJBRKList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmDJBRKList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmDJBRKList.TBCloseClick(Sender: TObject); begin WriteCxGrid('待检布入库列表', Tv1, '待检布仓库'); WriteCxGrid('待检布入库列表2', TvMX, '待检布仓库'); Close; end; procedure TfrmDJBRKList.FormShow(Sender: TObject); begin if Trim(canshu2) = '查看' then begin TBAdd.Visible := False; TBDel.Visible := False; TBEdit.Visible := False; end else begin TBAdd.Visible := True; TBDel.Visible := True; TBEdit.Visible := True; end; ReadCxGrid('待检布入库列表', Tv1, '待检布仓库'); ReadCxGrid('待检布入库列表2', TvMX, '待检布仓库'); //InitGrid(); end; procedure TfrmDJBRKList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('待检布入库列表', cxGrid2); end; procedure TfrmDJBRKList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); end; end; procedure TfrmDJBRKList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmDJBRKList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmDJBRKList.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除选择的数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; while CDS_Main.Locate('SSel', True, []) do begin if Trim(CDS_Main.fieldbyname('SPID').AsString) <> '' then begin if Trim(CDS_Main.fieldbyname('CRType').AsString) = '平移入库' then begin Application.MessageBox('平移入库的数据为自动生成,不能删除!', '提示', 0); ADOQueryCmd.Connection.RollbackTrans; Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_MONEY_CR A inner join YF_MONEY_CR_sub B on A.YFID=B.YFID '); sql.Add('where A.status=''1'' and B.YFPZNO=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('财务数据已确认不能操作!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where FZSPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); sql.Add(' and CRQtyFlag=-1'); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已有出库记录,不能删除!', '提示', 0); ADOQueryCmd.Connection.RollbackTrans; Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' delete CK_SXPB_CR where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); sql.Add(' exec P_CW_SXPB ''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); ExecSQL; end; end; CDS_Main.Delete; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('删除异常!', '提示', 0); end; end; procedure TfrmDJBRKList.TBAddClick(Sender: TObject); begin try frmDJBCKInPut := TfrmDJBCKInPut.Create(Application); with frmDJBCKInPut do begin FBCId := ''; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmDJBCKInPut.Free; end; end; procedure TfrmDJBRKList.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_MONEY_CR A inner join YF_MONEY_CR_sub B on A.YFID=B.YFID '); sql.Add('where A.status=''1'' and B.YFPZNO=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('财务数据已确认不能操作!', '提示', 0); Exit; end; if Trim(CDS_Main.fieldbyname('CRType').AsString) = '平移入库' then begin Application.MessageBox('平移入库的数据为自动生成,不能修改!', '提示', 0); Exit; end; try frmDJBCKInPut := TfrmDJBCKInPut.Create(Application); with frmDJBCKInPut do begin FBCId := Trim(CDS_Main.fieldbyname('SPID').AsString); TBDel.Visible := False; TBAdd.Visible := False; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmDJBCKInPut.Free; end; end; procedure TfrmDJBRKList.SPIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin {if Length(Trim(SPID.Text))<4 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(',ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId)'); //sql.Add(' ,ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId )'); sql.Add(' from CK_SXPB_CR A'); sql.add(' where SPID like :SXID'); Parameters.ParamByName('SXID').Value:='%'+Trim(SXID.Text)+'%'; Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; } end; end; procedure TfrmDJBRKList.SPIDChange(Sender: TObject); begin if Length(Trim(SPID.Text)) < 4 then begin if Trim(SPID.Text) <> '' then Exit; end; TBFind.Click; end; procedure TfrmDJBRKList.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmDJBRKList.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmDJBRKList.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin // ADOQueryImage.Close; // IF CDS_Main.IsEmpty then exit; // InitImage(CDS_Main.fieldbyname('OrdSubIdRK').AsString); end; procedure TfrmDJBRKList.FormResize(Sender: TObject); begin Panel2.Left := self.Width - Panel2.Width - 30; Panel2.Top := self.Height - Panel2.Height - 80; end; procedure TfrmDJBRKList.ToolButton1Click(Sender: TObject); begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_MONEY_CR A inner join YF_MONEY_CR_sub B on A.YFID=B.YFID '); sql.Add('where A.status=''1'' and B.YFPZNO=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('财务数据已确认不能操作!', '提示', 0); Exit; end; try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('exec P_Update_SXPB_Factory ' + quotedstr(trim(Self.CDS_Main.FieldByName('SPID').AsString)) + ',' + quotedstr(Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('CoCode').AsString)) + ',' + quotedstr(Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('CoName').AsString))); sql.Add(' exec P_CW_SXPB ''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); execsql; end; with ADOQueryCmd 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(Self.CDS_Main.FieldByName('SPID').AsString) + ' 原加工厂:' + trim(Self.CDS_Main.FieldByName('FactoryName').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmDJBRKList.TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); var FValue: string; FBounds: TRect; begin FBounds := AViewInfo.Bounds; if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then begin ACanvas.FillRect(FBounds); ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1); FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1); InflateRect(FBounds, -1, -1); //Platform specific. May not work on Linux. ACanvas.Font.Color := clBlack; ACanvas.Brush.Style := bsClear; ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop); ADone := True; end; end; procedure TfrmDJBRKList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitMXGrid(Trim(CDS_Main.fieldbyname('SPID').AsString)); end; procedure TfrmDJBRKList.ToolButton2Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; Panel4.Visible := True; end; procedure TfrmDJBRKList.JGCClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin JGC.Text := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('CoName').AsString); jgcno.Text := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('Cocode').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmDJBRKList.Button2Click(Sender: TObject); begin JGC.Text := ''; jgcno.Text := ''; QTYUNIT.Text := ''; cxCurrencyEdit1.Text := ''; cxCurrencyEdit2.Text := ''; Panel4.Visible := false; end; procedure TfrmDJBRKList.Button1Click(Sender: TObject); begin try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean = True then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_MONEY_CR A inner join YF_MONEY_CR_sub B on A.YFID=B.YFID '); sql.Add('where A.status=''1'' and B.YFPZNO=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('财务数据已确认不能操作!', '提示', 0); Exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('exec P_Update_SXPB_Factory ' + quotedstr(trim(Self.CDS_Main.FieldByName('SPID').AsString)) + ',' + quotedstr(Trim(JGCNO.Text)) + ',' + quotedstr(Trim(JGC.Text))); sql.Add(' exec P_CW_SXPB ''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); execsql; end; with ADOQueryCmd 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(Self.CDS_Main.FieldByName('SPID').AsString) + ' 原加工厂:' + trim(Self.CDS_Main.FieldByName('FactoryName').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; end; Next; end; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('修改成功!', '提示', 0); except CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('修改异常!', '提示', 0); Exit; end; end; procedure TfrmDJBRKList.Button3Click(Sender: TObject); begin try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean = True then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_MONEY_CR A inner join YF_MONEY_CR_sub B on A.YFID=B.YFID '); sql.Add('where A.status=''1'' and B.YFPZNO=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('财务数据已确认不能操作!', '提示', 0); Exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('exec P_Update_SXPB_unit ' + quotedstr(trim(Self.CDS_Main.FieldByName('SPID').AsString)) + ',' + quotedstr(Trim(QTYUNIT.Text))); sql.Add(' exec P_CW_SXPB ''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); execsql; end; with ADOQueryCmd 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(Self.CDS_Main.FieldByName('SPID').AsString) + ' 原单位:' + trim(Self.CDS_Main.FieldByName('qtyunit').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; end; Next; end; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('修改成功!', '提示', 0); except CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('修改异常!', '提示', 0); Exit; end; end; procedure TfrmDJBRKList.Button4Click(Sender: TObject); var FFreal: Double; begin if Trim(cxCurrencyEdit1.Text) <> '' then begin if TryStrToFloat(cxCurrencyEdit1.Text, FFreal) = False then begin Application.MessageBox('匹数非法数字!', '提示', 0); Exit; end; end; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean = True then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_MONEY_CR A inner join YF_MONEY_CR_sub B on A.YFID=B.YFID '); sql.Add('where A.status=''1'' and B.YFPZNO=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('财务数据已确认不能操作!', '提示', 0); Exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('exec P_Update_SXPB_PS ' + quotedstr(trim(Self.CDS_Main.FieldByName('SPID').AsString)) + ',' + quotedstr(Trim(cxCurrencyEdit1.Text))); sql.Add(' exec P_CW_SXPB ''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); execsql; end; with ADOQueryCmd 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(Self.CDS_Main.FieldByName('SPID').AsString) + ' 原匹数:' + trim(Self.CDS_Main.FieldByName('piqty').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; end; Next; end; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('修改成功!', '提示', 0); except CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('修改异常!', '提示', 0); Exit; end; end; procedure TfrmDJBRKList.Button5Click(Sender: TObject); var FFREAL: Double; begin if Trim(cxCurrencyEdit2.Text) <> '' then begin if TryStrToFloat(cxCurrencyEdit2.Text, FFREAL) = False then begin Application.MessageBox('匹数非法数字!', '提示', 0); Exit; end; end; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean = True then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_MONEY_CR A inner join YF_MONEY_CR_sub B on A.YFID=B.YFID '); sql.Add('where A.status=''1'' and B.YFPZNO=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('财务数据已确认不能操作!', '提示', 0); Exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('exec P_Update_SXPB_QTY ' + quotedstr(trim(Self.CDS_Main.FieldByName('SPID').AsString)) + ',' + quotedstr(Trim(cxCurrencyEdit2.Text))); sql.Add(' exec P_CW_SXPB ''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); execsql; end; with ADOQueryCmd 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(Self.CDS_Main.FieldByName('SPID').AsString) + ' 原匹数:' + trim(Self.CDS_Main.FieldByName('piqty').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_SXPB_CR Set MXKCQty=(select sum(isnull(Qty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)'); sql.Add(' where SPID=' + quotedstr(trim(Self.CDS_Main.FieldByName('SPID').AsString))); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where SPID=' + quotedstr(trim(Self.CDS_Main.FieldByName('SPID').AsString))); Open; end; if ADOQueryTemp.FieldByName('MXKCQty').Value < 0 then begin CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('入库数小于出库数不能保存!', '提示', 0); Exit; end; end; Next; end; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('修改成功!', '提示', 0); except CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('修改异常!', '提示', 0); Exit; end; end; procedure TfrmDJBRKList.JGCPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin JGC.Text := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('CoName').AsString); jgcno.Text := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('Cocode').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmDJBRKList.Tv1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); var FValue: string; FBounds: TRect; begin FBounds := AViewInfo.Bounds; if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then begin ACanvas.FillRect(FBounds); ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1); FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1); InflateRect(FBounds, -1, -1); //Platform specific. May not work on Linux. ACanvas.Font.Color := clBlack; ACanvas.Brush.Style := bsClear; ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop); ADone := True; end; end; procedure TfrmDJBRKList.Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); var FKuWei: string; begin FKuWei := ''; try frmKuWeiListSel := TfrmKuWeiListSel.Create(Application); with frmKuWeiListSel do begin BPBigType.Text := Trim(Self.CDS_Main.fieldbyname('BPBigType').AsString); if Self.CDS_Main.fieldbyname('PiQty').ASFLOAT > 0 then MPQty.Text := FLOATtOSTR(Self.CDS_Main.fieldbyname('Qty').ASFLOAT / Self.CDS_Main.fieldbyname('PiQty').ASFLOAT); OrderNo.Text := Trim(Self.CDS_Main.fieldbyname('OrderNo').AsString); if ShowModal = 1 then begin with CDS_HZ do begin First; while not eof do begin if CDS_HZ.FieldByName('SSel').AsBoolean then begin if FKuWei = '' then FKuWei := Trim(CDS_HZ.FieldByName('TYNo').AsString) else FKuWei := FKuWei + ',' + Trim(CDS_HZ.FieldByName('TYNo').AsString); end; Next; end; end; end; end; finally frmKuWeiListSel.Free; end; if FKuWei <> '' then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' update CK_SXPB_CR set YSKH=' + QuotedStr(Trim(FKuWei))); sql.Add(' where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); ExecSQL; end; with CDS_Main do begin Edit; FieldByName('YSKH').Value := FKuWei; Post; end; end; end; end.