lydjunit.pas

来自「本软件专门用于管理餐饮行业的点菜单、加菜单酒水单等重要票据的领用及回收情况」· PAS 代码 · 共 222 行

PAS
222
字号
unit lydjunit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Grids, Wwdbigrd, Wwdbgrid, ImgList, ComCtrls,
  ToolWin, SUIToolBar, ExtCtrls, StdCtrls, SUIForm, DBCtrls, SUIDBCtrls;

type
  Tlydjform = class(TForm)
    suiForm1: TsuiForm;
    Label1: TLabel;
    Shape1: TShape;
    suiToolBar1: TsuiToolBar;
    ToolButton2: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    image1: TImageList;
    wwDBGrid1: TwwDBGrid;
    DataSource1: TDataSource;
    Table1: TTable;
    Table1Lyperson: TStringField;
    Table1Numbers: TStringField;
    Table1Numbertype: TStringField;
    Table1Lydate: TDateField;
    Table1Numberto: TStringField;
    suiDBLookupComboBox1: TsuiDBLookupComboBox;
    Table2: TTable;
    DataSource2: TDataSource;
    Table2Numberid: TStringField;
    Table2Numbertype: TStringField;
    Table2Hxbz: TStringField;
    Table2Djdate: TDateField;
    Table2Lypername: TStringField;
    Table1Postbz: TBooleanField;
    Table2Lsid: TFloatField;
    DataSource3: TDataSource;
    Table3: TTable;
    StringField1: TStringField;
    StringField2: TStringField;
    StringField3: TStringField;
    StringField4: TStringField;
    DateField1: TDateField;
    BooleanField1: TBooleanField;
    DataSource4: TDataSource;
    Table4: TTable;
    StringField5: TStringField;
    StringField6: TStringField;
    StringField7: TStringField;
    DateField2: TDateField;
    StringField8: TStringField;
    FloatField2: TFloatField;
    Table3Lsif: TFloatField;
    Table1Lsid: TFloatField;
    ToolButton3: TToolButton;
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Table2AfterInsert(DataSet: TDataSet);
    procedure Table1AfterInsert(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  lydjform: Tlydjform;

implementation

uses typeunit, pjmagagerunit, numberfwunit, unreciveunit;

{$R *.dfm}

function numberformat(slen:string):string;
var i:integer;
begin
    i:=length(slen);
    case i of
    5:  result:='00000';
    6:  result:='000000';
    7:  result:='0000000';
    8:  result:='00000000';
    9:  result:='000000000';
    10:  result:='0000000000';
   else
      result:='0000';
   end;
 end;

procedure Tlydjform.ToolButton2Click(Sender: TObject);
begin
  if table1.Active=false then
     table1.Open;
  if table2.Active=false then
     table2.Open;
  if table3.Active=false then
     table3.Open;
  if table4.Active=false then
     table4.Open;
   table1.refresh;
  if table1.State=dsbrowse then
     begin
       table1.Append;
       numberfwform.showmodal;
       ToolButton4Click(Sender);
     end
   else showmessage('系统异常。数据库被关闭,请退出系统后重新启动!')
end;

procedure Tlydjform.ToolButton3Click(Sender: TObject);
var
lyname,lytype,lynumberfrom,lynumberto:string;
begin
  if (table1.State=dsbrowse) then
    if (not table1.Bof) or (not table1.Eof) then
       if messagedlg('确定要删除本条记录吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
          begin
            lyname:=table1.fieldbyname('lyperson').AsString;
            lytype:=table1.fieldbyname('numbertype').AsString;
            lynumberfrom:=table1.fieldbyname('numbers').AsString;
            lynumberto:=table1.fieldbyname('numberto').AsString;
            unreciveform.Query1.SQL.Clear;
            unreciveform.Query1.SQL.Add('delete from libnumber');
            unreciveform.Query1.SQL.Add( 'where numberid>=:param0');
            unreciveform.Query1.SQL.Add(' and numberid<=:param1');
            unreciveform.Query1.SQL.Add(' and numbertype=:param2');
            Unreciveform.Query1.SQL.Add(' and lypername=:param3');
            Unreciveform.Query1.Prepare;
            Unreciveform.Query1.Params[0].AsString:=lynumberfrom;
            Unreciveform.Query1.Params[1].AsString:=lynumberto;
            Unreciveform.Query1.Params[2].AsString:=lytype;
            Unreciveform.Query1.Params[3].AsString:=lyname;
            unreciveform.Query1.ExecSQL;
            table1.Delete;
         end
     else
     exit
    else
       showmessage('表已空或处于编辑状态!');
end;

procedure Tlydjform.ToolButton4Click(Sender: TObject);
var i:integer;
begin
  if table1.State in [dsedit,dsinsert] then
     begin
         table1.Post;
         if table2.Active=false then
            table2.Open;
            table2.Refresh;
         for i:=strtoint(table1.fieldbyname('numbers').AsString) to strtoint(table1.fieldbyname('numberto').AsString) do
         begin
           table2.Append;
           table2.FieldByName('numberid').AsString:=formatfloat(numberformat(table1.fieldbyname('numbers').AsString),i);
           table2.Post;
         end;
       showmessage('数据保存成功!')  
     end
   else
     showmessage('没有未保存的数据!');
end;

procedure Tlydjform.ToolButton1Click(Sender: TObject);
begin
 if table1.State in [dsedit,dsinsert] then
     table1.Cancel
   else
     showmessage('没有要撤消的数据!');

end;

procedure Tlydjform.ToolButton5Click(Sender: TObject);
 var lynames:string;
begin
  inputQuery('友好对话','请输入领用人姓名',lynames);
  if not table1.Locate('typename',lynames,[lopartialKey]) then
     showmessage('记录没有找到!');
end;

procedure Tlydjform.ToolButton6Click(Sender: TObject);
begin
 close;
end;

procedure Tlydjform.FormActivate(Sender: TObject);
begin
  if typeform.Table1.Active=false then
     typeform.Table1.Open;
  if datasource1.DataSet.active=false then
     datasource1.DataSet.Open;
end;

procedure Tlydjform.Table2AfterInsert(DataSet: TDataSet);
begin
if table4.Active=false then
   table4.Open;
   table4.Refresh;
   table2.FieldByName('lsid').AsString:=inttostr(table4.RecordCount+1);
   table2.FieldByName('djdate').AsDateTime:=date;
   table2.FieldByName('numbertype').AsString:=table1.fieldbyname('numbertype').AsString;
   table2.FieldByName('lypername').AsString:=table1.fieldbyname('lyperson').AsString;
end;

procedure Tlydjform.Table1AfterInsert(DataSet: TDataSet);
begin
if table3.Active=false then
   table3.Active:=true;
   table3.Refresh;
   table1.FieldByName('lsid').AsInteger:=table3.RecordCount+1;
   table1.FieldByName('lydate').AsDateTime:=date;
end;

end.

⌨️ 快捷键说明

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