📄 baseinfo.pas
字号:
unit BaseInfo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, MDIbase, Buttons, StdCtrls, wwdblook, ToolWin, ComCtrls, Grids,
DBGridEh, DB, DBClient, Menus, ActnList, ExtCtrls, FR_Desgn, FR_DSet,
FR_DBSet, FR_Class;
type
TfrmBaseinfo = class(TfrmMDIbase)
CoolBar1: TCoolBar;
CDSprint: TClientDataSet;
Grid: TDBGridEh;
CDSprintField: TStringField;
ActionList1: TActionList;
PopupMenu: TPopupMenu;
s01: TAction;
s02: TAction;
s03: TAction;
s04: TAction;
s05: TAction;
s06: TAction;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
Panel1: TPanel;
spbtnEdit: TSpeedButton;
paprint: TPanel;
Label1: TLabel;
comboPrint: TwwDBLookupCombo;
CDSbaseinfo: TClientDataSet;
DSbaseinfo: TDataSource;
frBaseinfo: TfrReport;
frDBDSbaseinfo: TfrDBDataSet;
procedure GridGetCellParams(Sender: TObject; Column: TColumnEh;
AFont: TFont; var Background: TColor; State: TGridDrawState);
procedure spbtnEditClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure s01Execute(Sender: TObject);
procedure s03Execute(Sender: TObject);
procedure s06Execute(Sender: TObject);
procedure s04Execute(Sender: TObject);
procedure s02Execute(Sender: TObject);
procedure s05Execute(Sender: TObject);
procedure comboPrintChange(Sender: TObject);
private
procedure printSelect;
procedure Createprintdata;
function getscreenpoint(sender:Tcontrol):Tpoint;
{ Private declarations }
protected
Maintable:String;
Mainview:String;
KeyField:string;
Reportname:string;
ModifyForm:TFormClass;
public
{ Public declarations }
end;
var
frmBaseinfo: TfrmBaseinfo;
implementation
uses Global, common, usearch;
{$R *.dfm}
procedure TfrmBaseinfo.Createprintdata;
begin
With CDSprint do
begin
Close;
FieldDefs.Add('打印选项',ftString,8);
CreateDataSet;
AppendRecord(['退出打印']);
AppendRecord(['打印预览']);
AppendRecord(['直接打印']);
AppendRecord(['打印设置']);
AppendRecord(['报表设置']);
AppendRecord(['电子表格']);
Open;
end;
end;
function TfrmBaseinfo.getscreenpoint(sender: Tcontrol): Tpoint;
var
clientpoint:Tpoint;
begin
clientpoint:=point(0,sender.Height);
while sender.Parent<>nil do
begin
clientpoint:=point(sender.Left+clientpoint.X,sender.Top+clientpoint.Y);
sender:=sender.Parent;
end;
clientpoint:=sender.ClientToScreen(clientpoint);
Result:=clientpoint;
end;
procedure TfrmBaseinfo.GridGetCellParams(Sender: TObject;
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
inherited;
if Grid.SumList.RecNo mod 2=1 then
BackGround:=$00EAEFED
else
BackGround:=clWhite;
end;
procedure TfrmBaseinfo.spbtnEditClick(Sender: TObject);
var
Point:Tpoint;
begin
inherited;
Point:=GetScreenpoint(spbtnEdit);
popupmenu.Popup(point.X,point.Y);
end;
procedure TfrmBaseinfo.FormCreate(Sender: TObject);
begin
inherited;
Createprintdata;
LockCount:=0;
end;
procedure TfrmBaseinfo.FormShow(Sender: TObject);
begin
inherited;
GetaddData(CDSBaseinfo,Mainview,Keyfield,20);
s01.Enabled:=bcanadd; //新增
s02.Enabled:=bcanadd; //复制
s03.Enabled:=bcanmodify; //修改
s04.Enabled:=bcandelete; //删除
comboPrint.Enabled:=bcanprint; //打印权限
end;
procedure TfrmBaseinfo.s01Execute(Sender: TObject);
var
Child:Tform;
begin
inherited;
CDSbaseinfo.Append;
Child:=Modifyform.Create(application);
Child.ShowModal;
if CDSbaseinfo.ChangeCount > 0 then
begin
applyupdata(CDSbaseinfo,Maintable,Keyfield);
Cdsbaseinfo.MergeChangeLog;
end;
GetaddData(CDSbaseinfo,Mainview,keyField,20);
end;
procedure TfrmBaseinfo.s03Execute(Sender: TObject);
var
Child:Tform;
Cid:integer;
begin
inherited;
if CDSbaseinfo.RecordCount = 0 then Exit;
Cid:=CDSbaseinfo.fieldbyname(keyfield).AsInteger;
CDSbaseinfo.Edit;
Child:=Modifyform.Create(application);
Child.ShowModal;
if CDSbaseinfo.ChangeCount > 0 then
begin
Applyupdata(CDSbaseinfo,Maintable,keyfield);
CDSbaseinfo.MergeChangeLog;
end;
GeteditData(CDSbaseinfo,Mainview,keyfield,cid,20);
end;
procedure TfrmBaseinfo.s06Execute(Sender: TObject);
begin
inherited;
GetaddData(CDSbaseinfo,Maintable,KeyField,0);
end;
procedure TfrmBaseinfo.s04Execute(Sender: TObject);
var
Cid:integer;
begin
inherited;
if CDSbaseinfo.RecordCount = 0 then Exit;
Cid:=CDSbaseinfo.fieldbyname(keyfield).AsInteger;
if messagedlg('确认删除当前记录吗 ? ',mtConfirmation,[mbok,mbcancel],0)=mrok then
begin
CDSbaseinfo.Delete;
Applyupdata(CDSbaseinfo,Maintable,keyField);
CDSbaseinfo.MergeChangeLog;
GeteditData(CDSbaseinfo,Mainview,Keyfield,Cid,20);
end;
end;
procedure TfrmBaseinfo.s02Execute(Sender: TObject);
var
i:integer;
s1,s2,cmdStr:string;
begin
inherited;
s1:='';
S2:='';
for i:=2 to CDSbaseinfo.FieldCount do //Because Field Fid Can not insert
begin
if s1='' then
begin
s1:=Trim(Cdsbaseinfo.Fields[i-1].FieldName);
s2:=VartoSql(Cdsbaseinfo.Fields[i-1].Value);
end
else
begin
s1:=s1+','+Trim(cdsbaseinfo.Fields[i-1].FieldName);
s2:=s2+','+VartoSql(cdsbaseinfo.Fields[i-1].Value);
end;
end;
if s1<>'' then
cmdStr:=' Insert into '+Maintable+'('+s1+') Values('+s2+')';
if execsql(cmdStr) then
begin
Getadddata(CDSbaseinfo,mainView,keyfield,20);
syslog(self.Name,'复制记录,表名:'+maintable );
end;
end;
procedure TfrmBaseinfo.s05Execute(Sender: TObject);
var
i,j:integer;
begin
inherited;
initArray;
for i:=0 to CDSbaseinfo.FieldCount - 1 do
FindArray1[i]:=CDSbaseinfo.Fields[i].FieldName;
for j:=0 to Grid.Columns.Count - 1 do
FindArray2[j]:=Grid.Columns[j].Title.Caption;
if not Assigned(frmSearch) then
frmSearch:=TfrmSearch.Create(application);
frmSearch.ShowModal;
if Trim(Searchtiao)<>'' then
begin
try
Getsqldata(CDSbaseinfo,MainView,Keyfield,Searchtiao,20);
except
GetAddData(CDSbaseinfo,MainView,Keyfield,20);
end;
end;
end;
procedure TfrmBaseinfo.comboPrintChange(Sender: TObject);
begin
inherited;
printSelect;
end;
procedure TfrmBaseinfo.printSelect;
Begin
if Trim(comboprint.Text)='打印预览' then
begin
CDSbaseinfo.DisableControls;
frbaseinfo.LoadFromFile(ReportName);
frbaseinfo.ShowReport;
CDSbaseinfo.EnableControls;
end;
if Trim(comboprint.Text)='直接打印' then
begin
CDSbaseinfo.DisableControls;
frbaseinfo.LoadFromFile(ReportName);
frbaseinfo.PrepareReport;
frbaseinfo.PrintPreparedReport('',1,True,frAll);
CDSbaseinfo.EnableControls;
end;
if Trim(comboprint.Text)='打印设置' then
begin
CDSbaseinfo.DisableControls;
frbaseinfo.LoadFromFile(ReportName);
frbaseinfo.PrepareReport;
frbaseinfo.PrintPreparedReportDlg;
CDSbaseinfo.EnableControls;
end;
if Trim(comboprint.Text)='报表设置' then
begin
CDSbaseinfo.DisableControls;
frbaseinfo.LoadFromFile(ReportName);
frbaseinfo.DesignReport;
CDSbaseinfo.EnableControls;
end;
if Trim(comboprint.Text)='退出打印' then
Exit;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -