Uypzdk2.pas
上传用户:jiete_yjc
上传日期:2010-02-11
资源大小:422k
文件大小:10k
源码类别:

医药行业

开发平台:

Delphi

  1. unit Uypzdk2;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, ExtCtrls, StdCtrls, Mask, DBCtrls, Buttons, DBCtrlsEh,
  6.   DBLookupEh;
  7. type
  8.   Tfypzdk2 = class(TForm)
  9.     Label2: TLabel;
  10.     Label3: TLabel;
  11.     Label4: TLabel;
  12.     Label5: TLabel;
  13.     Label6: TLabel;
  14.     Label7: TLabel;
  15.     Label8: TLabel;
  16.     DBEdit8: TDBEdit;
  17.     Label9: TLabel;
  18.     DBEdit9: TDBEdit;
  19.     Bevel1: TBevel;
  20.     Bevel2: TBevel;
  21.     btok: TBitBtn;
  22.     btno: TBitBtn;
  23.     btadd: TBitBtn;
  24.     Memo1: TMemo;
  25.     Image1: TImage;
  26.     DBEdit3: TDBEdit;
  27.     DBEdit1: TDBEdit;
  28.     Label12: TLabel;
  29.     DBEdit4: TDBEdit;
  30.     DBEdit2: TDBEdit;
  31.     DBEdit5: TDBEdit;
  32.     Label16: TLabel;
  33.     Label17: TLabel;
  34.     Label20: TLabel;
  35.     pf: TDBEdit;
  36.     Label21: TLabel;
  37.     ls: TDBEdit;
  38.     Label22: TLabel;
  39.     edit6: TDBMemo;
  40.     Bevel3: TBevel;
  41.     jx: TDBComboBoxEh;
  42.     dw: TDBComboBoxEh;
  43.     Label1: TLabel;
  44.     lx: TDBComboBoxEh;
  45.     cj: TDBComboBoxEh;
  46.     wh: TDBEdit;
  47.     sp1: TSpeedButton;
  48.     look1: TDBLookupComboboxEh;
  49.     procedure FormKeyDown(Sender: TObject; var Key: Word;
  50.       Shift: TShiftState);
  51.     procedure check(Sender: TObject);
  52.     procedure btokClick(Sender: TObject);
  53.     procedure btnoClick(Sender: TObject);
  54.     procedure btaddClick(Sender: TObject);
  55.     procedure checkstr(Sender: TObject);
  56.     procedure jxButtonDown(Sender: TObject; TopButton: Boolean;
  57.       var AutoRepeat, Handled: Boolean);
  58.     procedure dwButtonDown(Sender: TObject; TopButton: Boolean;
  59.       var AutoRepeat, Handled: Boolean);
  60.     procedure FormShow(Sender: TObject);
  61.     procedure lxButtonDown(Sender: TObject; TopButton: Boolean;
  62.       var AutoRepeat, Handled: Boolean);
  63.     procedure cjButtonDown(Sender: TObject; TopButton: Boolean;
  64.       var AutoRepeat, Handled: Boolean);
  65.     procedure pfExit(Sender: TObject);
  66.     procedure lsExit(Sender: TObject);
  67.     procedure whEnter(Sender: TObject);
  68.     procedure whExit(Sender: TObject);
  69.     procedure look1Change(Sender: TObject);
  70.     procedure look1Exit(Sender: TObject);
  71.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  72.   private
  73.     function search(fieldname:string;value:string):boolean;
  74.     procedure dotj;
  75.     { Private declarations }
  76.   public
  77.      function checkdata:boolean;
  78.     { Public declarations }
  79.   end;
  80. var fypzdk2:tfypzdk2;
  81. implementation
  82. uses udm;
  83. {$R *.dfm}
  84. procedure Tfypzdk2.FormKeyDown(Sender: TObject; var Key: Word;
  85.   Shift: TShiftState);
  86. begin
  87.   if key=vk_return then
  88.   postmessage(handle,wm_keydown,vk_tab,0);
  89. end;
  90. function Tfypzdk2.checkdata: boolean;
  91. begin
  92.    result:=true;
  93.    if trim(dbedit1.Text)='' then
  94.    begin
  95.    showmessage('药品编号不能为空!');
  96.    result:=false;
  97.    dbedit1.SetFocus;
  98.    exit;
  99.    end ;
  100.     if search(dbedit1.DataField,dbedit1.Text) then
  101.       begin
  102.       showmessage('药品编号重复,请重新录入!');
  103.       result:=false;
  104.       dbedit1.SetFocus;
  105.       exit;
  106.     end;
  107.    if trim(dbedit2.Text)='' then
  108.    begin
  109.    showmessage('药品代码不能为空!');
  110.    result:=false;
  111.    dbedit2.SetFocus;
  112.    exit;
  113.    end;
  114.     if search(dbedit2.datafield,dbedit2.Text) then
  115.     begin
  116.       showmessage('药品代码重复,请重新录入!');
  117.       result:=false;
  118.       dbedit2.SetFocus;
  119.       exit;
  120.     end;
  121.    if trim(dbedit3.Text)='' then
  122.    begin
  123.    showmessage('药品名称不能为空!');
  124.    result:=false;
  125.    dbedit3.SetFocus;
  126.    exit;
  127.    end;
  128.    if trim(jx.Text)='' then
  129.    begin
  130.    showmessage('药品剂型不能为空!');
  131.    result:=false;
  132.    jx.SetFocus;
  133.    exit;
  134.    end;
  135.    if trim(dw.Text)='' then
  136.    begin
  137.    showmessage('药品单位不能为空!');
  138.    result:=false;
  139.    dw.SetFocus;
  140.    exit;
  141.    end;
  142.    if trim(pf.Text)='' then
  143.    begin
  144.    showmessage('药品批发价格不能为空!');
  145.    result:=false;
  146.    pf.SetFocus;
  147.    exit;
  148.    end;
  149.      if trim(ls.Text)='' then
  150.    begin
  151.    showmessage('药品零售价不能为空!');
  152.    result:=false;
  153.    ls.SetFocus;
  154.    exit;
  155.    end;
  156.     if pf.Field.Value>ls.Field.Value then
  157.     if application.MessageBox('批发价大于零售价,是否调整?','警告' ,MB_yesno)=idyes then
  158.     begin
  159.     result:=false;
  160.     pf.SetFocus;
  161.     exit;
  162.     end;
  163.    if trim(dbedit5.Text)='' then
  164.    begin
  165.    showmessage('药品规格不能为空!');
  166.    result:=false;
  167.    dbedit5.SetFocus;
  168.    exit;
  169.    end;
  170.      if trim(lx.Text)='' then
  171.    begin
  172.    showmessage('药品类型不能为空!');
  173.    result:=false;
  174.    lx.SetFocus;
  175.    exit;
  176.    end;
  177.    if  trim(wh.EditText)='' then
  178.    begin
  179.    showmessage('批准文号不能为空!请认真填写!');
  180.    result:=false;
  181.    wh.SetFocus;
  182.    exit;
  183.    end;
  184.    if (trim(dbedit8.Text)<>'') and (trim(dbedit9.Text)<>'') then
  185.    if (dbedit8.Field.Value<>-1) and (dbedit9.Field.Value<>0)  then
  186.    if dbedit8.Field.Value<dbedit9.Field.Value then
  187.    begin
  188.    showmessage('最高库存限量小于最低库存限量!');
  189.    result:=false;
  190.    dbedit8.SetFocus;
  191.    exit;
  192.    end;
  193. end;
  194. procedure Tfypzdk2.check(Sender: TObject);
  195. begin
  196. if (sender as tdbedit).Field.AsFloat<0 then
  197. begin
  198.  showmessage('存量限制必需大于0');
  199.  (sender as tdbedit).SetFocus;
  200. end;
  201. end;
  202. procedure Tfypzdk2.btokClick(Sender: TObject);
  203. begin
  204.   if sp1.Visible then
  205.   dotj
  206.   else
  207.   if checkdata then
  208.     adodm.typzdk.Post;
  209.   close;
  210. end;
  211. procedure Tfypzdk2.btnoClick(Sender: TObject);
  212. begin
  213.       adodm.typzdk.Cancel;
  214.       close;
  215. end;
  216. procedure Tfypzdk2.btaddClick(Sender: TObject);
  217. begin
  218.    if checkdata then
  219.    adodm.typzdk.Append;
  220. end;
  221. procedure Tfypzdk2.checkstr(Sender: TObject);
  222. begin
  223.    if   trim((sender as Tdbedit).Text)='' then
  224.       (sender as Tdbedit).SetFocus;
  225. end;
  226. procedure Tfypzdk2.jxButtonDown(Sender: TObject; TopButton: Boolean;
  227.   var AutoRepeat, Handled: Boolean);
  228. begin
  229.   jx.Items.Clear;
  230.   adodm.ttemp.Close;
  231.   adodm.ttemp.CommandText:=' select distinct 剂型 from ypzdk'   ;
  232.   adodm.ttemp.Open;
  233.   adodm.ttemp.First;
  234.   while not adodm.ttemp.Eof do
  235.   begin
  236.     jx.Items.Add(adodm.ttemp.Fields[0].asstring) ;
  237.     adodm.ttemp.Next;
  238.   end;
  239. end;
  240. procedure Tfypzdk2.dwButtonDown(Sender: TObject;
  241.   TopButton: Boolean; var AutoRepeat, Handled: Boolean);
  242. begin
  243.   dw.Items.Clear;
  244.   adodm.ttemp.Close;
  245.   adodm.ttemp.CommandText:=' select distinct 单位 from ypzdk'   ;
  246.   adodm.ttemp.Open;
  247.   adodm.ttemp.First;
  248.   while not adodm.ttemp.Eof do
  249.   begin
  250.     dw.Items.Add(adodm.ttemp.Fields[0].asstring) ;
  251.     adodm.ttemp.Next;
  252.   end;
  253. end;
  254. procedure Tfypzdk2.FormShow(Sender: TObject);
  255. begin
  256. //adodm.typzdk.Append;
  257. end;
  258. procedure Tfypzdk2.lxButtonDown(Sender: TObject;
  259.   TopButton: Boolean; var AutoRepeat, Handled: Boolean);
  260. begin
  261.   lx.Items.Clear;
  262.   adodm.ttemp.Close;
  263.   adodm.ttemp.CommandText:=' select distinct 分类 from ypzdk'   ;
  264.   adodm.ttemp.Open;
  265.   adodm.ttemp.First;
  266.   while not adodm.ttemp.Eof do
  267.   begin
  268.     lx.Items.Add(adodm.ttemp.Fields[0].asstring) ;
  269.     adodm.ttemp.Next;
  270.   end;
  271. end;
  272. procedure Tfypzdk2.cjButtonDown(Sender: TObject; TopButton: Boolean;
  273.   var AutoRepeat, Handled: Boolean);
  274. begin
  275.   cj.Items.Clear;
  276.   adodm.ttemp.Close;
  277.   adodm.ttemp.CommandText:=' select distinct 生产厂家 from ypzdk'   ;
  278.   adodm.ttemp.Open;
  279.   adodm.ttemp.First;
  280.   while not adodm.ttemp.Eof do
  281.   begin
  282.     cj.Items.Add(adodm.ttemp.Fields[0].asstring) ;
  283.     adodm.ttemp.Next;
  284.   end;
  285. end;
  286. procedure Tfypzdk2.pfExit(Sender: TObject);
  287. begin
  288.  if pf.Field.Value<0 then
  289.  begin
  290.  showmessage('批发价必须大于0!');
  291.  pf.SetFocus;
  292.  end;
  293. end;
  294. procedure Tfypzdk2.lsExit(Sender: TObject);
  295. begin
  296. if ls.Field.Value<0 then
  297.  begin
  298.  showmessage('批发价必须大于0!');
  299.  ls.SetFocus;
  300.  end;
  301. end;
  302. function Tfypzdk2.search(fieldname: string; value: string): boolean;
  303. begin
  304.    adodm.ttemp.Close;
  305.    adodm.ttemp.CommandText:=' select id from ypzdk where '+trim(fieldname)+' ='''+trim(value)+'''';
  306.    if look1.Visible then
  307.    adodm.ttemp.commandtext:=adodm.ttemp.CommandText+' and id <>'+adodm.typzdk.Fieldbyname('id').asstring;
  308.    showmessage(adodm.ttemp.commandtext);
  309.    adodm.ttemp.Open;
  310.    result:= not adodm.ttemp.Eof;  
  311. end;
  312. procedure Tfypzdk2.whEnter(Sender: TObject);
  313. begin
  314.    wh.Width:=150;
  315. end;
  316. procedure Tfypzdk2.whExit(Sender: TObject);
  317. begin
  318. wh.Width:=81;
  319. end;
  320. procedure Tfypzdk2.dotj;
  321. var a:int64;
  322. begin
  323.   if (trim(pf.Text)='') or (trim(ls.Text)='') then
  324.   begin
  325.     showmessage('请将价格信息录入完整!');
  326.     pf.SetFocus;
  327.     exit;
  328.   end;
  329.   if pf.Field.Value>ls.Field.Value then
  330.   begin
  331.     
  332.     showmessage('批发价大于零售价!');
  333.     ls.SetFocus;
  334.     exit;
  335.   end;
  336.   // if (pf.Field.OldValue=pf.Field.Value) and (ls.Field.OldValue=ls.Field.Value) then
  337.   // begin
  338.     //showmessage('价格没有变动,请点击取消!');
  339.     //ls.SetFocus;
  340.     //exit;
  341.    //end;
  342.    //showmessage(floattostr(pf.Field.OldValue));
  343.    //showmessage(floattostr(pf.Field.value));
  344.   begin
  345.   a:=adodm.typzdk.FieldValues['id'];
  346.   //showmessage(inttostr(a));
  347.   adodm.ttj.Open;
  348.   adodm.ttj.append;
  349.   adodm.ttj.Edit;
  350.   adodm.ttj.Fieldbyname('ypid').AsInteger:=a;
  351.   adodm.ttj.Fieldvalues['oldpf']:=pf.Field.oldvalue;
  352.   adodm.ttj.Fieldvalues['oldls']:=ls.Field.oldvalue;
  353.   adodm.ttj.Fieldvalues['newpf']:=pf.Field.value;
  354.   adodm.ttj.FieldValues['newls']:=ls.Field.Value;
  355.   adodm.ttj.FieldValues['tjdate']:=now;
  356.   adodm.ttj.Post;
  357.   adodm.typzdk.Edit;
  358.   adodm.typzdk.Post;
  359.   adodm.ttj.Close;
  360.   
  361.   end
  362. end;
  363. procedure Tfypzdk2.look1Change(Sender: TObject);
  364. begin
  365. if trim(look1.Text)<>'' then
  366.  begin
  367.   adodm.typzdk.DisableControls;
  368.   adodm.typzdk.filtered:=false;
  369.   adodm.typzdk.Filter:=' 编号 like '''+trim(look1.text)+'%'' or '+'简码 like '''+trim(look1.text)+'%'' or '+'名称 like '''+trim(look1.text)+'%''' ;
  370.   //showmessage(adodm.typzdk.Filter);
  371.   adodm.typzdk.Filtered:=true;
  372.   adodm.typzdk.EnableControls;
  373.  end
  374. else
  375.   adodm.typzdk.Filtered:=false;
  376. end;
  377. procedure Tfypzdk2.look1Exit(Sender: TObject);
  378. begin
  379. if adodm.typzdk.Filtered then
  380.  postmessage(look1.Handle,wm_keydown,vk_down,0);
  381. end;
  382. procedure Tfypzdk2.FormClose(Sender: TObject; var Action: TCloseAction);
  383. begin
  384.   sp1.Visible:=false;
  385.   look1.Visible:=false;
  386.   btadd.Visible:=false;
  387. end;
  388. end.