unit U_TradeClothTransferInput; 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, cxSpinEdit, StdCtrls, ExtCtrls, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseInput, System.ImageList, Vcl.ImgList, cxPC, dxScrollbarAnnotations, cxCheckBox, cxContainer, cxImageList, Vcl.Menus; type TfrmTradeClothTransferInput = class(TfrmBaseInput) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; DS_1: TDataSource; CDS_Sub: TClientDataSet; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; GPM_1: TcxGridPopupMenu; ToolButton1: TToolButton; Pnl_F2: TPanel; Label2: TLabel; Label4: TLabel; FromOrdNo: TcxTextEdit; C_Name: TcxTextEdit; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; Tv1Column13: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column14: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; Tv1Column20: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column11: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; Tv1Column19: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column20: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Tv1Column21: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column14: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Tv1Column7: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; ToolButton2: TToolButton; ToolButton3: TToolButton; Tv1Column15: TcxGridDBColumn; Tv1Column16: TcxGridDBColumn; Label5: TLabel; CraftCode: TcxTextEdit; GC_Name: TcxTextEdit; Label23: TLabel; TBFind: TToolButton; Label1: TLabel; Label3: TLabel; FtyPCId: TcxTextEdit; BatchNo: TcxTextEdit; Tv1Column17: TcxGridDBColumn; Tv1Column18: TcxGridDBColumn; Tv1Column22: TcxGridDBColumn; pm1: TPopupMenu; N5: TMenuItem; N6: TMenuItem; N3: TMenuItem; Tv1Column23: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure GC_NamePropertiesChange(Sender: TObject); procedure N5Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure GC_NameKeyPress(Sender: TObject; var Key: Char); private { Private declarations } procedure InitGrid(); function SaveData(): Boolean; public { Public declarations } FBCId, FStkName, FMasterOrderNo: string; end; var frmTradeClothTransferInput: TfrmTradeClothTransferInput; implementation uses U_DataLink, U_RTFun; {$R *.dfm} procedure TfrmTradeClothTransferInput.InitGrid(); var Msql, mbegdate, menddate: string; SqlStr: string; begin SqlStr := ' select A.* '; SqlStr := SqlStr + ' ,PurDate=( select PurDate from Pur_ClothPlan_Main X where X.PurMId=A.FromPurMId )'; SqlStr := SqlStr + ',OutPiece=StkPiece,OutQty=StkQty '; SqlStr := SqlStr + ' from BS_Cloth_IO A '; SqlStr := SqlStr + ' where A.IOFlag=''入库'' and (isnull(StkQty,0)>0 or isnull(StkPiece,0)>0) '; SqlStr := SqlStr + ' and isnull(stkName,'''')=''贸易布匹'' '; SqlStr := SqlStr + ' and (IOFlag<>''调拨入库'' and ISNULL(FromMasterOrdNo,'''')<>' + quotedstr(Trim(FMasterOrderNo)) + ') '; // ShowMessage(SqlStr); InitCDSData(ADOQueryTemp, CDS_Sub, Tv1, SqlStr, SGetFilters(Pnl_F2, 1, 2), 'STKID'); end; procedure TfrmTradeClothTransferInput.N3Click(Sender: TObject); begin CopyTVFocusValue(TV1); end; procedure TfrmTradeClothTransferInput.N5Click(Sender: TObject); begin SelOKNo(CDS_Sub, True); end; procedure TfrmTradeClothTransferInput.N6Click(Sender: TObject); begin SelOKNo(CDS_Sub, false); end; procedure TfrmTradeClothTransferInput.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; function TfrmTradeClothTransferInput.SaveData(): Boolean; var MBCIOID, Maxno: string; begin try ADOQueryCmd.Connection.BeginTrans; CDS_Sub.DisableControls; with CDS_Sub do begin First; while not eof do begin if CDS_Sub.FieldByName('ssel').AsBoolean then begin if CDS_Sub.fieldbyname('OutQty').AsFloat > 0 then begin with ADOQueryCmd do begin Close; Sql.Clear; Sql.Add('exec P_BS_Cloth_IOALL '); Sql.Add(' @Operation=' + quotedstr(Trim('库存调拨'))); Sql.Add(' ,@StkID=' + quotedstr(Trim(CDS_Sub.fieldbyname('StkID').AsString))); Sql.Add(' ,@MasterOrdNo=' + quotedstr(Trim(FMasterOrderNo))); Sql.Add(' ,@Piece=' + Trim(CDS_Sub.fieldbyname('OutPiece').AsString)); Sql.Add(' ,@Qty=' + Trim(CDS_Sub.fieldbyname('OutQty').AsString)); Sql.Add(' ,@Dcode=' + quotedstr(Trim(Dcode))); Sql.Add(' ,@DName=' + quotedstr(Trim(DName))); // ShowMessage(sql.Text); Open; end; if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString))); end; end; Next; end; end; CDS_Sub.EnableControls; ADOQueryCmd.Connection.CommitTrans; Result := True; except Result := False; ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmTradeClothTransferInput.TBCloseClick(Sender: TObject); begin ModalResult := 1; end; procedure TfrmTradeClothTransferInput.FormShow(Sender: TObject); var fsj: string; begin inherited; ReadCxGrid(Trim(Self.Caption) + 'Tv1', Tv1, '贸易汇总仓库'); InitGrid(); end; procedure TfrmTradeClothTransferInput.GC_NameKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then InitGrid(); end; procedure TfrmTradeClothTransferInput.GC_NamePropertiesChange(Sender: TObject); begin if Length(Trim(TcxTextEdit(Sender).Text)) < 4 then Exit; TBFind.Click; end; procedure TfrmTradeClothTransferInput.TBSaveClick(Sender: TObject); begin if CDS_Sub.IsEmpty then Exit; ToolBar1.SetFocus(); if CDS_Sub.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); InitGrid(); end; end; procedure TfrmTradeClothTransferInput.ToolButton1Click(Sender: TObject); begin WriteCxGrid(Trim(Self.Caption) + 'Tv1', Tv1, '贸易汇总仓库'); end; procedure TfrmTradeClothTransferInput.ToolButton2Click(Sender: TObject); begin InitGrid(); end; procedure TfrmTradeClothTransferInput.ToolButton3Click(Sender: TObject); begin if CDS_Sub.IsEmpty then Exit; ToolBar1.SetFocus(); if CDS_Sub.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); ModalResult := 1; end; end; procedure TfrmTradeClothTransferInput.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Pnl_F2, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Sub); SInitCDSData(ADOQueryMain, CDS_Sub); end; end.