unit U_ShuttleClothSCList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit; type TfrmShuttleClothSCList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Panel1: TPanel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; Label1: TLabel; Label2: TLabel; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Label3: TLabel; ConNo: TEdit; Label5: TLabel; P_CodeName: TEdit; TBExport: TToolButton; Order_Main: TClientDataSet; RM1: TRMGridReport; RMXLSExport1: TRMXLSExport; CDS_PM: TClientDataSet; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1OrderNo: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1PRTMF: TcxGridDBColumn; v1PRTKZ: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; v1Column4: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Column6: TcxGridDBColumn; RMDB_Main: TRMDBDataSet; TBCopy: TToolButton; TBView: TToolButton; v1Column19: TcxGridDBColumn; v1Column21: TcxGridDBColumn; Label10: TLabel; P_Code: TEdit; v1Column20: TcxGridDBColumn; Label6: TLabel; BatchNo: TEdit; v1Column31: TcxGridDBColumn; v1Column30: TcxGridDBColumn; KHNAME: TEdit; Label7: TLabel; v1Column1: TcxGridDBColumn; RMDB_JS: TRMDBDataSet; CDS_PJS: TClientDataSet; RMDB_WS: TRMDBDataSet; CDS_PWS: TClientDataSet; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure ConNoChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure conPress(Sender: TObject; var Key: Char); procedure TBViewClick(Sender: TObject); procedure TBCopyClick(Sender: TObject); procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); private FInt, PFInt: Integer; procedure InitGrid(); procedure InitForm(); function DelData(): Boolean; procedure InitButton(); { Private declarations } public canshu1, FCheJian: string; { Public declarations } end; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_ShuttleClothSCInPut; {$R *.dfm} procedure TfrmShuttleClothSCList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmShuttleClothSCList.InitButton(); begin if Trim(canshu1) = '查询' then begin TBAdd.Visible := False; TBCopy.Visible := False; TBEdit.Visible := False; TBDel.Visible := False; end; end; procedure TfrmShuttleClothSCList.TBCloseClick(Sender: TObject); begin WriteCxGrid(Trim(self.Caption), Tv1, '坯布生产管理'); Close; end; procedure TfrmShuttleClothSCList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add('select A.*,B.* '); sql.Add(' from PD_Plan_Main A inner join PD_Plan_Sub B on A.Mainid=B.MainId'); sql.Add(' where A.FillTIme>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); sql.Add(' and A.FillTIme<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)) + ''''); sql.Add(' and A.OrdType=''梭织计划单'''); if Trim(canshu1) = '录入' then sql.Add(' and A.Filler=' + quotedstr(DName)); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmShuttleClothSCList.InitForm(); begin InitButton(); ReadCxGrid(Trim(self.Caption), Tv1, '坯布生产管理'); BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 30; EndDate.DateTime := SGetServerDate10(ADOQueryTemp); InitGrid(); end; procedure TfrmShuttleClothSCList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; procedure TfrmShuttleClothSCList.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmClothSCInPut := TfrmClothSCInPut.Create(Application); with frmClothSCInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); FSubId := Trim(Self.Order_Main.fieldbyname('SubId').AsString); if ShowModal = 1 then begin InitGrid(); Self.Order_Main.Locate('MainId', frmClothSCInPut.FMainId, []); end; end; finally frmClothSCInPut.Free; end; end; procedure TfrmShuttleClothSCList.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; with ADOQueryTemp do begin Close; sql.Clear; SQL.Add('select A.*'); sql.Add('from PD_Plan_Card A'); sql.Add(' where A.SubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + ''''); sql.Add(' and A.MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已产生安排数据不能删除!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; SQL.Add('select TOP 1 A.*'); sql.Add('from CK_Cloth_CR A'); sql.Add(' where A.SubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + ''''); sql.Add(' and A.MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已产生检验数据不能删除!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if DelData() then begin Order_Main.Delete; end; end; function TfrmShuttleClothSCList.DelData(): Boolean; begin try Result := false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete PD_Plan_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); sql.Add('delete PD_Plan_Sub where SubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + ''''); sql.Add('delete PD_Plan_Yarn where SubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + ''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmShuttleClothSCList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel('坯布生产单', cxGrid1); end; procedure TfrmShuttleClothSCList.TBPrintClick(Sender: TObject); var fPrintFile, FWeiZhi: string; i, j, k: integer; begin if Order_Main.IsEmpty then Exit; ExportFtErpFile('梭织计划单.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\梭织计划单.rmf'; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from PD_Plan_Main A inner join PD_Plan_Sub B on A.Mainid=B.MainId where A.MainId=' + Quotedstr(Trim(Order_Main.fieldbyname('MainId').AsString))); Open; end; SCreateCDS20(ADOQueryTemp, CDS_PM); SInitCDSData20(ADOQueryTemp, CDS_PM); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from PD_Plan_Yarn where PYType=''经丝'' and MainId=' + Quotedstr(Trim(Order_Main.fieldbyname('MainId').AsString))); Open; end; SCreateCDS20(ADOQueryTemp, CDS_PJS); SInitCDSData20(ADOQueryTemp, CDS_PJS); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from PD_Plan_Yarn where PYType=''纬丝'' and MainId=' + Quotedstr(Trim(Order_Main.fieldbyname('MainId').AsString))); Open; end; SCreateCDS20(ADOQueryTemp, CDS_PWS); SInitCDSData20(ADOQueryTemp, CDS_PWS); if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmShuttleClothSCList.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmShuttleClothSCList.TBAddClick(Sender: TObject); begin try frmClothSCInPut := TfrmClothSCInPut.Create(Application); with frmClothSCInPut do begin PState := 0; FMainId := ''; FSubId := ''; if ShowModal = 1 then begin InitGrid(); end; end; finally frmClothSCInPut.Free; end; end; procedure TfrmShuttleClothSCList.ConNoChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; procedure TfrmShuttleClothSCList.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmShuttleClothSCList.conPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin if Length(Trim(ConNo.Text)) < 4 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; //sql.Add('exec Cloth_QryList :MainId,:WSql'); // Parameters.ParamByName('WSql').Value:=' and OM.conNo like '''+'%'+Trim(ConNoM.Text)+'%'+'''' // +' and ConType=''生产'' '; sql.Add('select * from Cloth_Main A inner join CLoth_Sub B on A.Mainid=B.MainId'); sql.Add(' where A.ConNo like ''' + '%' + Trim(ConNo.Text) + '%' + ''''); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmShuttleClothSCList.TBViewClick(Sender: TObject); begin try frmClothSCInPut := TfrmClothSCInPut.Create(Application); with frmClothSCInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); FSubId := Trim(Self.Order_Main.fieldbyname('SubId').AsString); FConNo := Trim(Self.Order_Main.fieldbyname('ConNo').AsString); TBSave.Visible := False; ScrollBox1.Enabled := False; if ShowModal = 1 then begin end; end; finally frmClothSCInPut.Free; end; end; procedure TfrmShuttleClothSCList.TBCopyClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmClothSCInPut := TfrmClothSCInPut.Create(Application); with frmClothSCInPut do begin PState := 1; FCopyInt := 1; FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); FConNo := Trim(Self.Order_Main.fieldbyname('ConNo').AsString); if ShowModal = 1 then begin end; end; finally frmClothSCInPut.Free; end; end; procedure TfrmShuttleClothSCList.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var FDDZT: string; begin // if AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('DDZT').Index] = null then // Exit; // // FDDZT := AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('DDZT').Index]; // // if FDDZT = '已开始' then // ACanvas.Font.Color := $FF0000; // if FDDZT = '已结束' then // ACanvas.Font.Color := $0000FF; end; end.