亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mddatabases.pas

?? 被系統名叫生產信息管理系統
?? PAS
字號:
unit mdDataBases;

interface

uses
  SysUtils, Classes, Variants, Dialogs, DB, DBTables, Controls, StdCtrls, DateUtils, StrUtils;

type
  TdmDataSource = class(TDataModule)
    dbaDataBases: TDatabase;
    tblPerson: TTable;
    dsPerson: TDataSource;
    tblDepartment: TTable;
    dsDepartment: TDataSource;
    tblHoliday: TTable;
    dsHoliday: TDataSource;
    tblOperator: TTable;
    dsOperator: TDataSource;
    tblOverTime: TTable;
    dsOverTime: TDataSource;
    tblSalary: TTable;
    dsSalary: TDataSource;
    tblVocation: TTable;
    dsVocation: TDataSource;
    CheckBox1: TCheckBox;
    tblCheckTime: TTable;
    dsCheckTime: TDataSource;
    tblPersonID: TStringField;
    tblPersonPERSON_NAME: TStringField;
    tblPersonPERSON_PASSWORD: TStringField;
    tblPersonPERSON_SEX: TStringField;
    tblPersonPERSON_BIRTHDAY: TDateTimeField;
    tblPersonPERSON_WORKDATE: TDateTimeField;
    tblPersonDEPARTMENT: TStringField;
    tblPersonJOB: TStringField;
    tblPersonBASE_SALARY: TFloatField;
    tblPersonADDRESS: TStringField;
    tblPersonTEL: TStringField;
    tblPersonOTHER_SALARY1: TFloatField;
    tblPersonOTHER_SALARY2: TFloatField;
    tblPersonDESCRIPTION: TStringField;
    tblDepartmentID: TStringField;
    tblDepartmentDEPARTMENT_NAME: TStringField;
    tblDepartmentDEPARTMENT_MASTER_ID: TStringField;
    tblDepartmentDEPARTMENT_SUBSIDY: TFloatField;
    tblDepartmentDESCRIPTION: TStringField;
    tblOperatorID: TStringField;
    tblOperatorOPERATOR_NAME: TStringField;
    tblOperatorOPERATOR_PASSWORD: TStringField;
    tblOperatorOPERATOR_RIGHTS: TStringField;
    tblOperatorDESCRIPTION: TStringField;
    tblOverTimePERSON_ID: TStringField;
    tblOverTimeSTART_TIME: TDateTimeField;
    tblOverTimeEND_TIME: TDateTimeField;
    tblOverTimeOPERATOR: TStringField;
    tblOverTimeDESCRIPTION: TStringField;
    tblVocationID: TStringField;
    tblVocationVOCATION_NAME: TStringField;
    tblVocationVOCATION_SUBSIDY: TFloatField;
    tblVocationDESCRIPTION: TStringField;
    tblCheckTimeID: TStringField;
    tblCheckTimeRECORDTIME: TDateTimeField;
    tblCheckTimeRECORDTYPE: TStringField;
    tblCheckTimeRESULT: TStringField;
    tblCheckTimeTIMECOUNT: TFloatField;
    tblCheckTimeSALARY: TFloatField;
    qrySQLCommand: TQuery;
    dsSQLCommand: TDataSource;
    tblOverTimeTIMECOUNT: TFloatField;
    tblOverTimeSALARY: TFloatField;
    tblHolidayPERSON_ID: TStringField;
    tblHolidayHOLIDAY_REASON: TStringField;
    tblHolidaySTARTTIME: TDateTimeField;
    tblHolidayENDTIME: TDateTimeField;
    tblHolidayOPERATOR: TStringField;
    tblHolidayDESCRIPTION: TStringField;
    tblHolidayTIMECOUNT: TFloatField;
    tblHolidaySALARY: TFloatField;
    tblSalaryID: TStringField;
    tblSalaryPERSON_ID: TStringField;
    tblSalaryPERSON_NAME: TStringField;
    tblSalaryBASE_SALARY: TFloatField;
    tblSalaryDEPARTMENT_SALARY: TFloatField;
    tblSalaryVOCATION_SALARY: TFloatField;
    tblSalaryOTHER_SALARY1: TFloatField;
    tblSalaryOTHER_SALARY2: TFloatField;
    tblSalaryBONUS: TFloatField;
    tblSalaryMULCT: TFloatField;
    tblSalarySHOULD_PAY_SALARY: TFloatField;
    tblSalaryREAL_PAY_SALARY: TFloatField;
    tblSalaryIS_PAY: TIntegerField;
  private
    { Private declarations }
  public
    { Public declarations }
    procedure MakeSalaryTable;
    procedure RecordWorkTime(const strRecordType:string);
    function GetPersonName(const strPersonID:string):string;
    function GetPersonID(const strPersonName:string):string;
    function GetPersonDepartmentSalary(const strID:string):Real;
    function GetPersonVocationSalary(const strID:string):Real;
    function GetPersonBonus(const strID:string):Real;
    function GetPersonMulct(const strID:string):Real;
  end;

var
  dmDataSource: TdmDataSource;

  function GetFieldValue(const tblTableName:TDataSet;strFieldName: string):TStrings;

implementation

uses Common;

{$R *.dfm}

function GetFieldValue(const tblTableName:TDataSet;strFieldName: string):TStrings;
var
    CurrentTableRecordNum: Integer;
begin
    Result:=TStringList.Create;
    Result.Clear;
    CurrentTableRecordNum := tblTableName.RecNo;
    tblTableName.First;
    while not tblTableName.EOF do
    begin
        Result.Add(tblTableName[strFieldName]);
        tblTableName.Next;
    end;
    tblTableName.MoveBy(CurrentTableRecordNum);
end;

{ TdmDataSource }

function TdmDataSource.GetPersonBonus(const strID: string): Real;
var
    CurrentTableRecordNum: Integer;
begin
    CurrentTableRecordNum := tblOverTime.RecNo;
    tblOverTime.First;
    Result:=0;
    while not tblOverTime.EOF do
    begin
        if tblOverTime['PERSON_ID']=Trim(strID) then
            Result:=Result+tblOverTime['SALARY'];
        tblOverTime.Next;
    end;
    tblOverTime.MoveBy(CurrentTableRecordNum);
end;

function TdmDataSource.GetPersonDepartmentSalary(
  const strID: string): Real;
var
    CurrentTableRecordNum: Integer;
begin
    CurrentTableRecordNum := dmDataSource.tblDepartment.RecNo;
    tblDepartment.DisableControls;
    tblDepartment.Locate('ID',strID,[loCaseInsensitive]);
    if Not tblDepartment.Eof then
        Result:=tblDepartment['DEPARTMENT_SUBSIDY']
    else
        Result:=0;
    tblDepartment.MoveBy(CurrentTableRecordNum);
    tblDepartment.EnableControls;
end;

function TdmDataSource.GetPersonID(const strPersonName: string): string;
var
    CurrentTableRecordNum: Integer;
begin
    CurrentTableRecordNum := dmDataSource.tblPerson.RecNo;
    tblPerson.DisableControls;
    tblPerson.Locate('PERSON_NAME',strPersonName,[loCaseInsensitive]);
    if Not tblPerson.Eof then
        Result:=tblPerson['ID']
    else
        Result:='';
    tblPerson.MoveBy(CurrentTableRecordNum);
    tblPerson.EnableControls;
end;

function TdmDataSource.GetPersonMulct(const strID: string): Real;
var
    CurrentTableRecordNum: Integer;
begin
    CurrentTableRecordNum :=tblHoliday.RecNo;
    tblHoliday.First;
    Result:=0;
    while not tblHoliday.EOF do
    begin
        if tblHoliday['PERSON_ID']=Trim(strID) then
            Result:=Result+tblHoliday['SALARY'];
        tblHoliday.Next;
    end;
    tblHoliday.MoveBy(CurrentTableRecordNum);

    CurrentTableRecordNum := tblCheckTime.RecNo;
    tblCheckTime.First;
    while not tblCheckTime.Eof do
    begin
        if tblCheckTime['ID']=Trim(strID) then
            Result:=Result+tblCheckTime['SALARY'];
        tblCheckTime.Next;
    end;
    tblCheckTime.MoveBy(CurrentTableRecordNum);
end;

function TdmDataSource.GetPersonName(const strPersonID: string): string;
var
    CurrentTableRecordNum: Integer;
begin
    CurrentTableRecordNum := dmDataSource.tblPerson.RecNo;
    tblPerson.DisableControls;
    tblPerson.Locate('ID',strPersonID,[loCaseInsensitive]);
    if Not tblPerson.Eof then
        Result:=tblPerson['PERSON_NAME']
    else
        Result:='';
    tblPerson.MoveBy(CurrentTableRecordNum);
    tblPerson.EnableControls;
end;

function TdmDataSource.GetPersonVocationSalary(const strID: string): Real;
var
    CurrentTableRecordNum: Integer;
begin
    CurrentTableRecordNum := dmDataSource.tblVocation.RecNo;
    tblVocation.DisableControls;
    tblVocation.Locate('ID',strID,[loCaseInsensitive]);
    if Not tblVocation.Eof then
        Result:=tblVocation['VOCATION_SUBSIDY']
    else
        Result:=0;
    tblVocation.MoveBy(CurrentTableRecordNum);
    tblVocation.EnableControls;
end;

procedure TdmDataSource.MakeSalaryTable;
var
    I:Integer;
begin
    tblSalary.Close;
    tblSalary.Exclusive:=True;
    tblSalary.EmptyTable;
    tblSalary.Exclusive:=False;
    tblSalary.Open;
    for I := 0 to tblPerson.RecordCount-1 do
    begin
        tblSalary.Append;
        tblSalary['ID']:=I+1;
        tblSalary['PERSON_ID']:=tblPerson['ID'];
        tblSalary['PERSON_NAME']:=tblPerson['PERSON_NAME'];
        tblSalary['BASE_SALARY']:=tblPerson['BASE_SALARY'];
        tblSalary['DEPARTMENT_SALARY']:=GetPersonDepartmentSalary(tblPerson['ID']);
        tblSalary['VOCATION_SALARY']:=GetPersonVocationSalary(tblPerson['ID']);
        tblSalary['OTHER_SALARY1']:=tblPerson['OTHER_SALARY1'];
        tblSalary['OTHER_SALARY2']:=tblPerson['OTHER_SALARY2'];
        tblSalary['BONUS']:=GetPersonBonus(tblPerson['ID']);
        tblSalary['MULCT']:=GetPersonMulct(tblPerson['ID']);
        tblSalary['SHOULD_PAY_SALARY']:=
            tblSalary['BASE_SALARY']+
            tblSalary['DEPARTMENT_SALARY']+
            tblSalary['VOCATION_SALARY']+
            tblSalary['BONUS'];
        tblSalary['REAL_PAY_SALARY']:=
            tblSalary['SHOULD_PAY_SALARY']+tblSalary['MULCT'];
        tblSalary['IS_PAY']:=False;
        tblSalary.Post;
        tblPerson.Next;
    end;
    tblSalary.ApplyUpdates;
    tblSalary.Close;
    tblSalary.Open;
end;

procedure TdmDataSource.RecordWorkTime(const strRecordType:string);
var
    strTime:string;
    dtmTime,dtmNowTime:TDateTime;
    fltLate,fltEarly:Real;
begin
    if length(strRecordType)>2 then
        strTime:=ReadIniFileString('.\Setting.Ini','時間設定',strRecordType);
    fltLate:=ReadIniFileFloat('.\Setting.Ini','工資設定','遲到扣款');
    fltEarly:=ReadIniFileFloat('.\Setting.Ini','工資設定','早退扣款');
    dtmTime:=TimeOf(StrToDateTime('01-01-01 '+strTime+':00'));
    dtmNowTime:=TimeOf(Now);
    tblCheckTime.Append;
    tblCheckTime['ID']:=dmDataSource.tblPerson['ID'];
    tblCheckTime['RECORDTIME']:=Now;
    tblCheckTime['RECORDTYPE']:=strRecordType;
    if RightStr(strRecordType,2)='上班' then
    begin
        if  dtmNowTime>dtmTime then
        begin
            tblCheckTime['RESULT']:='遲到';
            tblCheckTime['TIMECOUNT']:=
                DateTimeToReal(dtmTime,dtmNowTime);
            tblCheckTime['SALARY']:=
                DateTimeToReal(dtmTime,dtmNowTime)*fltLate*-1;
            tblCheckTime.Post;
            tblCheckTime.ApplyUpdates;
        end
        else
            tblCheckTime.Cancel;
    end;
    if RightStr(strRecordType,2)='下班' then
    begin
        if  dtmNowTime<dtmTime then
        begin
            tblCheckTime['RESULT']:='早退';
            tblCheckTime['TIMECOUNT']:=
                DateTimeToReal(dtmTime,dtmNowTime);
            tblCheckTime['SALARY']:=
                DateTimeToReal(dtmTime,dtmNowTime)*fltEarly*-1;
            tblCheckTime.Post;
            tblCheckTime.ApplyUpdates;
        end
        else
            tblCheckTime.Cancel;
    end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情在线免费观看| 五月天亚洲精品| 91精品久久久久久蜜臀| 日本道免费精品一区二区三区| 国产自产视频一区二区三区| 精品在线亚洲视频| 国产一区二区三区久久悠悠色av| 精品一区二区在线视频| 国产一区亚洲一区| 国产suv精品一区二区6| 成人爱爱电影网址| 91在线高清观看| 精品视频免费在线| 亚洲成人综合在线| 男女激情视频一区| 国产综合久久久久久久久久久久| 国产精品一区二区免费不卡| av一本久道久久综合久久鬼色| 97久久超碰国产精品| 欧美性色黄大片手机版| 欧美丰满一区二区免费视频| 精品美女在线观看| 中文字幕五月欧美| 午夜精品久久久久久久久久久| 日韩精品久久理论片| 国产精品91一区二区| 欧美亚洲动漫另类| 亚洲成人精品在线观看| 精品一区二区免费| 色婷婷久久久综合中文字幕| 日韩一二三四区| 亚洲欧洲精品天堂一级| 五月激情综合网| 波波电影院一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 精品少妇一区二区三区视频免付费 | 亚洲久草在线视频| 日韩国产高清影视| 97国产一区二区| 欧美一级搡bbbb搡bbbb| 亚洲欧美另类久久久精品 | 国产精品福利电影一区二区三区四区 | 亚洲mv在线观看| 国产精品一区免费视频| 在线观看日韩高清av| 日本一区二区在线不卡| 日韩和欧美的一区| 色婷婷综合激情| 国产精品污网站| 日本不卡在线视频| 在线免费不卡视频| 国产女人aaa级久久久级| 天涯成人国产亚洲精品一区av| 成人aa视频在线观看| 久久久综合网站| 日本aⅴ精品一区二区三区| 一本到不卡免费一区二区| 国产拍揄自揄精品视频麻豆| 蜜桃av噜噜一区| 欧美精品在欧美一区二区少妇| 国产精品理论片在线观看| 欧美一级日韩免费不卡| 亚洲第一会所有码转帖| 91免费视频观看| 国产精品看片你懂得| 国产69精品一区二区亚洲孕妇| 国产中文一区二区三区| 欧美一区二区三区小说| 一个色在线综合| 99久久精品免费看国产| 国产精品久久久久久久裸模| 国产高清在线观看免费不卡| 日韩视频国产视频| 久久精品国产在热久久| 欧美一区二区三区视频免费| 日本中文一区二区三区| 3d动漫精品啪啪一区二区竹菊 | 亚洲综合成人在线视频| 色综合久久88色综合天天免费| 中文字幕在线不卡视频| 色综合咪咪久久| 亚洲免费观看在线视频| 色八戒一区二区三区| 亚洲欧美日韩一区| 欧美视频第二页| 日韩中文字幕av电影| 日韩欧美国产三级| 国产麻豆一精品一av一免费| 国产女人水真多18毛片18精品视频 | 午夜精品福利一区二区三区av| 成人激情动漫在线观看| 亚洲欧美在线视频| 欧美日韩一级片在线观看| 三级影片在线观看欧美日韩一区二区| 欧美片在线播放| 国产一区在线观看视频| 亚洲欧美一区二区三区久本道91 | 99国产精品一区| 亚洲444eee在线观看| 精品精品欲导航| 日本一区二区高清| 丁香婷婷综合色啪| 亚洲与欧洲av电影| 亚洲精品一区二区三区精华液| 成人手机在线视频| 亚洲成人动漫一区| 久久久精品人体av艺术| 91成人国产精品| 久久精品国产久精国产爱| 成人免费在线视频| 日韩一区二区三区精品视频| 成人高清在线视频| 视频一区视频二区中文| 中文字幕免费在线观看视频一区| 欧美日韩一区二区在线观看视频| 精品一区二区三区免费毛片爱| 亚洲三级小视频| 2023国产精华国产精品| 欧美综合一区二区三区| 国产麻豆视频一区二区| 天堂蜜桃91精品| 亚洲三级在线免费| 久久亚洲捆绑美女| 欧美日韩一区二区三区视频| 成人综合在线视频| 精品综合久久久久久8888| 亚洲主播在线播放| 日韩一区日韩二区| 中文字幕不卡在线观看| 欧美一区三区二区| 欧美日韩一区二区在线观看视频 | 麻豆免费精品视频| 亚洲一区自拍偷拍| 亚洲色图欧洲色图| 国产精品卡一卡二卡三| 久久久亚洲高清| 日韩一区二区麻豆国产| 日本黄色一区二区| 成人福利视频在线| 国产91在线观看丝袜| 国产精品自产自拍| 国内精品国产成人国产三级粉色| 日韩欧美亚洲一区二区| 欧美久久一二三四区| 色噜噜狠狠一区二区三区果冻| 成人美女视频在线观看18| 国产一区二区精品久久| 日韩精品电影一区亚洲| 欧美一区日韩一区| 日韩久久精品一区| 日韩免费福利电影在线观看| 欧美岛国在线观看| 精品国产免费一区二区三区香蕉| 欧美一区二区三区小说| 欧美一区二区啪啪| 日韩精品中文字幕在线不卡尤物| 777亚洲妇女| 911精品产国品一二三产区| 91精品国产综合久久香蕉麻豆| 337p亚洲精品色噜噜噜| 91精品蜜臀在线一区尤物| 欧美一区二区日韩一区二区| 欧美sm美女调教| 国产午夜精品久久久久久久| 国产午夜精品一区二区| 亚洲免费资源在线播放| 日韩va亚洲va欧美va久久| 久久99久久久久久久久久久| 激情文学综合插| 成人自拍视频在线观看| 在线视频国内自拍亚洲视频| 欧美精品乱码久久久久久| 精品国产一区二区在线观看| 国产日韩欧美a| 亚洲一区二区精品视频| 狠狠色狠狠色综合| 99久久国产免费看| 91精品久久久久久久99蜜桃| 久久久久国产精品人| 亚洲精品国产高清久久伦理二区| 亚洲成a人片在线观看中文| 韩国欧美国产1区| 91美女片黄在线观看| 欧美日韩一区二区欧美激情| 日韩写真欧美这视频| 国产女主播在线一区二区| 亚洲www啪成人一区二区麻豆| 久久99精品国产麻豆婷婷洗澡| 不卡的av电影在线观看| 欧美另类变人与禽xxxxx| 26uuu另类欧美亚洲曰本| 亚洲欧美一区二区不卡| 激情综合亚洲精品| 91搞黄在线观看| 国产午夜精品久久久久久久| 亚洲一区二区精品视频| 成人av第一页| 久久伊人蜜桃av一区二区| 亚洲福利一二三区| av色综合久久天堂av综合|