unit U_DJBCKInPut; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxDropDownEdit, ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxButtonEdit, cxTextEdit, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP; type TfrmDJBCKInPut = class(TForm) cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column2: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; ToolBar1: TToolBar; TBAdd: TToolButton; TBDel: TToolButton; TBSave: TToolButton; TBClose: TToolButton; v1Column4: TcxGridDBColumn; DataSource3: TDataSource; CDS_Sub: TClientDataSet; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; cxGridPopupMenu2: TcxGridPopupMenu; v1Column12: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column21: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column17: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; v1Column18: TcxGridDBColumn; btn1: TToolButton; IdHTTP1: TIdHTTP; CDS_WXTS: TClientDataSet; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBAddClick(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column14PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column11PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column16PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column13PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column18PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure btn1Click(Sender: TObject); private { Private declarations } function SaveCKData(): Boolean; procedure SendMessage(Mfsid, MFactory, MorderNo: string); public { Public declarations } FBCId: string; end; var frmDJBCKInPut: TfrmDJBCKInPut; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_ZdyAttachGYS, U_ProductOrderListSel, U_DJBRKListSel, U_RTFun; {$R *.dfm} procedure TfrmDJBCKInPut.SendMessage(Mfsid, MFactory, MorderNo: string); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add(' exec P_View_HXCKTS ' + quotedstr(Trim(MorderNo))); sql.Add(' , ' + quotedstr(Trim(MFactory))); Open; end; SCreateCDS(ADOQueryTemp, CDS_WXTS); SInitCDSData(ADOQueryTemp, CDS_WXTS); CDS_WXTS.First; while not CDS_WXTS.eof do begin with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('select * from WeixinMessage where 1<>1'); Open; Append; FieldByName('MessageType').Value := 'OrderProgress'; FieldByName('MessageName').Value := '订单进度提醒'; if Trim(CDS_WXTS.FieldByName('YGLX').AsString) = '业务' then begin FieldByName('Title').Value := '您有订单成品回修出库'; end else begin FieldByName('Title').Value := '您有回修的成品待入库'; end; FieldByName('URL').Value := 'pages/grayfabric-repairOut/gdConfirm?spid=' + Trim(Mfsid); FieldByName('OpenId').Value := Trim(CDS_WXTS.FieldByName('wxid').AsString); FieldByName('Status').Value := '0'; FieldByName('CreateDate').Value := FormatDateTime('yyyymmdd', SGetServerDateTime(ADOQueryTemp)); FieldByName('CreateTime').Value := FormatDateTime('HH:mm:ss', SGetServerDateTime(ADOQueryTemp)); FieldByName('BusinessId').Value := Trim(Mfsid); FieldByName('KeyWord1').Value := Trim(Mfsid); FieldByName('KeyWord2').Value := Trim('成品回修出库'); Post; end; CDS_WXTS.Next; end; end; procedure TfrmDJBCKInPut.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmDJBCKInPut.TBAddClick(Sender: TObject); begin try frmDJBRKListSel := TfrmDJBRKListSel.Create(Application); with frmDJBRKListSel do begin if ShowModal = 1 then begin while frmDJBRKListSel.CDS_Main.Locate('SSel', True, []) do begin with Self.CDS_Sub do begin Append; FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', Now)); FieldByName('CRType').Value := '回修出库'; FieldByName('ORDMainIdRK').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('ORDMainIdRK').AsString); FieldByName('ORDSubIdRK').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('ORDSubIdRK').AsString); FieldByName('OrderNo').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('OrderNo').AsString); FieldByName('FactoryName').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('FactoryName').AsString); FieldByName('PBFactoryName').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('PBFactoryName').AsString); FieldByName('conno').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('conno').AsString); FieldByName('FZSPID').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('SPID').AsString); FieldByName('SPColor').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('SPColor').AsString); FieldByName('SPCode').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('SPCode').AsString); FieldByName('SPName').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('SPName').AsString); FieldByName('SPSpec').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('SPSpec').AsString); FieldByName('SPCF').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('SPCF').AsString); FieldByName('SPMF').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('SPMF').AsString); FieldByName('SPKZ').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('SPKZ').AsString); FieldByName('QtyUnit').Value := Trim(frmDJBRKListSel.CDS_Main.fieldbyname('QtyUnit').AsString); end; frmDJBRKListSel.CDS_Main.delete; end; end; end; finally frmDJBRKListSel.Free; end; end; function TfrmDJBCKInPut.SaveCKData(): Boolean; var FCRID, Maxno, FFSPID: string; begin try ADOQueryCmd.Connection.BeginTrans; CDS_Sub.DisableControls; with CDS_Sub do begin First; while not eof do begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where SPID=''' + Trim(CDS_Sub.fieldbyname('SPID').AsString) + ''''); open; end; FFSPID := Trim(ADOQueryTemp.fieldbyname('SPID').AsString); if Trim(FFSPID) = '' then begin if GetLSNo(ADOQueryCmd, Maxno, 'DC', 'CK_SXPB_CR', 2, 1) = False then begin Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取待检布出库编号失败!', '提示', 0); Exit; end; end else begin Maxno := Trim(FFSPID); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where SPID=''' + Trim(Maxno) + ''''); Open; end; with ADOQueryCmd do begin if Trim(FFSPID) = '' then begin Append; end else begin Edit; end; FieldByName('SPID').Value := Trim(Maxno); FieldByName('FZSPID').Value := Trim(CDS_Sub.fieldbyname('FZSPID').AsString); FieldByName('CKName').Value := '待检布'; FieldByName('FactoryNo').Value := Trim(CDS_Sub.fieldbyname('FactoryNo').AsString); FieldByName('FromFactoryNo').Value := Trim(CDS_Sub.fieldbyname('FromFactoryNo').AsString); FieldByName('ToFactoryNo').Value := Trim(CDS_Sub.fieldbyname('ToFactoryNo').AsString); FieldByName('ORDMainIdRK').Value := Trim(CDS_Sub.fieldbyname('ORDMainIdRK').AsString); FieldByName('ORDSubIdRK').Value := Trim(CDS_Sub.fieldbyname('ORDSubIdRK').AsString); FieldByName('CRFlag').Value := '出库'; FieldByName('CRQtyFlag').Value := -1; RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_Sub, 'CK_SXPB_CR', 2); if Trim(FFSPID) = '' then FieldByName('Filler').Value := Trim(DName) else begin FieldByName('Editer').Value := Trim(DName); FieldByName('EditTime').Value := SGetServerDate(ADOQueryTemp); end; if Trim(CDS_Sub.fieldbyname('OrderNo').AsString) <> '' then begin FieldByName('QCOrderNo').Value := Trim(CDS_Sub.fieldbyname('OrderNo').AsString); end; Post; end; Edit; FieldByName('SPID').Value := Trim(Maxno); Post; SendMessage(Maxno, Trim(CDS_Sub.fieldbyname('ToFactoryName').AsString), Trim(CDS_Sub.fieldbyname('conno').AsString)); Next; end; end; CDS_Sub.EnableControls; ADOQueryCmd.Connection.CommitTrans; Result := True; except Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存异常!', '提示', 0); end; end; procedure TfrmDJBCKInPut.TBCloseClick(Sender: TObject); begin WriteCxGrid(trim(self.Caption), Tv1, '开卡管理'); Close; end; procedure TfrmDJBCKInPut.FormShow(Sender: TObject); var fsj: string; begin ReadCxGrid(trim(self.Caption), Tv1, '开卡管理'); with ADOQueryTemp do begin Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from CK_SXPB_CR A'); sql.Add(' where SPID=''' + Trim(FBCId) + ''''); Open; end; SCreateCDS(ADOQueryTemp, CDS_Sub); SInitCDSData(ADOQueryTemp, CDS_Sub); if CDS_Sub.IsEmpty then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where FZSPID=''' + Trim(CDS_Sub.fieldbyname('SPID').AsString) + ''''); sql.Add(' and CRQtyFlag=-1'); Open; end; if ADOQueryTemp.IsEmpty = False then begin v1Column4.Options.Focusing := False; v1Column13.Options.Focusing := False; v1Column14.Options.Focusing := False; v2Column1.Options.Focusing := False; v1Column8.Options.Focusing := False; v1Column7.Options.Focusing := False; v1Column1.Options.Focusing := False; v1Column10.Options.Focusing := False; v1Column11.Options.Focusing := False; Exit; end else begin v1Column4.Options.Focusing := True; v1Column13.Options.Focusing := True; v1Column14.Options.Focusing := True; v2Column1.Options.Focusing := True; v1Column8.Options.Focusing := True; v1Column7.Options.Focusing := True; v1Column1.Options.Focusing := True; v1Column10.Options.Focusing := True; v1Column11.Options.Focusing := True; end; end; procedure TfrmDJBCKInPut.TBDelClick(Sender: TObject); begin if CDS_Sub.IsEmpty then Exit; if Trim(CDS_Sub.fieldbyname('SPID').AsString) <> '' then begin if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where FZSPID=''' + Trim(CDS_Sub.fieldbyname('SPID').AsString) + ''''); sql.Add(' and CRQtyFlag=-1'); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已有出库记录,不能删除!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' delete CK_SXPB_CR where SPID=''' + Trim(CDS_Sub.fieldbyname('SPID').AsString) + ''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_Sub.Delete; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('删除异常!', '提示', 0); end; end else begin CDS_Sub.Delete; end; end; procedure TfrmDJBCKInPut.TBSaveClick(Sender: TObject); begin if CDS_Sub.IsEmpty then Exit; if CDS_Sub.Locate('CRTime', null, []) = True then begin Application.MessageBox('出库时间不能为空!', '提示', 0); Exit; end; if CDS_Sub.Locate('CRType', null, []) = True then begin Application.MessageBox('出库类型不能为空!', '提示', 0); Exit; end; if CDS_Sub.Locate('SPName', null, []) = True then begin Application.MessageBox('品名不能为空!', '提示', 0); Exit; end; if CDS_Sub.Locate('OrderNo', null, []) = True then begin Application.MessageBox('订单号不能为空!', '提示', 0); Exit; end; if CDS_Sub.Locate('FactoryName', null, []) = True then begin Application.MessageBox('加工厂不能为空!', '提示', 0); Exit; end; if CDS_Sub.Locate('ToFactoryName', null, []) = True then begin Application.MessageBox('出到工厂不能为空!', '提示', 0); Exit; end; if CDS_Sub.Locate('PiQty', null, []) = True then begin Application.MessageBox('匹数不能为空!', '提示', 0); Exit; end; if CDS_Sub.Locate('Qty', null, []) = True then begin Application.MessageBox('数量不能为空!', '提示', 0); Exit; end; if CDS_Sub.Locate('QtyUnit', null, []) = True then begin Application.MessageBox('数量单位不能为空!', '提示', 0); Exit; end; if SaveCKData() then begin GetHTTP(IdHTTP1, 'http://www.rightsoft.top/yifu/api/message/Send/OrderProgress'); Application.MessageBox('保存成功!', '提示', 0); //ModalResult:=1; Exit; end; end; procedure TfrmDJBCKInPut.v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'SXKuWei'; flagname := '库位'; if ShowModal = 1 then begin with Self.CDS_Sub do begin Edit; FieldByName('KuWei').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmDJBCKInPut.v1Column14PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin with Self.CDS_Sub do begin edit; FieldByName('FactoryNo').Value := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('COCode').AsString); FieldByName('FactoryName').Value := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('COName').AsString); end; end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmDJBCKInPut.v2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'WJGName'; flagname := '外加工名称'; if ShowModal = 1 then begin with Self.CDS_Sub do begin Edit; FieldByName('SPName').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmDJBCKInPut.v1Column5PropertiesButtonClick(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_Sub do begin Edit; FieldByName('KuWei').Value := Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmDJBCKInPut.v1Column11PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin with Self.CDS_Sub do begin edit; FieldByName('PBFactoryName').Value := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('CoName').AsString); end; end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmDJBCKInPut.v1Column16PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin with Self.CDS_Sub do begin edit; FieldByName('FromFactoryNo').Value := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('ZdyCode').AsString); FieldByName('FromFactoryName').Value := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('ZdyName').AsString); //Post; end; end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmDJBCKInPut.v1Column13PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmProductOrderListSel := TfrmProductOrderListSel.Create(Application); with frmProductOrderListSel do begin if ShowModal = 1 then begin with Self.CDS_Sub do begin Edit; FieldByName('ORDMainIdRK').Value := Trim(frmProductOrderListSel.Order_Main.fieldbyname('MainId').AsString); FieldByName('ORDSubIdRK').Value := Trim(frmProductOrderListSel.Order_Main.fieldbyname('SubId').AsString); FieldByName('OrderNo').Value := Trim(frmProductOrderListSel.Order_Main.fieldbyname('OrderNo').AsString); FieldByName('conno').Value := Trim(frmProductOrderListSel.Order_Main.fieldbyname('conno').AsString); FieldByName('SPColor').Value := Trim(frmProductOrderListSel.Order_Main.fieldbyname('PRTColor').AsString); FieldByName('SPCode').Value := Trim(frmProductOrderListSel.Order_Main.fieldbyname('MPRTCode').AsString); FieldByName('SPName').Value := Trim(frmProductOrderListSel.Order_Main.fieldbyname('MPRTCodeName').AsString); FieldByName('SPSpec').Value := Trim(frmProductOrderListSel.Order_Main.fieldbyname('MPRTSpec').AsString); FieldByName('SPCF').Value := Trim(frmProductOrderListSel.Order_Main.fieldbyname('MPRTCF').AsString); FieldByName('SPMF').Value := Trim(frmProductOrderListSel.Order_Main.fieldbyname('MPRTMF').AsString); FieldByName('SPKZ').Value := Trim(frmProductOrderListSel.Order_Main.fieldbyname('MPRTKZ').AsString); end; end; end; finally frmProductOrderListSel.Free; end; end; procedure TfrmDJBCKInPut.v1Column18PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin with Self.CDS_Sub do begin edit; FieldByName('TOFactoryNo').Value := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('COCode').AsString); FieldByName('TOFactoryName').Value := Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('COName').AsString); end; end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmDJBCKInPut.btn1Click(Sender: TObject); begin // if CDS_Sub.IsEmpty = False then // begin // CopyAddRowCDS(CDS_Sub); // with CDS_Sub do // begin // Edit; // FieldByName('SPID').Value := null; // post; // end; // end // else begin with CDS_Sub do begin Append; FieldByName('CRTime').Value := Trim(FormatDateTime('yyyy-MM-dd', Now)); FieldByName('CRType').Value := '回修出库'; Post; end; end; end; end.