📄 iccardmain.pas
字号:
IniFile := TIniFile.Create(APP_DIR+'\'+INI_FILENAME);
PORTNUM := IniFile.ReadInteger('PORT','ICPORTNUM',0);
IniFile.Free;
tblCard.Open;
edtWXkr.Text := CZY.CzyXm;
PageControl1.ActivePageIndex := 0;
end;
procedure TIcCardForm.PageControl1Change(Sender: TObject);
begin
if PageControl1.ActivePageIndex = 1 then
if not CardData.CheckYgqx(CZY.CzyBh,'发卡') then
PageControl1.ActivePageIndex := 0;
if PageControl1.ActivePageIndex = 2 then
if not CardData.CheckYgqx(CZY.CzyBh,'充值') then
PageControl1.ActivePageIndex := 0;
if PageControl1.ActivePageIndex = 3 then
begin
with qrySum do
begin
Close;
SQL.Clear;
SQL.Add('select sum(D_ZE),sum(D_JE),sum(D_YE) from CARD');
Open;
lblZe.Caption := '卡内总额:'+qrySum.Fields[0].AsString+'元';
lblJe.Caption := '消费总额:'+qrySum.Fields[1].AsString+'元';
lblYe.Caption := '卡内余额:'+qrySum.Fields[2].AsString+'元';
Close;
end;
end;
end;
procedure TIcCardForm.BitBtn1Click(Sender: TObject);
var
st : SmallInt;
s: string;
Je: single;
begin
LabeledEdit1.Text := '';
LabeledEdit2.Text := '';
LabeledEdit3.Text := '';
LabeledEdit4.Text := '';
LabeledEdit5.Text := '';
LabeledEdit6.Text := '';
LabeledEdit7.Text := '';
try
InitStatus(PORTNUM);
GetMem(OutBuf,6);
if not IsCardExists then
begin
memCz.Lines.Add('请插入贵宾卡!');
Exit;
end;
st := IC_Read(IcDev,32,6,OutBuf);
if st <> 0 then
raise Exception.Create('读卡错误!');
s := StrPas(OutBuf);
LabeledEdit1.Text := s;
st := IC_Read_Float(IcDev,38,@Je);
if st <> 0 then
raise Exception.Create('读卡错误!');
LabeledEdit2.Text := FloatToStr(Je);
memCz.Lines.Add('读卡成功!');
if tblCard.FindKey([s]) then
begin
LabeledEdit3.Text := tblCard.FieldByName('D_CARDID').AsString;
LabeledEdit4.Text := tblCard.FieldByName('D_KRXM').AsString;
LabeledEdit5.Text := tblCard.FieldByName('D_ZJHM').AsString;
LabeledEdit6.Text := tblCard.FieldByName('D_ZE').AsString;
LabeledEdit7.Text := tblCard.FieldByName('D_XKR').AsString;
end;
BitBtn2.Enabled := True;
finally
FreeMem(OutBuf);
//ICDown;
ExitComm;
end;
end;
procedure TIcCardForm.BitBtn2Click(Sender: TObject);
var
st : SmallInt;
Ye : Single;
begin
if edtCzje.Text = '' then
begin
ShowMessage('充值金额必须大于零!');
edtCzje.SetFocus;
Exit;
end;
Je := StrToFloat(edtCzje.Text);
Ye := StrToFloat(LabeledEdit2.Text);
if Je<=0 then
begin
ShowMessage('写卡金额必须大于零!');
Exit;
end;
try
InitStatus(PORTNUM);
if not IsCardExists then
begin
memWrite.Lines.Add('请插入贵宾卡!');
Exit;
end;
//if IC_CheckPass_4442hex(IcDev,PChar(Pass_Word))=0 then
{if CheckPass then
begin
st := IC_Read(IcDev,32,6,OutBuf);
if st <> 0 then
raise Exception.Create('读卡错误!');
s := StrPas(OutBuf);
if s<> LabeledEdit1.Text then
begin
ShowMessage('卡号不符!');
Exit;
end;
end;}
if CheckPass then
begin
st := IC_Write_Float(IcDev,38,Je+Ye);
if st <> 0 then
raise Exception.Create('写卡错误!');
memCz.Lines.Add('充值成功');
end;
if tblCard.FindKey([LabeledEdit1.Text]) then
begin
tblCard.Edit;
tblCard.FieldByName('D_ZE').AsCurrency := tblCard.FieldByName('D_ZE').AsCurrency+Je;
tblCard.FieldByName('D_YE').AsCurrency := tblCard.FieldByName('D_YE').AsCurrency+Je;
tblCard.FieldByName('D_XKRQ').AsDateTime := Date;
tblCard.FieldByName('D_XKSJ').AsDateTime := Time;
tblCard.Post;
end;
UpdateKrjz(LabeledEdit4.Text);
LabeledEdit1.Text := '';
LabeledEdit2.Text := '';
LabeledEdit3.Text := '';
LabeledEdit4.Text := '';
LabeledEdit5.Text := '';
LabeledEdit6.Text := '';
LabeledEdit7.Text := '';
edtCzje.Text := '';
BitBtn2.Enabled := False;
finally
//IcDown;
ExitComm;
end;
end;
procedure TIcCardForm.BitBtn3Click(Sender: TObject);
var
ACardId : string;
begin
ACardId := edtCardId.Text;
if ACardId = '' then Exit;
with qryCardXf do
begin
if Active then Active := False;
ParamByName('CARDID').AsString := ACardId;
Open;
end;
with qrySum do
begin
Close;
SQL.Clear;
SQL.Add('select sum(D_XFJE) from CARDXF');
Open;
lblXfje.Caption := '消费总额:'+Fields[0].AsString+'元';
Close;
end;
end;
procedure TIcCardForm.btnPrintClick(Sender: TObject);
var
I : Integer;
APrintStru: TPrintStru;
AColumns : TStringList;
APosition : TStringList;
AFields : TStringList;
begin
APrintStru.ATitle := '贵宾卡数据库信息('+DateToStr(Date)+')';
APrintStru.ASub := lblZe.Caption + ' ' + lblJe.Caption + ' ' + lblYe.Caption;
APrintStru.ADataSet := tblCard;
AColumns := TStringList.Create;
try
APosition := TStringList.Create;
try
AFields := TStringList.Create;
try
for I:= 0 to 8 do
begin
AColumns.Add(DBGrid1.Columns[I].Title.Caption);
AFields.Add(DBGrid1.Columns[I].FieldName);
end;
APosition.Add('10');
APosition.Add('80');
APosition.Add('160');
APosition.Add('240');
APosition.Add('320');
APosition.Add('400');
APosition.Add('480');
APosition.Add('560');
APosition.Add('640');
APrintStru.AColumns := AColumns;
APrintStru.AFields := AFields;
APrintStru.APosition:= APosition;
APrintStru.AFs := PRN_Portrait;
SysPrint(APrintStru);
finally
AFields.Free;
end;
finally
APosition.Free;
end;
finally
AColumns.Free;
end;
end;
procedure TIcCardForm.BitBtn4Click(Sender: TObject);
var
I : Integer;
APrintStru: TPrintStru;
AColumns : TStringList;
APosition : TStringList;
AFields : TStringList;
begin
APrintStru.ATitle := '贵宾卡消费明细(卡号:'+edtCardId.Text+')';
APrintStru.ADataSet := qryCardXf;
AColumns := TStringList.Create;
try
APosition := TStringList.Create;
try
AFields := TStringList.Create;
try
for I:= 0 to 5 do
begin
AColumns.Add(DBGrid2.Columns[I].Title.Caption);
AFields.Add(DBGrid2.Columns[I].FieldName);
end;
APosition.Add('10');
APosition.Add('110');
APosition.Add('210');
APosition.Add('310');
APosition.Add('420');
APosition.Add('520');
APrintStru.AColumns := AColumns;
APrintStru.AFields := AFields;
APrintStru.APosition:= APosition;
APrintStru.AFs := PRN_Portrait;
SysPrint(APrintStru);
finally
AFields.Free;
end;
finally
APosition.Free;
end;
finally
AColumns.Free;
end;
end;
procedure TIcCardForm.N10Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 0;
end;
procedure TIcCardForm.N11Click(Sender: TObject);
begin
if not CardData.CheckYgqx(CZY.CzyBh,'发卡') then Exit;
PageControl1.ActivePageIndex := 1;
end;
procedure TIcCardForm.N12Click(Sender: TObject);
begin
if not CardData.CheckYgqx(CZY.CzyBh,'充值') then
PageControl1.ActivePageIndex := 2;
end;
procedure TIcCardForm.N8Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 3;
end;
procedure TIcCardForm.N9Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 4;
end;
procedure TIcCardForm.N5Click(Sender: TObject);
begin
Klsz(CZY.CzyBh);
end;
procedure TIcCardForm.N6Click(Sender: TObject);
begin
if (not Czydl)or(not CardData.CheckYgqx(CZY.CzyBh,'贵宾卡管理系统')) then
Application.Terminate;
Caption := '贵宾卡管理系统(操作员:' + CZY.CzyXm+')';
end;
procedure TIcCardForm.N7Click(Sender: TObject);
begin
Xtsz;
end;
procedure TIcCardForm.A1Click(Sender: TObject);
begin
About;
end;
procedure TIcCardForm.N14Click(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -