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

医药行业

开发平台:

Delphi

  1. unit Upd;
  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.   Tfpd = 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 Tfpd.FormShow(Sender: TObject);
  41. begin
  42.   adodm.tcr.Close;
  43.   adodm.tcr.Open;
  44.   label3.caption:=datetimetostr(date());
  45. end;
  46. procedure Tfpd.DBGridEh1ColExit(Sender: TObject);
  47. begin
  48.   if (trim(adodm.tcr.FieldByName('ypid').AsString)<>'') and (trim(adodm.tcr.FieldByName('数量').AsString)<>'')  then
  49.    if  adodm.tkc.Locate('ypid',adodm.tcr.Fieldvalues['ypid'],[])  then
  50.         if adodm.tkc.FieldByName('数量').AsInteger<adodm.tcr.FieldByName('数量').AsInteger then
  51.         begin
  52.           showmessage('库存数量:'+adodm.tkc.FieldByName('数量').Asstring+'    不足以支付');
  53.           adodm.tcr.Edit;
  54.           adodm.tcr.FieldByName('数量').AsString:='';
  55.           dbgrideh1.col:=2;
  56.         end
  57.         else
  58.         begin
  59.         adodm.tcr.edit;
  60.         adodm.tcr.FieldByName('单价').Asfloat:=adodm.tkc.fieldbyname('购进单价').asfloat
  61.         end
  62.   else
  63.    begin
  64.     showmessage('该药品没有库存');
  65.     adodm.tcr.Edit;
  66.     adodm.tcr.FieldByName('药品简码').AsString:='';
  67.     dbgrideh1.col:=1;
  68.    end;
  69.   if (adodm.tcr.FieldByName('单价').AsString<>'') and (adodm.tcr.FieldByName('数量').Asstring<>'') then
  70.     begin
  71.     adodm.tcr.FieldByName('金额').AsFloat:=adodm.tcr.FieldByName('数量').Asinteger*adodm.tcr.FieldByName('单价').Asfloat ;
  72.     end ;
  73. end;
  74. function Tfpd.check: boolean;
  75. begin
  76.   result:=true;
  77.  if adodm.tcr.RecordCount<=0 then
  78.    begin
  79.     showmessage('请录入退出的药品信息!');
  80.     result:=false;
  81.     exit;
  82.    end;
  83. end;
  84. procedure Tfpd.saveClick(Sender: TObject);
  85. begin
  86.  
  87.   if not check then
  88.   exit;
  89.   adodm.ctemp.Parameters.ParamValues['@lx']:='pd';
  90.   adodm.ctemp.Execute;
  91.   edit2.Text:=adodm.ctemp.Parameters.ParamValues['@bh'];
  92.     {GETbh}
  93.   adodm.tcr.First;
  94.   while not adodm.tcr.Eof do
  95.   begin
  96.     adodm.tcr.Edit;
  97.     adodm.tcr.FieldByName('编号').AsString:=trim(edit2.Text);
  98.     if adodm.tcr.FieldByName('数量').AsInteger<0 then
  99.     begin
  100.     adodm.tcr.FieldByName('入库单位').AsInteger:=-2;
  101.     adodm.tcr.FieldByName('类型').Asstring:='盘亏';
  102.     adodm.tcr.fieldbyname('出入').asboolean:=false;
  103.     end
  104.      else
  105.      begin
  106.     adodm.tcr.FieldByName('出库单位').AsInteger:=-2;
  107.     adodm.tcr.FieldByName('类型').Asstring:='盘盈';
  108.     adodm.tcr.fieldbyname('出入').asboolean:=true;
  109.      end;
  110.     if trim(ren.Text)<>'' then
  111.     adodm.tcr.FieldByName('开票人').Asinteger:=adodm.tyg.fieldbyname('ygid').Asinteger;
  112.     adodm.tcr.FieldByName('操作人').Asstring:=trim(edit1.Text);
  113.    
  114.     adodm.tcr.FieldByName('日期').Asdatetime:=date;
  115.     if adodm.tkc.Locate('ypid',adodm.tcr.FieldValues['ypid'],[]) then
  116.     begin
  117.       adodm.tkc.Edit;
  118.       adodm.tkc.FieldByName('数量').AsInteger:=adodm.tkc.FieldByName('数量').AsInteger+adodm.tcr.FieldByName('数量').AsInteger;
  119.       adodm.tkc.FieldByName('购进金额').Asfloat:=adodm.tkc.FieldByName('购进单价').Asfloat*adodm.tkc.FieldByName('数量').AsInteger;
  120.       adodm.tkc.Post;
  121.     end  ;
  122.    adodm.tcr.Next;
  123.    end;
  124.    adodm.tcr.UpdateBatch();
  125.    dbgrideh1.Enabled:=false;
  126.    if print.Checked then
  127.    begin
  128.    fpreview.frrk.FindObject('memo1').Memo.Text:=label1.Caption;
  129.    fpreview.frrk.ShowReport;
  130.    fpreview.ShowModal;
  131.    end;
  132.    save.Enabled:=false;
  133. end;
  134. procedure Tfpd.retClick(Sender: TObject);
  135. begin
  136.  dbgrideh1.Enabled:=true;
  137.  adodm.tcr.close;
  138.  adodm.tcr.Open;
  139.  edit2.Text:='';
  140.  save.Enabled:=true;
  141. end;
  142. procedure Tfpd.FormClose(Sender: TObject; var Action: TCloseAction);
  143. begin
  144. action:=cafree;
  145. end;
  146. procedure Tfpd.DBGridEh1KeyDown(Sender: TObject; var Key: Word;
  147.   Shift: TShiftState);
  148. begin
  149. if (key=vk_down) and adodm.tcr.Eof   then
  150. begin
  151. sendmessage(dbgrideh1.Handle,wm_keydown,vk_tab,0);
  152. adodm.tcr.Append;
  153. dbgrideh1.Col:=1;
  154. end;
  155. end;
  156. procedure Tfpd.BitBtn3Click(Sender: TObject);
  157. begin
  158. close;
  159. end;
  160. end.