unit U_YMTFHDataList; 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, cxLookAndFeels, cxLookAndFeelPainters, 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, cxNavigator, cxCurrencyEdit; type TfrmYMTFHDataList = 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; Label3: TLabel; Label5: TLabel; SPName: TEdit; FSId: TEdit; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column6: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; Label12: TLabel; CRType: TComboBox; Label13: TLabel; SPColor: TEdit; Label15: TLabel; PRTHX: TEdit; ADOQueryImage: TADOQuery; Tv1FromMXID: TcxGridDBColumn; ToolButton1: TToolButton; ToolButton2: TToolButton; Tv1Column1: 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 SPSpecChange(Sender: TObject); procedure FactoryNameChange(Sender: TObject); procedure TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); private canshu1, canshu2: string; procedure InitGrid(); procedure InitImage(fsubID: string); { Private declarations } public { Public declarations } end; var frmYMTFHDataList: TfrmYMTFHDataList; implementation uses U_DataLink, U_RTFun, U_YMTRKInPut, U_ZdyAttachGYS, U_LabelPrintFun; {$R *.dfm} procedure TfrmYMTFHDataList.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 TfrmYMTFHDataList.FormDestroy(Sender: TObject); begin frmYMTFHDataList := nil; end; procedure TfrmYMTFHDataList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmYMTFHDataList.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; canshu1 := Trim(DParameters1); canshu2 := Trim(DParameters2); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; end; procedure TfrmYMTFHDataList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.*, B.FSId, B.SCConNo'); sql.Add(' from YMT_CK_CR A'); sql.Add(' JOIN YMT_FHSQ_Sub B ON B.SSID = A.ToSSID'); 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 TfrmYMTFHDataList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmYMTFHDataList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmYMTFHDataList.TBCloseClick(Sender: TObject); begin WriteCxGrid('发货数据列表', Tv1, '发货数据'); Close; end; procedure TfrmYMTFHDataList.FormShow(Sender: TObject); begin if Trim(canshu2) = '查看' then begin TBDel.Visible := False; end else begin TBDel.Visible := True; end; ReadCxGrid('发货数据列表', Tv1, '发货数据'); InitGrid(); end; procedure TfrmYMTFHDataList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('发货数据列表', cxGrid2); end; procedure TfrmYMTFHDataList.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 TfrmYMTFHDataList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmYMTFHDataList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmYMTFHDataList.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('SPID').AsString) <> '' then begin 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 YMT_CK_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); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' delete YMT_CK_CR where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('删除异常!', '提示', 0); end; end else begin CDS_Main.Delete; end; end; procedure TfrmYMTFHDataList.TBAddClick(Sender: TObject); begin try frmYMTRKInPut := TfrmYMTRKInPut.Create(Application); with frmYMTRKInPut do begin PState := 0; FBCId := ''; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmYMTRKInPut.Free; end; end; procedure TfrmYMTFHDataList.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('CRType').AsString) = '平移入库' then begin Application.MessageBox('平移入库的数据为自动生成,不能修改!', '提示', 0); Exit; end; try frmYMTRKInPut := TfrmYMTRKInPut.Create(Application); with frmYMTRKInPut do begin PState := 1; FBCId := Trim(CDS_Main.fieldbyname('SPID').AsString); TBDel.Visible := False; TBAdd.Visible := False; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmYMTRKInPut.Free; end; end; procedure TfrmYMTFHDataList.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmYMTFHDataList.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmYMTFHDataList.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 TfrmYMTFHDataList.ToolButton1Click(Sender: TObject); var FPrintJson, JsonResult, MFiltration: string; RTValues: TStringArray; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) then begin RTValues := SelCDSKey(CDS_Main, ['SPID']); MFiltration := RTValues[0]; end else begin MFiltration := Trim(CDS_Main.fieldbyname('SPID').AsString); end; FPrintJson := '{ "LMType": "LMType","QrCodeField": "MXID","PreviewPrint": true,"DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '", "PrtArgs": [ { "IsSql": true, "Filtration": " ' + MFiltration + '" }] }'; FormPrint(Application, PChar(FPrintJson)); end; procedure TfrmYMTFHDataList.ToolButton2Click(Sender: TObject); var MPrintJson, JsonResult, MFiltration: string; begin if CDS_Main.IsEmpty then Exit; MFiltration := Trim(CDS_Main.fieldbyname('SPID').AsString); MPrintJson := '{ "LBName": "标签打印","QrCodeField": "MXID","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "EXEC P_YMT_CK_MX_Prt1 ''' + MFiltration + ''' " }] }'; FunPrint(Application, PChar(MPrintJson)); end; end.