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

医药行业

开发平台:

Delphi

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