unit U_CaiGouSQInPut; 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, cxDropDownEdit, cxCalendar, cxGridCustomPopupMenu, cxGridPopupMenu; type TfrmCaiGouSQInPut = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ADOTemp: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_Sub: TClientDataSet; ADOQuery1: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; ToolButton3: TToolButton; ToolButton4: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column7: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column11: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; ADOQueryTemp: TADOQuery; v1Column1: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1SQQty: TcxGridDBColumn; v1SQPirce: TcxGridDBColumn; v1SQGYSName: TcxGridDBColumn; v1SQMoney: TcxGridDBColumn; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure v1SQGYSNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1SQQtyPropertiesEditValueChanged(Sender: TObject); procedure v1SQPircePropertiesEditValueChanged(Sender: TObject); private procedure InitData(); function SaveData():Boolean; { Private declarations } public PState:Integer; FMainId,FSQType:String; { Public declarations } end; var frmCaiGouSQInPut: TfrmCaiGouSQInPut; implementation uses U_DataLink,U_ZDYHelp,U_RTFun; {$R *.dfm} procedure TfrmCaiGouSQInPut.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('采购申请登记',Tv1,'采购申请管理'); end; procedure TfrmCaiGouSQInPut.InitData(); begin with ADOQuery1 do begin Close; SQL.Clear; sql.Add(' select A.*'); SQL.Add(' from CaiGou_SQ A '); sql.Add(' where A.SQId='''+Trim(FMainId)+''''); Open; end; SCreateCDS20(ADOQuery1,Order_Sub); SInitCDSData20(ADOQuery1,Order_Sub); end; procedure TfrmCaiGouSQInPut.FormShow(Sender: TObject); begin ReadCxGrid('采购申请登记',Tv1,'采购申请管理'); InitData(); end; function TfrmCaiGouSQInPut.SaveData():Boolean; var maxno,FSKID:string; begin try Result:=False; ADOCmd.Connection.BeginTrans; //保存主表 Order_Sub.DisableControls; with Order_Sub do begin First; while not Eof do begin with ADOTemp do begin Close; sql.Clear; sql.Add('select * from CaiGou_SQ where SQID='''+Trim(Order_Sub.fieldbyname('SQID').AsString)+''''); Open; end; FSKID:=Trim(ADOTemp.fieldbyname('SQID').AsString); if Trim(FSKID)='' then begin if GetLSNo(ADOCmd,maxno,'SQ','CaiGou_SQ',4,1)=False then begin Order_Sub.EnableControls; ADOCmd.Connection.RollbackTrans; Application.MessageBox('取采购申请登记表流水号失败!','提示',0); Exit; end; end else begin maxno:=Trim(FSKID); end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from CaiGou_SQ where SQID='''+Trim(FSKID)+''''); Open; end; with ADOCmd do begin if Trim(FSKID)='' then begin Append; end else begin Edit; end; FieldByName('SQID').Value:=Trim(maxno); RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'CaiGou_SQ',0); FieldByName('SQPirce').Value:=Order_Sub.fieldbyname('SQPirce').AsFloat; FieldByName('SQType').Value:=FSQType; if Trim(FSKID)='' then begin FieldByName('Filler').Value:=Trim(DName); end else begin FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); end; Post; end; Edit; FieldByName('SQID').Value:=Trim(maxno); Next; end; end; Order_Sub.EnableControls; ADOCmd.Connection.CommitTrans; Result:=True; except Result:=False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmCaiGouSQInPut.TBSaveClick(Sender: TObject); begin ToolBar1.SetFocus; if Order_Sub.IsEmpty then begin Application.MessageBox('明细不能为空!','提示',0); exit; end; if Order_Sub.Locate('SQDate',null,[]) then begin Application.MessageBox('申请日期不能为空!','提示',0); Exit; end; if SaveData() then begin Application.MessageBox('保存成功!','提示',0); // ModalResult:=1; end; end; procedure TfrmCaiGouSQInPut.ToolButton3Click(Sender: TObject); begin with Order_Sub do begin Append; Post; end; end; procedure TfrmCaiGouSQInPut.ToolButton4Click(Sender: TObject); var FWorker,FDate:String; begin if Order_Sub.IsEmpty then Exit; if Trim(Order_Sub.fieldbyname('SQID').AsString)<>'' then begin if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete CaiGou_SQ where SQId='''+Trim(Order_Sub.fieldbyname('SQId').AsString)+''''); ExecSQL; end; end; Order_Sub.Delete; end; procedure TfrmCaiGouSQInPut.v1SQGYSNamePropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin frmZDYHelp:=TfrmZDYHelp.Create(self); with frmZDYHelp do begin flag:='GYSBG'; flagname:='供应商名称'; if ShowModal=1 then begin with Order_Sub do begin edit; FieldByName('SQGYSName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; free; end; end; procedure TfrmCaiGouSQInPut.v1SQQtyPropertiesEditValueChanged( Sender: TObject); var mavlue:string; begin mavlue:=TcxTextEdit(Sender).EditingText; if mavlue='' then mavlue:='0'; with Order_Sub do begin edit; FieldByName('SQQty').Value:=mavlue; end; with Order_Sub do begin edit; FieldByName('SQMoney').Value:=FieldByName('SQPirce').AsFloat*FieldByName('SQQty').AsFloat; end; end; procedure TfrmCaiGouSQInPut.v1SQPircePropertiesEditValueChanged( Sender: TObject); var mavlue:string; begin mavlue:=TcxTextEdit(Sender).EditingText; if mavlue='' then mavlue:='0'; with Order_Sub do begin edit; FieldByName('SQPirce').Value:=mavlue; end; with Order_Sub do begin edit; FieldByName('SQMoney').Value:=FieldByName('SQPirce').AsFloat*FieldByName('SQQty').AsFloat; end; end; end.