unit U_TradeRRInPut; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, ExtCtrls, BtnEdit, cxCalendar, StrUtils, cxDropDownEdit, cxGridCustomPopupMenu, cxGridPopupMenu, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseList; type TfrmTradeRRInPut = class(Tform) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ScrollBox1: TScrollBox; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; ADOTemp: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_Sub: TClientDataSet; cxGridPopupMenu2: TcxGridPopupMenu; Label1: TLabel; InType: TComboBox; Note: TEdit; Label12: TLabel; Label11: TLabel; fromCoName: TBtnEditC; v1Column1: TcxGridDBColumn; cv1Column3: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; dazi1: TcxStyle; v1Column2: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; Label2: TLabel; DlyDate: TDateTimePicker; Tv1Column2: TcxGridDBColumn; ToolButton3: TToolButton; Tv1Column3: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; ToolButton4: TToolButton; Label27: TLabel; QtyUnit: TComboBox; Tv1Column1: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure fromCoNameBtnUpClick(Sender: TObject); procedure fromCoNameBtnDnClick(Sender: TObject); procedure JSQtyUnitChange(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); private fuserName: string; procedure InitData(); function SaveData(): Boolean; { Private declarations } public PState, CopyInt: Integer; FRRMID: string; { Public declarations } end; var frmTradeRRInPut: TfrmTradeRRInPut; newh: hwnd; implementation uses U_DataLink, U_ZDYHelp, U_RTFun, U_TradePlanSel, U_TradeSalesContractSel, U_CompanySel; {$R *.dfm} procedure TfrmTradeRRInPut.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmTradeRRInPut.InitData(); var fsj: string; begin if PState = 0 then begin DlyDate.DateTime := strtodatetime(Trim(FormatDateTime('yyyy-MM-dd', Now))); end; with ADOTemp do begin Close; SQL.Clear; sql.Add(' select A.* '); sql.Add(' from Trade_Cloth_RR_Sub A'); if PState = 1 then begin sql.Add('where RRMID=''' + Trim(FRRMID) + ''''); end; if PState = 0 then begin sql.Add(' where 1<>1'); end; Open; end; SCreateCDS(ADOTemp, Order_Sub); SInitCDSData(ADOTemp, Order_Sub); with ADOTemp do begin Close; sql.Clear; sql.Add('select A.* '); sql.Add(' from Trade_Cloth_RR_Main A'); sql.Add(' where RRMID=''' + Trim(FRRMID) + ''' '); Open; end; SCSHData(ADOTemp, ScrollBox1, 1); fromCoName.TxtCode := ADOTemp.FieldByName('fromCoNo').AsString; end; procedure TfrmTradeRRInPut.JSQtyUnitChange(Sender: TObject); begin if not Order_Sub.IsEmpty then begin exit; end; end; procedure TfrmTradeRRInPut.FormShow(Sender: TObject); var fsj: string; begin readCxGrid(trim(self.Caption), Tv1, '发货管理'); InitData(); end; function TfrmTradeRRInPut.SaveData(): Boolean; var MaxMid, MaxSid: string; begin try ADOCmd.Connection.BeginTrans; ///////////////// 保存主表 ///////////////// if Trim(FRRMID) = '' then begin if GetLSNo(ADOCmd, MaxMid, 'DM', 'Trade_Cloth_RR_Main', 4, 1) = False then raise Exception.Create('取最大号失败!'); end else begin MaxMid := Trim(FRRMID); end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from Trade_Cloth_RR_Main where RRMID=''' + Trim(MaxMid) + ''''); Open; end; with ADOCmd do begin if Trim(FRRMID) = '' then begin Append; FieldByName('FillID').Value := Trim(DCode); FieldByName('Filler').Value := Trim(DName); end else begin Edit; FieldByName('EditID').Value := Trim(DCode); FieldByName('Editer').Value := Trim(DName); FieldByName('EditTime').Value := SGetServerDateTime(ADOTemp); end; RTSetsavedata(ADOCmd, 'Trade_Cloth_RR_Main', ScrollBox1, 1); FieldByName('fromCoNo').Value := fromCoName.TxtCode; FieldByName('RRMID').Value := Trim(MaxMid); FieldByName('Status').Value := '0'; Post; end; ///////////////// 保存主表 ///////////////// /// ///////////////// 保存子表 ///////////////// Order_Sub.DisableControls; with Order_Sub do begin First; while not Eof do begin if Trim(Order_Sub.fieldbyname('RRSID').AsString) = '' then begin if GetLSNo(ADOCmd, MaxSid, 'DS', 'Trade_Cloth_RR_Sub', 4, 1) = False then raise Exception.Create('取子流水号失败!'); end else begin MaxSid := Trim(Order_Sub.fieldbyname('RRSID').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from Trade_Cloth_RR_Sub '); sql.Add(' where RRMID=''' + Trim(MaxMid) + ''''); sql.Add(' and RRSID=''' + Trim(MaxSid) + ''''); Open; if ADOCmd.IsEmpty then begin Append; end else begin Edit; end; RTSetSaveDataCDS(ADOCmd, Tv1, Order_Sub, 'Trade_Cloth_RR_Sub', 0); FieldByName('RRMID').Value := Trim(MaxMid); FieldByName('RRSID').Value := Trim(MaxSid); FieldByName('QtyUnit').Value := QtyUnit.Text; FieldByName('MainId').Value := Order_Sub.fieldbyname('MainId').Value; FieldByName('SubId').Value := Order_Sub.fieldbyname('SubId').Value; FieldByName('ConMId').Value := Order_Sub.fieldbyname('ConMId').Value; FieldByName('ConSId').Value := Order_Sub.fieldbyname('ConSId').Value; Post; end; Order_Sub.Edit; Order_Sub.FieldByName('RRSID').Value := Trim(MaxSid); Next; end; end; Order_Sub.EnableControls; ///////////////// 保存子表 ///////////////// FRRMID := Trim(MaxMid); ADOCmd.Connection.CommitTrans; Result := True; except ADOCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); Result := False; end; end; procedure TfrmTradeRRInPut.TBSaveClick(Sender: TObject); var Freal: Double; begin ToolBar1.SetFocus; if Trim(InType.Text) = '' then begin Application.MessageBox('入库类型不能为空!', '提示', 0); Exit; end; if Trim(fromCoName.Text) = '' then begin Application.MessageBox('退货单位不能为空!', '提示', 0); Exit; end; if (Order_Sub.Locate('Piece', null, [])) and (Order_Sub.Locate('Qty', null, [])) = True then begin Application.MessageBox('细码申请匹数和数量不能全为空!', '提示', 0); Exit; end; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); ModalResult := 1; end; end; procedure TfrmTradeRRInPut.ToolButton1Click(Sender: TObject); var FQtyUnit, FFSubid: string; begin try frmTradePlanSel := TfrmTradePlanSel.Create(Application); with frmTradePlanSel do begin if ShowModal = 1 then begin while CDS_1.locate('SSel', true, []) do begin begin with Self.Order_Sub do begin Append; FieldByName('OrderNo').Value := Trim(frmTradePlanSel.CDS_1.fieldbyname('Orderno').AsString); FieldByName('ConMId').Value := frmTradePlanSel.CDS_1.fieldbyname('ConMId').Value; FieldByName('ConSId').Value := frmTradePlanSel.CDS_1.fieldbyname('ConSId').Value; FieldByName('MainId').Value := frmTradePlanSel.CDS_1.fieldbyname('MainId').Value; FieldByName('SubId').Value := frmTradePlanSel.CDS_1.fieldbyname('SubId').Value; FieldByName('C_Code').Value := frmTradePlanSel.CDS_1.fieldbyname('C_Code').Value; FieldByName('C_Name').Value := frmTradePlanSel.CDS_1.fieldbyname('C_Name').Value; FieldByName('C_Composition').Value := frmTradePlanSel.CDS_1.fieldbyname('C_Composition').Value; FieldByName('C_Spec').Value := frmTradePlanSel.CDS_1.fieldbyname('C_Spec').Value; FieldByName('C_Width').Value := frmTradePlanSel.CDS_1.fieldbyname('C_Width').Value; FieldByName('C_GramWeight').Value := frmTradePlanSel.CDS_1.fieldbyname('C_GramWeight').Value; FieldByName('C_Color').Value := frmTradePlanSel.CDS_1.fieldbyname('C_Color').Value; FieldByName('C_ColorNo').Value := frmTradePlanSel.CDS_1.fieldbyname('C_ColorNo').Value; FieldByName('C_Pattern').Value := frmTradePlanSel.CDS_1.fieldbyname('C_Pattern').Value; FieldByName('C_StyleNo').Value := frmTradePlanSel.CDS_1.fieldbyname('C_StyleNo').Value; end; end; CDS_1.Delete; end; end; end; finally frmTradePlanSel.Free; end; end; procedure TfrmTradeRRInPut.ToolButton2Click(Sender: TObject); begin if Order_Sub.IsEmpty then Exit; if Trim(Order_Sub.fieldbyname('RRSID').AsString) <> '' then begin with ADOTemp do begin Close; sql.Clear; sql.Add('select * from Trade_Cloth_RR_Sub where RRSID=''' + Trim(Order_Sub.fieldbyname('RRSID').AsString) + ''''); sql.add(' and isnull(DlyPiece,0)>0'); Open; end; if ADOTemp.IsEmpty = False then begin Application.MessageBox('已退货不能删除数据!', '提示', 0); exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete Trade_Cloth_RR_Sub where RRSID=''' + Trim(Order_Sub.fieldbyname('RRSID').AsString) + ''''); ExecSQL; end; end; Order_Sub.Delete; end; procedure TfrmTradeRRInPut.ToolButton3Click(Sender: TObject); var FConMainId, FMPRTCode: string; begin try frmTradeSalesContractSel := TfrmTradeSalesContractSel.Create(Application); with frmTradeSalesContractSel do begin BuyName.Text := Self.fromCoName.Text; if ShowModal = 1 then begin while CDS_1.locate('SSel', true, []) do begin if not self.Order_Sub.locate('ConSId', trim(frmTradeSalesContractSel.CDS_1.Fieldbyname('ConSId').AsString), []) then begin with Self.Order_Sub do begin Append; FieldByName('ConNo').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('ConNo').AsString); FieldByName('ConMId').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('ConMId').AsString); FieldByName('ConSId').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('ConSId').Value; FieldByName('C_Code').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Code').Value; FieldByName('C_Name').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Name').Value; FieldByName('C_Composition').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Composition').Value; FieldByName('C_Spec').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Spec').Value; FieldByName('C_Width').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Width').Value; FieldByName('C_GramWeight').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_GramWeight').Value; FieldByName('C_Color').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Color').Value; FieldByName('C_ColorNo').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_ColorNo').Value; FieldByName('C_EColor').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_EColor').Value; FieldByName('C_Pattern').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_Pattern').Value; FieldByName('C_StyleNo').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_StyleNo').Value; // FieldByName('C_ColorDepth').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('C_ColorDepth').Value; end; end; CDS_1.Edit; CDS_1.fieldbyname('SSel').value := false; end; end; end; finally frmTradeSalesContractSel.Free; end; end; procedure TfrmTradeRRInPut.ToolButton4Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption), Tv1, '发货管理') end; procedure TfrmTradeRRInPut.fromCoNameBtnUpClick(Sender: TObject); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '客户'; if ShowModal = 1 then begin self.fromCoName.TxtCode := Trim(frmCompanySel.CDS_1.fieldbyname('CoCode').AsString); self.fromCoName.Text := Trim(frmCompanySel.CDS_1.fieldbyname('CoAbbrName').AsString); end; end; finally frmCompanySel.Free; end; end; procedure TfrmTradeRRInPut.fromCoNameBtnDnClick(Sender: TObject); begin fromCoName.Text := ''; end; end.