📄 medicine_form4.pas
字号:
unit medicine_form4;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, Mask, DBCtrls, Db, Grids, DBGrids, DBTables;
type
Tconfig_Form = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
btnSaveMedicine: TButton;
btnExit: TButton;
Label8: TLabel;
Edit1: TEdit;
tblMedicine: TTable;
DBGrid1: TDBGrid;
dsMedicineInfo: TDataSource;
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label10: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
qryLocate: TQuery;
DBGrid2: TDBGrid;
dsValidity: TDataSource;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label9: TLabel;
Label11: TLabel;
Label12: TLabel;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
Label14: TLabel;
btnSaveValidity: TButton;
DBEdit13: TDBEdit;
chkbIsOver: TCheckBox;
qryValidity: TQuery;
Label13: TLabel;
Edit2: TEdit;
tblRight: TTable;
dsRight: TDataSource;
GroupBox3: TGroupBox;
Label15: TLabel;
Label16: TLabel;
GroupBox4: TGroupBox;
rdbtnEdit: TRadioButton;
rdbtnBrowser: TRadioButton;
rdbtnForbid: TRadioButton;
DBEdit10: TDBEdit;
DBEdit14: TDBEdit;
btnSaveUser: TButton;
btnCancelUser: TButton;
btnDelUser: TButton;
btnAddUser: TButton;
dbgrdRight: TDBGrid;
procedure tblMedicineAfterEdit(DataSet: TDataSet);
procedure btnSaveMedicineClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure qryValidityAfterScroll(DataSet: TDataSet);
procedure btnSaveValidityClick(Sender: TObject);
procedure qryValidityAfterOpen(DataSet: TDataSet);
procedure chkbIsOverClick(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure tblRightAfterEdit(DataSet: TDataSet);
procedure btnAddUserClick(Sender: TObject);
procedure btnCancelUserClick(Sender: TObject);
procedure btnSaveUserClick(Sender: TObject);
procedure btnDelUserClick(Sender: TObject);
procedure tblRightAfterScroll(DataSet: TDataSet);
procedure rdbtnEditClick(Sender: TObject);
private
procedure GetValidityInfo();
procedure SetUserEditState(ablnState:boolean);
{ Private declarations }
public
{ Public declarations }
end;
var
config_Form: Tconfig_Form;
implementation
{$R *.DFM}
procedure Tconfig_Form.tblMedicineAfterEdit(DataSet: TDataSet);
begin
btnSaveMedicine.Enabled := true;
end;
procedure Tconfig_Form.btnSaveMedicineClick(Sender: TObject);
begin
tblMedicine.Post;
btnSaveMedicine.Enabled := false;
end;
procedure Tconfig_Form.btnExitClick(Sender: TObject);
begin
self.close;
end;
procedure Tconfig_Form.Edit1Change(Sender: TObject);
var
s_sql:string;
begin
qryLocate.Close;
qryLocate.SQL.Clear;
s_sql:='select * from medicine where (code like '+ ''''+'*'+trim(Edit1.Text)+'*'+'''' +
') or (name like ' + ''''+'*'+trim(Edit1.Text)+'*'+'''' + ')';
qryLocate.sql.add(s_sql);
qryLocate.Open;
if qryLocate.RecordCount >0 then
tblMedicine.Locate('code',qryLocate.FieldByName('code').AsString,[loCaseInsensitive])
end;
procedure Tconfig_Form.FormCreate(Sender: TObject);
begin
GetValidityInfo();
SetUserEditState(false);
end;
procedure Tconfig_Form.qryValidityAfterScroll(DataSet: TDataSet);
begin
chkbIsOver.Checked := false;
btnSaveValidity.Enabled := false;
end;
procedure Tconfig_Form.btnSaveValidityClick(Sender: TObject);
var
lstrSql:string;
begin
if Application.MessageBox('是否确认药品已售完,关闭此有效期验证?','有效期验证',MB_OKCANCEL + MB_DEFBUTTON1) = IDOK then
begin
qryLocate.Close;
qryLocate.SQL.clear;
lstrSql:= 'Update InMedicine Set IsOver = ''1'' where ID = '
+ qryValidity.FieldByName('ID').AsString;
qryLocate.sql.add(lstrSql);
qryLocate.ExecSQL;
btnSaveValidity.Enabled := false;
GetValidityInfo();
end;
end;
procedure Tconfig_Form.qryValidityAfterOpen(DataSet: TDataSet);
begin
if DataSet.RecordCount <= 0 then
begin
chkbIsOver.Checked := false;
chkbIsOver.Enabled := false;
btnSaveValidity.Enabled := false;
end;
end;
procedure Tconfig_Form.chkbIsOverClick(Sender: TObject);
begin
if chkbIsOver.Checked then
btnSaveValidity.Enabled := true
else
btnSaveValidity.Enabled := false;
end;
procedure Tconfig_Form.GetValidityInfo;
begin
qryValidity.close;
qryValidity.ParamByName('this_date').AsString := DateToStr(date());
qryValidity.open;
end;
procedure Tconfig_Form.Edit2Change(Sender: TObject);
var
s_sql:string;
begin
qryLocate.Close;
qryLocate.SQL.Clear;
s_sql:='select a.code as code,a.name as name'
+ ' from medicine as a,inmedicine as b'
+ ' where a.code=b.code and b.isover=' + '''' +'0'+ ''''
+ ' and ((a.code like '+ ''''+'*'+trim(Edit2.Text)+'*'+''''
+ ') or (a.name like ' + ''''+'*'+trim(Edit2.Text)+'*'+'''' + '))'
+ ' and b.LastDate <=''' + DateToStr(Date()) + '''';
qryLocate.sql.add(s_sql);
qryLocate.Open;
if qryLocate.RecordCount >0 then
qryValidity.Locate('code',qryLocate.FieldByName('code').AsString,[loCaseInsensitive])
end;
procedure Tconfig_Form.tblRightAfterEdit(DataSet: TDataSet);
begin
SetUserEditState(True);
end;
procedure Tconfig_Form.SetUserEditState(ablnState:boolean);
begin
dbgrdRight.Enabled := not ablnState;
btnAddUser.Enabled := not ablnState;
btnDelUser.Enabled := not ablnState;
btnCancelUser.Enabled := ablnState;
btnSaveUser.Enabled := ablnState;
end;
procedure Tconfig_Form.btnAddUserClick(Sender: TObject);
begin
SetUserEditState(True);
tblRight.Insert;
rdbtnEdit.Checked := true;
end;
procedure Tconfig_Form.btnCancelUserClick(Sender: TObject);
begin
tblRight.Cancel;
SetUserEditState(false);
end;
procedure Tconfig_Form.btnSaveUserClick(Sender: TObject);
begin
if tblRight.State <> dsEdit then
tblRight.Edit;
if rdbtnEdit.Checked then
tblRight.FieldByName('pope').AsString := '2';
if rdbtnBrowser.Checked then
tblRight.FieldByName('pope').AsString := '1';
if rdbtnForbid.Checked then
tblRight.FieldByName('pope').AsString := '0';
tblRight.Post;
SetUserEditState(false);
end;
procedure Tconfig_Form.btnDelUserClick(Sender: TObject);
begin
tblRight.Delete;
end;
procedure Tconfig_Form.tblRightAfterScroll(DataSet: TDataSet);
begin
if tblRight.FieldByName('pope').AsString = '0' then
rdbtnForbid.Checked := true;
if tblRight.FieldByName('pope').AsString = '1' then
rdbtnBrowser.Checked := true;
if tblRight.FieldByName('pope').AsString = '2' then
rdbtnEdit.Checked := true;
end;
procedure Tconfig_Form.rdbtnEditClick(Sender: TObject);
begin
if (self.ActiveControl = rdbtnForbid)
or (self.ActiveControl = rdbtnBrowser)
or (self.ActiveControl = rdbtnEdit) then
SetUserEditState(true);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -