⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 upub1.pas

📁 成本系统三层结构源码 开发工具:Delphi 7.0+SQLServer 2005 主要技术:Midas、COM+ 所用第三方控件: FastReport V2.47 D7 Inforp
💻 PAS
📖 第 1 页 / 共 2 页
字号:
   //if DBgrid1.Columns[i].Visible then
   begin
     menu:=Tmenuitem.Create(self);
     Column.Add(menu);
     menu.Name:=DBgrid1.Columns[i].FieldName;
     menu.Caption:=DBgrid1.Columns[i].Field.DisplayName;
     menu.Checked:=DBgrid1.Columns[i].Visible;
     menu.onclick:=myclick;
     j:=j+1;
     if (j mod 20=0) then menu.Break:=mbBarBreak;
   end;
  end;
  menu:=Tmenuitem.Create(self);
  Column.Add(menu);
  menu.Name:='showall';
  menu.Default:=true;
  menu.Caption:='显示所有字段';
  menu.onclick:=myclick;
end;

procedure Tfmpub1.FormClose(Sender: TObject; var Action: TCloseAction);
var i:integer;
    str:string;
begin
  FilterStr.Free;
  if dbgrid1.DataSource.DataSet<>nil then
  if dbgrid1.DataSource.DataSet.Active then
  if reg1.ValueExists('savestatus') then
  if reg1.ReadBool('savestatus') then
  begin
    dbgrid1.Refresh;
    for i:=dbgrid1.ColumnCount-1 downto 0 do
    begin
      str:='';
      begin
        if dbgrid1.Columns[i].Visible=true then
        str:='True' else str:='False';
        str:=str+#13+inttostr(dbgrid1.Columns[i].Width);
        str:=str+#13+inttostr(dbgrid1.Columns[i].ColIndex);
        str:=str+#13+inttostr(dbgrid1.Columns[i].BandIndex);
        str:=str+#13+inttostr(dbgrid1.Columns[i].Index);
        reg1.WriteString(dbgrid1.Columns[i].FieldName,str);
        str:='';
      end;
    end;
  end;
  reg1.CloseKey;
  reg1.Destroy;
  Log(Self.Caption,'关闭'+Self.Caption);
  sherrylib.FormClose(self);
  action:=cafree;
end;

procedure Tfmpub1.DBGrid1DblClick(Sender: TObject);
begin
  AEdit.Execute;
end;

procedure Tfmpub1.DBGrid1HeaderButtonClick(Sender: TObject);
begin
  dbgrid1.OptionsDB:=dbgrid1.OptionsDB+[edgoloadallrecords]
end;

procedure Tfmpub1.DBGrid1ColumnClick(Sender: TObject;
  Column: TdxDBTreeListColumn);
begin
  if length(Dbgrid1.KeyField)=0 then
  begin
     Dbgrid1.KeyField:=Column.FieldName;
     dbgrid1.OptionsDB:=dbgrid1.OptionsDB+[edgoloadallrecords];
  end
  else
  dbgrid1.OptionsDB:=dbgrid1.OptionsDB+[edgoloadallrecords];
end;

procedure Tfmpub1.menuviewClick(Sender: TObject);
begin
  if Not (APreview.Enabled and APreview.Visible) then abort;
   ToExcel(DbGrid1.DataSource.DataSet,self.Caption)
end;

procedure Tfmpub1.menuprintClick(Sender: TObject);
begin
  if Not (APreview.Enabled and APreview.Visible) then abort;
  ToExcel(DbGrid1.DataSource.DataSet,self.Caption)
end;

procedure Tfmpub1.FormActivate(Sender: TObject);
begin
  self.WindowState:=wsMaximized;
end;

procedure Tfmpub1.GridClick(Sender: TObject);
begin
  grid.Checked:=not grid.Checked;
  reg1.WriteBool('savestatus',grid.Checked);
end;

procedure Tfmpub1.APreviewExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  Preview(Self.Name,False,DBGrid1.DataSource.DataSet);
end;

procedure Tfmpub1.APrintExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  Preview(Self.Name,True,DBGrid1.DataSource.DataSet);
end;

procedure Tfmpub1.ALocateExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  sherrylib.Locate(DSMain,DbGrid1.FocusedField.FieldName);
end;

procedure Tfmpub1.AFilterExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  Filter(DSMain,FilterStr);
end;

procedure Tfmpub1.AFirstExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  DBgrid1.DataSource.DataSet.First;
end;

procedure Tfmpub1.ALastExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  DSMain.DataSet.Last;
end;

procedure Tfmpub1.APriorExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  DSMain.DataSet.Prior;
end;

procedure Tfmpub1.ARefreshExecute(Sender: TObject);
var
  SavePlace:TBookmark;
  i:integer;
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  SavePlace := DbGrid1.DataSource.DataSet.GetBookmark;
  DbGrid1.DataSource.DataSet.DisableControls;
  try
    DSMain.DataSet.Refresh;
  except
    DSMain.DataSet.close;
    DSMain.DataSet.open;
  end;
  for i:=0 to DBgrid1.DataSource.DataSet.FieldCount-1 do
  if DBgrid1.DataSource.DataSet.Fields.Fields[i].LookupDataSet<>nil then
  DBgrid1.DataSource.DataSet.Fields.Fields[i].LookupDataSet.Refresh;
  try
    if DbGrid1.DataSource.DataSet.BookmarkValid(SavePlace) then
    DbGrid1.DataSource.DataSet.GotoBookmark(SavePlace);
  except
    DbGrid1.DataSource.DataSet.First;
  end;
  DbGrid1.DataSource.DataSet.FreeBookmark(SavePlace);
  DbGrid1.DataSource.DataSet.EnableControls;
  DbGrid1.Refresh;
end;

procedure Tfmpub1.AExcelExecute(Sender: TObject);
begin
  Sherrylib.GridToExcel(DBGrid1,self.Caption);
end;

procedure Tfmpub1.AAddExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  status(false);
  (DBgrid1.DataSource.DataSet as TClientDataSet).Append;
  SelectNext(ActiveControl,true,true);
end;

procedure Tfmpub1.AEditExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  if DBgrid1.DataSource.DataSet.IsEmpty then exit;
  status(false);
  DBgrid1.DataSource.DataSet.edit;
end;

procedure Tfmpub1.ADeleteExecute(Sender: TObject);
var i:integer;
    LogStr: String;
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  if DBgrid1.SelectedCount>1 then
  with DBGrid1.DataSource.DataSet do
  begin
    if Not Ask('是否删除当前选定的'+IntToStr(DBgrid1.SelectedCount)+'条纪录?') then Abort;
    for i:=DBGrid1.SelectedCount-1 downto 0 do
    begin
      GotoBookmark(pointer(DBGrid1.SelectedRows[i]));
     (DBgrid1.DataSource.DataSet as TClientDataSet).Delete;
    end;
    (DBgrid1.DataSource.DataSet as TClientDataSet).ApplyUpdates(-1);
    exit;
  end;
  if DBgrid1.DataSource.DataSet.IsEmpty then exit;
  if DBgrid1.DataSource.DataSet.RecordCount=0 then exit;
  if Not Ask('是否删除当前条纪录?') then Abort;
  LogStr:=String(TClientDataSet(DBgrid1.DataSource.DataSet).Fields.Fields[0].Value);
  TClientDataSet(DBgrid1.DataSource.DataSet).Delete;
  TClientDataSet(DBgrid1.DataSource.DataSet).ApplyUpdates(0);
  Log(Self.Caption,'删除资料'+LogStr);
end;

procedure Tfmpub1.ASaveExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  SelectNext(ActiveControl,true,true);
  Nullcheck(TClientDataSet(DSMain.DataSet));
  try
    (DSMain.DataSet as TClientDataSet).ApplyUpdates(0);
    status(true);
  except
    on E: Exception do
    Case AppException(E) of
    mryes: begin (DSMain.DataSet as TClientDataSet).CancelUpdates; Status(true); end;
    end;
  end;
end;

procedure Tfmpub1.ACancelExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  (DBgrid1.DataSource.DataSet as TClientDataSet).CancelUpdates;
  status(true);
end;

procedure Tfmpub1.ACloseExecute(Sender: TObject);
begin
  close;
end;

procedure Tfmpub1.ACopyAddExecute(Sender: TObject);
var i:integer;
    FieldValue:array of Variant;
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  if not DSMain.DataSet.Active then exit;
  CopyData(DSMain.DataSet);  
  AEdit.Execute;
end;

procedure Tfmpub1.ASaveAddExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  DSMain.DataSet.Post;
  (DSMain.Dataset as TClientDataset).ApplyUpdates(0);
  DSMain.DataSet.Append;
  DBgrid1.Columns[1].Field.FocusControl;
end;

procedure Tfmpub1.ALocateNextExecute(Sender: TObject);
begin
  if not (TAction(Sender).Enabled and TAction(Sender).Visible) then abort;
  //dxseeknext(dbgrid1);
end;

procedure Tfmpub1.AInformationExecute(Sender: TObject);
begin
  ShowInformation(DSMain.DataSet);
end;

procedure Tfmpub1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Sherrylib.FormKeyDown(Sender,Key,Shift);
end;

procedure Tfmpub1.MutlClick(Sender: TObject);
begin
  Mutl.Checked:=not Mutl.Checked;
  if Mutl.Checked then
    dbgrid1.OptionsBehavior:=dbgrid1.OptionsBehavior+[edgomultiselect]
  else
    dbgrid1.OptionsBehavior:=dbgrid1.OptionsBehavior-[edgomultiselect];
end;

procedure Tfmpub1.N3Click(Sender: TObject);
begin
  grid.Checked:=not grid.Checked;
  reg1.WriteBool('savestatus',grid.Checked);
end;

procedure Tfmpub1.AHelpExecute(Sender: TObject);
begin
  openhelp(Self.HelpKeyword)
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -