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

📄 scaleeditor.pas

📁 PatientRunner 20 Source
💻 PAS
字号:
{ *************************************************************************** }
{                                                                             }
{ PatientRunner                                                               }
{                                                                             }
{ Copyright (c) 2002-2005 IgD Software, LLC                                   }
{                                                                             }
{ This file may be distributed and/or modified under the terms of the GNU     }
{ General Public License (GPL) version 2 as published by the Free Software    }
{ Foundation and appearing at http://www.gnu.org/licenses/gpl.html.           }
{                                                                             }
{ *************************************************************************** }

unit ScaleEditor;

interface

uses
  SysUtils, Classes, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, DB, FMTBcd, SqlExpr;

type
  TScaleEditorForm = class(TForm)
    OKButton: TButton;
    CancelButton: TButton;
    Label1: TLabel;
    DescriptionEdit: TEdit;
    DatePicker: TDateTimePicker;
    Label2: TLabel;
    SQLQuery: TSQLQuery;
    ResultEdit: TEdit;
    Label3: TLabel;
    procedure CancelButtonClick(Sender: TObject);
    procedure OKButtonClick(Sender: TObject);
    procedure ResultEditKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
  private
    FNewRecord: boolean;
    procedure SetNewRecord(const Value: boolean);
    { Private declarations }
  public
    //If NewRecord is true then perform INSERT SQL query
    //if not then perform REPLACE SQL query
    property NewRecord: boolean read FNewRecord write SetNewRecord;
  end;

var
  ScaleEditorForm: TScaleEditorForm;

implementation

uses Main, PatientExplorer;

{$R *.dfm}

procedure TScaleEditorForm.CancelButtonClick(Sender: TObject);
begin
  if MessageDlg('Exit without saving changes?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    Close;
end;

procedure TScaleEditorForm.OKButtonClick(Sender: TObject);
begin
  DescriptionEdit.Text:=TrimRight(DescriptionEdit.Text);

  if DescriptionEdit.Text='' then
  begin
    MessageDlg('You must enter a valid description to save this record!', mtError, [mbOk], 0);
    Exit;
  end;

  DateSeparator := '/';
  ShortDateFormat := 'yyyy/mm/dd';
  LongTimeFormat:='hh:nn:ss';

  with SQLQuery do
  begin
    SQL.Clear;
    Params.Clear;

    if FNewRecord then
    begin
      SQL.Text:='insert into scales (description, result, scaledate, patientid, author) values (:description, :result, :scaledate, :patientid, :author)';

      Params[0].AsString:=DescriptionEdit.Text;
      if ResultEdit.Text='' then
      begin
        Params[1].AsInteger:=0;
        Params[1].Clear; //all this necessary to set record to null
      end
      else
        Params[1].AsString:=ResultEdit.Text;
      Params[2].AsString:=DatetoStr(DatePicker.Date);
      Params[3].AsString:=InttoStr(PPatientRecord(MainForm.PatientListView.Selected.Data)^.PatientID);
      Params[4].AsString:=MainForm.SQLConnection.Params.Values['User_Name'];

      ExecSQL;

      PatientExplorerForm.RefreshScalesDBClick(Sender);

      PatientExplorerForm.ScalesListView.Selected:=PatientExplorerForm.ScalesListView.TopItem;
      PatientExplorerForm.ScalesListView.ItemFocused:=PatientExplorerForm.ScalesListView.TopItem;
    end
    else
    begin
      with PScaleRecord(PatientExplorerForm.ScalesListView.ItemFocused.Data)^ do
      begin
        Description:=DescriptionEdit.Text;
        Result:=ResultEdit.Text;
        ScaleDate:=DatePicker.Date;
      end;

      SQL.Text:='update scales set description=:description, result=:result, scaledate=:scaledate where scaleid=:scaleid';

      Params[0].AsString:=DescriptionEdit.Text;
      if ResultEdit.Text='' then
      begin
        Params[1].AsInteger:=0;
        Params[1].Clear; //all this necessary to set record to null
      end
      else
        Params[1].AsString:=ResultEdit.Text;
      Params[2].AsString:=DatetoStr(DatePicker.Date);
      Params[3].AsString:=InttoStr(PScaleRecord(PatientExplorerForm.ScalesListView.ItemFocused.Data)^.ScaleID);

      ExecSql;

      PatientExplorerForm.RefreshScalesDBClick(Sender);
    end;
  end;

  Close;
end;

procedure TScaleEditorForm.SetNewRecord(const Value: boolean);
begin
  FNewRecord := Value;
end;

procedure TScaleEditorForm.ResultEditKeyPress(Sender: TObject; var Key: Char);
begin
  if Key In ['0'..'9', #8] Then // #8 = backspace
      inherited
    Else
      Key := #0;
end;

procedure TScaleEditorForm.FormShow(Sender: TObject);
begin
  ActiveControl:=DescriptionEdit;
end;

end.

⌨️ 快捷键说明

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