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

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

?? hwformula.pas.svn-base

?? 這是一個功能齊全的,代碼完整的ERP企業信息管理系統,現在上傳和大家分享
?? SVN-BASE
字號:
unit HwFormula;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, atScript, DB, ADODB, StrUtils,
  ActnList, atPascal, ComCtrls;

type
  THwFormulaForm = class(TForm)
    gbCondition: TGroupBox;
    gbOperation: TGroupBox;
    gbFunction: TGroupBox;
    sbIf: TSpeedButton;
    sbThen: TSpeedButton;
    sbElse: TSpeedButton;
    lbFunction: TListBox;
    sbOr: TSpeedButton;
    sbAnd: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    sbDiv: TSpeedButton;
    SpeedButton10: TSpeedButton;
    SpeedButton11: TSpeedButton;
    SpeedButton12: TSpeedButton;
    SpeedButton13: TSpeedButton;
    SpeedButton14: TSpeedButton;
    SpeedButton15: TSpeedButton;
    SpeedButton16: TSpeedButton;
    SpeedButton17: TSpeedButton;
    Bevel1: TBevel;
    bbtnOk: TBitBtn;
    bbtnExit: TBitBtn;
    bbtnCheck: TBitBtn;
    Scripter: TatPascalScripter;
    cbLang: TCheckBox;
    gbItem: TGroupBox;
    lbItem: TListBox;
    ActionList1: TActionList;
    ActUndo: TAction;
    RichEdit1: TRichEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure bbtnOkClick(Sender: TObject);
    procedure bbtnExitClick(Sender: TObject);
    procedure bbtnCheckClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ScripterCompileError(Sender: TObject; var msg: String; row,
      col: Integer; var ShowException: Boolean);
    procedure lbItemDblClick(Sender: TObject);
    procedure lbFunctionDblClick(Sender: TObject);
    procedure ActUndoExecute(Sender: TObject);
    procedure sbIfClick(Sender: TObject);
    procedure sbThenClick(Sender: TObject);
    procedure sbElseClick(Sender: TObject);
    procedure sbOrClick(Sender: TObject);
    procedure sbAndClick(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure sbDivClick(Sender: TObject);
    procedure SpeedButton10Click(Sender: TObject);
    procedure SpeedButton11Click(Sender: TObject);
    procedure SpeedButton12Click(Sender: TObject);
    procedure SpeedButton13Click(Sender: TObject);
    procedure SpeedButton14Click(Sender: TObject);
    procedure SpeedButton15Click(Sender: TObject);
    procedure SpeedButton16Click(Sender: TObject);
    procedure SpeedButton17Click(Sender: TObject);
    procedure RichEdit1Change(Sender: TObject);
  private
    procedure SetInterface;
    { Private declarations }
  public
    AMode:string;
    AType:string;
    AItemNo:Integer;
    AItemID:string;
    AItemNm:String;
    { Public declarations }
  end;

var
  HwFormulaForm: THwFormulaForm;

implementation

uses CommFun, SYSDATA;

{$R *.dfm}

procedure THwFormulaForm.SetInterface;
begin
  Font.Name:=AFontName;
  Caption:=GetDBString('FUN10001001');  //自定義公式
  bbtnCheck.Caption:=GetDBString('FUN10001002');  //語法檢查(&C)
  bbtnOk.Caption:=GetDBString('FUN10001003');  //確定(&O)
  bbtnExit.Caption:=GetDBString('FUN10001004');  //退出(&X)
  cbLang.Caption:=GetDBString('FUN10001005');  //使用程序語言
  gbFunction.Caption:=GetDBString('FUN10001006');  //函數
  gbCondition.Caption:=GetDBString('FUN10001007');  //條件
  gbOperation.Caption:=GetDBString('FUN10001008');  //運算符
  gbItem.Caption:=GetDBString('FUN10001009');  //項目
end;

procedure THwFormulaForm.FormCreate(Sender: TObject);
begin
  SetInterface;
end;

procedure THwFormulaForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
//
end;

//解析公式,即將公式中所有的函數轉換成數值
function ParseFunction(AFormulaString,AItemID:string;AItemNo:Integer):string;
var
  S,R,ASubStr:String;
  AStart,AEnd,I:Integer;
begin
  S:=AFormulaString;
  R:=S;
  //取得函數的值并替換
  AStart:=0;
  AEnd:=0;
  for I:=1 to Length(S) do
  begin
    if (AStart=0) and (S[I]='[') then AStart:=I
    else if (AEnd=0) and (S[I]=']') then AEnd:=I;
    if (AStart<>0) and (AEnd<>0) then
    begin
      ASubStr:=Copy(S,AStart,AEnd-AStart+1);
      ReplaceString(ASubStr,'0',R);
      AStart:=0;
      AEnd:=0;
    end;
  end;
  S:=R;
  //取得考勤項目的值并替換
  AStart:=0;
  AEnd:=0;
  for I:=1 to Length(S) do
  begin
    if (AStart=0) and (S[I]='@') then AStart:=I
    else if (AEnd=0) and (S[I]='@') then AEnd:=I;
    if (AStart<>0) and (AEnd<>0) then
    begin
      ASubStr:=Copy(S,AStart,AEnd-AStart+1);
      ReplaceString(ASubStr,'0',R);
      AStart:=0;
      AEnd:=0;
    end;
  end;
  S:=R;
  //取得薪資項目的值并替換
  AStart:=0;
  AEnd:=0;
  for I:=1 to Length(S) do
  begin
    if (AStart=0) and (S[I]='%') then AStart:=I
    else if (AEnd=0) and (S[I]='%') then AEnd:=I;
    if (AStart<>0) and (AEnd<>0) then
    begin
      ASubStr:=Copy(S,AStart,AEnd-AStart+1);
      ReplaceString(ASubStr,'0',R);
      AStart:=0;
      AEnd:=0;
    end;
  end;
  S:=R;

  //將項目名稱替換成Result
  while Pos('#'+AItemID+'#',S)<>0 do ReplaceString('#'+AItemID+'#','Result',S);
  Result:=S;
end;

procedure THwFormulaForm.bbtnOkClick(Sender: TObject);
var
  S:String;
begin
//確定(&O)
  S:=SetFunct(RichEdit1.Text,AItemID,AItemNm,AType);
  Scripter.SourceCode.Clear;
  Scripter.SourceCode.Add(ParseFunction(S,AItemID,AItemNo));
  Scripter.Compile;
  RichEdit1.Text:=S;
  ModalResult:=1;
end;

procedure THwFormulaForm.bbtnExitClick(Sender: TObject);
begin
//退出(&X)
  Close;
end;

procedure THwFormulaForm.bbtnCheckClick(Sender: TObject);
var
  S:string;
begin
//語法檢查(&C)
  if trim(RichEdit1.Text)='' then
  begin
    ShowMsg('UMS10000224');  //自定義公式設置不能為空
    RichEdit1.SetFocus;
    Abort;
  end;
  S:=SetFunct(RichEdit1.Text,AItemID,AItemNm,AType);
  S:=ParseFunction(S,AItemID,AItemNo);
  Scripter.SourceCode.Clear;
  Scripter.SourceCode.Add(S);
  Scripter.Compile;
  ShowMsg('UMS10000247');  //自定義公式語法檢查成功
end;

procedure THwFormulaForm.FormShow(Sender: TObject);
begin
  //取得所有項目
  lbItem.Clear;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  if AType='CWA' then
    SYSDM.qryQuery.SQL.Add('select C150_003 from CWA150 where C150_001<>'+IntToStr(AItemNo))
  else if AType='PAY' then
    SYSDM.qryQuery.SQL.Add('select P150_003 from PAY150 where P150_001<>'+IntToStr(AItemNo));
  SYSDM.qryQuery.Open;
  while not SYSDM.qryQuery.Eof do
  begin
    lbItem.Items.Add(SYSDM.qryQuery.Fields[0].AsString);
    SYSDM.qryQuery.Next;
  end;

  //取得所有函數
  lbFunction.Clear;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  if AType='CWA' then
    SYSDM.qryQuery.SQL.Add('select S990_002 from SYS990 where S990_003=1')
  else if AType='PAY' then
    SYSDM.qryQuery.SQL.Add('select S990_002 from SYS990 where S990_003 in (1,2)');
  SYSDM.qryQuery.Open;
  while not SYSDM.qryQuery.Eof do
  begin
    lbFunction.Items.Add(SYSDM.qryQuery.Fields[0].AsString);
    SYSDM.qryQuery.Next;
  end;
  if trim(RichEdit1.Text)<>'' then
    RichEdit1.Text:=GetFunct(RichEdit1.Text,AItemID,AItemNm,AType)
  else
    RichEdit1.Text:=AItemNm+':=;';
  RichEdit1.SetFocus;
end;

procedure THwFormulaForm.ScripterCompileError(Sender: TObject;
  var msg: String; row, col: Integer; var ShowException: Boolean);
begin
  //語法錯誤在:行  列
  ShowMsg(GetDBString('FUN10001010')+IntToStr(Row)+GetDBString('FUN10001011')+IntToStr(Col)+#13+Scripter.SourceCode.Text,1);
  SetCursor(RichEdit1,Col,Row,True);
  Abort;
end;

procedure THwFormulaForm.lbItemDblClick(Sender: TObject);
var
  S:String;
begin
//項目
  S:='{'+lbItem.Items[lbItem.ItemIndex]+'}';
  InsertText(RichEdit1,S);
end;

procedure THwFormulaForm.lbFunctionDblClick(Sender: TObject);
var
  S:String;
begin
//函數
  S:='['+lbFunction.Items[lbFunction.ItemIndex]+']';
  InsertText(RichEdit1,S);
end;

procedure THwFormulaForm.ActUndoExecute(Sender: TObject);
begin
//恢復
  RichEdit1.Undo;
end;

procedure THwFormulaForm.sbIfClick(Sender: TObject);
begin
//如果
  InsertText(RichEdit1,'if ');
end;

procedure THwFormulaForm.sbThenClick(Sender: TObject);
begin
//那么
  InsertText(RichEdit1,'then ');
end;

procedure THwFormulaForm.sbElseClick(Sender: TObject);
begin
//否則
  InsertText(RichEdit1,'else ');
end;

procedure THwFormulaForm.sbOrClick(Sender: TObject);
begin
//或
  InsertText(RichEdit1,'or ');
end;

procedure THwFormulaForm.sbAndClick(Sender: TObject);
begin
//且
  InsertText(RichEdit1,'and ');
end;

procedure THwFormulaForm.SpeedButton6Click(Sender: TObject);
begin
//+
  InsertText(RichEdit1,'+ ');
end;

procedure THwFormulaForm.SpeedButton7Click(Sender: TObject);
begin
//-
  InsertText(RichEdit1,'- ');
end;

procedure THwFormulaForm.SpeedButton8Click(Sender: TObject);
begin
//*
  InsertText(RichEdit1,'* ');
end;

procedure THwFormulaForm.sbDivClick(Sender: TObject);
begin
//
  InsertText(RichEdit1,'/ ');
end;

procedure THwFormulaForm.SpeedButton10Click(Sender: TObject);
begin
//=
  InsertText(RichEdit1,'= ');
end;

procedure THwFormulaForm.SpeedButton11Click(Sender: TObject);
begin
//>
  InsertText(RichEdit1,'> ');
end;

procedure THwFormulaForm.SpeedButton12Click(Sender: TObject);
begin
//<
  InsertText(RichEdit1,'< ');
end;

procedure THwFormulaForm.SpeedButton13Click(Sender: TObject);
begin
//(
  InsertText(RichEdit1,'( ');
end;

procedure THwFormulaForm.SpeedButton14Click(Sender: TObject);
begin
//<>
  InsertText(RichEdit1,'<> ');
end;

procedure THwFormulaForm.SpeedButton15Click(Sender: TObject);
begin
//>=
  InsertText(RichEdit1,'>= ');
end;

procedure THwFormulaForm.SpeedButton16Click(Sender: TObject);
begin
//<=
  InsertText(RichEdit1,'<= ');
end;

procedure THwFormulaForm.SpeedButton17Click(Sender: TObject);
begin
//)
  InsertText(RichEdit1,') ');
end;

procedure THwFormulaForm.RichEdit1Change(Sender: TObject);
begin
  if not Showing then Exit;
  if not Active then Exit;
  CodeColors(RichEdit1,True);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人h动漫精品| 国产精品1区二区.| 麻豆视频观看网址久久| 日韩黄色免费电影| 精品一区二区三区免费观看 | 91精品福利在线| 在线电影一区二区三区| 欧美r级电影在线观看| 欧美国产日韩亚洲一区| 亚洲欧洲日产国产综合网| 亚洲中国最大av网站| 久久精品国产网站| 91丨九色porny丨蝌蚪| 欧美一区二区在线不卡| 国产精品美女久久久久久久网站| 亚洲线精品一区二区三区| 美女脱光内衣内裤视频久久网站| 国产成人鲁色资源国产91色综| 欧美亚洲愉拍一区二区| 久久综合久久鬼色| 日韩专区在线视频| 一本久久a久久免费精品不卡| 欧美一区二区免费| 亚洲综合图片区| 91原创在线视频| 久久亚洲影视婷婷| 国产在线不卡一区| 精品国产sm最大网站| 奇米精品一区二区三区在线观看| 欧美亚洲综合网| 亚洲免费观看高清完整版在线| 国产 欧美在线| 国产精品网曝门| 91在线观看视频| 亚洲黄色录像片| 91久久精品一区二区三| 亚洲欧洲精品一区二区精品久久久 | 另类小说一区二区三区| 日韩欧美国产精品一区| 国产精品中文有码| 最新国产成人在线观看| 在线观看日韩毛片| 日韩在线一区二区三区| 久久婷婷国产综合国色天香| 国产乱国产乱300精品| 亚洲三级免费观看| 91精品国产一区二区| 国产精品一二一区| 亚洲成人综合网站| 日韩一级成人av| 成人免费毛片片v| 日韩精品国产精品| 国产精品传媒入口麻豆| 制服丝袜中文字幕一区| 福利一区福利二区| 亚洲一二三区在线观看| 欧美成人a在线| 欧美性猛片xxxx免费看久爱| 国精产品一区一区三区mba视频 | 欧美日韩日日骚| 成人污视频在线观看| 免费观看一级特黄欧美大片| 一区二区三区在线播放| 久久久久9999亚洲精品| 欧美一二三在线| 欧美日韩在线播放| 在线一区二区三区四区| av网站免费线看精品| 蜜臀av性久久久久蜜臀aⅴ| 亚洲一区二区四区蜜桃| 亚洲欧美日韩国产另类专区| 国产三级精品三级| 国产午夜精品一区二区三区视频 | 欧美亚一区二区| 在线免费观看日本一区| 色一情一伦一子一伦一区| 91网站在线观看视频| 91麻豆6部合集magnet| 99re这里都是精品| 成人永久免费视频| 成人做爰69片免费看网站| 国产98色在线|日韩| jlzzjlzz亚洲女人18| 91麻豆精品一区二区三区| 99国内精品久久| 欧美人妖巨大在线| 欧美刺激午夜性久久久久久久| 日韩欧美视频一区| 国产欧美日韩另类一区| 国产精品黄色在线观看| 看电影不卡的网站| 成人免费黄色大片| 欧美精品日韩精品| 国产丝袜在线精品| 亚洲高清久久久| 国产一区中文字幕| 色婷婷一区二区三区四区| 欧美一区二区三区在线视频| 亚洲精品一区二区三区蜜桃下载| 亚洲乱码精品一二三四区日韩在线| 一区二区三区久久| 老司机精品视频导航| 色综合久久九月婷婷色综合| 欧美成人综合网站| 亚洲在线视频网站| av在线一区二区| 亚洲精品在线免费观看视频| 亚洲欧美乱综合| 国产伦精一区二区三区| 欧美精品自拍偷拍| 综合中文字幕亚洲| 大美女一区二区三区| 2021中文字幕一区亚洲| 午夜视频在线观看一区二区| 91在线免费视频观看| 久久久99精品久久| 韩国av一区二区三区| 日韩亚洲欧美成人一区| 亚洲电影中文字幕在线观看| 色综合久久综合网| 亚洲精品成人悠悠色影视| 99久久久国产精品免费蜜臀| 国产精品私人自拍| 成人网男人的天堂| 亚洲视频一区在线| 色哦色哦哦色天天综合| 亚洲黄色在线视频| 在线观看一区日韩| 亚洲国产一区在线观看| 久久午夜色播影院免费高清| 国精产品一区一区三区mba桃花| 国产人成亚洲第一网站在线播放| 夫妻av一区二区| 亚洲欧美日韩电影| 欧美老肥妇做.爰bbww视频| 免费在线看一区| 中文字幕av一区二区三区高| 99久久精品国产一区二区三区| 一区二区三区国产豹纹内裤在线| 欧美日韩小视频| 精品一区二区三区在线播放视频| 国产人伦精品一区二区| 在线不卡免费av| 成人黄色网址在线观看| 亚洲bdsm女犯bdsm网站| 国产欧美一区二区精品性色超碰| 93久久精品日日躁夜夜躁欧美| 亚洲国产裸拍裸体视频在线观看乱了 | 精品欧美一区二区三区精品久久| 成人黄色小视频在线观看| 久久精品国产久精国产| 亚洲美女屁股眼交3| 精品国产一区久久| 欧美主播一区二区三区| 国产xxx精品视频大全| 天天综合网 天天综合色| 日韩美女精品在线| 国产日产亚洲精品系列| 久久嫩草精品久久久精品一| 日韩免费看的电影| 欧美另类变人与禽xxxxx| 日本久久电影网| 一本久道中文字幕精品亚洲嫩| 国产麻豆精品在线观看| 国产做a爰片久久毛片| 日韩精品欧美成人高清一区二区| 亚洲国产aⅴ天堂久久| 亚洲一区二区三区视频在线播放| 国产精品家庭影院| 亚洲精品写真福利| 亚洲国产中文字幕在线视频综合| 亚洲人成人一区二区在线观看| 中文字幕制服丝袜成人av| 国产精品午夜电影| 一区二区三区不卡视频在线观看| 亚洲欧美日韩国产另类专区| 亚洲第一精品在线| 精品亚洲aⅴ乱码一区二区三区| 日本不卡视频在线| 国产精品一级片| 色婷婷综合中文久久一本| 欧美日韩色综合| 精品国精品国产| 亚洲人成网站色在线观看| 五月婷婷激情综合网| 国产又粗又猛又爽又黄91精品| 处破女av一区二区| 欧美美女激情18p| 中文乱码免费一区二区| 亚洲一区二区三区中文字幕 | 国产人久久人人人人爽| 亚洲一区二区三区在线| 韩国三级在线一区| 欧美日韩中文字幕一区| 国产精品婷婷午夜在线观看| 蜜臀av一区二区在线免费观看| 成人免费的视频| 精品国产91乱码一区二区三区| 亚洲一区精品在线| 成人av在线播放网站|