📄 uinsert.~pas
字号:
unit Uinsert;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, ComCtrls, Buttons, ExtCtrls;
type
Tfrminsert = class(TForm)
Label5: TLabel;
DBGrid1: TDBGrid;
adoqzbcg: TADOQuery;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
StatusBar1: TStatusBar;
Panel1: TPanel;
Sptnsave: TSpeedButton;
Sptnadd: TSpeedButton;
Sptnxiugai: TSpeedButton;
Sptncopy: TSpeedButton;
Sptndelete: TSpeedButton;
Sptnclose: TSpeedButton;
Panel2: TPanel;
edtscqy: TRichEdit;
Label1: TLabel;
Label6: TLabel;
edtypmc: TRichEdit;
Label11: TLabel;
edtspm: TRichEdit;
Label13: TLabel;
edtjx: TRichEdit;
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
edtfwdw: TEdit;
DateTimePicker1: TDateTimePicker;
edtzlcc: TRichEdit;
Label12: TLabel;
Label9: TLabel;
edtdw: TRichEdit;
Label8: TLabel;
Label7: TLabel;
edtgg: TRichEdit;
Label14: TLabel;
edtwh: TRichEdit;
Label16: TLabel;
Label15: TLabel;
Label17: TLabel;
ADOQuery2: TADOQuery;
edtlsjg: TEdit;
Label2: TLabel;
procedure SptnaddClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SptnsaveClick(Sender: TObject);
procedure SptndeleteClick(Sender: TObject);
procedure SptnxiugaiClick(Sender: TObject);
procedure SptncloseClick(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure edtlsjgExit(Sender: TObject);
procedure SptncopyClick(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure edtscqyKeyPress(Sender: TObject; var Key: Char);
procedure edtwhKeyPress(Sender: TObject; var Key: Char);
procedure edtypmcKeyPress(Sender: TObject; var Key: Char);
procedure edtspmKeyPress(Sender: TObject; var Key: Char);
procedure edtjxKeyPress(Sender: TObject; var Key: Char);
procedure edtggKeyPress(Sender: TObject; var Key: Char);
procedure edtdwKeyPress(Sender: TObject; var Key: Char);
procedure edtzlccKeyPress(Sender: TObject; var Key: Char);
procedure edtlsjgKeyPress(Sender: TObject; var Key: Char);
procedure edtscqyMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure edtwhMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure edtypmcMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure edtspmMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure edtjxMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure edtggMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure edtdwMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure edtlsjgMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure edtzlccMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormShow(Sender: TObject);
procedure edtscqyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtypmcKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtspmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtjxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtggKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtdwKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtzlccKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtlsjgKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormResize(Sender: TObject);
procedure DateTimePicker1Change(Sender: TObject);
procedure edtscqyChange(Sender: TObject);
procedure edtypmcChange(Sender: TObject);
procedure edtjxChange(Sender: TObject);
procedure edtspmChange(Sender: TObject);
procedure edtggChange(Sender: TObject);
procedure edtdwChange(Sender: TObject);
procedure edtlsjgChange(Sender: TObject);
procedure edtzlccChange(Sender: TObject);
procedure edtwhChange(Sender: TObject);
procedure edtwhKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DateTimePicker1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
insertflag:boolean;
public
{ Public declarations }
k,j,l:integer; //j记录修改当前序号,如果相等则刷新颜色
end; //k记录删除当前序号,如果相等则刷新颜色
//l记录复制当前序号,如果相等则刷新颜色
var
frminsert: Tfrminsert;
implementation
uses Udm, Ulgb, Uxiugai;
{$R *.dfm}
procedure Tfrminsert.SptnaddClick(Sender: TObject);
begin
sptnsave.Enabled:=true;
label15.Visible:=true;
label17.Visible:=true;
label16.Visible:=true;
label15.caption:='要增加的药品编号';
label17.caption:='为:';
adoqopen(adoquery1,'select zbcgb.* ,zzjjgb.jgmc as jgmc from zzjjgb,zbcgb where zzjjgb.jgbm=zbcgb.jgbm order by id');
adoquery1.last ;
label16.Caption:=inttostr(adoquery1.fieldbyname('id').Asinteger+1);
adoqopen(adoqzbcg,'select zbcgb.* ,str(zbcgb.zblsj,10,2) as jg,zzjjgb.jgmc as jgmc from zzjjgb,zbcgb where zbcgb.jgbm ='+#39+gjgbm+#39+'and zzjjgb.jgbm=zbcgb.jgbm order by id');
adoqzbcg.Last;
if DataSource1.DataSet.RecordCount<>0 then
begin
edtscqy.Text :=adoqzbcg.fieldbyname('scqy').asstring;
edtfwdw.Text:=adoqzbcg.fieldbyname('jgmc').asstring;
edtwh.text:=adoqzbcg.fieldbyname('wh').asstring;
edtypmc.text:=adoqzbcg.fieldbyname('ypmc').asstring;
edtspm.text:=adoqzbcg.fieldbyname('spm').asstring;
edtjx.text:=adoqzbcg.fieldbyname('jx').asstring;
edtgg.text:=adoqzbcg.fieldbyname('gg').asstring;
edtdw.text:=adoqzbcg.fieldbyname('dw').asstring;
edtzlcc.text:=adoqzbcg.fieldbyname('zlcc').asstring;
if (adoqzbcg.fieldbyname('zblsj').AsString) <>'' then
edtlsjg.Text:=formatfloat('0.00',strtofloat(adoqzbcg.fieldbyname('zblsj').AsString))
else
edtlsjg.Text:='';
DateTimePicker1.DateTime:=(adoqzbcg.fieldbyname('zbrq').AsDateTime);
insertflag:=false;
end
else
begin
edtfwdw.Text:=gjgmc+'物价局';
DateTimePicker1.DateTime:=now;
end;
end;
procedure Tfrminsert.FormCreate(Sender: TObject);
begin
insertflag:=false;
adoqopen(adoqzbcg,'select zbcgb.* ,str(zblsj,10,2) as jg, zzjjgb.jgmc as jgmc from zzjjgb,zbcgb where zbcgb.jgbm ='+#39+gjgbm+#39+'and zzjjgb.jgbm=zbcgb.jgbm order by id');
adoqzbcg.Last;
edtscqy.Text :=adoqzbcg.fieldbyname('scqy').asstring;
edtfwdw.Text:=gjgmc+'物价局';
edtwh.text:=adoqzbcg.fieldbyname('wh').asstring;
edtypmc.text:=adoqzbcg.fieldbyname('ypmc').asstring;
edtspm.text:=adoqzbcg.fieldbyname('spm').asstring;
edtjx.text:=adoqzbcg.fieldbyname('jx').asstring;
edtgg.text:=adoqzbcg.fieldbyname('gg').asstring;
edtdw.text:=adoqzbcg.fieldbyname('dw').asstring;
edtzlcc.text:=adoqzbcg.fieldbyname('zlcc').asstring;
if adoqzbcg.fieldbyname('zblsj').asstring<>'' then
edtlsjg.Text:=formatfloat('0.00',strtofloat(adoqzbcg.fieldbyname('zblsj').asstring))
else
edtlsjg.Text:='';
DateTimePicker1.DateTime:=(adoqzbcg.fieldbyname('zbrq').AsDateTime);
sptnsave.Enabled:=false;
edtfwdw.Enabled:=false;
if DataSource1.DataSet.RecordCount=0 then
begin
sptnxiugai.Enabled:=false;
sptncopy.Enabled:=false;
sptndelete.Enabled:=false;
edtfwdw.Text:=gjgmc+'物价局';
DateTimePicker1.DateTime:=now;
end;
label15.Visible:=false;
label16.Visible:=false;
label17.Visible:=false;
end;
procedure Tfrminsert.SptnsaveClick(Sender: TObject);
begin
if (edtscqy.text='') or (edtypmc.text='') then
application.MessageBox('生产企业和药品名称不能为空!','系统提示',mb_ok + mb_iconinformation)
else
begin
adoqopen(adoquery2,'select max(id) as id from zbcgb');
if (insertflag=false) and (DataSource1.DataSet.RecordCount<>0) then
if application.messagebox(pchar('要保存的药品编号为'+inttostr(adoquery2.fieldbyname('id').AsInteger+1)+#13+'与序号为'+inttostr(datasource1.DataSet.Fields[0].asinteger)+#13+'的信息完全一致'+#13+'是否保存?'),'系统提示',mb_okcancel+mb_iconinformation)=idok then
begin
adoqopen(adoquery1,'select * from zbcgb where zbcgb.jgbm ='+#39+gjgbm+#39+ 'order by id');
adoquery1.append;
adoquery1.fieldbyname('id').asinteger:=adoquery2.fieldbyname('id').asinteger+1;
adoquery1.fieldbyname('scqy').asstring:=edtscqy.text;
adoquery1.fieldbyname('wh').asstring:=edtwh.text;
adoquery1.fieldbyname('ypmc').asstring:=edtypmc.text;
adoquery1.fieldbyname('spm').asstring:=edtspm.text;
adoquery1.fieldbyname('jx').asstring:=edtjx.text;
adoquery1.fieldbyname('gg').asstring:=edtgg.text;
adoquery1.fieldbyname('dw').asstring:=edtdw.text;
adoquery1.fieldbyname('zlcc').asstring:=edtzlcc.text;
adoqopen(adoquery2,'select * from ypjgk where ypm='+#39+trim(edtypmc.Text)+#39);
if adoquery2.RecordCount=0 then
adoquery1.fieldbyname('glfs').asstring:='市场调节'
else
adoquery1.fieldbyname('glfs').asstring:='政府定价';
if edtlsjg.Text='' then
adoquery1.fieldbyname('zblsj').AsFloat:=strtofloat('0.00')
else
adoquery1.fieldbyname('zblsj').Asfloat:=strtofloat(edtlsjg.Text);
adoquery1.fieldbyname('zbrq').Asstring:=datetostr(DateTimePicker1.DateTime);
adoquery1.FieldByName('jgbm').AsString:=gjgbm;
adoquery1.post;
adoqopen(adoqzbcg,'select zbcgb.* ,str(zblsj,10,2) as jg,zzjjgb.jgmc as jgmc from zzjjgb,zbcgb where zbcgb.jgbm ='+#39+gjgbm+#39+'and zzjjgb.jgbm=zbcgb.jgbm order by id');
adoqzbcg.Last;
dbgrid1.Refresh;
application.messagebox('数据保存成功!','系统提示',mb_ok+mb_iconinformation) ;
sptnsave.Enabled:=false;
insertflag:=false;
end
else
begin
sptnsave.Enabled:=false;
insertflag:=false;
end;
if (insertflag=true) or(DataSource1.DataSet.RecordCount=0) then
begin
adoqopen(adoquery2,'select max(id) as id from zbcgb');
application.messagebox(pchar('要保存的药品编号为'+inttostr(adoquery2.fieldbyname('id').AsInteger+1)+#13+'生产企业为:'+trim(edtscqy.text)+#13+'药品名为:'+trim(edtypmc.text)),'系统提示',mb_ok+mb_iconexclamation) ;
adoqopen(adoquery1,'select * from zbcgb where zbcgb.jgbm ='+#39+gjgbm+#39+ 'order by id');
adoquery1.append;
adoquery1.fieldbyname('id').asinteger:=adoquery2.fieldbyname('id').asinteger+1;
adoquery1.fieldbyname('scqy').asstring:=edtscqy.text;
adoquery1.fieldbyname('wh').asstring:=edtwh.text;
adoquery1.fieldbyname('ypmc').asstring:=edtypmc.text;
adoquery1.fieldbyname('spm').asstring:=edtspm.text;
adoquery1.fieldbyname('jx').asstring:=edtjx.text;
adoquery1.fieldbyname('gg').asstring:=edtgg.text;
adoquery1.fieldbyname('dw').asstring:=edtdw.text;
adoquery1.fieldbyname('zlcc').asstring:=edtzlcc.text;
adoqopen(adoquery2,'select * from ypjgk where ypm='+#39+trim(edtypmc.Text)+#39);
if adoquery2.RecordCount=0 then
adoquery1.fieldbyname('glfs').asstring:='市场调节'
else
adoquery1.fieldbyname('glfs').asstring:='政府定价';
if trim(edtlsjg.Text)='' then
adoquery1.fieldbyname('zblsj').AsFloat:=strtofloat('0.00')
else
adoquery1.fieldbyname('zblsj').Asfloat:=strtofloat(edtlsjg.Text);
adoquery1.fieldbyname('zbrq').Asstring:=datetostr(DateTimePicker1.DateTime);
adoquery1.FieldByName('jgbm').AsString:=gjgbm;
adoquery1.Post;
adoqopen(adoqzbcg,'select zbcgb.* ,str(zblsj,10,2) as jg,zzjjgb.jgmc as jgmc from zzjjgb,zbcgb where zbcgb.jgbm ='+#39+gjgbm+#39+'and zzjjgb.jgbm=zbcgb.jgbm order by id');
adoqzbcg.Last;
dbgrid1.Refresh;
application.messagebox('数据保存成功!','系统提示',mb_ok+mb_iconinformation) ;
sptnsave.Enabled:=false;
insertflag:=false;
end;
label15.Visible:=false;
label16.Visible:=false;
label17.Visible:=false;
end;
if DataSource1.DataSet.RecordCount<>0 then
begin
sptnxiugai.Enabled:=true;
sptncopy.Enabled:=true;
sptndelete.Enabled:=true;
end;
end;
procedure Tfrminsert.SptndeleteClick(Sender: TObject);
begin
adoqopen(adoquery1,'select * from zbcgb'); //
adoquery1.Close; //上两行连接测试
label15.Visible:=false;
label16.Visible:=false;
label17.Visible:=false;
sptnsave.Enabled:=false;
k:=adoqzbcg.RecNo;//当前操作记录号(序号)
dbgrid1.Refresh;
if application.messagebox(Pchar('确实要删除序号为 '+inttostr(datasource1.DataSet.Fields[0].asinteger)+#13
+'生产企业为:'+adoqzbcg.fieldbyname('scqy').asstring+#13+'药品名为:'+adoqzbcg.fieldbyname('ypmc').asstring+#13+'的药品吗?'), '系统提示',mb_okcancel+mb_iconexclamation)=idok then
begin
sptnsave.Enabled:=false;
adoqopen(adoquery1,'select * from zbcgb where zbcgb.jgbm ='+#39+gjgbm+#39);
adoquery1.SQL.Add('delete zbcgb where id='+inttostr(datasource1.DataSet.Fields[0].asinteger));
adoquery1.ExecSQL;
adoqopen(adoqzbcg,'select zbcgb.* ,str(zblsj,10,2) as jg,zzjjgb.jgmc as jgmc from zzjjgb,zbcgb where zbcgb.jgbm ='+#39+gjgbm+#39+'and zzjjgb.jgbm=zbcgb.jgbm order by id');
adoqzbcg.MoveBy(k-1);
if DataSource1.DataSet.RecordCount=0 then
begin
sptnxiugai.Enabled:=false;
sptncopy.Enabled:=false;
sptndelete.Enabled:=false;
edtscqy.text:='';
edtypmc.text:='';
edtjx.text:='';
edtspm.text:='';
edtgg.text:='';
edtdw.text:='';
edtlsjg.Text:='';
edtzlcc.Text:='';
edtwh.Text:='';
edtscqy.SetFocus;
sptnsave.Enabled:=false;
k:=0;
end;
k:=0;
dbgrid1.Refresh;
end
else
begin
k:=0;
dbgrid1.Refresh
end;
end;
procedure Tfrminsert.SptnxiugaiClick(Sender: TObject);
begin
adoqopen(adoquery1,'select * from zbcgb');
adoquery1.Close; //上两行连接测试
sptnsave.Enabled:=false;
label15.Visible:=false;
label16.Visible:=false;
label17.Visible:=false;
gxiugaibz:=true;
j:=adoqzbcg.RecNo;//当前操作记录号(序号)
dbgrid1.Refresh;
application.CreateForm(tfrmxiugai,frmxiugai);
with adoqzbcg do
begin
frmxiugai.edtscqy.Text:=trim(fieldbyname('scqy').AsString) ;
frmxiugai.edtypmc.Text:=trim(fieldbyname('ypmc').AsString);
frmxiugai.edtspm.Text:=trim(fieldbyname('spm').AsString);
frmxiugai.edtwh.Text:=trim(fieldbyname('wh').AsString);
frmxiugai.edtjx.Text:=trim(fieldbyname('jx').AsString);
frmxiugai.edtgg.Text:=trim(fieldbyname('gg').AsString);
frmxiugai.edtdw.Text:=trim(fieldbyname('dw').AsString);
frmxiugai.dateTimePicker1.DateTime:=fieldbyname('zbrq').value;
if fieldbyname('zblsj').asstring<>'' then
frmxiugai.edtzblsj.Text:=formatfloat('0.00',strtofloat(fieldbyname('zblsj').asstring))
else
frmxiugai.edtzblsj.Text:='';
frmxiugai.edtzlcc.Text:=trim(fieldbyname('zlcc').AsString);
frmxiugai.combobox1.Text:=trim(fieldbyname('glfs').AsString);
end;
frmxiugai.ShowModal ;
dbgrid1.Refresh;
end;
procedure Tfrminsert.SptncloseClick(Sender: TObject);
begin
if (sptnsave.Enabled) and (insertflag=true) then
if application.messagebox(Pchar('有序号为 '+inttostr(datasource1.DataSet.Fields[0].asinteger+1)+#13
+'生产企业为:'+edtscqy.text+#13+'药品名为:'+edtypmc.text+#13+'的新增药品未保存,是否保存?'), '系统提示',mb_okcancel+mb_iconexclamation)=idok then
// if Messagebox(GetforegroundWindow,'有数据没保存,是否保存?','系统信息', mb_okcancel+mb_iconinformation)=idok then
begin
sptnsave.Click;
end;
adoquery1.Close;
close;
insertflag:=false;
end;
procedure Tfrminsert.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with adoqzbcg do begin
if (adoqzbcg.RecNo =j)then
begin
dbgrid1.Canvas.Brush.color:=clgreen;
end;
//////////////////////
if ( adoqzbcg.RecNo =k) then
begin
dbgrid1.Canvas.Brush.color:=clred;
end;
if (adoqzbcg.RecNo =l) then
begin
dbgrid1.Canvas.Brush.Color:=clyellow;
dbgrid1.Canvas.Font.Color:=clnavy;
end ;
end;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;
procedure Tfrminsert.edtlsjgExit(Sender: TObject);
var
s1:real;
begin
if edtlsjg.text<>'' then
begin
s1:=strtofloat(edtlsjg.Text );
edtlsjg.Text:= FormatFloat( '0.00', s1) ;
end;
end;
procedure Tfrminsert.SptncopyClick(Sender: TObject);
begin
label15.Visible:=true;
label17.Visible:=true;
label16.Visible:=true;
label15.caption:='要增加的药品编号';
label17.caption:='为:';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -