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

医药行业

开发平台:

Delphi

  1. unit ubs;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls, Grids, DBGridEh, ComCtrls, Buttons, Mask, DBCtrlsEh,
  6.   DBLookupEh, Menus,upreview,udm;
  7. type
  8.   Tfbs = class(TForm)
  9.     DBGridEh1: TDBGridEh;
  10.     Label1: TLabel;
  11.     TabControl1: TTabControl;
  12.     TabControl2: TTabControl;
  13.     Label2: TLabel;
  14.     Label3: TLabel;
  15.     Edit1: TEdit;
  16.     Label5: TLabel;
  17.     Label6: TLabel;
  18.     ren: TDBLookupComboboxEh;
  19.     Edit2: TEdit;
  20.     print: TCheckBox;
  21.     save: TBitBtn;
  22.     ret: TBitBtn;
  23.     BitBtn3: TBitBtn;
  24.     procedure FormShow(Sender: TObject);
  25.     procedure DBGridEh1ColExit(Sender: TObject);
  26.     procedure saveClick(Sender: TObject);
  27.     procedure retClick(Sender: TObject);
  28.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  29.     procedure DBGridEh1KeyDown(Sender: TObject; var Key: Word;
  30.       Shift: TShiftState);
  31.     procedure BitBtn3Click(Sender: TObject);
  32.   private
  33.     function  check():boolean;
  34.     { Private declarations }
  35.   public
  36.     { Public declarations }
  37.   end;
  38. implementation
  39. {$R *.dfm}
  40. procedure Tfbs.FormShow(Sender: TObject);
  41. begin
  42.   adodm.tcr.Close;
  43.   adodm.tcr.Open;
  44.   label3.caption:=datetimetostr(date());
  45.   adodm.tdw.Filter:=' 出入<> 0 ' ;
  46.   adodm.tdw.Filtered:=true;
  47. end;
  48. procedure Tfbs.DBGridEh1ColExit(Sender: TObject);
  49. begin
  50.   if (trim(adodm.tcr.FieldByName('ypid').AsString)<>'') and (trim(adodm.tcr.FieldByName('数量').AsString)<>'')  then
  51.    if  adodm.tkc.Locate('ypid',adodm.tcr.Fieldvalues['ypid'],[])  then
  52.         if adodm.tkc.FieldByName('数量').AsInteger<adodm.tcr.FieldByName('数量').AsInteger then
  53.         begin
  54.           showmessage('库存数量:'+adodm.tkc.FieldByName('数量').Asstring+'    不足以支付');
  55.           adodm.tcr.Edit;
  56.           adodm.tcr.FieldByName('数量').AsString:='';
  57.           dbgrideh1.col:=2;
  58.         end
  59.         else
  60.         begin
  61.         adodm.tcr.edit;
  62.         adodm.tcr.FieldByName('单价').Asfloat:=adodm.tkc.fieldbyname('购进单价').asfloat;
  63.         end
  64.   else
  65.    begin
  66.     showmessage('该药品没有库存');
  67.     adodm.tcr.Edit;
  68.     adodm.tcr.FieldByName('药品简码').AsString:='';
  69.     dbgrideh1.col:=1;
  70.    end;
  71.   if (adodm.tcr.FieldByName('单价').AsString<>'') and (adodm.tcr.FieldByName('数量').Asstring<>'') then
  72.     begin
  73.     adodm.tcr.edit;
  74.     adodm.tcr.FieldByName('金额').AsFloat:=adodm.tcr.FieldByName('数量').Asinteger*adodm.tcr.FieldByName('单价').Asfloat ;
  75.     end ;
  76. end;
  77. function Tfbs.check: boolean;
  78. begin
  79.   result:=true;
  80.  if adodm.tcr.RecordCount<=0 then
  81.    begin
  82.     showmessage('请录入退出的药品信息!');
  83.     result:=false;
  84.     exit;
  85.    end;
  86. end;
  87. procedure Tfbs.saveClick(Sender: TObject);
  88. begin
  89.  
  90.   if not check then
  91.   exit;
  92.   adodm.ctemp.Parameters.ParamValues['@lx']:='bs';
  93.   adodm.ctemp.Execute;
  94.   edit2.Text:=adodm.ctemp.Parameters.ParamValues['@bh'];
  95.     {GETbh}
  96.   adodm.tcr.First;
  97.   while not adodm.tcr.Eof do
  98.   begin
  99.     adodm.tcr.Edit;
  100.     adodm.tcr.FieldByName('编号').AsString:=trim(edit2.Text);
  101.     adodm.tcr.FieldByName('入库单位').AsInteger:=-2;
  102.     if trim(ren.Text)<>'' then
  103.     adodm.tcr.FieldByName('开票人').Asinteger:=adodm.tyg.fieldbyname('ygid').Asinteger;
  104.     adodm.tcr.FieldByName('操作人').Asstring:=trim(edit1.Text);
  105.     adodm.tcr.FieldByName('类型').Asstring:='报损';
  106.     adodm.tcr.fieldbyname('出入').asboolean:=false;
  107.     adodm.tcr.FieldByName('日期').Asdatetime:=date;
  108.     if adodm.tkc.Locate('ypid',adodm.tcr.FieldValues['ypid'],[]) then
  109.     begin
  110.       adodm.tkc.Edit;
  111.       adodm.tkc.FieldByName('数量').AsInteger:=adodm.tkc.FieldByName('数量').AsInteger-adodm.tcr.FieldByName('数量').AsInteger;
  112.       adodm.tkc.FieldByName('购进金额').Asfloat:=adodm.tkc.FieldByName('购进单价').Asfloat*adodm.tkc.FieldByName('数量').AsInteger;
  113.       adodm.tkc.Post;
  114.     end  ;
  115.    adodm.tcr.Next;
  116.    end;
  117.    adodm.tcr.UpdateBatch();
  118.    dbgrideh1.Enabled:=false;
  119.    if print.Checked then
  120.    begin
  121.    fpreview.frrk.FindObject('memo1').Memo.Text:=label1.Caption;
  122.    fpreview.frrk.ShowReport;
  123.    fpreview.ShowModal;
  124.    end;
  125.    save.Enabled:=false;
  126. end;
  127. procedure Tfbs.retClick(Sender: TObject);
  128. begin
  129.  dbgrideh1.Enabled:=true;
  130.  adodm.tcr.close;
  131.  adodm.tcr.Open;
  132.  edit2.Text:='';
  133.  save.Enabled:=true;
  134. end;
  135. procedure Tfbs.FormClose(Sender: TObject; var Action: TCloseAction);
  136. begin
  137. try
  138. adodm.tcr.CancelUpdates;
  139. adodm.tcr.Close;
  140. except
  141. end;
  142. action:=cafree;
  143. end;
  144. procedure Tfbs.DBGridEh1KeyDown(Sender: TObject; var Key: Word;
  145.   Shift: TShiftState);
  146. begin
  147. if (key=vk_down) and adodm.tcr.Eof   then
  148. begin
  149. sendmessage(dbgrideh1.Handle,wm_keydown,vk_tab,0);
  150. adodm.tcr.Append;
  151. dbgrideh1.Col:=1;
  152. end;
  153. end;
  154. procedure Tfbs.BitBtn3Click(Sender: TObject);
  155. begin
  156. close;
  157. end;
  158. end.