unit U_YarnInList; 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, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList, dxScrollbarAnnotations; type TfrmYarnInList = class(TfrmBaseList) 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; Label8: TLabel; Label12: TLabel; Y_Name: TEdit; FromCoName: TEdit; Y_spec: TEdit; IOType: TComboBox; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; v1Column10: TcxGridDBColumn; Label10: TLabel; BatchNo: TEdit; v1Column20: TcxGridDBColumn; ToolButton1: TToolButton; Label6: TLabel; BYIOID: TEdit; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; btn1: TToolButton; 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 BYIOIDChange(Sender: TObject); procedure Y_specChange(Sender: TObject); procedure FromCoNameChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure btn1Click(Sender: TObject); private canshu1, FStkName, canshu3: string; procedure InitGrid(); procedure setStatus(); { Private declarations } public { Public declarations } end; implementation uses U_DataLink, U_RTFun, U_YarnInEdit, U_LabelPrint; {$R *.dfm} procedure TfrmYarnInList.setStatus(); begin if canshu1 = '管理' then begin TBAdd.Visible := true; TBEdit.Visible := true; TBDel.Visible := true; end else begin TBAdd.Visible := false; TBEdit.Visible := false; TBDel.Visible := false; end; end; procedure TfrmYarnInList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmYarnInList.FormCreate(Sender: TObject); begin inherited; EndDate.DateTime := SGetServerDate(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 30; canshu1 := Trim(self.fParameters1); FStkName := Trim(self.fParameters2); canshu3 := Trim(self.fParameters3); end; procedure TfrmYarnInList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from BS_Yarn_IO A'); sql.add(' where A.IOTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); sql.Add(' and A.IOTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''''); sql.Add(' and isnull(StkName,'''')=''' + Trim(FStkName) + ''''); SQL.Add(' and IOFlag=''入库'' '); SQL.Add(' order by IOTime desc'); // ShowMessage(sql.text); Open; end; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYarnInList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmYarnInList.ToolButton1Click(Sender: TObject); begin WriteCxGrid(Self.Caption + '1', Tv1, '染色坯布仓库'); end; procedure TfrmYarnInList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmYarnInList.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmYarnInList.FormShow(Sender: TObject); begin inherited; ReadCxGrid(Self.Caption + '1', Tv1, '染色坯布仓库'); setStatus(); InitGrid(); end; procedure TfrmYarnInList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(FStkName + '入库列表', cxGrid2); end; procedure TfrmYarnInList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); end; end; procedure TfrmYarnInList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmYarnInList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmYarnInList.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; with ADOQueryCmd do begin Close; Sql.Clear; sql.Add('select * from Finance_Flow where Status=''9'' and FromID1=' + quotedstr(Trim(CDS_Main.fieldbyname('BYIOID').AsString)) + ''); open; end; if ADOQueryCmd.IsEmpty = false then begin Application.MessageBox('财务已审核,无法删除!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; Sql.Clear; Sql.Add('exec P_BS_Yarn_In_Del '); Sql.Add(' @BYIOIDS=' + quotedstr(Trim(CDS_Main.fieldbyname('BYIOID').AsString))); Sql.Add(',@DCode=' + quotedstr(Trim(DCode))); Sql.Add(',@DName=' + quotedstr(Trim(DName))); Open; end; if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString))); with ADOQueryTemp do begin Close; Sql.Clear; sql.Add('insert into Finance_Need_Up(UType,UDataId) values(''纱线入库'',' + quotedstr(Trim(CDS_Main.fieldbyname('BYIOID').AsString)) + ') '); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmYarnInList.TBAddClick(Sender: TObject); begin try frmYarnInEdit := TfrmYarnInEdit.Create(Application); with frmYarnInEdit do begin FBCId := ''; frmYarnInEdit.canshu3 := Trim(Self.canshu3); FStkName := Self.FStkName; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmYarnInEdit.Free; end; end; procedure TfrmYarnInList.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; with ADOQueryCmd do begin Close; Sql.Clear; sql.Add('select * from Finance_Flow where Status=''9'' and FromID1=' + quotedstr(Trim(CDS_Main.fieldbyname('BYIOID').AsString)) + ''); open; end; if ADOQueryCmd.IsEmpty = false then begin Application.MessageBox('财务已审核,无法修改!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; Sql.Clear; Sql.Add('exec P_BS_Yarn_In_Edit '); Sql.Add(' @BYIOIDS=' + quotedstr(Trim(CDS_Main.fieldbyname('BYIOID').AsString))); Sql.Add(',@DCode=' + quotedstr(Trim(DCode))); Sql.Add(',@DName=' + quotedstr(Trim(DName))); Open; end; if ADOQueryTemp.FieldByName('intReturn').AsInteger = -1 then begin Application.MessageBox(PChar(ADOQueryTemp.fieldbyname('ShowMsg').AsString), '提示', 0); exit; end; with ADOQueryTemp do begin Close; Sql.Clear; sql.Add('insert into Finance_Need_Up(UType,UDataId) values(''纱线入库'',' + quotedstr(Trim(CDS_Main.fieldbyname('BYIOID').AsString)) + ') '); ExecSQL; end; try frmYarnInEdit := TfrmYarnInEdit.Create(Application); with frmYarnInEdit do begin FBCId := Trim(CDS_Main.fieldbyname('BYIOID').AsString); TBDel.Visible := False; TBAdd.Visible := False; FStkName := Self.FStkName; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmYarnInEdit.Free; end; end; procedure TfrmYarnInList.btn1Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'YarnStoragePrint'; FFiltration1 := QuotedStr(Trim(self.CDS_Main.fieldbyname('BYIOID').AsString)); CheckBox1.Checked := True; if ShowModal = 1 then begin end; end; finally frmLabelPrint.Free; end; end; procedure TfrmYarnInList.BYIOIDChange(Sender: TObject); begin if Length(Trim(BYIOID.Text)) < 4 then begin if Trim(BYIOID.Text) <> '' then Exit; end; TBFind.Click; end; procedure TfrmYarnInList.Y_specChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmYarnInList.FromCoNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmYarnInList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; end.