unit U_BpGdYPCkEdit; interface uses Windows, Messages, SysUtils, Variants, cxEdit,Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, DB, cxDBData,cxTextEdit, cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxCheckBox, BtnEdit, cxCurrencyEdit,strUtils, RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset; type TfrmBpGdYPCkEdit = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBExport: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1P_CodeName: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; CDS_Main: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; TOk: TToolButton; v1P_Color: TcxGridDBColumn; v1ckqty: TcxGridDBColumn; v1price: TcxGridDBColumn; v1money: TcxGridDBColumn; Panel2: TPanel; GroupBox1: TGroupBox; CRTime: TDateTimePicker; Label8: TLabel; CRType: TComboBox; Label5: TLabel; Label9: TLabel; cust: TBtnEditA; ADOQuery1: TADOQuery; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; Panel1: TPanel; Label23: TLabel; ADOPrint: TADOQuery; RMDB_MD: TRMDBDataSet; RMGridReport1: TRMGridReport; RMXLSExport1: TRMXLSExport; Label1: TLabel; note: TEdit; v1ssel: TcxGridDBColumn; GroupBox2: TGroupBox; Label2: TLabel; P_CodeName: TBtnEditA; Label3: TLabel; Edit1: TEdit; Label4: TLabel; Edit2: TEdit; Button1: TButton; CheckBox1: TCheckBox; custaddress: TEdit; Label6: TLabel; ADOQuery2: TADOQuery; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TOkClick(Sender: TObject); procedure custBtnClick(Sender: TObject); procedure v1ckqtyPropertiesEditValueChanged(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure v1P_CodeNamePropertiesEditValueChanged(Sender: TObject); procedure v1P_ColorPropertiesEditValueChanged(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure P_CodeNameBtnClick(Sender: TObject); procedure P_CodeNameExit(Sender: TObject); procedure Button1Click(Sender: TObject); procedure CRTimeKeyPress(Sender: TObject; var Key: Char); private procedure InitGrid(); procedure SetComboBox(); function savedate():Boolean; function YSData(ckNo,CkID:string;Order_Main10:TClientDataSet):Boolean; procedure DoKc(); { Private declarations } public fType:integer; fCKName:string; fkeyNO:string; { Public declarations } end; var frmBpGdYPCkEdit: TfrmBpGdYPCkEdit; implementation uses U_DataLink,U_Fun10,U_ZDYHelp, U_BpRk, U_ZdyAttachCP, U_ZdyAttachment; {$R *.dfm} procedure TfrmBpGdYPCkEdit.DoKc(); begin Label23.Caption:='数量:0'; IF CDS_Main.IsEmpty then exit; IF trim(CDS_Main.fieldbyname('P_CodeName').AsString)='' then exit; IF trim(CDS_Main.fieldbyname('P_Color').AsString)='' then exit; with ADOQuery1 do begin close; sql.Clear; sql.Add('select AA.* '); sql.Add('FROM( select A.ckName,P_CodeName,A.P_Color,A.QtyUnit,ckQty=0.00,Price=0.00,money=0.00, '); sql.Add(' SUM(case when CRFlag=''入库'' then Qty else -1 * Qty end ) as Qty '); sql.Add('from BP_InOut A '); sql.Add('where P_CodeName='+quotedstr(trim(CDS_Main.fieldbyname('P_CodeName').AsString)) ); sql.Add('and P_Color='+quotedstr(trim(CDS_Main.fieldbyname('P_Color').AsString)) ); if trim(FckName)<>'' then sql.Add('and ckName='+quotedstr(trim(FckName)) ); sql.Add('group by A.ckName,P_CodeName,A.P_Color,A.QtyUnit)AA '); open; end; IF not ADOQuery1.IsEmpty then begin // Label22.Caption:='匹数:'+trim(ADOQuery1.fieldbyname('kcRollNum').AsString); Label23.Caption:='数量:'+trim(ADOQuery1.fieldbyname('Qty').AsString); end; end; function TfrmBpGdYPCkEdit.YSData(ckNo,CkID:string;Order_Main10:TClientDataSet):Boolean; var CRID,YFID,Price,PriceUnit,OrderUnit,FComTaiTou:String; begin Result:=False; with Order_Main10 do begin with ADOQuery1 do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(cust.text)+''''); sql.Add('and YFDefFlag1=1 '); Open; end; if not ADOQuery1.IsEmpty then begin CRID:=ADOQuery1.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value:=StrToInt(CRID); FieldByName('FactoryName').Value:=Trim(cust.text); FieldByName('ZdyStr1').Value:='应收收'; FieldByName('YFDefFlag1').Value:=1; Post; end; end; with ADOQuery1 do begin Close; sql.Clear; sql.Add('delete from YF_Money_CR '); sql.Add(' where MainID='''+Trim(ckNo)+''''); sql.Add(' and subID='''+Trim(ckID)+''''); sql.Add(' and YFName=''广东销售'' '); execsql; end; with ADOQuery1 do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR '); sql.Add(' where MainID='''+Trim(ckNo)+''''); sql.Add(' and subID='''+Trim(ckID)+''''); sql.Add(' and YFName=''广东销售'' '); Open; end; if ADOQuery1.IsEmpty then begin if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',4,1)=False then begin Application.MessageBox('取坯布应付最大号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value:=Trim(YFID); FieldByName('YFTypeId').Value:=Trim(ckNo); FieldByName('CRID').Value:=StrToInt(CRID); FieldByName('Filler').Value:=Trim(DName); FieldByName('CRType').Value:='应收款登记'; FieldByName('CRFlag').Value:='应收收'; FieldByName('QtyFlag').Value:=1; FieldByName('FactoryName').Value:=Trim(cust.Text); FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime.DateTime)); FieldByName('YFType').Value:='自动生成'; FieldByName('ps').Value:=0; FieldByName('Qty').Value:=Order_Main10.fieldbyname('Qty').AsFloat; FieldByName('Price').Value:=Order_Main10.fieldbyname('Price').AsFloat; FieldByName('Money').Value:=Order_Main10.fieldbyname('Money').AsFloat; FieldByName('BBMoney').Value:=Order_Main10.fieldbyname('Money').AsFloat; //FieldByName('HuiLv').Value:=1; FieldByName('HuiLv').Value:=1; FieldByName('BZType').Value:='人民币'; FieldByName('QtyUnit').Value:=Trim(Order_Main10.fieldbyname('QtyUnit').AsString); FieldByName('ComTaiTou').Value:=Trim(cust.Text); FieldByName('P_CodeName').Value:=trim(Order_Main10.fieldbyname('P_CodeName').AsString); FieldByName('P_Color').Value:=trim(Order_Main10.fieldbyname('P_Color').AsString); FieldByName('YFName').Value:='广东销售'; FieldByName('MainId').Value:=Trim(ckNo); FieldByName('subID').Value:=Trim(ckID); FieldByName('YFDefFlag1').Value:=1; FieldByName('syrName').Value:='广东门市部'; Post; end; end else begin YFID:=Trim(ADOQuery1.fieldbyname('YFID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(' where CRID='+CRID); ExecSQL; end; end; Result:=True; end; function TfrmBpGdYPCkEdit.savedate():Boolean; var fkcID,i:integer; Filler:string; FillTime:TdateTime; maxno:string; begin result:=false; try ADOQueryCmd.Connection.BeginTrans; if FType=0 then begin if GetLSNo(ADOQueryCmd,fkeyNO,'GC','BP_InOut',3,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!','提示',0); Exit; end; Filler:=DName; FillTime:=SGetServerDateTime(adoqueryTmp); end else begin with adoqueryTmp do begin close; sql.Clear; sql.Add('select * from BP_InOut'); sql.Add('where CRNO='+quotedstr(trim(fkeyNO))); open; Filler:=adoqueryTmp.fieldbyname('Filler').AsString; FillTime:=adoqueryTmp.fieldbyname('FillTime').AsDateTime; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete from YF_Money_CR '); sql.Add(' where MainID='''+Trim(fkeyNO)+''''); sql.Add(' and YFName=''广东销售'' '); sql.Add('and YFDefFlag1=1 '); execsql; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('delete from BP_InOut'); sql.Add('where CRNO='+quotedstr(trim(fkeyNO))); execsql; end; CDS_Main.DisableControls; CDS_Main.First; i:=1; with CDS_Main do begin while not eof do begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from BP_InOut'); sql.Add('where 1=2 '); open; end; ADOQueryCmd.Append; ADOQueryCmd.FieldByName('CRNO').Value:=trim(fkeyNO); ADOQueryCmd.FieldByName('CRID').Value:=i; ADOQueryCmd.FieldByName('CKName').Value:=trim(fckName); // ADOQueryCmd.FieldByName('mainID').Value:=trim(fmainID); // ADOQueryCmd.FieldByName('subID').Value:=trim(fsubID); ADOQueryCmd.FieldByName('CRTime').Value:=formatdateTime('yyyy-MM-dd',CRTime.Date); ADOQueryCmd.FieldByName('CRType').Value:=trim(crType.Text); ADOQueryCmd.FieldByName('CRFlag').Value:='出库'; // ADOQueryCmd.FieldByName('MJID').Value:=trim(fieldbyname('MJID').AsString); // ADOQueryCmd.FieldByName('MJXH').Value:=trim(fieldbyname('MJXH').AsString); // ADOQueryCmd.FieldByName('CPTYPE').Value:=trim(fieldbyname('CPTYPE').AsString); // ADOQueryCmd.FieldByName('P_Code').Value:=trim(fieldbyname('P_Code').AsString); ADOQueryCmd.FieldByName('P_CodeName').Value:=trim(fieldbyname('P_CodeName').AsString); // ADOQueryCmd.FieldByName('P_spec').Value:=trim(fieldbyname('P_spec').AsString); ADOQueryCmd.FieldByName('P_Color').Value:=trim(fieldbyname('P_Color').AsString); // ADOQueryCmd.FieldByName('P_MF').Value:=fieldbyname('P_MF').AsFloat; // ADOQueryCmd.FieldByName('P_KZ').Value:=fieldbyname('P_KZ').AsFloat; ADOQueryCmd.FieldByName('RollNum').Value:=0; ADOQueryCmd.FieldByName('Qty').Value:=fieldbyname('Qty').AsFloat; ADOQueryCmd.FieldByName('Price').Value:=fieldbyname('Price').AsFloat; ADOQueryCmd.FieldByName('money').Value:=fieldbyname('money').AsFloat; ADOQueryCmd.FieldByName('QtyUnit').Value:=trim(fieldbyname('QtyUnit').AsString); // ADOQueryCmd.FieldByName('note').Value:=trim(fieldbyname('note').AsString); ADOQueryCmd.FieldByName('Filler').Value:=trim(Filler); ADOQueryCmd.FieldByName('FillTime').Value:=dateTimetostr(FillTime); ADOQueryCmd.FieldByName('cust').Value:=trim(cust.Text); ADOQueryCmd.FieldByName('custaddress').Value:=trim(custaddress.Text); ADOQueryCmd.FieldByName('note').Value:=trim(note.Text); // ADOQueryCmd.FieldByName('FirstNo').Value:=trim(FirstName.TxtCode); // ADOQueryCmd.FieldByName('FirstName').Value:=trim(FirstName.Text); if FType=1 then begin ADOQueryCmd.FieldByName('editer').Value:=trim(dName); ADOQueryCmd.FieldByName('editTime').Value:=SGetServerDateTime(ADOQuery1); end; ADOQueryCmd.Post; IF trim(CRType.Text)='广东零售' then begin if not YSData(fkeyNo,inttostr(i),CDS_Main) then begin CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; exit; end; end; i:=i+1; next; end; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; result:=true; except CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; end; end; procedure TfrmBpGdYPCkEdit.SetComboBox(); begin { ckName.Items.Clear; with adoQueryTmp do begin close; sql.Clear; sql.Add('select * from KH_ZDY where Type=''BPCK'' '); if trim(fCKName)<>'' then sql.Add('and zdyName='+quotedstr(trim(fCKName))); open; while not eof do begin ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); next; end; end; if ckName.Items.Count>0 then ckName.ItemIndex:=0; } CRType.Items.Clear; // CRType.Items.Add(''); with adoQueryTmp do begin close; sql.Clear; sql.Add('select * from KH_ZDY where Type=''BPCKTYPE'''); if trim(fCKName)<>'' then sql.Add('and note='+quotedstr(trim(fCKName))); open; while not eof do begin CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); next; end; end; if CRType.Items.Count>0 then CRType.ItemIndex:=0; end; procedure TfrmBpGdYPCkEdit.InitGrid(); begin try with adoqueryTmp do begin close; sql.Clear; sql.Add('select A.* from BP_InOut A'); sql.Add('where A.CRNO='+quotedstr(trim(fkeyNO))); open; end; SCreateCDS20(adoqueryTmp,CDS_Main); SInitCDSData20(adoqueryTmp,CDS_Main); if not CDS_Main.IsEmpty then begin CRTime.Date:= CDS_Main.fieldbyname('CRTime').AsDateTime; // CKName.ItemIndex:=CKName.Items.IndexOf(trim(CDS_Main.fieldbyname('CKName').AsString)); CRType.ItemIndex:=CRType.Items.IndexOf(trim(CDS_Main.fieldbyname('CRType').AsString)); cust.Text:= trim(CDS_Main.fieldbyname('cust').AsString); custaddress.Text:= trim(CDS_Main.fieldbyname('custaddress').AsString); note.Text:= trim(CDS_Main.fieldbyname('note').AsString); end; finally end; end; procedure TfrmBpGdYPCkEdit.FormClose(Sender: TObject; var Action: TCloseAction); begin writeCxGrid(self.Caption,Tv1,'布匹仓库'); if fType=10 then Action:=cahide else Action:=cafree; end; procedure TfrmBpGdYPCkEdit.FormDestroy(Sender: TObject); begin frmBpGdYPCkEdit:=nil; end; procedure TfrmBpGdYPCkEdit.FormShow(Sender: TObject); begin { if fType=10 then begin TOk.Visible:=true; // v1Ssel.Visible:=true; v1ckqty.Visible:=true; v1price.Visible:=true; v1money.Visible:=true; GroupBox1.Visible:=true; end else begin TOk.Visible:=false; // v1Ssel.Visible:=false; v1ckqty.Visible:=false; v1price.Visible:=false; v1money.Visible:=false; GroupBox1.Visible:=false; end; } readCxGrid(self.Caption,Tv1,'布匹仓库'); SetComboBox(); InitGrid(); end; procedure TfrmBpGdYPCkEdit.FormCreate(Sender: TObject); begin //BegDate.Date:=DServerDate-7; // EndDate.Date:=DServerDate; CRTime.date:= DServerDate; cxGrid1.Align:=alclient; end; procedure TfrmBpGdYPCkEdit.TBCloseClick(Sender: TObject); begin close; end; procedure TfrmBpGdYPCkEdit.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmBpGdYPCkEdit.TBPrintClick(Sender: TObject); var filepath:string; begin if trim(fkeyNO)='' then exit; with AdoPrint do begin close; sql.Clear; sql.Add('exec P_Do_PrintMd '); sql.Add('@mainID='+quotedstr(trim(fkeyNO))); sql.Add(',@flag='+quotedstr(trim('广东出库'))); open; end; try filepath:=ExtractFilePath(Application.ExeName) + 'report\出库码单建威广州.rmf'; if not FileExists(Pchar(filepath)) then begin application.MessageBox(pchar('文件['+filepath+']不存在!'),'提示信息',MB_IConError); exit; end; RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); RMVariables['zdr'] :=trim(DName); RMVariables['Filler'] :=trim(DName); RMGridReport1.LoadFromFile(filepath); RMGridReport1.ShowReport; finally end; end; procedure TfrmBpGdYPCkEdit.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption,cxgrid1); end; procedure TfrmBpGdYPCkEdit.TOkClick(Sender: TObject); begin CRTIME.SetFocus; IF CDS_Main.IsEmpty then exit; if trim(CRType.Text)='' then begin application.MessageBox('出库类型不能为空!','提示信息',0); exit; end; if trim(cust.Text)=''then begin application.MessageBox('客户不能为空!','提示信息',0); exit; end; if savedate() then begin application.MessageBox('数据保存成功!','提示信息'); TOk.Enabled:=false; TBPrint.Enabled:=true; // ModalResult:=1; end else begin application.MessageBox('数据保存失败!','提示信息',MB_ICONERROR); end; end; procedure TfrmBpGdYPCkEdit.custBtnClick(Sender: TObject); begin try frmZdyAttachment:=TfrmZdyAttachment.Create(Application); with frmZdyAttachment do begin fkhType:='广东客户'; if ShowModal=1 then begin cust.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); custaddress.Text:=Trim(CDS_HZ.fieldbyname('defnote1').AsString); end; end; finally frmZdyAttachment.Free; end; end; procedure TfrmBpGdYPCkEdit.v1ckqtyPropertiesEditValueChanged(Sender: TObject); var mvalue,fieldname,qty1,qty2:String; num1:double; begin fieldname:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; with CDS_Main do begin Edit; FieldByName(Trim(fieldname)).Value:=TcxTextEdit(Sender).EditingText; num1:=FieldByName('Qty').AsFloat * FieldByName('Price').AsFloat; FieldByName('Money').Value:=strtofloat(format('%.2f',[num1])); Post; end; Tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmBpGdYPCkEdit.CheckBox1Click(Sender: TObject); begin IF CDS_Main.IsEmpty then exit; with CDS_Main do begin DisableControls; first; while not eof do begin edit; fieldbyname('ssel').Value:=checkbox1.Checked; post; next; end; First; EnableControls; end; // TBRafresh.Click; end; procedure TfrmBpGdYPCkEdit.ToolButton1Click(Sender: TObject); begin CopyAddRow(Tv1,CDS_Main); CDS_Main.edit; CDS_Main.fieldbyname('QtyUnit').Value:='M'; CDS_Main.Post; end; procedure TfrmBpGdYPCkEdit.ToolButton2Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; with CDS_Main do begin DisableControls; first; while not eof do begin if CDS_Main.Locate('ssel',true,[]) then begin CDS_Main.Delete; end else begin First; EnableControls; exit; end; //next; end; First; EnableControls; end; end; procedure TfrmBpGdYPCkEdit.v1P_CodeNamePropertiesEditValueChanged( Sender: TObject); var mvalue:string; begin mvalue:=TcxTextEdit(Sender).EditingText; IF trim(mvalue)='' then exit; IF rightBstr(trim(mvalue),1)<>'#'THEN BEGIn mvalue:=trim(mvalue)+'#'; END; with CDS_Main do begin Edit; FieldByName('P_CodeName').Value:=Trim(mvalue); Post; end; self.tv1.Controller.EditingController.ShowEdit(); DoKc(); with ADOQuery1 do begin close; sql.Clear; sql.Add('select * from KH_Zdy_Attachment A '); sql.Add('where zdyName='+quotedstr(trim(CDS_Main.fieldbyname('P_CodeName').AsString))); open; end; IF ADOQuery1.IsEmpty then begin application.MessageBox('品名不存在!','提示信息',0); with CDS_Main do begin Edit; FieldByName('P_CodeName').Value:=''; Post; end; exit; end; end; procedure TfrmBpGdYPCkEdit.v1P_ColorPropertiesEditValueChanged( Sender: TObject); var mvalue:string; begin mvalue:=TcxTextEdit(Sender).EditingText; IF trim(mvalue)='' then exit; IF rightBstr(trim(mvalue),1)<>'#'THEN BEGIn mvalue:=trim(mvalue)+'#'; END; with CDS_Main do begin Edit; FieldByName('P_Color').Value:=Trim(mvalue); Post; end; self.tv1.Controller.EditingController.ShowEdit(); DoKc(); with ADOQuery1 do begin close; sql.Clear; sql.Add('select * from KH_Zdy_Attachment A '); sql.Add('where zdyName='+quotedstr(trim(CDS_Main.fieldbyname('P_CodeName').AsString))); sql.Add('and DEFstr3='+quotedstr(trim(CDS_Main.fieldbyname('P_Color').AsString))); open; end; IF ADOQuery1.IsEmpty then begin application.MessageBox('颜色不存在!','提示信息',0); with CDS_Main do begin Edit; FieldByName('P_Color').Value:=''; Post; end; end; end; procedure TfrmBpGdYPCkEdit.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin DoKc(); end; procedure TfrmBpGdYPCkEdit.v1P_CodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachCP:=TfrmZdyAttachCP.Create(Application); with frmZdyAttachCP do begin if ShowModal=1 then begin Self.CDS_main.Edit; Self.CDS_main.FieldByName('P_Code').Value:=Trim(CDS_HZ.fieldbyname('ZdyCode').AsString); Self.CDS_main.FieldByName('P_CodeName').Value:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); Self.CDS_main.FieldByName('P_Color').Value:=Trim(CDS_HZ.fieldbyname('DEFstr3').AsString); // Self.Order_Sub.FieldByName('SOrddefstr4').Value:=Trim(ClientDataSet1.fieldbyname('Note').AsString); Self.CDS_main.Post; end; end; finally frmZdyAttachCP.Free; end; self.tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmBpGdYPCkEdit.P_CodeNameBtnClick(Sender: TObject); begin try frmZdyAttachCP:=TfrmZdyAttachCP.Create(Application); with frmZdyAttachCP do begin if ShowModal=1 then begin Self.P_COdeName.Text:=Trim(CDS_HZ.fieldbyname('ZDYName').AsString); end; end; finally frmZdyAttachCP.Free; end; end; procedure TfrmBpGdYPCkEdit.P_CodeNameExit(Sender: TObject); var mvalue:string; begin mvalue:=trim(P_CodeName.Text); IF trim(mvalue)='' then exit; IF rightBstr(trim(mvalue),1)<>'#'THEN BEGIn mvalue:=trim(mvalue)+'#'; END; P_CodeName.Text:= trim(mvalue); with ADOQuery1 do begin close; sql.Clear; sql.Add('select * from KH_Zdy_Attachment A '); sql.Add('where zdyName='+quotedstr(trim(mvalue))); open; end; IF ADOQuery1.IsEmpty then begin application.MessageBox('品名不存在!','提示信息',0); P_CodeName.Text:=''; exit; end; end; procedure TfrmBpGdYPCkEdit.Button1Click(Sender: TObject); begin with ADOQuery1 do begin close; sql.Clear; sql.Add('select * from KH_Zdy_Attachment A '); sql.Add('where zdyName='+quotedstr(trim(P_CodeName.Text))); open; end; CDS_Main.DisableControls; CDS_Main.Last; while not ADOQuery1.Eof do begin CDS_Main.Append; CDS_main.FieldByName('P_Code').Value:=Trim(ADOQuery1.fieldbyname('ZdyCode').AsString); CDS_main.FieldByName('P_CodeName').Value:=Trim(ADOQuery1.fieldbyname('ZDYName').AsString); CDS_main.FieldByName('P_Color').Value:=Trim(ADOQuery1.fieldbyname('DEFstr3').AsString); CDS_main.FieldByName('Qty').Value:=strtofloatdef(trim(edit1.Text),0); CDS_main.FieldByName('Price').Value:=strtofloatdef(trim(edit2.Text),0); CDS_main.FieldByName('Money').Value:=strtofloat(format('%.2f',[CDS_main.FieldByName('Qty').AsFloat * CDS_main.FieldByName('Price').AsFloat])); CDS_Main.Post; ADOQuery1.Next; end; CDS_Main.EnableControls; end; procedure TfrmBpGdYPCkEdit.CRTimeKeyPress(Sender: TObject; var Key: Char); begin Key:=UpCase(Key); if key=#13 then begin perform(WM_NEXTDLGCTL,0,0); Key := #0; end; end; end.