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

📄 univtt.pas

📁 DELPHI编写的商场收银POS机源代码
💻 PAS
字号:
unit UNIVTT;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Mask, DBCtrls, Grids, DBGrids, ComCtrls, Buttons, ToolWin,
  Menus, FlEdit, Gauges, JLOOKUP, JEdit, ExtCtrls;

type
  TFMIVTT = class(TForm)
    GroupBox1: TGroupBox;
    DBGrid1: TDBGrid;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    LB_CON21: TJEdit;
    LB_CON22: TJEdit;
    Button1: TButton;
    DBGrid3: TDBGrid;
    BTNQUT: TSpeedButton;
    ED_BGENO: JLOOKUPBOX;
    BTNINS: TSpeedButton;
    Gauge: TGauge;
    BTCAN: TBitBtn;
    CAN_UPDATE_RBRN: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure BTNQUTClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BTNINSClick(Sender: TObject);
    procedure BTCANClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    PROCEDURE INSERT_TO_IVTT(T_BGENO:STRING;T_ITCNR,T_ITCNV,T_ITCNT :INTEGER;T_ITTRN :BOOLEAN);
    PROCEDURE UPDATE_TO_RBRN(T_BGENO:STRING;T_BGCNT:INTEGER);
    PROCEDURE DELETE_IVTA(T_BGENO :STRING);

    //新增库存位置
    PROCEDURE APPEND_NEW_RBRN(T_BGENO :STRING);
    FUNCTION  FIND_RBRN(T_BGENO:STRING):INTEGER;
  public
    { Public declarations }
  end;


var
  FMIVTT: TFMIVTT;

implementation

uses sysini, un_utl, fm_utl, DB_UTL, MAIND,
     UNIVTTD;

{$R *.DFM}

PROCEDURE TFMIVTT.INSERT_TO_IVTT(T_BGENO:STRING;T_ITCNR,T_ITCNV,T_ITCNT :INTEGER;T_ITTRN :BOOLEAN);
VAR T_ITTRNX : STRING;
BEGIN
  IF T_ITTRN = TRUE  THEN T_ITTRNX := '1';
  IF T_ITTRN = FALSE THEN T_ITTRNX := '0';
  
  FMIVTTD.QINS.SQL.Clear;
  FMIVTTD.QINS.SQL.Add('INSERT INTO IVTT ');
  FMIVTTD.QINS.SQL.Add('(ITENO, BGENO, ITCNR, ITCNV, ITCNT,');
  FMIVTTD.QINS.SQL.Add(' ITDAT, ITTME, ITTRN) ');
  FMIVTTD.QINS.SQL.Add('VALUES (');
  FMIVTTD.QINS.SQL.Add(''''+DBTABLEFINDMAXCNT('DB_IVTT','IVTT','ITENO',6,1)+''',');
  FMIVTTD.QINS.SQL.Add(''''+T_BGENO+''',');
  FMIVTTD.QINS.SQL.Add('  '+INTTOSTR(T_ITCNR)+'  ,');
  FMIVTTD.QINS.SQL.Add('  '+INTTOSTR(T_ITCNV)+'  ,');
  FMIVTTD.QINS.SQL.Add('  '+INTTOSTR(T_ITCNT)+'  ,');
  FMIVTTD.QINS.SQL.Add( _DT+DATETOSTR(DATE)+_DT +',');
  FMIVTTD.QINS.SQL.Add(''''+TIME_GET_24H(TIME)+''',');
  FMIVTTD.QINS.SQL.Add('  '+T_ITTRNX+'  )');
  FMIVTTD.QINS.EXECSQL;
END;

PROCEDURE TFMIVTT.UPDATE_TO_RBRN(T_BGENO:STRING; T_BGCNT:INTEGER);
BEGIN
  IF T_BGCNT < 0 THEN T_BGCNT := 0;
  FMMAIND.QINS.SQL.Clear;
  FMMAIND.QINS.SQL.Add('UPDATE BGDS ');
  FMMAIND.QINS.SQL.Add('SET');
  FMMAIND.QINS.SQL.Add('BGCST = '+INTTOSTR(T_BGCNT)+'');
  FMMAIND.QINS.SQL.Add('WHERE BGENO = '''+T_BGENO+'''');
  FMMAIND.QINS.EXECSQL;
END;

PROCEDURE TFMIVTT.DELETE_IVTA(T_BGENO :STRING);
BEGIN
  FMIVTTD.QINS.SQL.Clear;
  FMIVTTD.QINS.SQL.Add('DELETE FROM IVTA');
  FMIVTTD.QINS.SQL.Add('WHERE BGENO = '''+T_BGENO+'''');
  FMIVTTD.QINS.EXECSQL;
END;

PROCEDURE TFMIVTT.APPEND_NEW_RBRN(T_BGENO :STRING);
BEGIN
  //新增库存位置=============================================================
  FMMAIND.QINS.SQL.Clear;
  FMMAIND.QINS.SQL.Add('INSERT INTO BGDS');
  FMMAIND.QINS.SQL.Add('( BGENO, BGCNT )');
  FMMAIND.QINS.SQL.Add('VALUES');
  FMMAIND.QINS.SQL.Add('('''+T_BGENO+''',0 )');
  FMMAIND.QINS.ExecSQL;
END;

FUNCTION TFMIVTT.FIND_RBRN(T_BGENO:STRING):INTEGER;
BEGIN
  RESULT := 0;
  IF TRIM(T_BGENO) = '' THEN EXIT;

    //找是否有库存===========================================
  FMMAIND.QUERY.SQL.Clear;
  FMMAIND.QUERY.SQL.Add('SELECT * FROM BGDS');
  FMMAIND.QUERY.SQL.Add('WHERE BGENO IS NOT NULL');
  FMMAIND.QUERY.SQL.Add('  AND BGENO = '''+T_BGENO+'''');
  FMMAIND.QUERY.Close;
  FMMAIND.QUERY.Open;

  IF FMMAIND.QUERY.Eof = TRUE THEN RESULT := -9999
     ELSE BEGIN  //找到产品
     RESULT := FMMAIND.QUERY.FieldByName('BGCST').AsInteger;
     END;
END;

procedure TFMIVTT.FormCreate(Sender: TObject);
begin
  IF FormExists('FMIVTTD')=FALSE THEN Application.CreateForm(TFMIVTTD,  FMIVTTD  );

  FMIVTTD.QIVTT.CLOSE;
  FMIVTTD.QIVTT.OPEN;
  FMIVTTD.QIVTA.CLOSE;
  FMIVTTD.QIVTA.OPEN;
end;

procedure TFMIVTT.BTNQUTClick(Sender: TObject);
begin
  close;
end;

procedure TFMIVTT.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  FMIVTTD.Free;
  FMIVTT.RELEASE;
end;

procedure TFMIVTT.BTNINSClick(Sender: TObject);
VAR T_BGENO : STRING;
    T_BGCNT, T_ITCNV : INTEGER;
begin
  IF (MessageDlg('是否开始?',mtConfirmation,[mbYes,mbNo],0)=mrNo) Then EXIT;
  
  BTCAN.Visible := TRUE;
  DBGrid1.DataSource := NIL;
  
  WITH FMIVTTD DO
    BEGIN
    Gauge.Progress := 0;
    Gauge.MaxValue := QIVTA.RecordCount;

    QIVTA.First;
    WHILE NOT QIVTA.Eof DO
      BEGIN
      Gauge.AddProgress(1);
      IF BTCAN.Visible = FALSE THEN BREAK;  //取消转入
  
      T_BGENO := QIVTA.FieldByName('BGENO').AsString;
      T_ITCNV := QIVTA.FieldByName('IACNT').AsINTEGER;
  
      //找是否有库存===========================================
      T_BGCNT := FIND_RBRN(T_BGENO);
  
      //新增库存位置
      IF T_BGCNT <=  -9999 THEN APPEND_NEW_RBRN(T_BGENO);
  
      IF T_BGCNT >=  0    THEN
         BEGIN
         IF CAN_UPDATE_RBRN.Checked = TRUE THEN
            BEGIN
            UPDATE_TO_RBRN(T_BGENO,T_BGCNT); //更新库存
            INSERT_TO_IVTT(T_BGENO,T_ITCNV,T_BGCNT,T_ITCNV-T_BGCNT,TRUE);  //新增记录
            DELETE_IVTA(T_BGENO);             //删除已处理过的记录
            END;
         END;
  
      QIVTA.Next;
      END;

    END;

  DBGrid1.DataSource := FMIVTTD.DSIVTA;
  BTCAN.Visible := FALSE;

  FMIVTTD.QIVTA.CLOSE;
  FMIVTTD.QIVTA.OPEN;
  FMIVTTD.QIVTT.CLOSE;
  FMIVTTD.QIVTT.OPEN;
end;

procedure TFMIVTT.BTCANClick(Sender: TObject);
begin
  BTCAN.Visible := FALSE;
end;

procedure TFMIVTT.Button1Click(Sender: TObject);
begin
  FMIVTTD.QIVTT.SQL.CLEAR;
  FMIVTTD.QIVTT.SQL.ADD('SELECT * FROM IVTT');
  FMIVTTD.QIVTT.SQL.ADD('WHERE BGENO IS NOT NULL ');
  IF ED_BGENO.Text<> '' THEN FMIVTTD.QIVTT.SQL.ADD('  AND BGENO LIKE ''%'+ED_BGENO.Text+'%''');
  FMIVTTD.QIVTT.CLOSE;
  FMIVTTD.QIVTT.OPEN;
end;

end.

 

⌨️ 快捷键说明

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