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

📄 charge.~pas

📁 软件类别: 数据库 软件大小: 2.60M 运行环境: Win9xNT/2000/XP 一套车辆管理系统,此版本为商业版,大家一定用的着。
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
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 + -