📄 unitprtmingci.pas.~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 + -