📄 cj_main.~pas
字号:
resultmsg := resultmsg + '商品数量为' + FloatToStr(spsl) + '个' + #13 + #10;
resultmsg := resultmsg + '折扣额为' + FloatToStr(zke) + '元' + #13 + #10;
resultmsg := resultmsg + '原销售额' + FloatToStr(yxse) + '元' + #13 + #10;
resultmsg := resultmsg + '实销售额' + FloatToStr(sxse) + '元';
ShowMessage(resultmsg);
EnableControls;
end;
end;
{---------------------------数据浏览-------------------------------------}
procedure TFrmCJ_Main.SjScan(FromDate, ToDate: TDate; jqh, jqh1: integer);
begin
with FrmCJ_DataModule.ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('Select * From SCSJ_DSYJXSXX1');
Sql.Add('Where Convert(char(10),日期,20)>=''' + DateToStr(FromDate) + '''');
Sql.Add(' And Convert(char(10),日期,20)<=''' + DateToStr(ToDate) + '''');
Sql.Add(' And 设备编码>=' + IntToStr(jqh));
Sql.Add(' And 设备编码<=' + IntToStr(jqh1) + 'Order By 设备编码,日期');
try
Open;
except
Screen.Cursor := crDefault;
ShowMessage('无法打开收银机销售明细表!');
Exit;
end;
end;
FrmCJ_DataModule.DataSource1.DataSet := FrmCJ_DataModule.ADOQuery1;
DbGrid1.DataSource := FrmCJ_DataModule.DataSource1;
AdjustGrid;
SetDBGridFieldsDisplay(DbGrid1);
end;
procedure TFrmCJ_Main.AdjustGrid;
var
k, wid: integer;
begin
for k := 0 to FrmCJ_DataModule.ADOQuery1.FieldCount - 1 do
begin
case k of
0, 15, 16: wid := 0;
1: wid := 120;
else
wid := 40;
end;
DBGrid1.Columns[k].Title.Alignment := taCenter;
DBGrid1.Columns[k].Width := DBGrid1.Columns[k].Field.DisplayWidth + wid;
end;
end;
procedure TFrmCJ_Main.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
begin
if DBGrid1.SelectedIndex = DBGrid1.Columns.Count - 1 then
begin
DBGrid1.SelectedIndex := 0;
if DBGrid1.DataSource.DataSet <> nil then
with DBGrid1.DataSource.DataSet do
begin
Next;
if EOF and CanModify then
Append;
end;
end
else
DBGrid1.SelectedIndex := DBGrid1.SelectedIndex + 1;
end;
end;
{------------------部分清空数据库中的销售记录-----------------------------}
procedure TFrmCJ_Main.Button1Click(Sender: TObject);
var
rq1, rq2: TDate;
Jqh, Jqh1, i: Integer;
begin
rq1 := StrToDate(DateToStr(DateTimePicker1.Date));
rq2 := StrToDate(DateToStr(DateTimePicker2.Date));
Jqh := StrToInt(Trim(ComboBox1.Text));
Jqh1 := StrToInt(Trim(ComboBox2.Text));
for i := Jqh to Jqh1 do
begin
DeletePart(i, rq1, rq2);
EmptyTh(Jqh, rq1, rq2);
EmptyJyfs(Jqh, rq1, rq2);
end;
Button3Click(Self);
end;
procedure TFrmCJ_Main.ClearLS(Jqh: smallint);
var
returnvalue: smallint;
begin
if MessageDlg('此操作将会清除收银机中的全部流水信息,是否继续?',
mtconfirmation, mbokcancel, 0) = mrcancel then
Exit;
with FrmCJ_DataModule.ADOQuery2 do
begin
Close;
Sql.Clear;
Sql.Add('Select * ');
Sql.Add('From SCSJ_DSYJXSXX1');
Sql.Add('Where Convert(char(10),日期,20)<=''' + DateToStr(Now) + '''');
try
Open;
except
Screen.Cursor := crDefault;
ShowMessage('无法读取' + DateToStr(Now) + '日的数据!');
Exit;
end;
if RecordCount = 0 then
begin
Screen.Cursor := crDefault;
ShowMessage(DateToStr(Now) +
'日数据还未入库,请先采集该日数据再清除流水!');
Exit;
end;
returnvalue := ReadFromDll('SC0014', 'c:\aa.txt', 0, 0, Jqh, 0, 10, 10);
if returnvalue <> -1 then
begin
Screen.Cursor := crDefault;
ShowMessage('无法清除' + IntToStr(Jqh) + '号机器内的流水信息!');
Exit;
end;
ShowMessage('已经成功的清除了' + IntToStr(Jqh) + '号机器的流水信息!');
DeleteFile('c:\aa.txt');
end;
end;
function TFrmCJ_Main.IfValid: Boolean;
begin
Result := False;
case NoteBook1.PageIndex of
1: if RadioButton1.Checked then
begin
DateTimePicker1.Enabled := True;
DateTimePicker2.Enabled := True;
Button1.Enabled := True;
Button5.Enabled := False;
end
else
begin
DateTimePicker1.Enabled := False;
DateTimePicker2.Enabled := False;
Button1.Enabled := False;
Button5.Enabled := True;
end;
2: if Trim(ComboBox1.Text) > Trim(ComboBox2.Text) then
begin
ShowMessage('起始机器号应小于终止机器号,请重新选择!');
Exit;
end;
3: if RadioButton1.Checked then
if DateTimePicker1.Date > DateTimePicker2.Date then
begin
ShowMessage('起始日期不能超过终止日期,请重新选择!');
Exit;
end;
end;
Result := True;
end;
procedure TFrmCJ_Main.IniJqList;
var
ti: TInifile;
JqCount, i: integer;
begin
ComboBox1.Clear;
ComboBox2.Clear;
ti := TIniFile.Create(ExtractFilePath(Application.ExeName) + '\System.ini');
JqCount := ti.ReadInteger('默认选项', 'MaxJqCount', 9);
for i := 1 to JqCount do
begin
ComboBox1.Items.Add(IntToStr(i));
ComboBox2.Items.Add(IntToStr(i));
end;
if ComboBox1.Items.Count > 0 then
ComboBox1.ItemIndex := 0;
if ComboBox2.Items.Count > 0 then
ComboBox2.ItemIndex := 0;
end;
{---------------------------------------------------------------------------}
procedure TFrmCJ_Main.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TFrmCJ_Main.Button3Click(Sender: TObject);
var
Jqh, Jqh1: integer;
begin
Jqh := StrToInt(Trim(ComboBox1.Text));
Jqh1 := StrToInt(Trim(ComboBox2.Text));
if RadioButton2.Checked then
SjScan(StrToDateTime('2001-08-27'), Now, Jqh, Jqh1)
else
SjScan(StrToDate(DateToStr(DateTimePicker1.Date)),
StrToDate(DateToStr(DateTimePicker2.Date)), Jqh, Jqh1);
SetDBGridFieldsDisplay(DbGrid1);
end;
//清空到系统当前时间为止的指定机器号的全部售餐数据
procedure TFrmCJ_Main.Button5Click(Sender: TObject);
var
Jqh, Jqh1, i: integer;
Rq1, Rq2: TDate;
begin
Jqh := StrToInt(Trim(ComboBox1.Text));
Jqh1 := StrToInt(Trim(ComboBox2.Text));
Rq1 := StrToDate('2001-07-28');
Rq2 := Now;
for i := Jqh to Jqh1 do
begin
EmptyTh(i, Rq1, Rq2);
EmptyJyfs(i, Rq1, Rq2);
DeletePart(i, rq1, rq2);
end;
Button3Click(Self);
end;
procedure TFrmCJ_Main.Button70Click(Sender: TObject);
var
QsJqh, ZzJqh: integer;
CjSj: TDate;
begin
CjSj := Now;
PublicUnit.WriteToHistroy('数据采集', Now, Time, '用户《' + FrmMain.UserName +
'登陆本系统进行数据采集', FrmMain.UserName);
QsJqh := StrToInt(Trim(ComboBox1.Text));
ZzJqh := StrToInt(Trim(ComboBox2.Text));
if QsJqh > ZzJqh then
begin
ShowMessage('起始机器号不能大于终止机器号!');
Exit;
end;
if RadioButton1.Checked then
begin
if DateTimePicker1.DateTime > DateTimePicker2.DateTime then
begin
ShowMessage('起始日期不能大于终止日期');
Exit;
end;
CjCxThread := CjThread.Create(CjSj,
StrToDate(DateToStr(DateTimePicker1.Date)),
StrToDate(DateToStr(DateTimePicker2.Date)), 2, QsJqh, ZzJqh, TForm(Self))
end
else
CjCxThread := CjThread.Create(CjSj, StrToDate('2001-07-28'), Now, 1, QsJqh,
ZzJqh,
TForm(Self));
end;
procedure TFrmCJ_Main.Button7Click(Sender: TObject);
begin
with FrmCJ_DataModule.ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('Select * From SCSJ_DLogFile Order By 采集时间');
try
Open;
except
ShowMessage('无法打开日志表');
Exit;
end;
end;
FrmCJ_DataModule.DataSource1.DataSet := FrmCJ_DataModule.ADOQuery1;
DbGrid1.DataSource := FrmCJ_DataModule.DataSource1;
end;
procedure TFrmCJ_Main.RadioButton1Click(Sender: TObject);
begin
if RadioButton1.Checked then
begin
DateTimePicker1.Enabled := True;
DateTimePicker2.Enabled := True;
Button1.Enabled := True;
Button5.Enabled := False;
end;
end;
procedure TFrmCJ_Main.RadioButton2Click(Sender: TObject);
begin
if RadioButton2.Checked then
begin
DateTimePicker1.Enabled := False;
DateTimePicker2.Enabled := False;
Button1.Enabled := False;
Button5.Enabled := True;
end;
end;
procedure TFrmCJ_Main.DBGrid1DblClick(Sender: TObject);
var
AForm: TForm;
ADbGrid: TDbGrid;
begin
Application.CreateForm(TForm, AForm);
AForm.Caption := '数据采集结果';
ADbGrid := TDbGrid.Create(AForm);
with ADbGrid do
begin
Parent := AForm;
Align := alClient;
Font.Name := '宋体';
Font.Size := 9;
TitleFont.Name := '宋体';
TitleFont.Size := 9;
DataSource := DbGrid1.DataSource;
ReadOnly := True;
end;
SetDBGridFieldsDisplay(ADbGrid);
AForm.WindowState := wsMaximized;
AForm.BorderIcons := [biSystemMenu];
AForm.ShowModal;
AForm.Free;
end;
{清空流水}
procedure TFrmCJ_Main.Button13Click(Sender: TObject);
var
QsJqh, ZzJqh, i: integer;
begin
QsJqh := StrToInt(Trim(ComboBox1.Text));
ZzJqh := StrToInt(Trim(ComboBox2.Text));
for i := QsJqh to ZzJqh do
ClearLS(i);
end;
procedure TFrmCJ_Main.Button21Click(Sender: TObject);
begin
with FrmCJ_DataModule.ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add('Delete From SCSJ_DLogFile');
try
ExecSQL;
except
ShowMessage('无法打开日志表');
Exit;
end;
end;
Button7Click(Self);
end;
procedure TFrmCJ_Main.Button22Click(Sender: TObject);
begin
Close;
end;
procedure TFrmCJ_Main.ToolButton4Click(Sender: TObject);
begin
Close;
end;
procedure TFrmCJ_Main.Button60Click(Sender: TObject);
begin
Close;
end;
procedure TFrmCJ_Main.Button90Click(Sender: TObject);
begin
Close;
end;
procedure TFrmCJ_Main.Button30Click(Sender: TObject);
begin
Button40.Enabled := True;
if NoteBook1.PageIndex <> 0 then
NoteBook1.PageIndex := NoteBook1.PageIndex - 1;
if NoteBook1.PageIndex = 0 then
Button30.Enabled := False;
end;
procedure TFrmCJ_Main.Button40Click(Sender: TObject);
begin
if not IfValid then
Exit;
Button30.Enabled := True;
if NoteBook1.PageIndex <> NoteBook1.Pages.Count - 1 then
NoteBook1.PageIndex := NoteBook1.PageIndex + 1;
if NoteBook1.PageIndex = NoteBook1.Pages.Count - 1 then
begin
Button40.Enabled := False;
Button3Click(Self);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -