📄 upub1.pas
字号:
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 + -