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

📄 u_data.pas

📁 以多个信息系统为例
💻 PAS
字号:
unit u_data;interfaceuses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  Db, DBTables;type  TDM_main = class(TDataModule)    Database: TDatabase;    Q_login: TQuery;    Q_room_valid: TQuery;    DS_room_valid: TDataSource;    Q_room_level: TQuery;    Q_custom: TQuery;    DS_custom: TDataSource;    Q_id_type: TQuery;    Q_add_custom: TQuery;    Q_count_sheet: TQuery;    Q_new_sheet: TQuery;    T_add_items: TTable;    DS_add_items: TDataSource;    Q_custom2: TQuery;    DS_custom2: TDataSource;    Q_get_sheet: TQuery;    DS_get_sheet: TDataSource;    T_add_items2: TTable;    DS_add_items2: TDataSource;    Q_apply_sheet: TQuery;    Q_worksheet: TQuery;    DS_worksheet: TDataSource;    T_items_list: TTable;    DS_items_list: TDataSource;    T_custom_info: TTable;    DS_custom_info: TDataSource;    Q_custom_list: TQuery;    DS_custom_list: TDataSource;    T_id_type: TTable;    DS_id_type: TDataSource;    T_items_info: TTable;    DS_items_info: TDataSource;    T_cost_list3: TTable;    Q_worksheet3: TQuery;    DS_worksheet3: TDataSource;    DS_cost_list3: TDataSource;    Q_worksheet2: TQuery;    DS_worksheet2: TDataSource;    T_room_list2: TTable;    T_cost_list2: TTable;    DS_room_list2: TDataSource;    DS_cost_list2: TDataSource;    Q_room_price: TQuery;    Q_end_bill: TQuery;  private    { Private declarations }  public    function Login(user, passwd:String):String;    procedure Logout;    procedure GetRoomLevel(RoomLevel:TStrings);    procedure SetRoomValid(StartTime, EndTime:TDateTime; RoomLevel:String);    procedure GetIDType(IDType:TStrings);    procedure AddCustom(ID, IDType, CustomName, Sex,      ComeFrom, Addr, remark, IDCopyFileName:String);    function GetCustomInfo(ID:String):Boolean;    function NewWorkSheet:String;    procedure SetAddItemsFilter(ID:String);    procedure AddItems(WorkSheet, Custom:String; StartTime, EndTime:TDateTime);    procedure DeleteItems;    function GetCustomInfo2(ID:String):Boolean;    procedure GetBookSheet(ID:String);    procedure SetAddItemsFilter2(ID:String);    procedure AddItems2(WorkSheet, Custom:String; StartTime, EndTime:TDateTime);    procedure DeleteItems2;    function ApplyBookSheet:String;    procedure GetWorkSheet(Room:String);    procedure OpenSearchInfo;    procedure SetCustID(ID:String);    procedure SetCustName(CustName:String);    procedure SetCustFrom(CustFrom:String);    procedure SetCustRoom(Room:String);    procedure SetBill(Room:String);    procedure SetCostList3(Room:String);    procedure CalBill;  end;var  DM_main: TDM_main;implementationuses Crypt, u_main;{$R *.DFM}function TDM_main.Login(user, passwd:String):String;var  Flag:Boolean;begin  with Database do  begin    Connected:=False;    Params.Values['USER NAME']:='PMISPAS';    Params.Values['PASSWORD']:='password';    Connected:=True;  end;  passwd:=Copy(passwd+passwd, 1, 10);  passwd:=Encrypt(passwd, 111);  with Q_login do  begin    Close;    Params.ParamValues['ID']:=user;    Params.ParamValues['PASSWD']:=passwd;    Open;    Flag:=( not IsEmpty);    if Flag then      Login:=FieldValues['NAME']    else    begin      Login:='';      Application.MessageBox('请重新输入!', '登录失败', MB_OK);    end;    Close;  end;  with Database do  begin    Connected:=False;    if Flag then    begin      Params.Values['USER NAME']:='PMISUSR';      Params.Values['PASSWORD']:='password';      Connected:=True;    end;  end;end;procedure TDM_main.Logout;begin  Database.Connected:=False;end;procedure TDM_main.GetRoomLevel(RoomLevel:TStrings);begin  RoomLevel.Clear;  with Q_room_level do  begin    Open;    First;    while not Eof do    begin      RoomLevel.Add(FieldValues['DESCRIPT']);      Next;    end;    Close;  end;end;procedure TDM_main.GetIDType(IDType:TStrings);begin  IDType.Clear;  with Q_id_type do  begin    Open;    First;    while not Eof do    begin      IDType.Add(FieldValues['DESCRIPT']);      Next;    end;    Close;  end;end;procedure TDM_main.SetRoomValid(StartTime, EndTime:TDateTime; RoomLevel:String);begin  with Q_room_valid do  begin    Close;    Params.ParamValues['LEVEL']:=RoomLevel;    Params.ParamValues['START_TIME']:=StartTime;    Params.ParamValues['END_TIME']:=EndTime;    Open;  end;end;procedure TDM_main.AddCustom(ID, IDType, CustomName, Sex,  ComeFrom, Addr, remark, IDCopyFileName:String);var  MemoryStream:TMemoryStream;begin  with Q_add_custom do  begin    Params.ParamValues['ID']:=ID;    Params.ParamValues['ID_TYPE']:=IDType;    Params.ParamValues['NAME']:=CustomName;    Params.ParamValues['SEX']:=Sex;    Params.ParamValues['COME_FROM']:=ComeFrom;    Params.ParamValues['ADDR']:=Addr;    Params.ParamValues['REMARK']:=Remark;    MemoryStream:=TMemoryStream.Create;    MemoryStream.LoadFromFile(IDCopyFileName);    ParamByName('ID_COPY').SetBlobData(MemoryStream.Memory,      MemoryStream.Size);    ExecSQL;    MemoryStream.Free;  end;end;function TDM_main.GetCustomInfo(ID:String):Boolean;begin  with Q_custom do  begin    Close;    Params.ParamValues['ID']:=ID;    Open;    GetCustomInfo:=(not IsEmpty);  end;end;function TDM_main.NewWorkSheet:String;var  id:String;  count:Integer;begin  with Q_count_sheet do  begin    Open;    count:=FieldValues['COUNT'];    Close;  end;  id:='000'+IntToStr(count);  id:=Copy(id, length(id)-3, 4);  id:=FormatDateTime('yymmdd',now)+id;  NewWorkSheet:=id;  with Q_new_sheet do  begin    Params.ParamValues['ID']:=id;    Params.ParamValues['PERSON']:=F_main.i_user.Text;    ExecSQL;  end;end;procedure TDM_main.SetAddItemsFilter(ID:String);begin  with T_add_items do  begin    Filter:='WORKSHEET='''+ID+'''';    Filtered:=True;    Open;  end;end;procedure TDM_main.AddItems(WorkSheet, Custom:String; StartTime, EndTime:TDateTime);var  Room:String;begin  Room:=Q_room_valid.FieldValues['ID'];  T_add_items.AppendRecord([0,WorkSheet,Custom, Room, '0',StartTime,EndTime]);  T_add_items.Refresh;end;procedure TDM_main.DeleteItems;begin  T_add_items.Delete;  T_add_items.Refresh;end;function TDM_main.GetCustomInfo2(ID:String):Boolean;begin  with Q_custom2 do  begin    Close;    Params.ParamValues['ID']:=ID;    Open;    GetCustomInfo2:=(not IsEmpty);  end;end;procedure TDM_main.GetBookSheet(ID:String);begin  with Q_get_sheet do  begin    Close;    Params.ParamValues['ID']:=ID;    Open;  end;end;procedure TDM_main.SetAddItemsFilter2(ID:String);begin  with T_add_items2 do  begin    Filter:='WORKSHEET='''+ID+'''';    Filtered:=True;    Open;  end;end;procedure TDM_main.AddItems2(WorkSheet, Custom:String; StartTime, EndTime:TDateTime);var  Room:String;begin  Room:=Q_room_valid.FieldValues['ID'];  T_add_items2.AppendRecord([0,WorkSheet,Custom, Room, '1',StartTime,EndTime]);  T_add_items2.Refresh;end;procedure TDM_main.DeleteItems2;begin  T_add_items2.Delete;  T_add_items2.Refresh;end;function TDM_main.ApplyBookSheet:String;var  sheet_id:String;begin  sheet_id:=Q_get_sheet.FieldValues['ID'];  with Q_apply_sheet do  begin    Params.ParamValues['ID']:=sheet_id;    ExecSQL;  end;  ApplyBookSheet:=sheet_id;end;procedure TDM_main.GetWorkSheet(Room:String);begin  with Q_worksheet do  begin    Close;    Params.ParamValues['ROOM']:=Room;    Open;  end;  T_items_list.Open;end;procedure TDM_main.OpenSearchInfo;begin  T_custom_info.Open;  T_id_type.Open;  T_items_info.Open;end;procedure TDM_main.SetCustID(ID:String);begin  with Q_custom_list do  begin    Close;    SQL.Clear;    SQL.Add('SELECT ID');    SQL.Add('FROM CUSTOM');    SQL.Add('WHERE ID LIKE :ID');    Params.ParamValues['ID']:=ID;    Open;  end;end;procedure TDM_main.SetCustName(CustName:String);begin  with Q_custom_list do  begin    Close;    SQL.Clear;    SQL.Add('SELECT ID');    SQL.Add('FROM CUSTOM');    SQL.Add('WHERE NAME LIKE :NAME');    Params.ParamValues['NAME']:=CustName;    Open;  end;end;procedure TDM_main.SetCustFrom(CustFrom:String);begin  with Q_custom_list do  begin    Close;    SQL.Clear;    SQL.Add('SELECT ID');    SQL.Add('FROM CUSTOM');    SQL.Add('WHERE COME_FROM LIKE :FROM');    Params.ParamValues['FROM']:=CustFrom;    Open;  end;end;procedure TDM_main.SetCustRoom(Room:String);begin  with Q_custom_list do  begin    Close;    SQL.Clear;    SQL.Add('SELECT CUSTOM AS ID');    SQL.Add('FROM SHEET_ITEMS');    SQL.Add('WHERE ROOM=:ROOM');    Params.ParamValues['ROOM']:=Room;    Open;  end;end;procedure TDM_main.SetCostList3(Room:String);begin  with Q_worksheet3 do  begin    Close;    Params.ParamValues['ROOM']:=Room;    Open;  end;  T_cost_list3.Open;end;procedure TDM_main.SetBill(Room:String);begin  with Q_worksheet2 do  begin    Close;    Params.ParamValues['ROOM']:=Room;    Open;  end;  T_room_list2.Open;  T_cost_list2.Open;end;procedure TDM_main.CalBill;var  RoomCost:Integer;  RoomPrice:Integer;  RoomDay:Integer;  TotalCost:Integer;begin  RoomCost:=0;  with T_room_list2 do  begin    First;    while not Eof do    begin      Q_room_price.Close;      Q_room_price.Params.ParamValues['ROOM']:=FieldValues['ROOM'];      Q_room_price.Open;      RoomPrice:=Q_room_price['PRICE'];      RoomDay:=Round(FieldValues['END_TIME']-FieldValues['START_TIME']);      RoomCost:=RoomCost+RoomPrice*RoomDay;      Next;    end;  end;  TotalCost:=0;  with T_cost_list2 do  begin    Append;    FieldValues['COST']:=RoomCost;    FieldValues['DESCRIPT']:='客房使用费用';    Post;    First;    while not Eof do    begin      TotalCost:=TotalCost+FieldValues['COST'];      Next;    end;  end;  with Q_end_bill do  begin    Close;    Prepare;    Params.ParamValues['COST']:=TotalCost;    ExecSQL;  end;end;end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -