unit U_JGCEdit; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, dxBarBuiltInMenu, Vcl.Menus, cxClasses, cxGridCustomPopupMenu, cxGridPopupMenu, Data.DB, Datasnap.DBClient, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxStyles, dxSkinsCore, dxSkinsDefaultPainters, cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit, cxNavigator, dxDateRanges, cxDBData, cxButtonEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridCustomView, cxGrid, Vcl.ComCtrls, Vcl.ToolWin, Data.Win.ADODB, cxCheckBox, cxTextEdit, Vcl.StdCtrls, BtnEdit, Vcl.ExtCtrls; type TfrmJGCEdit = class(TForm) CDS_Fact: TClientDataSet; DSFact: TDataSource; cxgrdpmn2: TcxGridPopupMenu; PM_Fact: TPopupMenu; N1: TMenuItem; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; V2Column2: TcxGridDBColumn; TV2Column1: TcxGridDBColumn; V2Column1: TcxGridDBColumn; V2Column3: TcxGridDBColumn; V2Column4: TcxGridDBColumn; TV2Column3: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; TV2Column4: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ADOCmd: TADOQuery; ADOTemp: TADOQuery; TV2Column5: TcxGridDBColumn; TV2Column6: TcxGridDBColumn; TV2Column7: TcxGridDBColumn; TV2Column8: TcxGridDBColumn; TV2Column9: TcxGridDBColumn; TV2Column10: TcxGridDBColumn; TV2Column11: TcxGridDBColumn; TV2Column12: TcxGridDBColumn; TV2Column13: TcxGridDBColumn; TV2Column14: TcxGridDBColumn; TV2Column15: TcxGridDBColumn; pnlJGC: TPanel; edtGY: TBtnEditC; MPRTHJGBZNote: TMemo; SJGDate: TDateTimePicker; SJGPrice: TEdit; Button1: TButton; Button2: TButton; chkGY: TCheckBox; chkJQ: TCheckBox; chkPrice: TCheckBox; chkJGYQ: TCheckBox; SJGDY: TBtnEditC; chkJGC: TCheckBox; edtJGC: TBtnEditC; chkSJGDY: TCheckBox; TV2Column16: TcxGridDBColumn; procedure TextEdit(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure edtGYBtnDnClick(Sender: TObject); procedure edtJGCBtnUpClick(Sender: TObject); procedure edtGYBtnUpClick(Sender: TObject); procedure MPRTHJGBZNoteDblClick(Sender: TObject); procedure SJGDYBtnUpClick(Sender: TObject); private MSJGFactory, MSJGFactoryCode, MSJGFactoryJC: string; procedure InitGrid(); { Private declarations } public FMainId: string; { Public declarations } end; var frmJGCEdit: TfrmJGCEdit; implementation uses U_DataLink, U_RTFun, U_ZdyAttachGYS, U_ZDYHelpSel, U_ZDYHelp; {$R *.dfm} procedure TfrmJGCEdit.FormShow(Sender: TObject); begin InitGrid(); end; procedure TfrmJGCEdit.InitGrid(); begin with ADOTemp do begin Close; SQL.Clear; sql.Add(' select * from JYOrder_Fact A '); sql.Add(' inner join JYOrder_Sub B on A.SUBID=B.SUBID '); sql.Add(' where A.MainId=''' + Trim(FMainId) + ''''); // ShowMessage(SQL.Text); Open; end; SCreateCDS(ADOTemp, CDS_Fact); SInitCDSData(ADOTemp, CDS_Fact); end; procedure TfrmJGCEdit.MPRTHJGBZNoteDblClick(Sender: TObject); var fsj: string; FWZ: Integer; i: integer; begin fsj := Trim(TMemo(Sender).Hint); FWZ := Pos('/', fsj); i := 0; try frmZDYHelpSel := TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TMemo(Sender).Lines.Clear; with ClientDataSet1 do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin i := i + 1; TMemo(Sender).Lines.Add(inttostr(i) + '.' + FieldByName('ZDYName').AsString) end; Next; end; end; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmJGCEdit.Button1Click(Sender: TObject); begin if not CDS_Fact.Locate('SSel', True, []) then Exit; while CDS_Fact.Locate('SSel', True, []) do begin with CDS_Fact do begin Edit; FieldByName('SSel').Value := False; if chkJGC.Checked then begin FieldByName('SJGFactory').Value := MSJGFactory; FieldByName('SJGFactoryCode').Value := MSJGFactoryCode; FieldByName('SJGFactoryJC').Value := MSJGFactoryJC; end; if chkSJGDY.Checked then FieldByName('SJGDY').Value := SJGDY.Text; if chkGY.Checked then FieldByName('SJGType').Value := edtGY.Text; if chkJGYQ.Checked then FieldByName('HJGBZNote').Value := MPRTHJGBZNote.Text; if chkPrice.Checked then FieldByName('SJGPrice').Value := SJGPrice.Text; if chkJQ.Checked then FieldByName('SJGDate').Value := Trim(FormatDateTime('yyyy-MM-dd', SJGDate.DateTime)); Post; end; with ADOCmd do begin Close; SQL.Clear; sql.Add('update JYOrder_Fact '); if chkGY.Checked then sql.Add(' set SJGType=' + QuotedStr(Trim(edtGY.Text))) else sql.Add(' set SJGType=SJGType'); if chkJGC.Checked then begin sql.Add(' ,SJGFactory=' + QuotedStr(Trim(MSJGFactory))); sql.Add(' ,SJGFactoryCode=' + QuotedStr(Trim(MSJGFactoryCode))); sql.Add(' ,SJGFactoryJC=' + QuotedStr(Trim(MSJGFactoryJC))); end; if chkJGYQ.Checked then sql.Add(' ,HJGBZNote=' + QuotedStr(Trim(MPRTHJGBZNote.Text))); if chkPrice.Checked then sql.Add(' ,SJGPrice=' + QuotedStr(Trim(SJGPrice.Text))); if chkJQ.Checked then sql.Add(' ,SJGDate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', SJGDate.DateTime)))); sql.Add('where FactId=' + quotedstr(Trim(CDS_Fact.fieldbyname('FactId').AsString))); ExecSQL; end; end; Tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmJGCEdit.Button2Click(Sender: TObject); begin Close; end; procedure TfrmJGCEdit.SJGDYBtnUpClick(Sender: TObject); var fsj: string; FWZ: Integer; begin fsj := Trim(TEdit(Sender).Hint); FWZ := Pos('/', fsj); try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmJGCEdit.edtGYBtnDnClick(Sender: TObject); begin TBtnEditC(Sender).Text := ''; TBtnEditC(Sender).TxtCode := ''; end; procedure TfrmJGCEdit.edtGYBtnUpClick(Sender: TObject); var fsj: string; FWZ: Integer; i: integer; begin fsj := Trim(TBtnEditC(Sender).Hint); FWZ := Pos('/', fsj); i := 0; try frmZDYHelpSel := TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag := Copy(fsj, 1, FWZ - 1); flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ); if ShowModal = 1 then begin TBtnEditC(Sender).text := ''; with ClientDataSet1 do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean = True then begin i := i + 1; if TBtnEditC(Sender).text = '' then TBtnEditC(Sender).text := FieldByName('ZDYName').AsString else TBtnEditC(Sender).text := TBtnEditC(Sender).text + ',' + FieldByName('ZDYName').AsString; //inttostr(i)+'.'+ end; Next; end; end; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmJGCEdit.edtJGCBtnUpClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin edtJGC.TEXT := Trim(CDS_HZ.fieldbyname('CoName').AsString); edtJGC.TxtCode := Trim(CDS_HZ.fieldbyname('CoCode').AsString); MSJGFactory := Trim(CDS_HZ.fieldbyname('CoName').AsString); MSJGFactoryCode := Trim(CDS_HZ.fieldbyname('CoCode').AsString); MSJGFactoryJC := Trim(CDS_HZ.fieldbyname('CoHRName').AsString); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmJGCEdit.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmJGCEdit.TBSaveClick(Sender: TObject); begin InitGrid(); end; procedure TfrmJGCEdit.TextEdit(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_Fact do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOCmd do begin Close; SQL.Clear; sql.Add('update JYOrder_Fact set ' + FFieldName + '=' + Trim(mvalue)); sql.Add('where FactId=' + quotedstr(Trim(CDS_Fact.fieldbyname('FactId').AsString))); ExecSQL; end; Tv2.Controller.EditingController.ShowEdit(); end; end.