📄 charge.~pas
字号:
unit Charge;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ExtCtrls,ChildFrm, Buttons, ToolWin, Grids,
XPMenu, DBGrids;
type
Tfrm_Charge = class(TChildForm)//class(TForm)
Panel1: TPanel;
Panel3: TPanel;
Label2: TLabel;
Panel2: TPanel;
Panel5: TPanel;
Label1: TLabel;
ToolBar1: TToolBar;
SpeedButton2: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
Cmd_Exit: TSpeedButton;
Cmd_Save: TSpeedButton;
Cmd_Add: TSpeedButton;
XPMenu1: TXPMenu;
Panel7: TPanel;
Cmd_Get_NO: TSpeedButton;
Edit1: TLabeledEdit;
Edit2: TLabeledEdit;
Cmd_Get_ID: TSpeedButton;
Edit3: TLabeledEdit;
Edit6: TLabeledEdit;
Edit5: TLabeledEdit;
Edit4: TLabeledEdit;
Edit7: TLabeledEdit;
Edit9: TLabeledEdit;
Edit10: TLabeledEdit;
Edit11: TLabeledEdit;
Edit12: TLabeledEdit;
Cmd_Mond: TSpeedButton;
Edit8: TLabeledEdit;
Panel8: TPanel;
Panel9: TPanel;
DBGrid1: TDBGrid;
Panel6: TPanel;
Panel4: TPanel;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
StringGrid1: TStringGrid;
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Cmd_SaveClick(Sender: TObject);
procedure Cmd_Get_NOClick(Sender: TObject);
procedure Cmd_Get_IDClick(Sender: TObject);
procedure Cmd_AddClick(Sender: TObject);
procedure Cmd_ExitClick(Sender: TObject);
procedure Cmd_MondClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid1DblClick(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure StringGrid1DblClick(Sender: TObject);
private
{ Private declarations }
procedure DeleteRow(Row:Integer);
public
{ Public declarations }
end;
var
frm_Charge: Tfrm_Charge;
iColcount,Total_Count:integer;
Pcol,Prow:integer;
ss,tempstr:string;
implementation
uses Data, Car_Select, func, Mond_Select, Charge_Report, ReportInFormation,
Charge_Type, Charge_Name;
{$R *.dfm}
//
//———————————————————————————————————————
procedure Tfrm_Charge.DeleteRow(Row:Integer);
var
i : integer;
begin
//最后一列直接删除
if (Row = StringGrid1.RowCount-1) and (row >1) then
StringGrid1.RowCount := StringGrid1.RowCount - 1;
//自动上移
if (Row < StringGrid1.RowCount) and (Row > StringGrid1.FixedRows-1) then
begin
if Row < StringGrid1.RowCount - 1 then
begin
for i := Row to StringGrid1.RowCount-1 do
StringGrid1.Rows[i] := StringGrid1.Rows[i+1];
StringGrid1.RowCount :=StringGrid1.RowCount - 1;
end;
end;
end;
//———————————————————————————————————————
//
procedure Tfrm_Charge.SpeedButton3Click(Sender: TObject);
var
i:integer;
begin
inherited;
StringGrid1.RowCount:=StringGrid1.RowCount+1;
Total_Count:=StringGrid1.RowCount;
for i:=1 to StringGrid1.RowCount-1 do
begin
StringGrid1.Cells[0,i]:=IntTostr(i); //表示第0列第i行
end;
end;
procedure Tfrm_Charge.SpeedButton4Click(Sender: TObject);
var
i:shortint;
begin
inherited;
if StringGrid1.col<>0 then
begin
StringGrid1.Rows[StringGrid1.Row].Clear; //删除选中行的所有列 ,用右键弹出菜单
DeleteRow(StringGrid1.Row);
end;
for i:=1 to StringGrid1.RowCount do
StringGrid1.cells[0,i]:=inttostr(i);
end;
procedure Tfrm_Charge.FormShow(Sender: TObject);
var
i,icount,k:integer;
tt,yy,temppos:integer;
begin
inherited;
iColcount:=StringGrid1.ColCount-1; //需要的填充数据的网络表格的列数
StringGrid1.RowCount:=2; StringGrid1.ColCount:=5;
Total_Count:=StringGrid1.RowCount;
StringGrid1.ColWidths[0]:=40; StringGrid1.ColWidths[1]:=150; StringGrid1.ColWidths[2]:=150;
StringGrid1.ColWidths[3]:=100; StringGrid1.ColWidths[4]:=100;
StringGrid1.Cells[0,0]:='行号';
StringGrid1.Cells[1,0]:='收费类别'; StringGrid1.Cells[2,0]:='收费名称';
StringGrid1.Cells[3,0]:='收费金额'; StringGrid1.Cells[4,0]:='备注说明';
//加载行号
for i:=1 to StringGrid1.RowCount-1 do
begin
StringGrid1.Cells[0,i]:=IntTostr(i); //表示第0列第i行
end;
Cmd_ExitClick(sender);
end;
procedure Tfrm_Charge.Cmd_SaveClick(Sender: TObject);
var
i,j:Integer;
begin
inherited;
for i:=1 to StringGrid1.ColCount-1 do
begin
for j:=1 to StringGrid1.RowCount-1 do
begin
if StringGrid1.Cells[1,j]='' then
begin
Application.MessageBox('操作错误,【收费类别】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
for j:=1 to StringGrid1.RowCount-1 do
begin
if StringGrid1.Cells[2,j]='' then
begin
Application.MessageBox('操作错误,【收费名称】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
for j:=1 to StringGrid1.RowCount-1 do
begin
if StringGrid1.Cells[3,j]='' then
begin
Application.MessageBox('操作错误,【收费金额】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
end;
if trim(Edit1.Text)='' then
begin
Application.MessageBox('操作错误,【车辆编号】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Edit1.SetFocus;
Exit;
end;
if trim(Edit2.Text)='' then
begin
Application.MessageBox('操作错误,【车牌号码】不能为空!,请确认!',pchar(application.Title),mb_iconwarning);
Edit2.SetFocus;
Exit;
end;
with frm_data.Query_Charge do
begin
Close;
Sql.Clear;
Sql.Add('Select * from [Charge] where C_ID='''+Trim(Edit1.Text)+''' and List_No='''+Trim(Edit12.Text)+'''');
try
Prepared;
open;
if frm_data.Query_Charge.RecordCount>0 then
begin
Application.MessageBox('操作失败,该车辆的该项【收费信息】记录在数据库中已经存在,请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end
else
begin
with frm_data.Query_Charge do
begin
Close;
Sql.Clear;
Sql.Add('Insert into [Charge] (C_NO,C_ID,Charge_Mond,Charager,Charge_Date,List_No) values (:C_NO,:C_ID,:Charge_Mond,:Charager,:Charge_Date,:List_No)');
frm_data.Query_Charge.Parameters[0].Value:=Trim(Edit1.Text);
frm_data.Query_Charge.Parameters[1].Value:=Trim(Edit2.Text);
frm_data.Query_Charge.Parameters[2].Value:=Trim(Edit9.Text);
frm_data.Query_Charge.Parameters[3].Value:=Trim(Edit10.Text);
frm_data.Query_Charge.Parameters[4].Value:=Trim(Edit11.Text);
frm_data.Query_Charge.Parameters[5].Value:=Trim(Edit12.Text);
try
Prepared;
ExecSql;
for i:=1 to StringGrid1.RowCount-1 do
begin
with frm_data.Query_Charge do
begin
Close;
Sql.Clear;
Sql.Add('Insert into [Charge_Detail](List_NO,Charge_Type,Charge_Name,Charge_money,Charge_Repark) values (:List_NO,:Charge_Type,:Charge_Name,:Charge_money,:Charge_Repark)');
frm_data.Query_Charge.Parameters[0].Value:=Trim(Edit12.Text);
frm_data.Query_Charge.Parameters[1].Value:=Trim(StringGrid1.Cells[1,i]);
frm_data.Query_Charge.Parameters[2].Value:=Trim(StringGrid1.Cells[2,i]);
frm_data.Query_Charge.Parameters[3].Value:=Trim(StringGrid1.Cells[3,i]);
frm_data.Query_Charge.Parameters[4].Value:=Trim(StringGrid1.Cells[4,i]);
try
Prepared;
ExecSql;
except
Application.MessageBox('系统错误,在保存数据表【Charge_Detail】的数据时出错'+#13#10+'请检查远程服务器连接是否正常?请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
end;
Application.MessageBox('恭喜你!收费操作成功!请确认!',pchar(application.Title),mb_iconwarning);
Cmd_Save.Enabled:=False;
Cmd_Add.Enabled:=True;
Cmd_ExitClick(Sender);
except
Application.MessageBox('系统错误,在保存数据表【Charge】时出错'+#13#10+'请检查远程服务器连接是否正常?请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
end;
except
Application.MessageBox('系统错误,在打开数据表【Charge】时出错'+#13#10+'请检查远程服务器连接是否正常?请确认!',pchar(application.Title),mb_iconwarning);
Exit;
end;
end;
end;
procedure Tfrm_Charge.Cmd_Get_NOClick(Sender: TObject);
begin
inherited;
func.Car_Select:='';
func.Car_Select_Result:='';
func.Car_Select:='Car_NO'; //表示选择车辆编号
frm_Car_Select:=Tfrm_Car_Select.Create(self);
frm_Car_Select.ShowModal;
frm_Car_Select.Free;
//
//把选择的结果传递给Edit1
Edit1.Text:=func.Car_Select_Result;
with frm_data.ADOQuery_Car do
begin
Close;
Sql.Clear;
Sql.Add('SELECT * FROM [Car] where C_NO='''+Trim(Edit1.Text)+'''');
try
Prepared;
Open;
Edit2.Text:=frm_data.ADOQuery_Car.FieldByName('C_ID').AsString;
Edit3.Text:=frm_data.ADOQuery_Car.FieldByName('Drive_ID').AsString;
Edit4.Text:=frm_data.ADOQuery_Car.FieldByName('Type').AsString;
Edit5.Text:=frm_data.ADOQuery_Car.FieldByName('Fdjh').AsString;
Edit6.Text:=frm_data.ADOQuery_Car.FieldByName('Facaty_type').AsString;
Edit7.Text:=frm_data.ADOQuery_Car.FieldByName('Man').AsString;
Edit8.Text:=frm_data.ADOQuery_Car.FieldByName('H_Man').AsString;
Except
Application.MessageBox('系统错误!系统在打开数据表【Car】时出错!与远程服务器连接失败!',Pchar(Application.Title),MB_ICONWARNing);
Exit;
End;
end;
//
end;
procedure Tfrm_Charge.Cmd_Get_IDClick(Sender: TObject);
begin
inherited;
func.Car_Select:='';
func.Car_Select_Result:='';
func.Car_Select:='Car_ID'; //表示选择车牌号
frm_Car_Select:=Tfrm_Car_Select.Create(self);
frm_Car_Select.ShowModal;
frm_Car_Select.Free;
//
//把选择的结果传递给Edit1
Edit2.Text:=func.Car_Select_Result;
with frm_data.ADOQuery_Car do
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -