📄 u_commonregister.pas
字号:
unit U_CommonRegister;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
HGrids, HDBGrids, TB97Tlbr, TB97Ctls, TB97, DBTables, Db, Menus,
ComCtrls, ExtCtrls, ImgList, HTitleDBGrid;
type
TFm_CommonRegister = class(TForm)
MDS: TDataSource;
Dock: TDock97;
Tb97_Func: TToolbar97;
TbBtn_Help: TToolbarButton97;
TbBtn_Exit: TToolbarButton97;
MQuery: TQuery;
MUpSQL: TUpdateSQL;
PPM: TPopupMenu;
PM_BBan: TMenuItem;
PM_Help: TMenuItem;
PM_Exit: TMenuItem;
PM_Z02: TMenuItem;
MTrView: TTreeView;
Spl_Main: TSplitter;
Pnl_DAn: TPanel;
ImageList: TImageList;
TbSep02: TToolbarSep97;
TbBtn_Direct: TToolbarButton97;
MQuerys_xhao: TStringField;
MQuerys_xming: TStringField;
MQuerys_xqhao: TStringField;
MQuerys_bqjhkmu: TStringField;
MQuerys_jbjdkmu: TStringField;
MQuerys_wthdydian: TStringField;
MQuerys_jzdhua: TStringField;
TbBtn_Print: TToolbarButton97;
TbSp01: TToolbarSep97;
N1: TMenuItem;
N2: TMenuItem;
MGrid: THTitleDBGrid;
procedure TbBtn_ExitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Spl_MainCanResize(Sender: TObject; var NewSize: Integer;
var Accept: Boolean);
procedure Spl_FuCanResize(Sender: TObject; var NewSize: Integer;
var Accept: Boolean);
procedure MTrViewGetImageIndex(Sender: TObject; Node: TTreeNode);
procedure MTrViewGetSelectedIndex(Sender: TObject; Node: TTreeNode);
procedure MTrViewChange(Sender: TObject; Node: TTreeNode);
procedure TbBtn_HelpClick(Sender: TObject);
procedure TbBtn_DirectClick(Sender: TObject);
procedure MQueryAfterPost(DataSet: TDataSet);
procedure QueryGetText(Sender: TField; var Text: String; DisplayText: Boolean);
procedure QuerySetText(Sender: TField; const Text: String);
procedure MGridDblClick(Sender: TObject);
procedure MGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure MQueryAfterOpen(DataSet: TDataSet);
procedure TbBtn_PrintClick(Sender: TObject);
private
public
end;
var
Fm_CommonRegister: TFm_CommonRegister;
procedure Show_CommonRegister;
implementation
uses U_Main, U_GlobalProc, U_GlobalVar, U_DM, U_Print;
{$R *.DFM}
procedure Show_CommonRegister;
var
i: integer;
aQuery: TQuery;
aColumn1, aColumn2: THColumn;
begin
for i := Fm_Main.MDIChildCount - 1 downto 0 do
begin
if (Fm_Main.MDIChildren[i].Name <> 'Fm_Wizard') and
(Fm_Main.MDIChildren[i].Name <> 'Fm_CommonRegister') then
Fm_Main.MDIChildren[i].Close;
end;
if not Assigned(Fm_CommonRegister) then
begin
Fm_CommonRegister := TFm_CommonRegister.Create(Application);
with Fm_CommonRegister do
begin
MQuery.Open;
//ReSetGridColumns(MGrid, 'XSSTZK', QueryGetText, QuerySetText);
RefreshGridStyle(MGrid);
aQuery := TQuery.Create(Application);
with aQuery do
try
DataBaseName := DataDBase;
SQL.Text := 'SELECT * FROM kc';
Open;
aColumn1 := MGrid.FindFirstColumn('s_bqjhkmu');
aColumn2 := MGrid.FindFirstColumn('s_jbjdkmu');
while not Eof do
begin
aColumn1.PickList.AddObject(FieldByName('s_kcmcheng').AsString,
Pointer(FieldByName('s_kcdhao').AsInteger));
aColumn2.PickList.AddObject(FieldByName('s_kcmcheng').AsString,
Pointer(FieldByName('s_kcdhao').AsInteger));
Next;
end;
aColumn1.CanEdit := False;
aColumn2.CanEdit := False;
aColumn1.Alignment := taLeftJustify;
aColumn2.Alignment := taLeftJustify;
finally
Close;
Free;
end;
MakeGradeTree(MTrView, 0, False);
MTrView.Items[0].Selected := True;
end;
end;
with Fm_CommonRegister do
begin
if WindowState <> wsMaximized then
WindowState := wsMaximized;
Show;
SetFocus;
end;
end;
procedure TFm_CommonRegister.TbBtn_ExitClick(Sender: TObject);
begin
if MQuery.State = dsEdit then
MQuery.Post;
Close;
end;
procedure TFm_CommonRegister.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
MQuery.Close;
Action := caFree;
Fm_CommonRegister := nil;
end;
procedure TFm_CommonRegister.Spl_MainCanResize(Sender: TObject;
var NewSize: Integer; var Accept: Boolean);
begin
if NewSize < 8 then
Accept := False;
end;
procedure TFm_CommonRegister.Spl_FuCanResize(Sender: TObject;
var NewSize: Integer; var Accept: Boolean);
begin
if NewSize < 8 then
Accept := False;
end;
procedure TFm_CommonRegister.MTrViewGetImageIndex(Sender: TObject;
Node: TTreeNode);
begin //
if Node.HasChildren then
begin
if Node.Expanded then
Node.ImageIndex := 2
else
Node.ImageIndex := 1;
end
else
begin
if Node.Level = 0 then
Node.ImageIndex := 1
else
Node.ImageIndex := 0;
end;
end;
procedure TFm_CommonRegister.MTrViewGetSelectedIndex(Sender: TObject;
Node: TTreeNode);
begin
if Node.HasChildren then
begin
if Node.Expanded then
Node.SelectedIndex := 5
else
Node.SelectedIndex := 4;
end
else
begin
if Node.Level = 0 then
Node.SelectedIndex := 4
else
Node.SelectedIndex := 3;
end;
end;
procedure TFm_CommonRegister.MTrViewChange(Sender: TObject;
Node: TTreeNode);
var
tmS: string;
begin
with MQuery do
try
DisableControls;
Close;
SQL.Text := 'SELECT d1.s_xhao, d2.s_xming, d1.s_xqhao, d1.s_bqjhkmu, ' +
'd1.s_jbjdkmu, d1.s_wthdydian, d1.s_jzdhua FROM xsybpj d1, xsjbxx d2';
if Integer(Node.Data) < 9999 then
begin // 年级
tmS := S_SchoolCode + IntToStr(Integer(Node.Data)) + '%';
SQL.Text := SQL.Text + 'WHERE d2.s_xhao LIKE ''' + tmS + ''' AND d1.s_xhao=d2.s_xhao';
end
else
begin // 班级
tmS := IntFormatStr(Integer(Node.Data), 9);
SQL.Text := SQL.Text + 'WHERE d2.s_bjhao = ''' + tmS + ''' AND d1.s_xhao=d2.s_xhao';
end;
Open;
finally
EnableControls;
end;
end;
procedure TFm_CommonRegister.TbBtn_HelpClick(Sender: TObject);
begin //
end;
procedure TFm_CommonRegister.TbBtn_DirectClick(Sender: TObject);
begin
if MGrid.ReturnDirection = rdUp then
MGrid.ReturnDirection := rdNone
else
MGrid.ReturnDirection := THReturnDirection(Integer(MGrid.ReturnDirection) + 1);
TbBtn_Direct.ImageIndex := 38 + Integer(MGrid.ReturnDirection);
end;
procedure TFm_CommonRegister.MQueryAfterPost(DataSet: TDataSet);
begin
MQuery.ApplyUpdates;
end;
procedure TFm_CommonRegister.QueryGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
DataSetGetText(MGrid, Sender, Text, DisplayText);
end;
procedure TFm_CommonRegister.QuerySetText(Sender: TField;
const Text: String);
begin
DataSetSetText(MGrid, Sender, Text);
end;
procedure TFm_CommonRegister.MGridDblClick(Sender: TObject);
begin //
GridDblClick(Sender);
end;
procedure TFm_CommonRegister.MGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
GridKeyDown(Sender, Key, Shift);
end;
procedure TFm_CommonRegister.MQueryAfterOpen(DataSet: TDataSet);
begin
if MQuery.IsEmpty then
MGrid.Options := MGrid.Options - [tgEditing]
else
MGrid.Options := MGrid.Options + [tgEditing];
end;
procedure TFm_CommonRegister.TbBtn_PrintClick(Sender: TObject);
begin//
Show_Print(MGrid);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -