⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rkd_unit.pas

📁 餐营的数据核算,模拟入库,出库,库存.对餐营的流程详细叙述
💻 PAS
字号:
unit RKD_Unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBGridEh, Grids, StdCtrls, DBCtrls, DBCtrlsEh, DBLookupEh, Mask,
  ExtCtrls, Buttons, ToolWin, ComCtrls, TFlatSpeedButtonUnit, ImgList,
  Menus,db, ADODB;

type
  TRKD_Form = class(TForm)
    CoolBar1: TCoolBar;
    ScrollBox1: TScrollBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn10: TBitBtn;
    BitBtn11: TBitBtn;
    Shape1: TShape;
    Shape2: TShape;
    Label1: TLabel;
    Shape3: TShape;
    Shape4: TShape;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    DBEditEh1: TDBEditEh;
    DBLookupComboboxEh1: TDBLookupComboboxEh;
    DBDateTimeEditEh1: TDBDateTimeEditEh;
    DBMemo1: TDBMemo;
    DBGridEh1: TDBGridEh;
    Label8: TLabel;
    Label9: TLabel;
    DBLookupComboboxEh2: TDBLookupComboboxEh;
    DBLookupComboboxEh3: TDBLookupComboboxEh;
    FlatSpeedButton1: TFlatSpeedButton;
    FlatSpeedButton2: TFlatSpeedButton;
    FlatSpeedButton3: TFlatSpeedButton;
    FlatSpeedButton4: TFlatSpeedButton;
    Label10: TLabel;
    DBEditEh2: TDBEditEh;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    DBIL: TImageList;
    DELADOQ: TADOQuery;
    BitBtn6: TBitBtn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FlatSpeedButton1Click(Sender: TObject);
    procedure FlatSpeedButton2Click(Sender: TObject);
    procedure FlatSpeedButton3Click(Sender: TObject);
    procedure FlatSpeedButton4Click(Sender: TObject);
    procedure BitBtn10Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn11Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    procedure SHOWITEM;
    function BS(M:integer):integer;
    { Public declarations }
  end;

var
  RKD_Form: TRKD_Form;

implementation

uses DMUnit, RKITEMADD_Unit, RPTUnit, U_CheckRights;

{$R *.dfm}

procedure TRKD_Form.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
end;

procedure TRKD_Form.FormDestroy(Sender: TObject);
begin
RKD_FORM:=nil;
end;

procedure TRKD_Form.FormCreate(Sender: TObject);
begin
  with DM.CG_ADOQ do
  begin
    Close;
    Open;
  end;
  with DM.STOCK_ADOQ do
  begin
    Close;
    Open;
  end;
  with DM.RKDM_ADOQ do
  begin
    Close;
    Open;
  end;
  with DM.RKDP_ADOT do
  begin
    Close;
    Open;
  end;
end;

procedure TRKD_Form.FlatSpeedButton1Click(Sender: TObject);
begin
  DM.RKDM_ADOQ.First;
end;

procedure TRKD_Form.FlatSpeedButton2Click(Sender: TObject);
begin
  DM.RKDM_ADOQ.Prior;
end;

procedure TRKD_Form.FlatSpeedButton3Click(Sender: TObject);
begin
  DM.RKDM_ADOQ.Next;
end;

procedure TRKD_Form.FlatSpeedButton4Click(Sender: TObject);
begin
  DM.RKDM_ADOQ.Last;
end;

procedure TRKD_Form.BitBtn10Click(Sender: TObject);
begin
  Close;
end;

procedure TRKD_Form.BitBtn1Click(Sender: TObject);
begin
  if DM.RKDM_ADOQ.State in [DSBROWSE] then
    DM.RKDM_ADOQ.Append;
    BS(0);
end;

procedure TRKD_Form.BitBtn2Click(Sender: TObject);
begin
  IF DBEditEh2.Text='审核' then Exit;
  if DM.RKDM_ADOQ.RecordCount<=0 then Exit;
  if DM.RKDM_ADOQ.State in [DSBROWSE] then
    DM.RKDM_ADOQ.Edit;
    BS(0);
end;

procedure TRKD_Form.BitBtn3Click(Sender: TObject);
var
  RKDNO:string;
begin
  RKDNO:=DBEditEh1.Text;
  if DBEditEh2.Text='审核' then Exit;
  if DM.RKDM_ADOQ.RecordCount<=0 then Exit;
  if Application.MessageBox('是否确认删除该条入库单数据,如果删除,将删除所有入库明细数据?', '提示',
     MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) = IDYES then
  with DELADOQ do
  begin
    Close;
    SQL.Clear;
    SQL.Add('DELETE RKD_P WHERE RKD_NO='''+RKDNO+'''');
    ExecSQL;
  end;
     DM.RKDM_ADOQ.Delete;//删除明细表数据
end;

procedure TRKD_Form.BitBtn4Click(Sender: TObject);
begin
  if (Trim(DBLookupComboboxEh1.Text)='') or (Trim(DBLookupComboboxEh2.Text)='') or
   (Trim(DBLookupComboboxEh3.Text)='') then  Exit;
  if DM.RKDM_ADOQ.State in [DSINSERT,DSEDIT] then
     DM.RKDM_ADOQ.FieldByName('RKD_BS').AsString:='未审核';
     DM.RKDM_ADOQ.Post;
     BS(1);
end;

function TRKD_Form.BS(M: integer): integer;
begin
  if M=0 then
  begin
    DBLookupComboboxEh1.Enabled:=True;
    DBLookupComboboxEh2.Enabled:=True;
    DBLookupComboboxEh3.Enabled:=True;
    DBDateTimeEditEh1.Enabled:=True;
    DBMemo1.Enabled:=True;
    DBEditEh2.Enabled:=True;
  end;
  if M=1 then
  begin
    DBLookupComboboxEh1.Enabled:=false;
    DBLookupComboboxEh2.Enabled:=false;
    DBLookupComboboxEh3.Enabled:=false;
    DBDateTimeEditEh1.Enabled:=false;
    DBMemo1.Enabled:=false;
    DBEditEh2.Enabled:=false;
  end;
end;

procedure TRKD_Form.SHOWITEM;
begin
  if Application.FindComponent('RKITEMADD_Form')<>nil then
    RKITEMADD_Form.Show else
    begin
      RKITEMADD_Form:=TRKITEMADD_Form.Create(Application);
      RKITEMADD_Form.Show;
    end;
end;

procedure TRKD_Form.N1Click(Sender: TObject);
begin
  IF DBEditEh2.Text='审核' then Exit;
  DM.RKDP_ADOT.Append;
  SHOWITEM;
end;

procedure TRKD_Form.N2Click(Sender: TObject);
begin
  IF DBEditEh2.Text='审核' then Exit;
  if DM.RKDP_ADOT.RecordCount<=0 then Exit;
  DM.RKDP_ADOT.Edit;
  SHOWITEM;
end;

procedure TRKD_Form.N3Click(Sender: TObject);
begin
  IF DBEditEh2.Text='审核' then Exit;
  if DM.RKDP_ADOT.RecordCount<=0 then Exit;
  if Application.MessageBox('是否确认删除该条采购明细数据?', '提示',
     MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) = IDYES then
     DM.RKDP_ADOT.Delete;
end;

procedure TRKD_Form.BitBtn5Click(Sender: TObject);
begin
  DM.RKDM_ADOQ.Cancel;
  BS(1);
end;

procedure TRKD_Form.BitBtn11Click(Sender: TObject);
begin
  if DM.RKDM_ADOQ.FieldByName('RKD_BS').AsString='审核' then Exit;
  if DM.RKDM_ADOQ.FieldByName('RKD_BS').AsString='未审核' then
  if Application.MessageBox('是否确认完成该笔入库,如果选择是该笔数据将不能修改,同时该笔数据将写入库存?', '提示',
    MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) = IDYES then
  try
    if DM.ADOC.InTransaction then DM.ADOC.RollbackTrans;
    DM.ADOC.BeginTrans;
    DM.RKDM_ADOQ.Edit;
    DM.RKDM_ADOQ.FieldByName('RKD_BS').AsString:='审核';
    DM.RKDM_ADOQ.Post;

    with DM.CURRSTOCK_ADOQ do
    if not Active then Active:=True;
    DM.RKDP_ADOT.First;
    while not DM.RKDP_ADOT.Eof do
    begin
      DM.CURRSTOCK_ADOQ.Append;
      DM.CURRSTOCK_ADOQ.FieldByName('RKD_NO').AsString:=DM.RKDP_ADOT.FieldByName('RKD_NO').AsString;
      DM.CURRSTOCK_ADOQ.FieldByName('RKD_MAN').AsString:=DM.RKDM_ADOQ.FieldByName('RKD_MAN').AsString;
      DM.CURRSTOCK_ADOQ.FieldByName('RKD_TIME').AsDateTime:=DM.RKDM_ADOQ.FieldByName('RKD_TIME').AsDateTime;
      DM.CURRSTOCK_ADOQ.FieldByName('RKD_STOCK').AsString:=DM.RKDM_ADOQ.FieldByName('RKD_STOCK').AsString;
      DM.CURRSTOCK_ADOQ.FieldByName('RKD_PERSON').AsString:=DM.RKDM_ADOQ.FieldByName('RKD_PERSON').AsString;
      DM.CURRSTOCK_ADOQ.FieldByName('RKD_ITEMNAME').AsString:=DM.RKDP_ADOT.FieldByName('ITEM_NO').AsString;
      DM.CURRSTOCK_ADOQ.FieldByName('RKD_SORT').AsString:=DM.RKDP_ADOT.FieldByName('ITEM_SORT').AsString;
      DM.CURRSTOCK_ADOQ.FieldByName('RKD_UNIT').AsString:=DM.RKDP_ADOT.FieldByName('ITEM_UNIT').AsString;
      DM.CURRSTOCK_ADOQ.FieldByName('RKD_PRICE').AsCurrency:=DM.RKDP_ADOT.FieldByName('ITEM_PRICE').AsCurrency;
      DM.CURRSTOCK_ADOQ.FieldByName('RKD_NUM').AsFloat:=DM.RKDP_ADOT.FieldByName('ITEM_NUM').AsFloat;
      DM.CURRSTOCK_ADOQ.FieldByName('RKD_MON').AsCurrency:=DM.RKDP_ADOT.FieldByName('ITEM_MON').AsCurrency;
      DM.CURRSTOCK_ADOQ.Post;
      DM.RKDP_ADOT.Next;
    end;
      DM.ADOC.CommitTrans;
  except
    DM.ADOC.RollbackTrans;
  end;
   DM.RKDM_ADOQ.Refresh;
   DM.RKDP_ADOT.Refresh;
end;

procedure TRKD_Form.BitBtn6Click(Sender: TObject);
begin
  RPTDM.RKDP_Rpt.LoadFromFile(ExtractFilePath(ParamStr(0)) +   'RPT/入库单.frf');
  RPTDM.RKDP_Rpt.ShowReport;
end;

procedure TRKD_Form.FormShow(Sender: TObject);
begin
  BitBtn6.Enabled:=CheckRights('入库单编制','打印');
  BitBtn1.Enabled:=CheckRights('入库单编制','新单');
  BitBtn2.Enabled:=CheckRights('入库单编制','修改');
  BitBtn3.Enabled:=CheckRights('入库单编制','删除');
  BitBtn4.Enabled:=CheckRights('入库单编制','保存');
  BitBtn5.Enabled:=CheckRights('入库单编制','取消');
  BitBtn11.Enabled:=CheckRights('入库单编制','审核');
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -