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

📄 unit_frmpricetemplateitem.pas

📁 影院售票系统完整源码
💻 PAS
字号:
unit Unit_frmpricetemplateItem;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Unit_frmtemplate2, StdCtrls, Buttons, ExtCtrls, CyberPanel,
  ComCtrls, CyberListVw, Grids, Mask, CyberEdit,ADODB, CyberXPMenu;

type
  Ptickprice            =^Ttickprice;
  Ttickprice            =record
    seattypeid  :integer;
    seattypename:string;
    ticketid    :integer;
    ticketname  :string;
    price       :single;
  end;
  TfrmpricetemplateItem = class(Tfrmtemplate2)
    Panel4: TPanel;
    ListView1: TCyberListView;
    BitBtn1: TBitBtn;
    Panel5: TPanel;
    Label1: TLabel;
    Edtname: TCyberEdit;
    CyberXPMenu1: TCyberXPMenu;
    Label2: TLabel;
    Memoremarks: TCyberMemo;
    procedure FormShow(Sender: TObject);
    procedure ListView1DblClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    editmode    :Boolean;
    procedure initlistview;
    procedure RefreshListview(sqlstr:string);
    function  SavePrice:Boolean;
    function  PriceExist(_templateid,_seattypeid,_ticketid:integer;_price:single):Boolean;
    { Private declarations }
  public
    templateid  :integer;
    templatename:string;
    constructor MyCreate(AOwner: TComponent; _editmode: Boolean);
    { Public declarations }
  end;

var
  frmpricetemplateItem: TfrmpricetemplateItem;

implementation
uses unit_public,unit_adodm;
{$R *.dfm}

{ TfrmpricetemplateItem }

procedure TfrmpricetemplateItem.initlistview;
var
  i,j:integer;
  sqlstr,_seattype,_ticket:string;
  _seattypeid,_ticketid:integer;
  qry:TAdoquery;
  item0:TListItem;
  prt:Ptickprice;
begin
  qry:=TAdoquery.Create(Application);
  listview1.Items.Clear ;
  try
    qry.Connection :=adodm.ADOCN ;
    sqlstr:='select * from tblseattype';
    if publicinfo.Execsql(sqlstr,false) then
    begin
      if adodm.ADOQRY.RecordCount<=0  then exit;
      with  adodm.ADOQRY do
      begin
        first;
        for i:=1 to recordcount do
        begin
          _seattype:=fieldbyname('name').AsString ;
          _seattypeid:=fieldbyname('id').AsInteger ;
          qry.Close ;
          qry.SQL.Clear ;
          qry.SQL.Add('select * from tbldict where kind=1');
          qry.Open ;
          if qry.RecordCount>0 then
          begin
            qry.First ;
            for j:=1 to qry.RecordCount do
            begin
             _ticketid          :=qry.fieldbyname('id').AsInteger;
             _ticket            :=qry.fieldbyname('name').AsString;
             new(prt);
             prt^.seattypeid    :=_seattypeid;
             prt^.seattypename  :=_seattype;
             prt^.ticketid      :=_ticketid;
             prt^.ticketname    :=_ticket;
             prt^.price         :=10.00;
             item0:=listview1.Items.Add ;
             item0.Caption :=prt^.seattypename;
             item0.SubItems.Add(prt^.ticketname);
             item0.SubItems.Add(format('%.2f',[prt^.price]));
             item0.Data :=prt;
             qry.Next ;
            end;
          end;
          next;
        end;
      end;
    end;
  finally
    qry.free;
  end;
end;


constructor TfrmpricetemplateItem.MyCreate(AOwner: TComponent;
  _editmode: Boolean);
begin
  Inherited Create(AOwner);
  editmode:=_editmode;
end;

procedure TfrmpricetemplateItem.RefreshListview(sqlstr: string);
var
  i:integer;
  _seattypeid,_ticketid:integer;
  _price  :single;
begin
  if publicinfo.Execsql(sqlstr,false) then
  begin
    adodm.ADOQRY.RecordCount ;
    with adodm.ADOQRY do
    begin
      if recordcount<=0 then exit;
      first ;
      for i:=1 to recordcount do
      begin
        _seattypeid:=fieldbyname('seattype').AsInteger ;
        _ticketid  :=fieldbyname('tickettype').AsInteger ;
        _price     :=fieldbyname('price').AsFloat ;
        PriceExist(templateid,_seattypeid,_ticketid,_price);
        next;
      end;
    end;
  end;
end;

procedure TfrmpricetemplateItem.FormShow(Sender: TObject);
begin
  initlistview ;
  if editmode then
  begin
    Edtname.Text :=templatename;
    RefreshListview('select * from tbldefaultprice where templateid='+inttostr(templateid));
  end;
end;

procedure TfrmpricetemplateItem.ListView1DblClick(Sender: TObject);
var
  selitem:TListItem;
  _price :single;
begin
  selitem:=Listview1.Selected ;
  if selitem=nil then exit;
  _price:=strtofloat(inputbox('输入票价','请输入票价,只能输入数值','10'));
  Ptickprice(selitem.Data).price :=_price;
  selitem.SubItems[1]:=format('%.2f',[_price]);
end;

procedure TfrmpricetemplateItem.BitBtn1Click(Sender: TObject);
var
  i:integer;
  item0:TListItem;
  sqlstr:string;
  _price:string;
begin
  if editmode then
  begin
    if SavePrice then publicinfo.showmsg('模板票价保存成功');
  end
  else
  begin
     with Adodm.ADOProc do
     begin
        Close;
        ProcedureName := 'my_pricetemplate_insert';
        Parameters.Refresh;
        Parameters.Items[1].Value :=edtname.Text;
        Parameters.Items[2].Value :=1;
        Parameters.Items[3].Value :=Memoremarks.Text;
        Parameters.Items[4].Value :=-1;
        Parameters.Items[5].Value :=0;
        ExecProc;
        templateid:=Parameters.parambyname('@id').Value ;
     end;
     if templateid<=0 then exit;
     if saveprice then publicinfo.showmsg('模板票价保存成功');
  end;
end;

function TfrmpricetemplateItem.SavePrice: Boolean;
var
  i:integer;
  item0:TListItem;
begin
  result:=true;
  for i:=0 to listview1.Items.Count-1 do
  begin
     item0:=listview1.Items[i]  ;
     if not item0.Checked  then continue;
     with Adodm.ADOProc do
     begin
        Close;
        ProcedureName := 'my_defaultprice_insert';
        Parameters.Refresh;
        Parameters.Items[1].Value :=templateid;
        Parameters.Items[2].Value :=Ptickprice(item0.Data).seattypeid;
        Parameters.Items[3].Value :=Ptickprice(item0.Data).ticketid ;
        Parameters.Items[4].Value :=Ptickprice(item0.Data).price ;
        Parameters.Items[5].Value :='1';
        Parameters.Items[6].Value :=0;
        ExecProc;
        if Parameters.ParamByName('@retcode').Value =0 then result:=false;
     end;
  end;
end;

function TfrmpricetemplateItem.PriceExist(_templateid, _seattypeid,
  _ticketid: integer; _price: single): Boolean;
var
  i:integer;
  item0:TListItem;
begin
  result:=true;
  for i:=0 to listview1.Items.Count-1 do
  begin
    item0:=listview1.Items[i];
    if (ptickprice(item0.Data ).seattypeid =_seattypeid)
       and (ptickprice(item0.Data ).ticketid =_ticketid) then
    begin
      ptickprice(item0.Data).price :=_price;
      item0.SubItems[1]:=format('%.2f',[_price]);
      item0.Checked :=true;
      Break;
    end;
  end;
end;

end.

⌨️ 快捷键说明

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