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

📄 lcrkdm_unit.~pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ToolWin, ComCtrls, Grids, DBGridEh, ExtCtrls,
  DB, ADODB;

type
  TLCRKDM_Form = class(TForm)
    Splitter1: TSplitter;
    ScrollBox1: TScrollBox;
    Panel1: TPanel;
    DBGridEh2: TDBGridEh;
    ScrollBox2: TScrollBox;
    Panel2: TPanel;
    DBGridEh3: TDBGridEh;
    CoolBar1: TCoolBar;
    ScrollBox3: TScrollBox;
    BitBtn3: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn10: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    ADOQdtl: TADOQuery;
    INSADOQ: TADOQuery;
    Panel3: TPanel;
    BitBtn1: TBitBtn;
    Label1: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure BitBtn10Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  LCRKDM_Form: TLCRKDM_Form;

implementation

uses DMUnit, U_CheckRights;

{$R *.dfm}

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

procedure TLCRKDM_Form.FormDestroy(Sender: TObject);
begin
LCRKDM_Form:=nil;
end;

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

procedure TLCRKDM_Form.FormCreate(Sender: TObject);
begin
with DM.LCRKDM_ADOQ do
begin
  Close;
  OPen;
end;
with DM.LCRKDP_ADOT do
begin
  Close;
  Open;
end;
end;

procedure TLCRKDM_Form.BitBtn6Click(Sender: TObject);
begin
  DM.LCRKDM_ADOQ.First;
end;

procedure TLCRKDM_Form.BitBtn7Click(Sender: TObject);
begin
  DM.LCRKDM_ADOQ.Prior;
end;

procedure TLCRKDM_Form.BitBtn8Click(Sender: TObject);
begin
  DM.LCRKDM_ADOQ.Next;
end;

procedure TLCRKDM_Form.BitBtn9Click(Sender: TObject);
begin
  DM.LCRKDM_ADOQ.Last;
end;

procedure TLCRKDM_Form.BitBtn3Click(Sender: TObject);
begin
  with DM.LCRKDM_ADOQ do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM LCRKD_M ');
    OPen;
  end;
  with DM.LCRKDP_ADOT do
  begin
    Close;
    Open;
  end;
end;

procedure TLCRKDM_Form.BitBtn5Click(Sender: TObject);
var
  HZ: string; //汇总编号
  LCNO:String; //入库单号
  CARNO:String; //车号
  BZ:string;
  ITEMNO,ISORT,IUNIT:String;//品名,类别,单位
  INUM,IMON:real;//数量  金额
begin
  HZ:= InputBox('请输入汇总编号', '编号99', '');
  if Trim(HZ)='' Then
    begin
      Showmessage('汇总编号不能为空');
      Exit;
    end;
  Try
  if DM.Adoc.InTransaction then DM.Adoc.RollbackTrans;
     DM.Adoc.BeginTrans;
       DM.LCRKDM_ADOQ.First;
       while not DM.LCRKDM_ADOQ.Eof do
       if DM.LCRKDM_ADOQ.FieldByName('LCRKD_CHECX').AsBoolean then
       begin
         LCNO:=DM.LCRKDM_ADOQ.FieldByName('LCRKD_NO').AsString;
         CARNO:=DM.LCRKDM_ADOQ.FieldByName('LCRKD_CARNO').AsString;
         BZ:=DM.LCRKDM_ADOQ.FieldByName('LCRKD_BZ').AsString;
         with ADOQdtl do
         begin
           Close;
           SQL.Clear;
           SQL.Add('SELECT * FROM LCRKD_P WHERE LCRKD_NO='''+LCNO+'''');
           OPEN;
         end;
           ADOQdtl.First;
           while not ADOQdtl.Eof do
           begin
             ITEMNO:= ADOQdtl.Fieldbyname('LCRKD_ITEMNO').AsString;
             ISORT:= ADOQdtl.Fieldbyname('LCRKD_SORT').AsString;
             IUNIT:= ADOQdtl.Fieldbyname('LCRKD_UNIT').AsString;
             INUM:= ADOQdtl.Fieldbyname('LCRKD_NUM').AsFloat;
             IMON:= ADOQdtl.Fieldbyname('LCRKD_MON').AsFloat;
             with INSADOQ DO
             BEGIN
               CLOSE;
               SQL.Clear;
               SQL.Add('SELECT * FROM LCRKD_HZ WHERE LC_ITEMNO='''+ITEMNO+''' AND LC_HZ='''+HZ+'''');
               OPEN;
             END;
             if  INSADOQ.RecordCount>0 THEN
             with INSADOQ do //更新数据
             begin
               Close;
               SQl.Clear;
               SQL.Add('UPDATE LCRKD_HZ SET LC_NUM=LC_NUM+'+floattostr(INUM)+' , LC_MON=LC_MON+'+floattostr(IMON)+' WHERE LC_ITEMNO='''+ITEMNO+''' and LC_HZ='''+HZ+'''');
              // showmessage(sql.Text);
               INSADOQ.ExecSQL;
             end
             else
             with INSADOQ do //插入数据
             begin
               Close;
               SQL.Clear;
               SQL.Add('INSERT LCRKD_HZ (LC_CARNO,LC_BZ,LC_HZ,LC_ITEMNO,LC_ITEMSORT,LC_ITEMUNIT,LC_NUM,LC_MON) VALUES(:LC_CARNO,:LC_BZ,:LC_HZ,:LC_ITEMNO,:LC_ITEMSORT,:LC_ITEMUNIT,:LC_NUM,:LC_MON)');
               INSADOQ.Parameters.ParamByName('LC_CARNO').Value:=CARNO;
               INSADOQ.Parameters.ParamByName('LC_BZ').Value:=BZ;
               INSADOQ.Parameters.ParamByName('LC_HZ').Value:=HZ;
               INSADOQ.Parameters.ParamByName('LC_ITEMNO').Value:=ITEMNO;
               INSADOQ.Parameters.ParamByName('LC_ITEMSORT').Value:=ISORT;
               INSADOQ.Parameters.ParamByName('LC_ITEMUNIT').Value:=IUNIT;
               INSADOQ.Parameters.ParamByName('LC_NUM').Value:=INUM;
               INSADOQ.Parameters.ParamByName('LC_MON').Value:=IMON;
               INSADOQ.ExecSQL;
           end;
           ADOQdtl.Next;
         end;
         with INSADOQ do
         begin
           Close;
           SQl.Clear;
          SQL.Add('UPDATE LCRKD_M SET LCRKD_HXBS=1 WHERE LCRKD_NO='''+LCNO+'''');
           INSADOQ.ExecSQL;
         end;
    DM.LCRKDM_ADOQ.Next;
   end;
   DM.Adoc.CommitTrans;
   ShowMessage('该列车的入库数据已汇总完毕');
  Except
   DM.Adoc.RollbackTrans;
  end;
end;

procedure TLCRKDM_Form.BitBtn1Click(Sender: TObject);
begin
  with DM.LCRKDM_ADOQ do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM LCRKD_M where LCRKD_CHECX=0');
    OPen;
  end;
end;

procedure TLCRKDM_Form.FormShow(Sender: TObject);
begin
  BitBtn6.Enabled:=CheckRights('列车入库单管理','最前');
  BitBtn7.Enabled:=CheckRights('列车入库单管理','向前');
  BitBtn8.Enabled:=CheckRights('列车入库单管理','向后');
  BitBtn9.Enabled:=CheckRights('列车入库单管理','最后');
  BitBtn3.Enabled:=CheckRights('列车入库单管理','刷新');
  BitBtn5.Enabled:=CheckRights('列车入库单管理','汇总');
end;

end.

⌨️ 快捷键说明

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