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

📄 uzsdy.pas

📁 图书管理系统,已经用于市场,此软件只供学习使用,不的用于商业行为
💻 PAS
字号:
unit Uzsdy;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, Grids, DBGrids, StdCtrls, Buttons, RpDefine, RpRave,
  ImgList, ExcelXP, OleServer;

type
  Tzsdyfrm = class(TForm)
    DBGrid1: TDBGrid;
    TreeView1: TTreeView;
    BitBtn1: TBitBtn;
    Label1: TLabel;
    ImageList1: TImageList;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    ExcelApplication1: TExcelApplication;
    ExcelWorksheet1: TExcelWorksheet;
    ExcelWorkbook1: TExcelWorkbook;
    procedure  InitTreeView();
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  zsdyfrm: Tzsdyfrm;
   rootnode,YXnode,ZYMCnode,NJnode,BJnode:TTreeNode;

   YXstr,ZYMCstr,NJstr,BJstr:string;
implementation

uses UDM, Utxcj, UMain, Ubb, Uabout, Ubbbj;

{$R *.dfm}
procedure  Tzsdyfrm.InitTreeView();
 var
 i,j,k,t:integer;
begin
   YXnode:=nil;
   rootnode:=nil;
   zymcnode:=nil;
   NJnode:=nil;
   BJnode:=nil;
   if TreeView1.selected<>nil then
    begin
     //当选中了某个目录时,。。。。。
    //TreeView1.Selected.Expand(false);
    end
   else
    begin
     //如果没有选中某个目录,并且没有根节点则创建节点
     if  TreeView1.Items.GetFirstNode=nil then
        rootnode:= TreeView1.Items.Add(nil,'南华大学图书馆');
        rootnode.ImageIndex :=0;
        for i:=1 to dm.adocard.RecordCount do    //加载学院名称
         begin
          YXstr:=dm.adocard.FieldValues['YX'];
          YXnode:= TreeView1.Items.AddChild(rootnode,YXstr);
          YXnode.ImageIndex :=1;
          YXnode.SelectedIndex :=1;
           with dm.ADOzymc do   //根据学院选择专业名称
            begin
             close;
             sql.Clear ;
             sql.Add(' select distinct zymc from card where yx='''+YXstr+'''');
             open;
            end;
           for j:=1 to dm.ADOzymc.RecordCount  do     //加载某学院的所有专业名称
            begin
              ZYMCstr:=dm.ADOzymc.FieldValues['zymc'];
              ZYMCnode:= TreeView1.Items.AddChild(YXnode,ZYMCstr);
              ZYMCnode.ImageIndex :=2;
              ZYMCnode.SelectedIndex :=2;
               with dm.ADOnj do   //根据专业名称选择年级
               begin
                close;
                sql.Clear;
                sql.Add(' select distinct ZYXH from card where yx='''+YXstr+''''+' and zymc='''+ZYMCstr+'''');
                open;
               end;
               for k:=1 to dm.ADOnj.RecordCount do  //加载某学院的某专业的年级
                begin
                  NJstr:=dm.ADOnj.FieldValues['ZYXH'];
                  NJstr:=copy(NJstr,1,4)+'级';
                  NJnode:=TreeView1.Items.AddChild(ZYMCnode,NJstr);
                  NJnode.ImageIndex :=3;
                  NJnode.SelectedIndex :=3;
                  with dm.ADObj do   //根据专业名称选择年级
                   begin
                   close;
                   sql.Clear ;
                   sql.Add(' select distinct BHMC from card where yx='''+YXstr+''''+' and zymc='''+ZYMCstr+''''+' and ZYXH like '''+copy(NJstr,1,4)+'%''');
                   open;
                   end;
                   for t:=1 to dm.ADObj.RecordCount do
                    begin
                     BJstr:=dm.ADObj.FieldValues['BHMC'];
                     BJnode:=TreeView1.Items.AddChild(NJnode,BJstr+'班');
                     BJnode.ImageIndex :=4;
                     BJnode.SelectedIndex :=4;
                     dm.ADObj.Next;
                    end;
                  dm.ADOnj.Next;
                end;
              dm.ADOzymc.Next ;
            end;
          dm.adocard.Next;
         end;
    end;
  end;
procedure Tzsdyfrm.FormCreate(Sender: TObject);
begin
 dm.ADOdy.Close;
 mainfrm.StatusBar1.Panels.Items[1].Text:='您当前的操作为: '+'证书打印';
 with dm.adocard do
  begin
    close;
    sql.Clear ;
    sql.Add('select distinct YX from card');
    open;
  end;
 InitTreeView();  //初始化树
  BitBtn1.Enabled :=false; //使预览证书按钮不可用
  bitbtn3.Enabled :=false; //使信息核对按钮不可用
 if TreeView1.Items.GetFirstNode<>nil then    //初始化树以后,展开显示根目录中的内容
  begin
   //TreeView1.Select(TreeView1.Items.GetFirstNode);
   TreeView1.Items.GetFirstNode.Expand(false);
  end;

end;

procedure Tzsdyfrm.BitBtn1Click(Sender: TObject);  //证书预览
begin
 //rvproject1.ProjectFile:=extractfilepath(application.ExeName)+'Project1.rav';
 //rvproject1.Execute;
 //rvproject1.Close ;
  bbbjfrm.QRDBText4.Height :=25;
  bbbjfrm.QuickRep1.Preview ; //报表预览
 end;

procedure Tzsdyfrm.TreeView1Click(Sender: TObject);
begin
   if TreeView1.Selected.Level=4 then
    begin
      with dm.ADOdy do
      begin
        close;
        sql.Clear;
        sql.Add('select * from card where yx='''+TreeView1.Selected.Parent.Parent.Parent.Text+''''+' and zymc='''+TreeView1.Selected.Parent.Parent.Text+''''+' and ZYXH like '''+copy(TreeView1.Selected.Parent.Text,1,4)+'%'''+' and BHMC='''+copy(TreeView1.Selected.Text,1,2)+'''');
        open;
      end;
      SetColomnWidth(dbgrid1);
      label1.Caption:='当前班级已摄像的人数是:'+inttostr(dm.ADOdy.RecordCount);
      BitBtn1.Enabled :=true;
      bitbtn3.Enabled :=true; //使信息核对信息按钮可用
    end;
end;

procedure Tzsdyfrm.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState); //对dbgrid实现隔行着色
begin
    if (DBGrid1.DataSource.DataSet.RecNo mod 2)=0 then
       DBGrid1.Canvas.Brush.Color := clWhite
    else
       DBGrid1.Canvas.Brush.Color := clAqua;
    if((State=[gdSelected]) or (State=[gdSelected,gdFocused])) then
       if  not DBGrid1.SelectedRows.CurrentRowSelected then
         DBGrid1.Canvas.Brush.Color := clHighlight;
    DBGrid1.Canvas.Pen.Mode := pmMask;
    DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

procedure Tzsdyfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  mainfrm.StatusBar1.Panels.Items[1].Text:='';
end;

procedure Tzsdyfrm.BitBtn2Click(Sender: TObject);  //退出窗体
begin
  self.Close;
end;

procedure Tzsdyfrm.BitBtn3Click(Sender: TObject); //核对信息(通过excel显示并打印出来)
var
i:integer;
begin
try
 excelapplication1.Connect;
except
  messagedlg('Excel 可能没有安装',mtError,[mbok],0);
  Abort;
end;
excelapplication1.Visible[0]:=true;
excelapplication1.Caption :='学生信息';
excelapplication1.Workbooks.Add(null,0);
excelworkbook1.ConnectTo(excelapplication1.Workbooks[1]);
excelworksheet1.ConnectTo(excelworkbook1.Sheets[1] as _worksheet);
 with excelworksheet1.Range['A1','c1'],Font do
  begin
  Merge(True);//合并单元格
  HorizontalAlignment:= xlCenter; //居中显示
  Size:=12;
  Name:='隶书';
  FontStyle:=Bold;
end;
excelworksheet1.Range['A1','c1'].Value2 :=trim(copy(dm.ADOdy.fieldbyname('xh').AsString,1,4))+'级'+trim(dm.ADOdy.fieldbyname('yx').AsString)+trim(dm.ADOdy.fieldbyname('bhmc').AsString)+'班';
i:=2;
excelworksheet1.Cells.Item[i,1]:='学号';
excelworksheet1.Cells.Item[i,2]:= '姓名';
excelworksheet1.Cells.Item[i,3]:= '专业名称';
excelworksheet1.Range['a2','c2'].HorizontalAlignment :=xlcenter;  // 居中显示
dm.ADOdy.First;
i:=3;
while not dm.ADOdy.Eof do
 begin
       excelworksheet1.Cells.Item[i,1]:=trim(dm.ADOdy.fieldbyname('xh').AsString);
       excelworksheet1.Cells.Item[i,2]:=trim(dm.ADOdy.fieldbyname('xm').AsString);
       excelworksheet1.Cells.Item[i,3]:=trim(dm.ADOdy.fieldbyname('zymc').AsString);
       inc(i);
      dm.ADOdy.Next;
 end;
 excelworksheet1.Columns.EntireColumn.AutoFit; //excel中使记录每个字段按照其字段中最长的那个宽度自动显示
 excelapplication1.Disconnect;
 dm.ADOdy.First;
end;

end.

⌨️ 快捷键说明

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