unitsetsupprice_data.pas

来自「自己做过的工程」· PAS 代码 · 共 179 行

PAS
179
字号
unit unitsetsupprice_data;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  Tformsetsupprice_data = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    but_ok: TButton;
    but_cancel: TButton;
    ed_supno: TEdit;
    ed_supname: TEdit;
    ed_supunit: TEdit;
    ed_supprice: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    cbox_supclass: TComboBox;
    procedure FormShow(Sender: TObject);
    procedure but_cancelClick(Sender: TObject);
    procedure but_okClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  formsetsupprice_data: Tformsetsupprice_data;

                 
implementation
        uses unitDMHotel,unitsetprice;
{$R *.dfm}

//显示窗口时的初始设置
procedure Tformsetsupprice_data.FormShow(Sender: TObject);
var
    bopen:boolean;
begin
    //初始化下拉列表框cbox_supclass
    bOpen:=DMHotel.ds_dictionary.Active;
    cbox_supclass.Items.Clear;
    if not bOpen then
        DMHotel.ds_dictionary.Open
    else
        DMHotel.ds_dictionary.First;

    while not DMHotel.ds_dictionary.Eof do
    begin
        if  DMHotel.ds_dictionary.FieldValues['dicsort']='supclass' then
            cbox_supclass.Items.Add(DMHotel.ds_dictionary.FieldValues['dicname']);
        DMHotel.ds_dictionary.Next;
    end;
    if not bOpen then
        DMHotel.ds_dictionary.Close;
    cbox_supclass.ItemIndex:=0;

    //确保数据集打开
    DMHotel.ds_sup_price_set.Open;

    if AddorModify=0 then  //修改状态
       begin
          ed_supno.Text:=DMHotel.ds_sup_price_set.FieldByName('supno').AsString;
          ed_supname.Text:=DMHotel.ds_sup_price_set.FieldByName('supname').AsString;
          cbox_supclass.Text:=DMHotel.ds_sup_price_set.FieldByName('supclass').AsString;
          ed_supunit.Text:=DMHotel.ds_sup_price_set.FieldByName('supunit').AsString;
          ed_supprice.Text:=DMHotel.ds_sup_price_set.FieldByName('supprice').AsString;
          ed_supno.Enabled:=false;//主键不可改
          cbox_supclass.SetFocus;
       end
    else    //录入状态
       begin
          //清空原来的目录
          ed_supno.Text:='';
          ed_supname.Text:='';
          cbox_supclass.ItemIndex:=0;
          ed_supunit.Text:='';
          ed_supprice.Text:='';
          ed_supno.Enabled:=true;
          ed_supno.SetFocus;
       end;
end;

procedure Tformsetsupprice_data.but_cancelClick(Sender: TObject);
begin
    close;
end;

//保存记录
procedure Tformsetsupprice_data.but_okClick(Sender: TObject);
var
       ls_supno,ls_supname,ls_supclass,ls_supunit,ls_supprice:string;
        test_supprice:double;
begin
       if MessageDlg('您确定要保存该记录吗?',mtConfirmation,[mbYes,mbNo],0)= mrNO then
          exit;

       //丛输入框中取数据,插入到sup_price_set表中或用作修改
       ls_supno:=ed_supno.Text;
       ls_supname:=ed_supname.Text;
       ls_supclass:=cbox_supclass.Text;
       ls_supunit:=ed_supunit.Text;
       ls_supprice:=ed_supprice.Text;
       //如果未输入酒菜编号
       if ls_supno='' then
          begin
             showmessage('请输入酒菜编号!');
             ed_supname.Text:='';
             cbox_supclass.ItemIndex:=0;
             ed_supunit.Text:='';
             ed_supprice.Text:='';
             ed_supno.SetFocus;
             exit;
          end;

       //判断是否是数字型
       if not tryStrToFloat(ls_supprice,test_supprice) then
          begin
              MessageBox(handle,'您输入的酒菜价格,不是一个实数!','错误',MB_OK or MB_ICONERROR);
              ed_supprice.SetFocus;
              exit;
          end;

       //进行插入或修改操作
       if AddorModify=1 then      //插入记录
          begin
             //看酒菜编号是否重复
             DMHotel.ds_sup_price_set.Open;
             DMHotel.ds_sup_price_set.First;
             while not  DMHotel.ds_sup_price_set.Eof do
                 begin
                     if DMHotel.ds_sup_price_set.FieldValues['supno']=trim(ed_supno.Text) then
                        begin
                            showmessage('该编号已存在,请另外选择一个酒菜编号!');
                            exit;
                        end;
                     DMHotel.ds_sup_price_set.Next;
                 end;
                 
             SQL:='insert into sup_price_set '+'values('+''''+ls_supno+''''+','+
                  ''''+ls_supname+''''+','+''''+ls_supclass+''''+','+
                  ''''+ls_supunit+''''+','+''''+ls_supprice+''''+')';
             DMHotel.ADOQuery1.SQL.Text:=SQL;
             try
               DMHotel.ADOQuery1.ExecSQL;
             except
               showmessage('录入失败!');
               exit;
             end;
          end
       else                      //修改记录
          begin
             SQL:='update sup_price_set '+'set supname='+''''+ls_supname+''''+','+
                  'supclass='+''''+ls_supclass+''''+','+
                  'supunit='+''''+ls_supunit+''''+','+
                  'supprice='+''''+ls_supprice+''''+' '+'where supno='+
                  ''''+ls_supno+'''';
             DMHotel.ADOQuery1.SQL.Text:=SQL;
             try
               DMHotel.ADOQuery1.ExecSQL;
             except
               showmessage('修改失败!');
               exit;
             end;
          end;

       DMHotel.ds_sup_price_set.Requery;
       close;
end;

end.

⌨️ 快捷键说明

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