📄 uxsgl.pas
字号:
unit Uxsgl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, StdCtrls, DBCtrls, Mask, Grids, DBGrids,
XPMenu, DB, ADODB, DBActns, ActnList, Buttons, ImgList, ToolWin, ExtDlgs;
type
TFmXsgl = class(TForm)
Splitter1: TSplitter;
XPMenu1: TXPMenu;
Panel1: TPanel;
ADOTable1: TADOTable;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DataSource2: TDataSource;
ActionList1: TActionList;
DataSetFirst1: TDataSetFirst;
DataSetPrior1: TDataSetPrior;
DataSetNext1: TDataSetNext;
DataSetLast1: TDataSetLast;
DataSetInsert1: TDataSetInsert;
DataSetDelete1: TDataSetDelete;
DataSetEdit1: TDataSetEdit;
DataSetPost1: TDataSetPost;
DataSetCancel1: TDataSetCancel;
DataSetRefresh1: TDataSetRefresh;
ImageList1: TImageList;
GroupBox1: TGroupBox;
RadioGroup1: TRadioGroup;
ComboBox1: TComboBox;
Label12: TLabel;
Label13: TLabel;
ComboBox2: TComboBox;
STB: TStatusBar;
BitBtn10: TBitBtn;
BitBtn11: TBitBtn;
Edit1: TEdit;
Label14: TLabel;
RBjq: TRadioButton;
Rbmh: TRadioButton;
Panel2: TPanel;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Splitter2: TSplitter;
Panel3: TPanel;
Label8: TLabel;
Label7: TLabel;
Label10: TLabel;
Label4: TLabel;
Label1: TLabel;
Label2: TLabel;
Label5: TLabel;
Label9: TLabel;
Label6: TLabel;
Label3: TLabel;
Label11: TLabel;
DBEdit4: TDBEdit;
DBEdit2: TDBEdit;
DBEdit6: TDBEdit;
DBEdit3: TDBEdit;
DBMemo1: TDBMemo;
DBEdit5: TDBEdit;
DBComboBox1: TDBComboBox;
DBComboBox2: TDBComboBox;
DBEdit1: TDBEdit;
dbcbjlist: TDBComboBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
DBCxblist: TDBComboBox;
TabSheet2: TTabSheet;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
BitBtn4: TBitBtn;
BitBtn3: TBitBtn;
DBGrid2: TDBGrid;
DBGrid1: TDBGrid;
Splitter3: TSplitter;
DBMemo2: TDBMemo;
ADOQuery2: TADOQuery;
DBImage1: TDBImage;
OpenPictureDialog1: TOpenPictureDialog;
procedure PageControl1Change(Sender: TObject);
procedure DataSource2DataChange(Sender: TObject; Field: TField);
procedure FormShow(Sender: TObject);
//procedure DBCxblistChange(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
procedure DataSetPost1Execute(Sender: TObject);
procedure BitBtn11Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure DataSetDelete1Execute(Sender: TObject);
procedure DataSource2StateChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DBGrid2TitleClick(Column: TColumn);
procedure DBImage1DblClick(Sender: TObject);
private
strField:string;
{ Private declarations }
public
procedure getXiBieList();
procedure getField() ;
PROCEDURE getBjList();
procedure getimg(fn:string);
procedure showcj(strxh:string);
{ Public declarations }
end;
var
FmXsgl: TFmXsgl;
implementation
uses Udata;
{$R *.dfm}
procedure TFmXsgl.showcj(strxh:string);
var
strsql:string;
begin
strsql:='SELECT txsb.cxsb_xm as 姓名,tcjb.ccjb_kc as 课程, tcjb.ccjb_cj as 成绩, ccjb_xq as 学期 '+
'from tcjb,txsb where txsb.cxsb_xh='''+strxh+''' and tcjb.ccjb_xh ='''+strxh+''' ORDER BY tcjb.ccjb_xq';
try
adoquery2.close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add(strsql);
//showmessage(strsql);
adoquery2.Open;
dbgrid1.Columns[0].FieldName:='姓名';
dbgrid1.Columns[1].FieldName :='课程';
dbgrid1.Columns[2].fieldName :='成绩';
dbgrid1.Columns[3].fieldName :='学期';
except
end;
end;
procedure TFmXsgl.getField() ;
begin
case radiogroup1.itemindex of
0:
strField:='cxsb_xh';
1 :
strfield:='cxsb_xm';
2:
strfield:='cxsb_zzmm';
3:
strfield :='cxsb_rxrq';
4:
strfield :='cxsb_csrq';
5:
strfield :='cxsb_jg';
6:
strfield :='cxsb_xb';
7:
strfield :='cxsb_jtzz';
8:
strfield :='cxsb_jcqk';
9:
strfield :='cxsb_jj';
end;
//showmessage(strfield);
end;
PROCEDURE TFmXsgl.getBjList();
var
strsql:string;
begin
combobox2.Clear;
combobox2.Items.Add('所有班级');
if combobox1.ItemIndex=0 then
strsql:='select * from tbjb'
else
strsql:='select * from tbjb where cbjb_xb='''+ ComboBox1.Text + '''order by cbjb_bjbh';
try
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add(strsql);
adoquery2.Open;
//ComboBox1.Clear;
//ComboBox1.Items.Add('所有班级');
while not adoquery2.Eof do
begin
ComboBox2.Items.Add(adoquery2.FieldValues['cbjb_bjm']);
dbcbjlist.Items.Add(adoquery2.FieldValues['cbjb_bjm']);
adoquery2.Next;
end;
combobox2.ItemIndex := 0;
// adotable1.First;
finally
adoquery2.Close;
end;
end;
procedure TFmXsgl.getXiBieList() ;
begin
try
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from txbb order by cxbb_xbbh');
adoquery1.Open;
dbcxblist.Clear;
ComboBox1.Clear;
ComboBox1.Items.Add('所有系别');
// ComboBox2.Clear;
// ComboBox2.Items.Add('所有班级');
while not adoquery1.Eof do
begin
dbcxblist.Items.Add(adoquery1.FieldValues['cxbb_bbm']);
ComboBox1.Items.Add(adoquery1.FieldValues['cxbb_bbm']);
adoquery1.Next;
end;
//strsql:='select * from tbjb'
ComboBox1.ItemIndex:=0;
// ComboBox2.itemindex:=0;
finally
adoquery1.Close;
end;
end;
procedure TFmXsgl.PageControl1Change(Sender: TObject);
begin
case pagecontrol1.ActivePageIndex of
2: begin
panel1.Hide;
Splitter1.Hide ;
end;
0,1: begin
panel1.Show;
Splitter1.Show;
end;
end;
end;
procedure TFmXsgl.DataSource2DataChange(Sender: TObject; Field: TField);
var
str:string;
begin
if DataSource2.DataSet.RecNo > 0 then begin
str := datasource2.DataSet.FieldValues['cxsb_xh'] ;
showcj(str);
end;
stb.Panels.Items[2].Text:='当前记录:'+IntToStr(DataSource2.DataSet.RecNo);
stb.Panels.Items[1].Text:='记录总数:'+IntToStr(DataSource2.DataSet.RecordCount);
end;
procedure TFmXsgl.FormShow(Sender: TObject);
begin
adotable1.Open;
//ADOStoredProc1.Open;
end;
{procedure TFmXsgl.DBCxblistChange(Sender: TObject);
begin
try
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from tbjb where cbjb_xb='''+ dbcxblist.Text + '''order by cbjb_bjbh');
adoquery2.Open;
dbcbjlist.Clear;
while not adoquery2.Eof do
begin
dbcbjlist.Items.Add(adoquery2.FieldValues['cbjb_bjm']);
adoquery2.Next;
end;
// adotable1.First;
except
end;
end;}
procedure TFmXsgl.BitBtn10Click(Sender: TObject);
//这里用query1是为了与 系别选择时调用query查询冲突
var
strtmp:string;
findMo:string;
findStr:string;
begin
if (trim(edit1.Text) ='') and (combobox1.ItemIndex = 0 )and (combobox2.ItemIndex=0) then exit;
if (adotable1.State=dsedit) or (adotable1.State=dsinsert) then
DataSetPost1Execute(Sender);
if trim(edit1.Text)='' then begin
if combobox2.ItemIndex=0 then
strtmp:='select * from txsb where cxsb_xibie= '''+trimright(combobox1.Text)+''''
else
strtmp:='select * from txsb where cxsb_bj= '''+trimright(combobox2.Text)+'''';
end
else begin
findStr:=edit1.Text;
if rbmh.Checked then
begin
findmo:=' like ';
findstr:='%'+findstr+'%';
end
else
findmo:='=';
getField;
if ComboBox1.ItemIndex = 0 then
strtmp:='select * from txsb where '+strfield+findmo+''''+findstr +''''
else begin
strtmp:='select * from txsb where cxsb_xibie='''+ trimright(combobox1.Text) +'''and '+strfield+findmo+''''+findstr +'''';
if combobox2.ItemIndex <>0 then
strtmp:='select * from txsb where cxsb_bj='''+ trimright(combobox2.Text) +''' and '+strfield+findmo+''''+findstr +''''
//else
//strtmp:=strtmp+ 'where cxsb_xibie='''+ combobox1.Text +'''and '+strfield+findmo+''''+findstr +'''';
end;
end;
try
showmessage(strtmp);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(strtmp);
adoquery1.Open;
datasource2.DataSet :=adoquery1;
finally
//adoquery1.Close;
end;
end;
procedure TFmXsgl.DataSetPost1Execute(Sender: TObject);
begin
adotable1.Post;
end;
procedure TFmXsgl.BitBtn11Click(Sender: TObject);
begin
datasource2.DataSet :=adotable1;
end;
procedure TFmXsgl.ComboBox1Change(Sender: TObject);
begin
getbjlist();
end;
procedure TFmXsgl.DataSetDelete1Execute(Sender: TObject);
begin
if application.MessageBox('确认要删除吗?','提示',mb_okcancel)=idok then
adotable1.delete;
end;
procedure TFmXsgl.DataSource2StateChange(Sender: TObject);
begin
case DataSource2.State of
dsBrowse :stb.Panels.Items[0].Text:='[浏览模式]';
dsEdit:stb.Panels.Items[0].Text:='[编辑模式]';
dsInsert:stb.Panels.Items[0].Text:='[插入模式]';
else stb.Panels.Items[0].Text:='[其他模式]';
end;
end;
procedure TFmXsgl.FormCreate(Sender: TObject);
begin
//ADOConnection1.Connected:=true;
getXiBieList();
getBjList();
end;
procedure TFmXsgl.DBGrid2TitleClick(Column: TColumn);
begin
try
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from txsb order by '+column.FieldName);
showmessage('select * from txsb order by '+column.FieldName);
adoquery1.Open;
datasource2.DataSet :=adoquery1;
finally
//adoquery1.Close;
end;
end;
procedure TFmXsgl.DBImage1DblClick(Sender: TObject);
var
strfile:string;
B:TBitmap;
begin
if OpenPictureDialog1.Execute then begin
adotable1.Edit;
B := TBitmap.Create;
strfile:=OpenPictureDialog1.FileName;
B.LoadFromFile(strfile);
DBImage1.Picture.Assign(B);
adotable1.fields[12].assign(B);
adotable1.Post;
B.Free;
end;
end;
procedure tfmxsgl.getimg(fn:string);
var
B: TBitmap;
begin
B := TBitmap.Create;
try
B.LoadFromFile(fn);
DBImage1.Picture.Assign(B);
finally
B.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -