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

📄 allmenuadd.pas

📁 西京票据管理系统刚刚获得
💻 PAS
字号:
unit allmenuadd;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, dxCntner, dxEditor,
  dxExEdtr, dxEdLib;

type
  Tfrmallmenuadd = class(TForm)
    Panel1: TPanel;
    EdID: TEdit;
    ZTDJ: TComboBox;
    DateTimePicker1: TDateTimePicker;
    Label1: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    dxCurrencyEdit1: TdxCurrencyEdit;
    Label6: TLabel;
    Label7: TLabel;
    CDJLX: TComboBox;
    procedure FormShow(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure EdIDKeyPress(Sender: TObject; var Key: Char);
    procedure EdIDKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ZTDJKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure CDJLXKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure dxCurrencyEdit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DateTimePicker1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    function zhid:Integer;
    function  list:string;
    { Public declarations }
  end;

var
  frmallmenuadd: Tfrmallmenuadd;

implementation
uses UDM;

{$R *.dfm}
function Tfrmallmenuadd.list;
var
  counter:Integer;
  id:string;
begin
     with DM.T_COUNTER do
     begin
      Filter:='id=''B''';
      Filtered:=true;
      open;
      counter:=fieldbyname('countervalues').AsInteger;
      inc(counter);
      edit;
      fieldbyname('countervalues').AsInteger:=counter;
      post;
      close;
     end;
     id:='000'+inttostr(counter);
     id:=copy(id,length(id)-3,4);
     id:=formatdatetime('yyyy',now)+id;
  Result:=id;
 end;
function Tfrmallmenuadd.zhid;
 begin
  with dm.ADOTY do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select isnull(max(libnumber),0)+1 from libnumber');
      Prepared;
      Open;
    end;
    Result:=dm.ADOTY.Fields[0].AsInteger;
 end;

procedure Tfrmallmenuadd.FormShow(Sender: TObject);
begin
   CDJLX.Text:='';
   EDID.Text:='';
   ZTDJ.Text:='';
   DateTimePicker1.Date:=Date;
   DM.ADOZTDJ.Open;
   dm.ADOTEMP.Open;
   dm.ADOCODE.Open;
  WITH DM.ADOZTDJ DO
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from meun_zt');
    Prepared;
    Open;
  end;
  ZTDJ.Items.Clear;
  while not dm.ADOZTDJ.Eof do
  begin
    ZTDJ.Items.Append(dm.ADOZTDJ.fieldbyname('djzt').AsString);
    DM.ADOZTDJ.Next;
  end;
  WITH DM.ADOLX do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from typeunit');
    Prepared;
    Open;
  end;
  CDJLX.Items.Clear;
  while not dm.ADOLX.Eof do
  begin
    CDJLX.Items.Append(dm.ADOLX.fieldbyname('typename').AsString);
    dm.ADOLX.Next;
  end;

end;

procedure Tfrmallmenuadd.BitBtn2Click(Sender: TObject);
begin
  Close;
end;

procedure Tfrmallmenuadd.BitBtn1Click(Sender: TObject);
begin
  if (EdID.Text='') and (CDJLX.Text='') then
     begin
       MessageBox(Handle,'单据号码,单据类型不能为空','系统提示',MB_ICONINFORMATION+MB_OK);
       Exit;
     end
     else
    if dm.ADOTEMP.Locate('numberid;numbertype;SXDM',VarArrayOf([EdID.Text,CDJLX.Text,DM.HDM]),[]) then
       begin
    if dm.ADOCODE.Locate('numberid;numbertype;SXDM',VarArrayOf([EdID.Text,CDJLX.Text,DM.HDM]),[]) then
         begin
          MessageBox(Handle,'数据重复,请重新选择单据','系统提示',MB_ICONINFORMATION+MB_OK);
          Exit;
         end
         else
         dm.ADOCon1.BeginTrans;
          try
          //同时增加一个数据
         DM.ADOCODE.Append;
         dm.ADOCODElibnumber.Value:=zhid;
         dm.ADOCODElist.Value:=list;
         dm.ADOCODEnumberid.Value:=EdID.Text;
         dm.ADOCODEnumbertype.Value:=CDJLX.Text;
         dm.ADOCODEhxbz.Value:='1';
         dm.ADOCODErq.Value:=DateTimePicker1.Date;
         dm.ADOCODElypername.AsString:=dm.ADOLOGIN.fieldbyname('username').AsString;
         DM.ADOCODEJINE.Value:=dxCurrencyEdit1.Value;
         dm.ADOCODEA.Value:=True;
         dm.ADOCODEB.Value:=True;
         dm.ADOCODElibnumberplace.Value:=dm.HMC;
         dm.ADOCODEzt.Value:=ZTDJ.Text;
         dm.ADOCODEsxdm.Value:=dm.HDM;
         dm.ADOCODE.Post;

           with dm.ADOTP do
             begin
               Close;
               SQL.Clear;
               SQL.add('delete from libnumber');
               SQL.Add('where numberid=:id and numbertype=:type and libnumberplace=:place and sxdm=:dm');
               Parameters.ParamByName('id').Value:=EdID.Text;
               Parameters.ParamByName('type').Value:=CDJLX.Text;
               Parameters.ParamByName('place').Value:=dm.HMC;
               Parameters.ParamByName('dm').Value:=dm.HDM;
               execsql;
             end;
               dm.ADOCon1.CommitTrans;
              EdID.Text:='';  ZTDJ.Text:='';  CDJLX.Text:='';  dxCurrencyEdit1.Value:=0.00;
              DM.ADOTEMP.Close;
              DM.ADOTEMP.Open;
          MessageBox(Handle,'数据成功录入','系统提示',MB_ICONINFORMATION+MB_OK);
          except
              messagebox(handle,'系统录入失败','系统提示',MB_ICONINFORMATION+MB_OK);
              dm.ADOCon1.RollbackTrans;
          end;
       end
       else
        MessageBox(handlE,'没有此单据,确定后重新定义','系统提示',MB_ICONINFORMATION+MB_OK);
        Exit;

end;

procedure Tfrmallmenuadd.EdIDKeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9',#8]) then
  key:=#0;

end;

procedure Tfrmallmenuadd.EdIDKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  i:Integer;
begin
  with DM.ADOTY do
    begin
      Close;
      SQL.Clear;
      SQL.add('select numberid,numbertype,sxdm from libnumber');
      SQL.Add('where numberid=:id and sxdm=:dm');
      Parameters.ParamByName('id').Value:=EdID.Text;
      Parameters.ParamByName('dm').Value:=dm.HDM;
      Prepared;
      Open;
    end;
  CDJLX.Text:=DM.ADOTY.Fields[1].AsString;
  DM.ADOTY.Close;

    with dm.ADOTP do
     begin
       Close;
       SQL.Clear;
       SQL.Add('select count(numberid) from libnumber');
       SQL.Add('where numberid=:id and numbertype=:type');
       SQL.Add('group by numberid');
       Parameters.ParamByName('id').Value:=Edid.Text;
       Parameters.ParamByName('type').Value:=CDJlx.Text;
       Prepared;
       Open;
     end;
     i:=dm.ADOTP.Fields[0].AsInteger;
   if (i>1) and (i<=2) then
    begin
      ShowMessage('此单据其他吧台也有,请慎重核销!');
    end;
  DM.ADOTP.Close;

   if Key=$0D then
  ZTDJ.SetFocus;

end;

procedure Tfrmallmenuadd.ZTDJKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if Key=$0D then
 CDJLX.SetFocus;
end;

procedure Tfrmallmenuadd.CDJLXKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if Key=$0D then
  dxCurrencyEdit1.SetFocus;
end;

procedure Tfrmallmenuadd.dxCurrencyEdit1KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
    if Key=$0D then
  DateTimePicker1.SetFocus;
end;

procedure Tfrmallmenuadd.DateTimePicker1KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if Key=13 then
 BitBtn1Click(Sender);
end;

end.

⌨️ 快捷键说明

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