unit U_YMTJGWCList; 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, cxMaskEdit; type TfrmYMTJGWCList = 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; Label4: TLabel; Label5: TLabel; MXPrtName: TEdit; FactoryName: TEdit; FSId: TEdit; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; TV1FromMXID: TcxGridDBColumn; TV1CRTime: TcxGridDBColumn; TV1CRType: TcxGridDBColumn; TV1FSId: TcxGridDBColumn; TV1SPColor: TcxGridDBColumn; TV1SPHX: TcxGridDBColumn; TV1FactoryName: TcxGridDBColumn; TV1SPName: TcxGridDBColumn; TV1Qty: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; Label13: TLabel; MXPrtColor: TEdit; Label15: TLabel; MXPrtHX: TEdit; ADOQueryImage: TADOQuery; TV1SCConNo: TcxGridDBColumn; Tv1SSel: TcxGridDBColumn; TbEditKW: TToolButton; Panel4: TPanel; Label25: TLabel; btnChk: TButton; btn1: TButton; KuWei: TcxButtonEdit; Tv1KuWei: 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 SPSpecChange(Sender: TObject); procedure FactoryNameChange(Sender: TObject); procedure TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean); procedure ToolButton2Click(Sender: TObject); procedure TbEditKWClick(Sender: TObject); procedure KuWeiPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure btnChkClick(Sender: TObject); procedure btn1Click(Sender: TObject); private canshu1, canshu2: string; procedure InitGrid(); procedure InitImage(fsubID: string); { Private declarations } public { Public declarations } end; var frmYMTJGWCList: TfrmYMTJGWCList; implementation uses U_DataLink, U_RTFun, U_YMTRKInPut, U_ZdyAttachGYS, U_LabelPrintFun, U_ZDYHelp; {$R *.dfm} procedure TfrmYMTJGWCList.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 TfrmYMTJGWCList.FormDestroy(Sender: TObject); begin frmYMTJGWCList := nil; end; procedure TfrmYMTJGWCList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmYMTJGWCList.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; canshu1 := Trim(DParameters1); canshu2 := Trim(DParameters2); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; end; procedure TfrmYMTJGWCList.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.FromSSID'); 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(A.CKName,'''')=''面料'''); SQL.Add(' and A.CRType=''加工完成'' '); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYMTJGWCList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmYMTJGWCList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmYMTJGWCList.TBCloseClick(Sender: TObject); begin WriteCxGrid('加工完成回仓数据列表', Tv1, '加工完成面料仓库'); Close; end; procedure TfrmYMTJGWCList.FormShow(Sender: TObject); begin if Trim(canshu2) = '查看' then begin TBDel.Visible := False; end else begin TBDel.Visible := True; end; ReadCxGrid('加工完成回仓数据列表', Tv1, '加工完成面料仓库'); InitGrid(); end; procedure TfrmYMTJGWCList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('加工完成回仓数据列表', cxGrid2); end; procedure TfrmYMTJGWCList.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 TfrmYMTJGWCList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmYMTJGWCList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmYMTJGWCList.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 TfrmYMTJGWCList.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 TfrmYMTJGWCList.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmYMTJGWCList.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmYMTJGWCList.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 TfrmYMTJGWCList.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; procedure TfrmYMTJGWCList.TbEditKWClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; Panel4.Visible := True; end; procedure TfrmYMTJGWCList.KuWeiPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'KuWei'; flagname := '库位'; if ShowModal = 1 then begin with Self.CDS_Main do begin Edit; KuWei.Text := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYMTJGWCList.btnChkClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if CDS_Main.Locate('SSel', True, []) = False then begin application.MessageBox('请选择数据!', '提示信息'); exit; end; try while CDS_Main.Locate('SSel', True, []) do begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update YMT_CK_CR SET KuWei=' + quotedstr(trim(KuWei.Text))); sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); execsql; end; with CDS_Main do begin Edit; FieldByName('SSel').Value := False; FieldByName('KuWei').Value := trim(KuWei.Text); Post; end; end; Panel4.Visible := False; application.MessageBox('批量修改成功!', '提示信息'); except application.MessageBox('批量修改失败!', '提示信息', 0); end; end; procedure TfrmYMTJGWCList.btn1Click(Sender: TObject); begin Panel4.Visible := False; end; end.