📄 unit_frmpricetemplateitem.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 + -