unit U_ZdyAttInputGYS; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit, cxTextEdit, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type TfrmZdyAttInputGYS = class(TForm) ToolBar1: TToolBar; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; ToolButton3: TToolButton; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; v2Column6: TcxGridDBColumn; v2Column8: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column4: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v2Column7: TcxGridDBColumn; v2Column9: TcxGridDBColumn; v2Column1: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; v2DEFStr6: TcxGridDBColumn; v2DEFStr7: TcxGridDBColumn; Tv2Column1: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Tv2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private { Private declarations } procedure InitGrid(); function SaveData(): Boolean; public { Public declarations } RKFlag, FCYID: string; fDEFstr5: string; end; var frmZdyAttInputGYS: TfrmZdyAttInputGYS; implementation uses U_DataLink, U_Fun, U_ZDYHelp; {$R *.dfm} procedure TfrmZdyAttInputGYS.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add(' select * from KH_Zdy_Attachment where ATID=''' + Trim(FCYID) + ''''); Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; end; end; procedure TfrmZdyAttInputGYS.FormDestroy(Sender: TObject); begin frmZdyAttInputGYS := nil; end; procedure TfrmZdyAttInputGYS.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmZdyAttInputGYS.TBCloseClick(Sender: TObject); begin WriteCxGrid('供应商资料录入1', Tv2, '客户自定义'); Close; end; procedure TfrmZdyAttInputGYS.FormShow(Sender: TObject); begin ReadCxGrid('供应商资料录入1', Tv2, '客户自定义'); InitGrid(); if Trim(FCYID) = '' then begin CDS_HZ.Append; if trim(fDEFstr5) <> '' then begin CDS_HZ.FieldByName('DEFstr5').Value := trim(fDEFstr5); v2Column8.Options.Editing := false; end; CDS_HZ.Post; end; end; procedure TfrmZdyAttInputGYS.TBRafreshClick(Sender: TObject); begin InitGrid(); end; function TfrmZdyAttInputGYS.SaveData(): Boolean; var maxId, CRID, fzdyCode: string; begin try ADOQueryCmd.Connection.BeginTrans; if Trim(FCYID) = '' then begin if GetLSNo(ADOQueryCmd, maxId, 'AT', 'KH_Zdy_Attachment', 4, 1) = False then begin Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; if GetLSNo(ADOQueryCmd, fzdyCode, 'PB', 'KH_Zdy_Attachment', 4, 0) = False then begin Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; end else begin maxId := Trim(FCYID); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from KH_Zdy_Attachment where ATID=''' + Trim(FCYID) + ''''); Open; end; with ADOQueryCmd do begin if Trim(FCYID) = '' then begin Append; FieldByName('Filler').Value := Trim(DName); FieldByName('zdyCode').Value := Trim(fzdyCode); end else begin Edit; FieldByName('Editer').Value := Trim(DName); FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTemp); end; FieldByName('ATID').Value := Trim(maxId); FieldByName('ZdyName').Value := Trim(CDS_HZ.fieldbyname('ZdyName').AsString); RTSetSaveDataCDS(ADOQueryCmd, Tv2, CDS_HZ, '', 0); FieldByName('Type').Value := 'GYS'; FieldByName('Filler').Value := Trim(DName); Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from KH_Zdy where ZdyNo=''' + Trim(FCYID) + ''''); Open; end; with ADOQueryCmd do begin if Trim(FCYID) = '' then begin Append; end else begin Edit; end; FieldByName('ZdyNo').Value := Trim(maxId); FieldByName('ZdyName').Value := Trim(CDS_HZ.fieldbyname('ZdyName').AsString); FieldByName('Type').Value := 'GYS'; FieldByName('MainType').Value := Trim(CDS_HZ.fieldbyname('DEFstr5').AsString); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from KH_Zdy_Attachment where ZdyCode=''' + Trim(CDS_HZ.fieldbyname('ZdyCode').AsString) + ''''); sql.Add(' and Type=''GYS'' '); Open; end; if ADOQueryCmd.RecordCount > 1 then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('编号重复!', '提示', 0); Exit; end; with CDS_HZ do begin Edit; FieldByName('ATID').Value := Trim(maxId); Post; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except Result := True; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存异常!', '提示', 0); end; end; procedure TfrmZdyAttInputGYS.ToolButton3Click(Sender: TObject); begin cxGrid2.SetFocus; if Trim(CDS_HZ.FieldByName('ZdyName').AsString) = '' then begin Application.MessageBox('供应商名称不能为空!', '提示', 0); Exit; end; if Application.MessageBox('确定要保存数据吗?', '提示', 32 + 4) <> IDYES then Exit; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); ModalResult := 1; end; end; procedure TfrmZdyAttInputGYS.Tv2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'PRTCodeName'; flagname := '跟单'; if ShowModal = 1 then begin Self.CDS_hz.Edit; Self.CDS_hz.FieldByName('DEFNote2').Value := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; end.