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

📄 unitprtmingci.pas.~97~

📁 初中成绩录入系统网络版(firebird) firebird下的网络编程
💻 ~97~
字号:
unit UnitPrtMingci;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, frxClass, StdCtrls, Buttons, frxDBSet, frxIBXComponents, ExtCtrls,
  frxExportRTF;

type
  TfmPrtMingci = class(TForm)
    frxIBXComponents1: TfrxIBXComponents;
    frxDBDataset1: TfrxDBDataset;
    BitBtn1: TBitBtn;
    RadioGroup1: TRadioGroup;
    ListBox1: TListBox;
    frxRTFExport1: TfrxRTFExport;
    frxReport1: TfrxReport;
    frxReport3: TfrxReport;
    frxReport2: TfrxReport;
    frxReport4: TfrxReport;
    function frxReport4UserFunction(const MethodName: string;
      var Params: Variant): Variant;
    function frxReport2UserFunction(const MethodName: string;
      var Params: Variant): Variant;
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    function frxReport1UserFunction(const MethodName: string;
      var Params: Variant): Variant;
  private
    { Private declarations }
  public
    { Public declarations }
    function GetSchool(bmh:String):String;//由准考证号获取学校名称的函数
    function GetSex(a:String):String;//由T与F返回男与女
    function isDabiao(zkzh:String):String;//返回达标信息+,-
  end;

implementation

uses unitDatamodule;

{$R *.dfm}

function TfmPrtMingci.frxReport1UserFunction(const MethodName: string;
  var Params: Variant): Variant;
begin
  if MethodName='GETSCHOOL' then
    result:=GetSchool(Params[0])
  else if MethodName='GETSEX' then
    result:=GetSex(Params[0]);
end;

function TfmPrtMingci.GetSchool(bmh: String): String;
begin
  dm.Query2.Transaction.Active:=false;
  dm.Query2.Close;
  dm.Query2.SQL.Text:='select schname from school where schorder='''+copy(bmh,1,4)+'''';
  dm.Query2.Open;
  result:=dm.Query2.FieldByName('schname').AsString;
end;

procedure TfmPrtMingci.BitBtn1Click(Sender: TObject);
begin
  dm.Query1.Transaction.Active:=false;
  case RadioGroup1.ItemIndex of
    0:
    begin
      dm.Query1.Close;
      dm.Query1.SQL.Text:='select bmh,zkzh,stdname,sex,total,mingci from student order by total desc,bmh asc';
      dm.Query1.Open;
      frxReport1.ShowReport();
    end;
    1:
    begin
      if ListBox1.ItemIndex=-1 then
        exit;
      dm.Query1.Close;
      dm.Query1.SQL.Text:='select bmh,zkzh,stdname,sex,birth,total,zhengzhi,yuwen,'+
        'waiyu,shuxue,wuli,huaxue,lishi,dili,shengwu,shiyan,tiyu,caoxing '+
        ' from student where substring(bmh from 1 for 4)='''+
        copy(ListBox1.Items[ListBox1.itemindex],2,4)+''' '+
        ' order by bmh ';
      dm.Query1.Open;
      frxReport2.ShowReport();
    end;
    2:
    begin
      if ListBox1.ItemIndex=-1 then
        exit;
      dm.Query1.Close;
      dm.Query1.SQL.Text:='select bmh,zkzh,stdname,sex,birth,total,zhengzhi,yuwen,'+
        'waiyu,shuxue,wuli,huaxue,lishi,dili,shengwu,shiyan,tiyu,caoxing '+
        ' from student where substring(bmh from 1 for 4)='''+
        copy(ListBox1.Items[ListBox1.itemindex],2,4)+''' '+
        ' order by bmh ';
      dm.Query1.Open;
      frxReport3.ShowReport();
    end;
    3:
    begin
      if ListBox1.ItemIndex=-1 then
        exit;
      dm.Query1.Close;
      dm.Query1.SQL.Text:='select bmh,stdname,total'+
        ' from student where substring(bmh from 1 for 4)='''+
        copy(ListBox1.Items[ListBox1.itemindex],2,4)+''' '+
        ' order by total desc ';
      dm.Query1.Open;
      frxReport4.ShowReport();
    end;
  end;
end;

procedure TfmPrtMingci.FormShow(Sender: TObject);
begin
  frxReport1.AddFunction('function GetSchool(bmh:String):String');
  frxReport1.AddFunction('function GetSex(a:String):String');
  frxReport2.AddFunction('function GetSchool(bmh:String):String');
  frxReport2.AddFunction('function GetSex(a:String):String');
  frxReport2.AddFunction('function isDabiao(zkzh:String):String');
  frxReport3.AddFunction('function GetSchool(bmh:String):String');
  frxReport3.AddFunction('function isDabiao(zkzh:String):String');
  frxReport4.AddFunction('function GetSchool(bmh:String):String');
  dm.Query1.Transaction.Active:=false;
  dm.Query1.Close;
  dm.Query1.SQL.Text:='select schname,schorder from school order by schorder';
  dm.Query1.Open;
  Listbox1.Items.Clear;
  dm.Query1.First;
  while not dm.Query1.Eof do
  begin
    listbox1.Items.Add('('+dm.Query1.FieldByName('schorder').AsString+
      ')'+dm.Query1.FieldByName('schname').AsString);
    dm.Query1.Next;
  end;
  if ListBox1.Count>0 then
    Listbox1.ItemIndex:=0;
end;

function TfmPrtMingci.GetSex(a: String): String;
begin
  if uppercase(a)='T' then
    result:='男'
  else
    result:='女';
end;

function TfmPrtMingci.frxReport2UserFunction(const MethodName: string;
  var Params: Variant): Variant;
begin
  if MethodName='GETSCHOOL' then
    result:=GetSchool(Params[0])
  else if MethodName='GETSEX' then
    result:=GetSex(Params[0])
  else if MethodName='ISDABIAO' then
    result:=isDabiao(params[0]);
end;

function TfmPrtMingci.isDabiao(zkzh: String): String;
var
  caoxing,dili,shengwu,tiyu,shiyan:string;
begin
  dm.Query2.Transaction.Active:=false;
  dm.Query2.Close;
  dm.Query2.SQL.Text:='select dili,shengwu,caoxing,tiyu,shiyan from student where zkzh='''+zkzh+'''';
  dm.Query2.Open;
  caoxing:=uppercase(dm.Query2.FieldByName('caoxing').AsString);
  dili:=uppercase(dm.Query2.FieldByName('dili').AsString);
  shengwu:=uppercase(dm.Query2.FieldByName('shengwu').AsString);
  tiyu:=UpperCase(dm.Query2.FieldByName('tiyu').AsString);
  shiyan:=UpperCase(dm.Query2.FieldByName('shiyan').AsString);
  if ((caoxing='A') or (caoxing='B')) and
    ((dili='A')or(dili='B')or(dili='C'))and
    ((shengwu='A')or(shengwu='B')or(shengwu='C'))and
    (tiyu='T')and(shiyan='T') then  //操行良以上,地理.生物不出D,体育与实验为合格,则达标
    result:='+'
  else
    result:='-';
end;

function TfmPrtMingci.frxReport4UserFunction(const MethodName: string;
  var Params: Variant): Variant;
begin
  if MethodName='GETSCHOOL' then
    result:=GetSchool(Params[0]);
end;

end.

⌨️ 快捷键说明

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