📄 fenleicxunit1.pas
字号:
unit FenleiCXUnit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ToolWin, ComCtrls, ExtCtrls, StdCtrls, Grids, DBGrids,
DB, ADODB, DBCtrls, Mask;
type
TFenLeiCXfrm1 = class(TForm)
ToolBar1: TToolBar;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
Panel1: TPanel;
Bevel1: TBevel;
Bevel2: TBevel;
GroupBox1: TGroupBox;
Bevel4: TBevel;
RadioGroup1: TRadioGroup;
Bevel5: TBevel;
GroupBox2: TGroupBox;
Panel2: TPanel;
Edit1: TEdit;
Button1: TButton;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
TreeView1: TTreeView;
DBText1: TDBText;
Label1: TLabel;
DBText2: TDBText;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBMemo1: TDBMemo;
DBMemo2: TDBMemo;
DBMemo3: TDBMemo;
DBMemo4: TDBMemo;
Bevel3: TBevel;
Bevel6: TBevel;
Bevel7: TBevel;
ADOQuery2: TADOQuery;
DataSource2: TDataSource;
Button2: TButton;
Button3: TButton;
ADOTable1: TADOTable;
procedure FormCreate(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FenLeiCXfrm1: TFenLeiCXfrm1;
sysdir:string;
nYaoLei,nYaoMing:TTreeNode; //定义结点类
implementation
uses mainfrm;
{$R *.dfm}
procedure TFenLeiCXfrm1.FormCreate(Sender: TObject);
begin
//连接数据库
//ADOConnection1.ConnectionString:=mainfrm.ConnStr;
//获取应用程序绝对路径
sysdir := GetCurrentDir;
end;
procedure TFenLeiCXfrm1.TreeView1Click(Sender: TObject);
var ls1,ls2:string;
m,n:integer;
begin
for n:=0 to treeview1.Items.Count-1 do
begin
if treeview1.Items[n].Selected=true then
begin
with ADOquery1 do
begin
ls2:=treeview1.Items[n].Text ;
ls2:=trim(ls2);
close;
sql.Clear;
sql.Add('select * from Zcyt2 where 中药名='''+ls2+'''');
open;
end;
end;
end;
end;
procedure TFenLeiCXfrm1.Button1Click(Sender: TObject);
var ls1,ls2:string;
m,n:integer;
begin
if trim(edit1.Text )='' then
begin
showmessage('请输入查询数据');
exit;
end;
{with ADOquery2 do
begin
close;
sql.Clear;
sql.Add('select * from Zcyt2');
open;
end; }
with ADOquery1 do
begin
ls2:=edit1.Text ;
ls2:=trim(ls2);
close;
sql.Clear;
if radiogroup1.ItemIndex=0 then
sql.Add('select * from Zcyt2 where 中药名='''+ls2+'''');
if radiogroup1.ItemIndex=1 then
sql.Add('select * from Zcyt2 where 性味与归经='''+ls2+'''');
if radiogroup1.ItemIndex=2 then
sql.Add('select * from Zcyt2 where 功能与主治='''+ls2+'''');
if radiogroup1.ItemIndex=3 then
sql.Add('select * from Zcyt2 where 中药名='''+ls2+'''');
// 按药材名称查询
//按性味查询
//按功能与主治查询
//按化学成分查询
//sql.Add('select * from Zcyt2 where 中药名='''+ls2+'''');
open;
end;
end;
procedure TFenLeiCXfrm1.Button2Click(Sender: TObject);
var ls,ls1:string;
n:integer;
label continue1;
begin
treeview1.Items.Clear ;
with ADOquery1 do
begin
close;
sql.Clear;
sql.Add('select * from Zcyt2 order by yaolei');
open;
end;
while not ADOquery1.Eof do
begin
ls:=trim(ADOquery1.FieldByName('YaoLei').AsString);
for n:=0 to treeview1.Items.Count-1 do
begin
ls1:=treeview1.Items[n].Text ;
ls1:=trim(ls1);
if ls=ls1 then
goto continue1;
end;
nYaoMing:=treeview1.Items.Add(nYaoLei,ls);
with ADOquery2 do
begin
close;
sql.Clear;
sql.Add('select * from Zcyt2 where YaoLei='''+ls+'''');
//sql.Add('select * from Zcyt2 where YaoLei=:YLname');
//parameters.ParamByName('YLname').Value:=ADOquery1.FieldByName('YaoLei').Value;
open;
end;
while not ADOquery2.Eof do
begin
TreeView1.Items.AddChildFirst(nYaoMing,ADOquery2.fieldbyname('中药名').asstring) ;
ADOquery2.next;
end;
continue1: ADOquery1.Next;
end;
ADOquery2.Close ;
end;
procedure TFenLeiCXfrm1.Button3Click(Sender: TObject);
var
findflag:boolean; //是否找到的标志
str_source:pchar; //查找的源字符串
str_find:pchar; //待查找的字符串
findstr1,findstr2,findstr3,findstr4,findstr5,findstr6,findstr7,findstr8:pchar;
sourcestr1,sourcestr2,sourcestr3,sourcestr4,sourcestr5,sourcestr6,sourcestr7,sourcestr8:string;
sourcestr:pchar;
sj11,sj22,sj33,sj44,sj55,sj66,sj77,sj88,sj99,sj10,sj111,sj12:string;
gs:integer;
sj:array[1..6] of string;
begin
gs:=0;
adoquery2.Close;
adoquery2.SQL.Clear ;
adoquery2.SQL.Add('delete from ls');
adoquery2.ExecSQL ;
adoquery2.Close;
findstr1:=pchar(trim(edit1.Text));
ADOTable1.First;
findflag:=false; //置是否找到标志为否,即尚未找到
while(not ADOTable1.Eof)do //循环查找
begin
{ 中药名
药名拼音
英文名
YaoLei
简述
性状
性味与归经
功能与主治
用法与用量
注意
贮藏
炮制 }
sj11:=trim(ADOTable1.FieldByName('中药名').AsString);
sj22:=trim(ADOTable1.FieldByName('性味与归经').AsString);
sj33:=trim(ADOTable1.FieldByName('药名拼音').AsString);
sj44:=trim(ADOTable1.FieldByName('英文名').AsString);
sj55:=trim(ADOTable1.FieldByName('YaoLei').AsString);
sj66:=trim(ADOTable1.FieldByName('简述').AsString);
sj77:=trim(ADOTable1.FieldByName('性状').AsString);
sj88:=trim(ADOTable1.FieldByName('功能与主治').AsString);
sj99:=trim(ADOTable1.FieldByName('用法与用量').AsString);
sj10:=trim(ADOTable1.FieldByName('注意').AsString);
sj111:=trim(ADOTable1.FieldByName('贮藏').AsString);
sj12:=trim(ADOTable1.FieldByName('炮制').AsString);
sourcestr:=pchar(sj11+sj22+sj33+sj44+sj55+sj66+sj77+sj88+sj99+sj10+sj111+sj12);
if (StrPos(PChar(sourcestr),PChar(findstr1))<>nil) then //查找函数
findflag:=true //若找到,置标志为真
else
findflag:=FALSE;
if findflag=false then //若找到,提示
begin
//ShowMessage('没找到')
end
else
begin
//ShowMessage('找到了'); //若未找到,也给与提示
/// adotable2.InsertRecord([sj11,sj22,sj33,sj44,sj55,sj66]);
adoquery2.Close;
adoquery2.SQL.Clear ;
adoquery2.SQL.Add('insert into ls (药名:) values ('''+sj11+''')');
adoquery2.ExecSQL ;
gs:=gs+1;
end;
ADOTable1.Next; //表指针下移
end;
if gs=0 then
ShowMessage('没找到');
//adotable2.active:=false;
adoquery2.Close;
adoquery2.SQL.Clear ;
adoquery2.SQL.Add('select * from ls');
adoquery2.Open ;
adoquery1.Active :=true;
//datasource2.DataSet:=ls;
dbgrid1.DataSource :=datasource2;
end;
procedure TFenLeiCXfrm1.FormShow(Sender: TObject);
begin
adotable1.Close;
adotable1.TableName :='zcyt2';
adotable1.active:=true;
//datasource1.DataSet:=adotable1;
//dbgrid1.DataSource :=datasource1;
end;
procedure TFenLeiCXfrm1.DBGrid1CellClick(Column: TColumn);
var selectsj:string;
begin
selectsj:=dbgrid1.SelectedField.AsString;
selectsj:=trim(selectsj);
with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from zcyt2 where 中药名=:yname');
parameters.parambyname('yname').Value:=selectsj;
open;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -