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