unit U_TradeDeliveryRequestInPut; 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, dxSkinBasic, 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, dxSkinOffice2016Colorful, dxSkinOffice2016Dark, dxSkinOffice2019Black, dxSkinOffice2019Colorful, dxSkinOffice2019DarkGray, dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringtime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinTheBezier, dxSkinValentine, dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark, dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint, dxSkinWXI, dxSkinXmas2008Blue, dxScrollbarAnnotations; type TfrmTradeDeliveryRequestInPut = 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; ADOQuery1: TADOQuery; cxGridPopupMenu2: TcxGridPopupMenu; Label1: TLabel; OutType: TComboBox; Note: TEdit; Label12: TLabel; Label11: TLabel; ToCoName: TBtnEditC; v1Column1: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; dazi1: TcxStyle; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; Label2: TLabel; DlyDate: TDateTimePicker; Tv1Column2: TcxGridDBColumn; ToolButton3: TToolButton; ToolButton4: TToolButton; Label27: TLabel; QtyUnit: TComboBox; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; cxgrdbclmnTv1Column1: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToCoNameBtnUpClick(Sender: TObject); procedure ToCoNameBtnDnClick(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; FDRMID: string; FAuthority: string; { Public declarations } end; var frmTradeDeliveryRequestInPut: TfrmTradeDeliveryRequestInPut; newh: hwnd; implementation uses U_DataLink, U_ZDYHelp, U_RTFun, U_TradePlanSel, U_TradeSalesContractSel, U_TradeClothTotalStkList_Sel, U_CompanySel; {$R *.dfm} procedure TfrmTradeDeliveryRequestInPut.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmTradeDeliveryRequestInPut.InitData(); var fsj: string; begin if PState = 0 then begin DlyDate.DateTime := strtodatetime(Trim(FormatDateTime('yyyy-MM-dd', Now))); end; with ADOQuery1 do begin Close; SQL.Clear; sql.Add(' select A.* '); sql.Add(' from Trade_Cloth_DR_Sub A'); if PState = 1 then begin sql.Add('where DRMID=''' + Trim(FDRMID) + ''''); end; if PState = 0 then begin sql.Add(' where 1<>1'); end; Open; end; SCreateCDS(ADOQuery1, Order_Sub); SInitCDSData(ADOQuery1, Order_Sub); with ADOQuery1 do begin Close; sql.Clear; sql.Add('select A.* '); sql.Add(' from Trade_Cloth_DR_Main A'); sql.Add(' where DRMID=''' + Trim(FDRMID) + ''' '); Open; end; SCSHData(ADOQuery1, ScrollBox1, 1); ToCoName.TxtCode := ADOQuery1.FieldByName('ToCoNo').asstring; end; procedure TfrmTradeDeliveryRequestInPut.JSQtyUnitChange(Sender: TObject); begin if not Order_Sub.IsEmpty then begin exit; end; end; procedure TfrmTradeDeliveryRequestInPut.FormShow(Sender: TObject); var fsj: string; begin readCxGrid(trim(self.Caption) + '1', Tv1, '��������'); InitData(); end; function TfrmTradeDeliveryRequestInPut.SaveData(): Boolean; var MaxMid, MaxSid: string; begin try ADOCmd.Connection.BeginTrans; ///////////////// �������� ///////////////// if Trim(FDRMID) = '' then begin if GetLSNo(ADOCmd, MaxMid, 'DM', 'Trade_Cloth_DR_Main', 4, 2) = False then raise Exception.Create('ȡ����ʧ�ܣ�'); end else begin MaxMid := Trim(FDRMID); end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from Trade_Cloth_DR_Main where DRMID=''' + Trim(MaxMid) + ''''); Open; end; with ADOCmd do begin if Trim(FDRMID) = '' 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_DR_Main', ScrollBox1, 1); FieldByName('DRMID').Value := Trim(MaxMid); FieldByName('ToCoNo').Value := Trim(ToCoName.TxtCode); FieldByName('Status').Value := '9'; FieldByName('Chker').Value := Trim(DName); FieldByName('Chker').Value := Trim(DName); FieldByName('ChkTime').Value := SGetServerDateTime(ADOTemp); Post; end; ///////////////// �������� ///////////////// /// ///////////////// �����ӱ� ///////////////// Order_Sub.DisableControls; with Order_Sub do begin First; while not Eof do begin if Trim(Order_Sub.fieldbyname('DRSID').AsString) = '' then begin if GetLSNo(ADOCmd, MaxSid, 'DS', 'Trade_Cloth_DR_Sub', 4, 1) = False then raise Exception.Create('ȡ����ˮ��ʧ�ܣ�'); end else begin MaxSid := Trim(Order_Sub.fieldbyname('DRSID').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from Trade_Cloth_DR_Sub '); sql.Add(' where DRMID=''' + Trim(MaxMid) + ''''); sql.Add(' and DRSID=''' + Trim(MaxSid) + ''''); Open; if ADOCmd.IsEmpty then begin Append; end else begin Edit; end; RTSetSaveDataCDS(ADOCmd, Tv1, Order_Sub, 'Trade_Cloth_DR_Sub', 0); FieldByName('DRMID').Value := Trim(MaxMid); FieldByName('DRSID').Value := Trim(MaxSid); FieldByName('QtyUnit').Value := Order_Sub.fieldbyname('QtyUnit').Value; FieldByName('MainId').Value := Order_Sub.fieldbyname('MainId').Value; FieldByName('SubId').Value := Order_Sub.fieldbyname('SubId').Value; FieldByName('ConNO').Value := Order_Sub.fieldbyname('ConNO').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('DRSID').Value := Trim(MaxSid); Next; end; end; Order_Sub.EnableControls; ///////////////// �����ӱ� ///////////////// FDRMID := Trim(MaxMid); ADOCmd.Connection.CommitTrans; Result := True; except ADOCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '��ʾ��Ϣ', 0); Result := False; end; end; procedure TfrmTradeDeliveryRequestInPut.TBSaveClick(Sender: TObject); var Freal: Double; begin ToolBar1.SetFocus; if Trim(OutType.Text) = '' then begin Application.MessageBox('�������Ͳ���Ϊ�գ�', '��ʾ', 0); Exit; end; if Trim(ToCoName.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 TfrmTradeDeliveryRequestInPut.ToolButton1Click(Sender: TObject); begin if trim(OutType.text) = '' then begin Application.MessageBox('����ѡ��������ͣ�', '��ʾ', 0); Exit; end; try frmTradeClothTotalStkList_Sel := TfrmTradeClothTotalStkList_Sel.Create(Application); with frmTradeClothTotalStkList_Sel do begin frmTradeClothTotalStkList_Sel.LenUnit.text := self.QtyUnit.text; if trim(self.OutType.text) = '���ϳ���' then frmTradeClothTotalStkList_Sel.Grade.text := '����'; if trim(self.OutType.text) = '���۳���' then frmTradeClothTotalStkList_Sel.Grade.text := '��Ʒ'; FAuthority := self.FAuthority; if ShowModal = 1 then begin while CDS_1.locate('SSel', true, []) do begin with Self.Order_Sub do begin Append; //FieldByName('ConNo').Value := Trim(frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('ConNo').AsString); FieldByName('ConMID').Value := Trim(frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('ConMID').AsString); FieldByName('ConSID').Value := Trim(frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('ConSID').AsString); FieldByName('C_Code').Value := Trim(frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('C_Code').AsString); FieldByName('C_Name').Value := Trim(frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('C_Name').AsString); FieldByName('C_Width').Value := Trim(frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('C_Width').AsString); FieldByName('C_Color').Value := Trim(frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('C_Color').AsString); FieldByName('C_GramWeight').Value := Trim(frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('C_GramWeight').AsString); FieldByName('MAINID').Value := Trim(frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('MAINID').AsString); FieldByName('SUBID').Value := Trim(frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('SUBID').AsString); FieldByName('ORDERNO').Value := Trim(frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('ORDERNO').AsString); FieldByName('Piece').Value := frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('KCPS').AsInteger; ToCoName.Text := frmTradeClothTotalStkList_Sel.CDS_1.fieldbyname('BuyName').AsString; end; CDS_1.Edit; CDS_1.fieldbyname('SSel').value := false; end; end; end; finally frmTradeClothTotalStkList_Sel.Free; end; end; procedure TfrmTradeDeliveryRequestInPut.ToolButton2Click(Sender: TObject); begin if Order_Sub.IsEmpty then Exit; if Trim(Order_Sub.fieldbyname('DRSID').AsString) <> '' then begin with ADOTemp do begin Close; sql.Clear; sql.Add('select * from Trade_Cloth_DR_Sub where DRSID=''' + Trim(Order_Sub.fieldbyname('DRSID').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_DR_Sub where DRSID=''' + Trim(Order_Sub.fieldbyname('DRSID').AsString) + ''''); ExecSQL; end; // with ADOCmd do // begin // Close; // sql.Clear; // sql.Add('Update Trade_Cloth_DR_Main Set '); // sql.Add('SQPSHZ=(select Sum(SQPS) from Trade_Cloth_DR_Sub A where A.DRMID=Trade_Cloth_DR_Main.DRMID)'); // sql.Add('where DRMID=''' + Trim(FDRMID) + ''''); // ExecSQL; // end; end; Order_Sub.Delete; end; procedure TfrmTradeDeliveryRequestInPut.ToolButton3Click(Sender: TObject); var FConMainId, FMPRTCode: string; begin if trim(OutType.text) = '' then begin Application.MessageBox('����ѡ��������ͣ�', '��ʾ', 0); Exit; end; try frmTradeSalesContractSel := TfrmTradeSalesContractSel.Create(Application); with frmTradeSalesContractSel do begin FAuthority := self.FAuthority; frmTradeSalesContractSel.FLenUnit := self.QtyUnit.text; if trim(self.OutType.text) = '���ϳ���' then frmTradeSalesContractSel.FGrade := '����'; if trim(self.OutType.text) = '���۳���' then frmTradeSalesContractSel.FGrade := '��Ʒ'; if ShowModal = 1 then begin frmTradeSalesContractSel.CDS_1.DisableControls; 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; ToCoName.text := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('BuyName').AsString); ToCoName.TxtCode := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('BuyNo').AsString); FieldByName('ConNo').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('ConNo').AsString); FieldByName('ConMID').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('ConMID').AsString); FieldByName('ConSID').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('ConSID').AsString); FieldByName('C_Code').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('C_Code').AsString); FieldByName('C_Name').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('C_Name').AsString); FieldByName('C_Width').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('C_Width').AsString); FieldByName('QtyUnit').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('ConUnit').AsString); FieldByName('C_Color').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('C_Color').AsString); FieldByName('C_KnitGramWeight').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('C_KnitGramWeight').AsString); FieldByName('C_GramWeight').Value := Trim(frmTradeSalesContractSel.CDS_1.fieldbyname('C_GramWeight').AsString); FieldByName('Piece').Value := frmTradeSalesContractSel.CDS_1.fieldbyname('KCPS').AsInteger; end; end; CDS_1.Edit; CDS_1.fieldbyname('SSel').value := false; end; frmTradeSalesContractSel.CDS_1.EnableControls; end; end; finally frmTradeSalesContractSel.Free; end; end; procedure TfrmTradeDeliveryRequestInPut.ToolButton4Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + '1', Tv1, '��������') end; procedure TfrmTradeDeliveryRequestInPut.ToCoNameBtnUpClick(Sender: TObject); begin try frmCompanySel := TfrmCompanySel.Create(Application); with frmCompanySel do begin FCoType := '�ͻ�'; if ShowModal = 1 then begin self.ToCoName.TxtCode := Trim(frmCompanySel.CDS_1.fieldbyname('CoCode').AsString); self.ToCoName.Text := Trim(frmCompanySel.CDS_1.fieldbyname('CoAbbrName').AsString); end; end; finally frmCompanySel.Free; end; end; procedure TfrmTradeDeliveryRequestInPut.ToCoNameBtnDnClick(Sender: TObject); begin ToCoName.Text := ''; end; end.