unit U_ShaRKListWSQ; 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, cxPC, IniFiles, jpeg, U_SLT, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu; type TfrmShaRKListWSQ = 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; TBRKHC: TToolButton; TBEdit: TToolButton; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label12: TLabel; SPName: TEdit; FactoryName: TEdit; SPID: TEdit; SPSpec: TEdit; CRType: TComboBox; Label6: TLabel; SPCF: TEdit; Label7: TLabel; PBNO: TEdit; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; v1Column16: TcxGridDBColumn; v1Column1: TcxGridDBColumn; Label11: TLabel; FromFactoryName: TEdit; v1Column10: TcxGridDBColumn; Label9: TLabel; ToFactoryName: TEdit; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; Label10: TLabel; SXPinPai: TEdit; TBZF: TToolButton; cxTabControl1: TcxTabControl; Label13: TLabel; BatchNo: TEdit; ToolButton1: TToolButton; TBRKQC: TToolButton; TBRKZD: TToolButton; TBRKCGJG: TToolButton; GroupBox1: TGroupBox; ScrollBox1: TScrollBox; ToolButton2: TToolButton; adoqueryPicture: TADOQuery; v1Column19: TcxGridDBColumn; v1Column20: TcxGridDBColumn; CDS_MX: TClientDataSet; DSMX: TDataSource; cxGridPopupMenu2: TcxGridPopupMenu; ToolButton3: TToolButton; v1Column21: TcxGridDBColumn; PopupMenu2: TPopupMenu; N3: TMenuItem; N4: TMenuItem; v1Column22: TcxGridDBColumn; Panel2: TPanel; Button1: TButton; Button2: TButton; CGJGType: TComboBox; Label14: TLabel; Panel3: TPanel; Label15: TLabel; Button3: TButton; Button4: TButton; JGWZHCType: TComboBox; v1Column23: TcxGridDBColumn; ToolButton4: TToolButton; ToolButton5: TToolButton; RMDBDataSet1: TRMDBDataSet; ClientDataSet1: TClientDataSet; RMGridReport1: TRMGridReport; v1Column24: TcxGridDBColumn; ToolButton6: TToolButton; chkprice: TCheckBox; TBPrice: TToolButton; v1Column25: TcxGridDBColumn; v1Column13: TcxGridDBColumn; ToolButton7: TToolButton; ToolButton8: TToolButton; v1Column15: TcxGridDBColumn; ToolButton9: TToolButton; Panel4: TPanel; cxGrid1: TcxGrid; TvMX: TcxGridDBTableView; cxGridDBColumn8: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; ToolBar2: TToolBar; ToolButton10: TToolButton; ToolButton11: TToolButton; vMXColumn1: TcxGridDBColumn; Edit1: TEdit; vMXColumn2: TcxGridDBColumn; RM2: TRMGridReport; RMDBDataSet2: TRMDBDataSet; Tv1Column1: TcxGridDBColumn; Tv1Column2: 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 TBRKHCClick(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 TBZFClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure BatchNoKeyPress(Sender: TObject; var Key: Char); procedure ToolButton1Click(Sender: TObject); procedure TBRKQCClick(Sender: TObject); procedure TBRKZDClick(Sender: TObject); procedure TBRKCGJGClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure N3Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure TBPriceClick(Sender: TObject); procedure chkpriceClick(Sender: TObject); procedure ToolButton7Click(Sender: TObject); procedure ToolButton8Click(Sender: TObject); procedure cxGridDBColumn8PropertiesEditValueChanged(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure ToolButton9Click(Sender: TObject); private canshu2, canshu3: string; procedure InitGrid(); procedure SetStatus(); procedure InitImage(); procedure ReadINIFile(); { Private declarations } public canshu1: string; FCHEJIAN: string; { Public declarations } end; //var // frmShaRKList: TfrmShaRKList; var Mach: array of TfrmSlt; implementation uses U_DataLink, U_RTFun, U_ShaRKInPutWSQ, U_FileUp; {$R *.dfm} procedure TfrmShaRKListWSQ.SetStatus(); begin toolbutton7.Visible := false; toolbutton8.Visible := false; TBDel.Visible := false; tbedit.visible := false; tbzf.Visible := false; tbprice.Visible := false; case cxTabControl1.TabIndex of 0: begin if trim(canshu1) = '管理' then begin toolbutton7.Visible := true; end; TBDel.Visible := true; tbedit.visible := true; tbzf.Visible := true; tbprice.Visible := true; end; 1: begin if trim(canshu1) = '管理' then begin toolbutton8.Visible := true; end; end; end; end; procedure TfrmShaRKListWSQ.FormDestroy(Sender: TObject); begin //frmShaRKList:=nil; end; procedure TfrmShaRKListWSQ.FormClose(Sender: TObject; var Action: TCloseAction); var i, j: integer; begin j := length(Mach); if j > 0 then begin for i := 0 to j - 1 do begin Mach[i].free; end; end; SetLength(Mach, 0); Action := caFree; end; procedure TfrmShaRKListWSQ.ReadINIFile(); var programIni: Tinifile; //配置文件名 FileName: string; begin FileName := ExtractFilePath(Paramstr(0)) + 'SYSTEMSET.INI'; programIni := Tinifile.create(FileName); server := programIni.ReadString('SERVER', '服务器地址', '127.0.0.1'); programIni.Free; end; procedure TfrmShaRKListWSQ.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; ReadCxGrid('纱线入库列表', Tv1, '纱线仓库3'); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; canshu1 := Trim(DParameters1); canshu2 := Trim(DParameters2); canshu3 := Trim(DParameters3); end; procedure TfrmShaRKListWSQ.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.*,jsMoney=cast(ROUND(price*qty,2) as decimal(18,2)) '); 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=''入库'' '); if chkprice.Checked then SQL.Add(' and isnull(price,0)=0 '); if cxTabControl1.TabIndex = 0 then begin Sql.Add(' and ZFFlag=0 and ChkStatus=0 '); end else if cxTabControl1.TabIndex = 2 then begin Sql.Add(' and ZFFlag=1 '); end else if cxTabControl1.TabIndex = 1 then begin Sql.Add(' and ZFFlag=0 and ChkStatus=1'); end; if Trim(Self.Caption) = '纱线入库管理' then begin Sql.Add(' and filler=' + quotedstr(Trim(DName))); end; SQL.Add('AND CHEJIAN=' + QuotedStr(FCHEJIAN)); SQL.Add(' order by CRTime desc'); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmShaRKListWSQ.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmShaRKListWSQ.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmShaRKListWSQ.TBCloseClick(Sender: TObject); begin WriteCxGrid('纱线入库列表', Tv1, '纱线仓库3'); Close; end; procedure TfrmShaRKListWSQ.FormShow(Sender: TObject); begin SetStatus(); // TBRKQC.Visible := False; // TBRKZD.Visible := False; // TBRKCGJG.Visible := False; // TBRKHC.Visible := False; // TBDel.Visible := False; // TBEdit.Visible := False; // TBZF.Visible := False; // cxTabControl1.Visible := False; // TBPrice.Visible := False; // // if Trim(Self.Caption) = '纱线入库管理' then // begin // TBRKQC.Visible := true; // TBRKZD.Visible := true; // TBRKCGJG.Visible := true; // TBRKHC.Visible := true; // TBDel.Visible := true; // TBEdit.Visible := true; // TBZF.Visible := true; // cxTabControl1.Visible := true; // end; // if Trim(Self.Caption) = '纱线入库单价修改' then // begin // TBPrice.Visible := true; // end; // // if Trim(Self.Caption) = '纱线入库管理(高权限)' then // begin // canshu1 := '高权限'; // TBRKQC.Visible := true; // TBRKZD.Visible := true; // TBRKCGJG.Visible := true; // TBRKHC.Visible := true; // TBDel.Visible := true; // TBEdit.Visible := true; // TBZF.Visible := true; // cxTabControl1.Visible := true; // end; //InitGrid(); end; procedure TfrmShaRKListWSQ.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('纱线入库列表', cxGrid2); end; procedure TfrmShaRKListWSQ.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 TfrmShaRKListWSQ.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmShaRKListWSQ.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmShaRKListWSQ.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if cxTabControl1.TabIndex <> 0 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; with CDS_Main do begin while 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 ADOQueryCmd do begin Close; sql.Clear; sql.Add(' delete CK_SXPB_CR where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); sql.Add(' delete CK_SXPB_CR_MX where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' select SUM(CRQtyFlag*piqty)MXKCPiQty,SUM(CRQtyFlag*qty) MXKCQty,SPName,FactoryName '); sql.Add(' from CK_SXPB_CR A where isnull(CKName,'''')=''纱线'' '); SQL.Add('and spname=' + QuotedStr(Trim(CDS_Main.fieldbyname('SPName').asstring))); SQL.Add('and FactoryName=' + QuotedStr(Trim(CDS_Main.fieldbyname('FactoryName').asstring))); SQL.Add('and chejian=' + QuotedStr(Trim(FCHEJIAN))); SQL.Add('and isnull(BatchNO,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('BatchNO').asstring))); SQL.Add('and isnull(SPSpec,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('SPSpec').asstring))); SQL.Add(' and ZFFlag=0 '); sql.Add('group by SPName,FactoryName,chejian,isnull(BatchNO,''''),isnull(SPSpec,'''')'); SQL.ADD('having SUM(CRQtyFlag*qty) <0'); open; end; if ADOQueryCmd.IsEmpty = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库数大于库存数不能保存!', '提示', 0); Exit; end; CDS_Main.Delete; end else begin CDS_Main.Delete; end; end; end; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('删除成功!', '提示', 0); InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('删除失败!', '提示', 0); end; end; procedure TfrmShaRKListWSQ.TBRKHCClick(Sender: TObject); begin Panel3.Visible := True; end; procedure TfrmShaRKListWSQ.TBEditClick(Sender: TObject); var wsql: string; begin if CDS_Main.IsEmpty then Exit; if cxTabControl1.TabIndex <> 0 then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Trim(CDS_Main.fieldbyname('CRType').AsString) = '平移入库' then begin Application.MessageBox('平移入库的数据为自动生成,不能修改!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR_Sub where YFPZNO=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已经生成应付款不能修改!', '提示', 0); Exit; end; wsql := ' '; with CDS_Main do begin First; while not Eof do begin if CDS_Main.fieldbyname('SSEL').AsBoolean then begin if wsql = ' ' then wsql := wsql + quotedstr(trim(Trim(CDS_Main.fieldbyname('spid').AsString))) else wsql := wsql + ',' + quotedstr(trim(Trim(CDS_Main.fieldbyname('spid').AsString))); end; Next; CDS_Main.EnableControls; end; end; try frmShaRKInPutWSQ := TfrmShaRKInPutWSQ.Create(Application); with frmShaRKInPutWSQ do begin FCHEJIAN := SELF.FCHEJIAN; wsql2 := '(' + wsql + ')'; FBCId := Trim(CDS_Main.fieldbyname('SPID').AsString); TBDel.Visible := False; TBAdd.Visible := False; if Pos('回仓', Trim(CDS_Main.fieldbyname('CRType').AsString)) > 0 then begin ZHFlag := '0'; end; canshu88 := Self.canshu1; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmShaRKInPutWSQ.Free; end; end; procedure TfrmShaRKListWSQ.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 TfrmShaRKListWSQ.SPIDChange(Sender: TObject); begin if Length(Trim(SPID.Text)) < 4 then begin if Trim(SPID.Text) <> '' then Exit; end; TBFind.Click; end; procedure TfrmShaRKListWSQ.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmShaRKListWSQ.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmShaRKListWSQ.TBZFClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if cxTabControl1.TabIndex <> 0 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; with CDS_Main do begin while 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 ADOQueryCmd do begin Close; sql.Clear; sql.Add(' UPdate CK_SXPB_CR Set ZFFlag=1,ZFTime=Getdate(),ZFPerson=''' + Trim(DName) + ''''); sql.Add(' where FZSPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' select SUM(CRQtyFlag*piqty)MXKCPiQty,SUM(CRQtyFlag*qty) MXKCQty,SPName,FactoryName '); sql.Add(' from CK_SXPB_CR A where isnull(CKName,'''')=''纱线'' '); SQL.Add('and spname=' + QuotedStr(Trim(CDS_Main.fieldbyname('SPName').asstring))); SQL.Add('and FactoryName=' + QuotedStr(Trim(CDS_Main.fieldbyname('FactoryName').asstring))); SQL.Add('and chejian=' + QuotedStr(Trim(FCHEJIAN))); SQL.Add('and isnull(BatchNO,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('BatchNO').asstring))); SQL.Add('and isnull(SPSpec,'''')=' + QuotedStr(Trim(CDS_Main.fieldbyname('SPSpec').asstring))); SQL.Add(' and ZFFlag=0 '); sql.Add('group by chejian,SPName,FactoryName,isnull(BatchNO,''''),isnull(SPSpec,'''')'); SQL.ADD('having SUM(CRQtyFlag*qty) <0'); open; end; if ADOQueryCmd.IsEmpty = False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('出库数大于库存数不能保存!', '提示', 0); Exit; end; CDS_Main.Delete; end else begin CDS_Main.Delete; end; end; end; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('作废成功!', '提示', 0); InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('作废失败!', '提示', 0); end; end; procedure TfrmShaRKListWSQ.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmShaRKListWSQ.BatchNoKeyPress(Sender: TObject; var Key: Char); begin if Key <> #13 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from CK_SXPB_CR A'); sql.add(' where A.BatchNo=''' + Trim(BatchNo.Text) + ''''); sql.Add(' and isnull(CKName,'''')=''纱线'''); SQL.Add(' and CRFlag=''入库'' '); {if Trim(canshu2)<>'' then begin SQL.Add(' and isnull(DeptName,'''')='''+Trim(canshu2)+''''); end;} if cxTabControl1.TabIndex = 0 then begin Sql.Add(' and ZFFlag=0 '); end else if cxTabControl1.TabIndex = 1 then begin Sql.Add(' and ZFFlag=1 '); end; SQL.Add(' order by CRTime desc'); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmShaRKListWSQ.ToolButton1Click(Sender: TObject); var i, y: Integer; MaxNo, MMXID, MCRNO: string; str, str2: string; begin if InputQuery('输入板数', '输入板数', str) then begin MCRNO := Trim(CDS_MAIN.fieldbyname('SPID').AsString); if GetLSNo(ADOQueryTemp, MaxNo, 'MCM', 'CK_SXPB_CR_MX', 3, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; y := CDS_MX.RecordCount; try ADOQueryCmd.Connection.BeginTrans; for i := 1 to strtointdef(str, 1) do begin y := y + 1; MMXID := Trim(MaxNo) + Trim(inttostr(i)); with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('insert into CK_SXPB_CR_MX (spid,banid,banqty,banno)'); sql.Add('values(' + quotedstr(MCRNO)); sql.Add(',' + quotedstr(Trim(MMXID))); sql.Add(',0'); sql.Add(',' + quotedstr(INTTOSTR(y))); sql.Add(')'); ExecSQL; end; end; ADOQueryCmd.Connection.CommitTrans; with ADOQueryTemp do begin Close; sql.Clear; if CDS_Main.IsEmpty = false then sql.Add('select * from CK_SXPB_CR_MX where spid=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''') else sql.Add('select * from CK_SXPB_CR_MX where 1=2'); Open; end; SCreateCDS20(ADOQueryTemp, CDS_MX); SInitCDSData20(ADOQueryTemp, CDS_MX); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('添加失败!', '提示', 0); end; end; end; procedure TfrmShaRKListWSQ.TBRKQCClick(Sender: TObject); begin try frmShaRKInPutWSQ := TfrmShaRKInPutWSQ.Create(Application); with frmShaRKInPutWSQ do begin FBCId := ''; FCRType := '期初入库'; FHZCRType := '期初入库'; ZHFlag := '1'; FCHEJIAN := Self.FCHEJIAN; frmShaRKInPutWSQ.canshu3 := Trim(Self.canshu3); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmShaRKInPutWSQ.Free; end; end; procedure TfrmShaRKListWSQ.TBRKZDClick(Sender: TObject); begin try frmShaRKInPutWSQ := TfrmShaRKInPutWSQ.Create(Application); with frmShaRKInPutWSQ do begin FBCId := ''; FCRType := '客户自带入库'; FHZCRType := '客户自带入库'; ZHFlag := '1'; FCHEJIAN := Self.FCHEJIAN; frmShaRKInPutWSQ.canshu3 := Trim(Self.canshu3); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmShaRKInPutWSQ.Free; end; end; procedure TfrmShaRKListWSQ.TBRKCGJGClick(Sender: TObject); begin Panel2.Visible := True; end; procedure TfrmShaRKListWSQ.ToolButton2Click(Sender: TObject); begin try frmFileUp := TfrmFileUp.Create(Application); with frmFileUp do begin Code.Text := Trim(Self.CDS_Main.fieldbyname('SPID').AsString); CYID := Trim(Self.CDS_Main.fieldbyname('SPID').AsString); if ShowModal = 1 then begin //Self.InitGrid(); //Self.CDS_Main.Locate('SPID',CYID,[]); end; end; finally frmFileUp.Free; end; end; procedure TfrmShaRKListWSQ.InitImage(); var i, j: integer; jpg: TJpegImage; myStream: TADOBlobStream; begin j := length(Mach); if j > 0 then begin for i := 0 to j - 1 do begin Mach[i].free; end; end; SetLength(Mach, 0); if CDS_Main.IsEmpty then exit; try with adoqueryPicture do begin close; sql.Clear; sql.Add(' select A.TFID,A.WBID,A.FilesOther,B.FileName from TP_File A,XD_File B where A.TFID =B.XFID '); if CDS_Main.IsEmpty = False then begin sql.Add('and A.WBID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); end else begin sql.add(' and 1=2'); end; open; end; j := adoqueryPicture.RecordCount; if j < 1 then exit; adoqueryPicture.DisableControls; adoqueryPicture.First; SetLength(Mach, j); jpg := TJpegImage.Create(); for i := 0 to j - 1 do begin if triM(adoqueryPicture.fieldbyname('FilesOther').AsString) <> '' then begin myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')), bmread); jpg.LoadFromStream(myStream); Mach[i] := TfrmSlt.Create(Self); Mach[i].Name := trim(adoqueryPicture.fieldbyname('TFID').AsString); Mach[i].Parent := ScrollBox1; Mach[i].Left := 0 + i * 165; Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString, adoqueryPicture.fieldbyname('FileName').AsString, jpg); end; adoqueryPicture.Next; end; adoqueryPicture.EnableControls; finally jpg.free; application.ProcessMessages; end; end; procedure TfrmShaRKListWSQ.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin InitImage(); end; procedure TfrmShaRKListWSQ.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin with ADOQueryTemp do begin Close; sql.Clear; if CDS_Main.IsEmpty = false then sql.Add('select * from CK_SXPB_CR_MX where spid=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''') else sql.Add('select * from CK_SXPB_CR_MX where 1=2'); Open; end; SCreateCDS20(ADOQueryTemp, CDS_MX); SInitCDSData20(ADOQueryTemp, CDS_MX); end; procedure TfrmShaRKListWSQ.N3Click(Sender: TObject); begin SelOKNo(CDS_MX, True); end; procedure TfrmShaRKListWSQ.N4Click(Sender: TObject); begin SelOKNo(CDS_MX, False); end; procedure TfrmShaRKListWSQ.ToolButton3Click(Sender: TObject); var fPrintFile, FFCYID: string; DPS, i, j: Integer; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin SPID.SetFocus; if CDS_Main.IsEmpty then begin Application.MessageBox('没有选择数据', '提示', 0); Exit; end; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\纱线标签.rmf'; CDS_Main.DisableControls; DPS := 0; FFCYID := ''; i := 1; j := 1; with CDS_Main do begin First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean = True then begin try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(CDS_Main.fieldbyname('SPID').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; RMVariables['QRBARCODE'] := fImagePath; for i := 1 to j do begin if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RMVariables['SPName'] := Trim(CDS_Main.fieldbyname('SPName').AsString); RMVariables['crtime'] := Trim(CDS_Main.fieldbyname('crtime').AsString); RMVariables['khname'] := Trim(CDS_Main.fieldbyname('khname').AsString); RMVariables['FactoryName'] := Trim(CDS_Main.fieldbyname('FactoryName').AsString); RMVariables['BatchNo'] := Trim(CDS_Main.fieldbyname('BatchNo').AsString); RMVariables['SPColor'] := Trim(CDS_Main.fieldbyname('SPColor').AsString); // RMVariables['MXQty'] := CDS_MX.fieldbyname('MXQty').Value; RMVariables['PiQty'] := CDS_Main.fieldbyname('PiQty').Value; RMVariables['qty'] := CDS_Main.fieldbyname('qty').Value; // RM1.PrintReport; RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\纱线标签.rmf'), '提示', 0); Exit; end; end; end; Next; end; end; CDS_Main.EnableControls; end; procedure TfrmShaRKListWSQ.Button1Click(Sender: TObject); begin if Trim(CGJGType.Text) = '' then begin Application.MessageBox('采购加工入库类型不能为空!', '提示', 0); Exit; end; Panel2.Visible := False; try frmShaRKInPutWSQ := TfrmShaRKInPutWSQ.Create(Application); with frmShaRKInPutWSQ do begin FBCId := ''; FCRType := Trim(Self.CGJGType.Text); ZHFlag := '1'; frmShaRKInPutWSQ.canshu3 := Trim(Self.canshu3); FHZCRType := '采购加工入库'; FCHEJIAN := Self.FCHEJIAN; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmShaRKInPutWSQ.Free; end; end; procedure TfrmShaRKListWSQ.Button2Click(Sender: TObject); begin Panel2.Visible := False; end; procedure TfrmShaRKListWSQ.Button3Click(Sender: TObject); begin if Trim(JGWZHCType.Text) = '' then begin Application.MessageBox('加工未做回仓类型不能为空!', '提示', 0); Exit; end; Panel3.Visible := False; try frmShaRKInPutWSQ := TfrmShaRKInPutWSQ.Create(Application); with frmShaRKInPutWSQ do begin FBCId := ''; FCRType := Trim(Self.JGWZHCType.Text); ZHFlag := '0'; frmShaRKInPutWSQ.canshu3 := Trim(Self.canshu3); FHZCRType := '加工未做回仓'; FCHEJIAN := Self.FCHEJIAN; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmShaRKInPutWSQ.Free; end; end; procedure TfrmShaRKListWSQ.Button4Click(Sender: TObject); begin Panel3.Visible := False; end; procedure TfrmShaRKListWSQ.ToolButton4Click(Sender: TObject); var fPrintFile: string; begin if CDS_MX.ISEMPTY = FALSE then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete CK_SXPB_CR_MX where BANID=' + quotedstr(Trim(CDS_MX.FieldByName('BANID').AsString))); ExecSQL; end; CDS_MX.Delete; end; end; procedure TfrmShaRKListWSQ.ToolButton5Click(Sender: TObject); var fPrintFile: string; begin with ADOQueryTemp do begin Close; SQL.Clear; SQL.Add('exec P_Print_SXRK' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)))); SQL.Add(',''月'' '); Open; // ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryTemp, ClientDataSet1); SInitCDSData20(ADOQueryTemp, ClientDataSet1); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\纱线入库月报表.rmf'; if FileExists(fPrintFile) then begin // RMVariables['ConNo']:=Order_Main.fieldbyname('ConNo').Value; RMGridReport1.LoadFromFile(fPrintFile); RMGridReport1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\纱线入库月报表.rmf'), '提示', 0); end; end; procedure TfrmShaRKListWSQ.ToolButton6Click(Sender: TObject); begin try frmShaRKInPutWSQ := TfrmShaRKInPutWSQ.Create(Application); with frmShaRKInPutWSQ do begin FBCId := ''; FCRType := '盘盈入库'; FHZCRType := '盘盈入库'; ZHFlag := '1'; FCHEJIAN := Self.FCHEJIAN; frmShaRKInPutWSQ.canshu3 := Trim(Self.canshu3); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmShaRKInPutWSQ.Free; end; end; procedure TfrmShaRKListWSQ.TBPriceClick(Sender: TObject); var str: string; dstr: Double; begin if CDS_Main.IsEmpty then Exit; if InputQuery('单价修改', '请输入数字', str) then begin if TryStrToFloat(str, dstr) then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' UPdate CK_SXPB_CR Set Price=' + str); sql.Add(' , Money=' + str + '*Qty '); sql.Add(' where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); ExecSQL; end; Application.MessageBox('确认成功!', '提示', 0); with CDS_Main do begin Edit; FieldByName('Price').Value := dstr; FieldByName('Money').Value := FieldByName('Qty').AsFloat * dstr; end; end else begin Application.MessageBox('请输入数字!', '提示', 0); end; end; end; procedure TfrmShaRKListWSQ.chkpriceClick(Sender: TObject); begin InitGrid(); end; procedure TfrmShaRKListWSQ.ToolButton7Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if cxTabControl1.TabIndex <> 0 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; with CDS_Main do begin while Locate('SSel', True, []) do begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_SXPB_CR SET ChkStatus=''1'',chker=''' + trim(DName) + ''',Chktime=getdate() '); sql.Add('where spid=' + quotedstr(trim(cds_Main.fieldbyname('spid').AsString))); execsql; end; CDS_Main.Delete; end; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('订单审核成功!', '提示信息'); InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('订单审核失败!', '提示信息'); end; end; procedure TfrmShaRKListWSQ.ToolButton8Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if cxTabControl1.TabIndex <> 1 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; with CDS_Main do begin while Locate('SSel', True, []) do begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_SXPB_CR SET ChkStatus=''0'',chker=NULL,Chktime=NULL '); sql.Add('where spid=' + quotedstr(trim(cds_Main.fieldbyname('spid').AsString))); execsql; end; CDS_Main.Delete; end; end; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('撤销审核成功!', '提示信息'); InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('撤销审核失败!', '提示信息'); end; end; procedure TfrmShaRKListWSQ.cxGridDBColumn8PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(TvMX.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_MX do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_SXPB_CR_MX set ' + FFieldName + ' = ' + mvalue); sql.Add(' where BANID=' + quotedstr(Trim(CDS_MX.FieldByName('BANID').AsString))); ExecSQL; end; TvMX.Controller.EditingController.ShowEdit(); end; procedure TfrmShaRKListWSQ.Edit1KeyPress(Sender: TObject; var Key: Char); var mvalue, FFieldName: string; FQTY: DOUBLE; begin if Key = #13 then begin FQTY := STRTOFLOATDEF(EDIT1.Text, 0); with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update CK_SXPB_CR_MX set BANQTY= ' + FLOATTOSTR(FQTY)); sql.Add(' where SPID=' + quotedstr(Trim(CDS_MAIN.FieldByName('SPID').AsString))); ExecSQL; end; with CDS_MX do begin First; while not Eof do begin Edit; FieldByName('BANQTY').Value := FQTY; Post; Next; end; end; end; end; procedure TfrmShaRKListWSQ.ToolButton9Click(Sender: TObject); var fPrintFile, FFCYID: string; DPS, i, j: Integer; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin SPID.SetFocus; if CDS_MX.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\纱线板号标签.rmf'; CDS_MX.DisableControls; DPS := 0; FFCYID := ''; i := 1; j := 1; with CDS_MX do begin First; while not Eof do begin if CDS_MX.FieldByName('SSel').AsBoolean = True then begin try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(CDS_MX.fieldbyname('BANID').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; RMVariables['QRBARCODE'] := fImagePath; for i := 1 to j do begin if FileExists(fPrintFile) then begin RM2.LoadFromFile(fPrintFile); RMVariables['SPName'] := Trim(CDS_Main.fieldbyname('SPName').AsString); RMVariables['crtime'] := Trim(CDS_Main.fieldbyname('crtime').AsString); RMVariables['khname'] := Trim(CDS_Main.fieldbyname('khname').AsString); RMVariables['FactoryName'] := Trim(CDS_Main.fieldbyname('FactoryName').AsString); RMVariables['BatchNo'] := Trim(CDS_Main.fieldbyname('BatchNo').AsString); RMVariables['SPColor'] := Trim(CDS_Main.fieldbyname('SPColor').AsString); RMVariables['PiQty'] := CDS_Main.fieldbyname('PiQty').Value; RMVariables['qty'] := CDS_Main.fieldbyname('qty').Value; RMVariables['banno'] := CDS_MX.fieldbyname('banno').Value; RMVariables['banQTY'] := CDS_MX.fieldbyname('banQTY').Value; RM2.PrintReport; // RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\纱线板号标签.rmf'), '提示', 0); Exit; end; end; end; Next; end; end; CDS_MX.EnableControls; end; end.