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

📄 upub1.pas

📁 成本系统三层结构源码 开发工具:Delphi 7.0+SQLServer 2005 主要技术:Midas、COM+ 所用第三方控件: FastReport V2.47 D7 Inforp
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit upub1;

interface

uses
  Windows, SysUtils, Variants, Classes, Graphics,  Forms,
  Dialogs, DB, Controls, ExtCtrls, ComCtrls,
  ImgList, DBClient, Menus, StdCtrls, dxCntner, dxDBCtrl, dxDBGrid,
  registry,  ActnList, wwstr, dxTL, dxExEdtr, ToolWin;

type
  Tfmpub1 = class(TForm)
    DSMain: TDataSource;
    PageControl: TPageControl;
    Tabbrowse: TTabSheet;
    TabEdit: TTabSheet;
    Splitter: TSplitter;
    GroupBox1: TGroupBox;
    DBGrid1: TdxDBGrid;
    Panel2: TPanel;
    ActionList: TActionList;
    AAdd: TAction;
    ACopyAdd: TAction;
    AEdit: TAction;
    ADelete: TAction;
    ASave: TAction;
    ASaveAdd: TAction;
    ACancel: TAction;
    APreview: TAction;
    APrint: TAction;
    AExcel: TAction;
    AApprove: TAction;
    AFirst: TAction;
    ANext: TAction;
    APrior: TAction;
    ALast: TAction;
    ALocate: TAction;
    ALocateNext: TAction;
    AFilter: TAction;
    ToolBar: TToolBar;
    TBPreview: TToolButton;
    TBPrint: TToolButton;
    TBLocate: TToolButton;
    TBFilter: TToolButton;
    TBRefresh: TToolButton;
    TBExcel: TToolButton;
    TBConfirm: TToolButton;
    TBFirst: TToolButton;
    TBAdd: TToolButton;
    TBEdit: TToolButton;
    TBSave: TToolButton;
    TBCancel: TToolButton;
    TBClose: TToolButton;
    TBApprove: TToolButton;
    ARefresh: TAction;
    AConfirm: TAction;
    AClose: TAction;
    TBLast: TToolButton;
    TBDelete: TToolButton;
    TBHelp: TToolButton;
    AHelp: TAction;
    TBBlank1: TToolButton;
    TBBlank2: TToolButton;
    TBBlank3: TToolButton;
    TBTemp: TToolButton;
    TBBlank4: TToolButton;
    TBBlank5: TToolButton;
    AInformation: TAction;
    TBInformation: TToolButton;
    Panel1: TPanel;
    Panel3: TPanel;
    Menu1: TPopupMenu;
    Menu2: TPopupMenu;
    N22222: TMenuItem;
    N2: TMenuItem;
    Menu3: TPopupMenu;
    Mutl: TMenuItem;
    Column: TMenuItem;
    Grid: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure DBGrid1HeaderButtonClick(Sender: TObject);
    procedure DBGrid1ColumnClick(Sender: TObject;
      Column: TdxDBTreeListColumn);
    procedure menuviewClick(Sender: TObject);
    procedure menuprintClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure GridClick(Sender: TObject);
    procedure APreviewExecute(Sender: TObject);
    procedure APrintExecute(Sender: TObject);
    procedure ALocateExecute(Sender: TObject);
    procedure AFilterExecute(Sender: TObject);
    procedure AFirstExecute(Sender: TObject);
    procedure ALastExecute(Sender: TObject);
    procedure APriorExecute(Sender: TObject);
    procedure ARefreshExecute(Sender: TObject);
    procedure AExcelExecute(Sender: TObject);
    procedure AAddExecute(Sender: TObject);
    procedure AEditExecute(Sender: TObject);
    procedure ADeleteExecute(Sender: TObject);
    procedure ASaveExecute(Sender: TObject);
    procedure ACancelExecute(Sender: TObject);
    procedure ACloseExecute(Sender: TObject);
    procedure ACopyAddExecute(Sender: TObject);
    procedure ASaveAddExecute(Sender: TObject);
    procedure ALocateNextExecute(Sender: TObject);
    procedure AInformationExecute(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure MutlClick(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure AHelpExecute(Sender: TObject);
  private
    { Private declarations }
    reg1:Tregistry;
    filterStr:TStrings;
    procedure myclick(Sender: TObject);
  public
    { Public declarations }
    procedure status(flag:boolean);
  end;

var
  fmpub1: Tfmpub1;

implementation

uses uinfo, SherryLib, uReport, udata;

{$R *.dfm}

procedure Tfmpub1.myclick(Sender: TObject);
var i:integer;
begin
  if (Tmenuitem(sender).Caption='显示所有字段') or
     (Tmenuitem(sender).name='showall') then
  for i:=0 to DBgrid1.ColumnCount-1 do
  begin
    DBgrid1.Columns[i].Visible:=true;
    column.Items[i].Checked:=true;
  end;
  for i:=0 to DBgrid1.ColumnCount-1 do
  if DBgrid1.Columns[i].FieldName=Tmenuitem(sender).Name then
  begin
    DBgrid1.Columns[i].Visible:=not DBgrid1.Columns[i].Visible;
    Tmenuitem(sender).Checked:=not Tmenuitem(sender).Checked;
  end;
end;

procedure Tfmpub1.status(flag:boolean);
begin
  if flag then
  begin
    APreview.Enabled:=True;
    APrint.Enabled:=True;
    AExcel.Enabled:=True;
    ARefresh.Enabled:=True;
    AInformation.Enabled:=True;
    ALocate.Enabled:=True;
    ALocateNext.Enabled:=True;
    AFilter.Enabled:=True;
    AApprove.Enabled:=True;
    AConfirm.Enabled:=True;
    AFirst.Enabled:=True;
    APrior.Enabled:=True;
    ANext.Enabled:=True;
    ALast.Enabled:=True;
    AAdd.Enabled:=True;
    ACopyAdd.Enabled:=True;
    AEdit.Enabled:=True;
    ADelete.Enabled:=True;
    ASave.Enabled:=False;
    ASaveAdd.Enabled:=False;
    ACancel.Enabled:=False;
    if not Panel3.Visible then
    begin
      PageControl.ActivePage:=TabBrowse;
      TabBrowse.TabVisible:=True;
      TabEdit.TabVisible:=False;
    end
    else
    begin
      TabEdit.TabVisible:=False;
      TabBrowse.ImageIndex:=0;
      TabBrowse.Caption:='浏览';
      Panel3.Enabled:=False;
    end;
  end else
  begin
    APreview.Enabled:=False;
    APrint.Enabled:=False;
    AExcel.Enabled:=False;
    ARefresh.Enabled:=False;
    AInformation.Enabled:=False;
    ALocate.Enabled:=False;
    ALocateNext.Enabled:=False;
    AFilter.Enabled:=False;
    AApprove.Enabled:=False;
    AConfirm.Enabled:=False;
    AFirst.Enabled:=False;
    APrior.Enabled:=False;
    ANext.Enabled:=False;
    ALast.Enabled:=False;
    AAdd.Enabled:=False;
    ACopyAdd.Enabled:=False;
    AEdit.Enabled:=False;
    ADelete.Enabled:=False;
    ASave.Enabled:=True;
    ASaveAdd.Enabled:=True;
    ACancel.Enabled:=True;
    if not Panel3.Visible then
    begin
      PageControl.ActivePage:=TabEdit;
      TabBrowse.TabVisible:=False;
      TabEdit.TabVisible:=True;
    end
    else
    begin
      TabEdit.TabVisible:=False;    
      TabBrowse.ImageIndex:=1;
      TabBrowse.Caption:='录入';
      Panel3.Enabled:=True;
    end;
  end;
end;

procedure Tfmpub1.FormCreate(Sender: TObject);
var i,j:integer;
    menu:Tmenuitem;
    list,temp:Tstringlist;
begin
  //DoubleBuffered:=true;
  reg1:=Tregistry.Create;
  reg1.RootKey:=HKEY_CURRENT_USER;
  reg1.OpenKey('sherry\Grid\'+self.Name,true);
  Self.WindowState:=wsMaximized;
  FilterStr:=TStringList.Create;
  if DBgrid1.DataSource.DataSet=nil then
  begin
    Warn('请先指定数据! ');
    abort;
  end;
  GroupBox1.Caption:=self.Caption;
  Status(True);
  DBgrid1.GridLineColor:=$00ff0000;
  Dbgrid1.FixedBandLineColor:=clred;
  sherrylib.FormCreate(self);

  if Dbgrid1.ColumnCount=0 then
  dbgrid1.CreateDefaultColumns(DSMain.DataSet,self);
  for i:=0 to DBGrid1.ColumnCount-1 do
  begin
    DBGrid1.Columns[i].DisableEditor:=true;
    Dbgrid1.Columns[i].TreeList.ApplyBestFit(nil);
    if i<3 then
    DBGrid1.Columns[i].BandIndex:=0
    else
    DBGrid1.Columns[i].BandIndex:=1;
    dbgrid1.Columns[i].Visible:=DSMain.DataSet.FieldByName(dbgrid1.Columns[i].FieldName).Visible;
  end;
  if Dbgrid1.ColumnCount<=3 then DBgrid1.Bands[1].Visible:=false;
  dbgrid1.Bands.Items[0].Fixed:=bfLeft;
  dbgrid1.Bands.Items[0].Width:=0;
  for i:=0 to dbgrid1.ColumnCount-1 do
  dbgrid1.Columns[i].DisableEditor:=true;

  dbgrid1.OptionsBehavior:=dbgrid1.OptionsBehavior+
          [edgoautosort,edgoautosearch,edgomultisort];
  dbgrid1.OptionsDB:=dbgrid1.OptionsDB  //+[edgoloadallrecords]
          -[edgocandelete,edgocaninsert,edgoCancelOnExit];
  ///-----------------------------------------------------------------------------
  try
    if reg1.ValueExists('savestatus') then
    if reg1.ReadBool('savestatus') then
    begin
      grid.Checked:=true;
      list:=Tstringlist.Create;
      temp:=Tstringlist.create;
      reg1.GetValueNames(list);
      for i:=list.Count-1 downto 0 do
      begin
        if lowercase(list.Strings[i])='savestatus' then continue;
        strBreakApart(reg1.ReadString(list.Strings[i]), #13, temp);  //wwstr
        if length(temp.Strings[0])=4 then
        dbgrid1.ColumnByFieldName(list.Strings[i]).Visible:=True else
        dbgrid1.ColumnByFieldName(list.Strings[i]).Visible:=False;
        dbgrid1.ColumnByFieldName(list.Strings[i]).Width:=StrToInt(temp.Strings[1]);
        dbgrid1.ColumnByFieldName(list.Strings[i]).ColIndex:=StrToInt(temp.Strings[2]);
        dbgrid1.ColumnByFieldName(list.Strings[i]).BandIndex:=StrToInt(temp.Strings[3]);
        dbgrid1.ColumnByFieldName(list.Strings[i]).Index:=StrToInt(temp.Strings[4]);
      end;
      list.Free;
      temp.Free;
    end;
  except
  end;
///-----------------------------------------------------------------------------
  j:=0;
  for i:=0 to DBgrid1.ColumnCount-1 do
  begin

⌨️ 快捷键说明

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