📄 zfrm_autogetbidu.~pas
字号:
{
'┌───────────────────────────────────┐
'│**********************************************************************│
'│*** 文件名称:zfrm_AutoGetBidU *│
'│*** 功能描述: *│
'│*** 编写人员:朱华 *│
'│*** 编写日期:2001-06-06 *│
'│*** 修改人员: *│
'│*** 修改日期: *│
'│**********************************************************************│
'└───────────────────────────────────┘
}
unit zfrm_AutoGetBidU;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ImgList, ComCtrls, ToolWin, Menus, StdCtrls, ActnList, ExtCtrls, Buttons,
Db, DBTables;
type
Tzfrm_AutoGetBid = class(TForm)
MainMenu1: TMainMenu;
S1: TMenuItem;
H1: TMenuItem;
X1: TMenuItem;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ImageList1: TImageList;
ListView1: TListView;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
StatusBar1: TStatusBar;
PopupMenu1: TPopupMenu;
ActionList1: TActionList;
z_ShowBusiness: TAction;
z_Technology: TAction;
S2: TMenuItem;
T1: TMenuItem;
z_Answer: TAction;
N1: TMenuItem;
GroupBox1: TGroupBox;
Label1: TLabel;
GroupBox2: TGroupBox;
Label2: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label3: TLabel;
Button1: TButton;
Label4: TLabel;
Edit1: TEdit;
Label5: TLabel;
Label6: TLabel;
Edit2: TEdit;
Label7: TLabel;
GroupBox3: TGroupBox;
Edit3: TEdit;
Label8: TLabel;
GroupBox4: TGroupBox;
Panel2: TPanel;
Image1: TImage;
GroupBox5: TGroupBox;
BitBtn2: TBitBtn;
BitBtn1: TBitBtn;
Image2: TImage;
BitBtn3: TBitBtn;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Query2: TQuery;
Panel1: TPanel;
Image7: TImage;
Label9: TLabel;
Query1: TQuery;
Query3: TQuery;
Query4: TQuery;
ImageList2: TImageList;
N2: TMenuItem;
S3: TMenuItem;
A1: TMenuItem;
T2: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure X1Click(Sender: TObject);
procedure z_ShowBusinessExecute(Sender: TObject);
procedure z_AnswerExecute(Sender: TObject);
procedure z_TechnologyExecute(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure ListView1ColumnClick(Sender: TObject; Column: TListColumn);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
//Procedure CreateParams(Var Params: TCreateParams); Override;
public
{ Public declarations }
Procedure CreateParams(Var Params: TCreateParams); Override;
procedure z_InitComboBox1P();
procedure z_ShowBidUnitP();
procedure z_FlashBidListView1P();
procedure z_SelectListView1P();
procedure z_GetTenderPriceP();
procedure z_UpdateParamPriceP();
procedure z_SelectedListViewGetValuesP();
// 1, 投标报价
procedure z_TenderReportPriceP();
// 计算其他分数
procedure z_ACountScroreP();
// 2, 质量
procedure z_TenderQualityP();
// 3, 业绩
procedure z_TenderachievementP();
// 4, 安全文明
procedure z_TendercivilizationP();
// 5, 考评
procedure z_TenderCheckP();
// 6, 类似经验
procedure z_TenderExperienceP();
// 7, 质量体系认证
procedure z_TenderQualitySystemP();
// 8, 技术创新
procedure z_TenderTechnoNewP();
// 9, 企业行为
procedure z_TenderActionP();
// 得出,商务分
procedure z_TenderBusinessScoreP();
// 计算总分
procedure z_TenderCountScoreP();
function z_PublicQuery4F(Select_SQL:string):Double;
// 复位
procedure z_ResetP();
// 重新排列
procedure z_ResetListView1P(Select_SQL:string);
end;
type
Tz_AutoGet = record
z_Auto_g_gb_id: integer; // 定标编号
z_Auto_g_ui_id: integer; // 单位编号
z_Auto_ui_name: string; // 单位名称
z_Auto_gb_tenderflag:string; // 中标
z_Auto_gb_reportprice: Double; // 最终标价
z_Auto_gb_sumscore :Double; // 总分数
z_Auto_gb_business :Double; // 商务标分
z_Auto_answer :Double; // 答辩
z_Auto_techno :Double; // 技术标分
z_Auto_cancel :string; // 废标
end;
var
zfrm_AutoGetBid: Tzfrm_AutoGetBid;
z_TenderPriceD : Double; // 评标价
z_AutoGet: Tz_AutoGet;
zg_ai_id: integer; // 项目编号
z_ParamTabName: string; // 参数表名
z_s: Double; // 最终得分
z_CanAutoGetTenderFlag: boolean = True ; //自动定标标志
z_PriceListFlag :boolean=False;
z_SumListFlag :boolean=False;
implementation
uses zfrm_ProjectParamU, zmod_commonDateU, zmod_CommonFuncProcU,
zfrm_showBusinessU, zfrm_answerU, zfrm_gettechnoU, zfrm_exportcountU;
{$R *.DFM}
function Tzfrm_AutoGetBid.z_PublicQuery4F(Select_SQL:string):Double;
begin
//
try {try <1> S}
Query4.Close ;
Query4.SQL.Clear ;
Query4.SQL.Add(Select_SQL) ;
Query4.Prepare ;
Query4.Open ;
Query4.First ;
except
// 数据库错
Application.MessageBox(
'数据库连接错误,请您检查或系统管理员联系',
'数据库错',
MB_OK+MB_ICONError) ;
z_PublicQuery4F := 0 ;
Exit ;
end; {try <1> E}
z_PublicQuery4F := Query4.Fields[0].AsFloat ;
//
end;
Procedure Tzfrm_AutoGetBid.CreateParams(Var Params: TCreateParams);
begin
Inherited ;
With Params Do
exStyle := exStyle Or WS_EX_APPWINDOW;
end;
////////////////////// 用户自定义- <开始> //////////////////////
// 重新排列
procedure Tzfrm_AutoGetBid.z_ResetListView1P(Select_SQL:string);
var
NewItem: TListItem;
begin
// 3, 显示
ListView1.Items.Clear ;
zh_Select_SQL := Select_SQL ;
// try {try <1> S}
Query4.Close ;
Query4.SQL.Clear ;
Query4.SQL.Add(zh_Select_SQL) ;
Query4.Prepare ;
Query4.Open ;
Query4.First ;
{ except
// 数据库错
Application.MessageBox(
'数据库连接错误,请您检查或系统管理员联系',
'数据库错',
MB_OK+MB_ICONError) ;
Exit ;
end; {try <1> E}
while not Query4.Eof do
begin {while <1> S}
// 有记录开放"计算评标价"
BitBtn1.Enabled := True ;
NewItem:=ListView1.Items.add ;
// 保存单位编号
NewItem.StateIndex := Query4.Fields[2].AsInteger ;
//
NewItem.Caption := Query4.Fields[3].AsString ;
NewItem.SubItems.Add(Query4.Fields[4].AsString) ;
NewItem.SubItems.Add(Query4.Fields[5].AsString) ;
NewItem.SubItems.Add(Query4.Fields[6].AsString) ;
NewItem.SubItems.Add(Query4.Fields[7].AsString) ;
NewItem.SubItems.Add(Query4.Fields[8].AsString) ;
NewItem.SubItems.Add(Query4.Fields[9].AsString) ;
NewItem.SubItems.Add(Query4.Fields[10].AsString) ;
// 定标编号
NewItem.SubItems.Add(Query4.Fields[0].AsString) ;
NewItem.ImageIndex := 0 ;
Query4.Next ;
end; {while <1> E}
//
end;
// 复位
procedure Tzfrm_AutoGetBid.z_ResetP();
begin
// 复位
BitBtn1.Enabled := False ;
BitBtn2.Enabled := False ;
BitBtn3.Enabled := False ;
z_Answer.Enabled := False ;
z_Technology.Enabled := False ;
z_ShowBusiness.Enabled := False ;
Label9.Caption := '¥0.00 元' ;
//
end;
// 计算总分
procedure Tzfrm_AutoGetBid.z_TenderCountScoreP();
var
temp: double;
begin
//
zh_Select_SQL := 'select gb_businessscore,gb_answer,gb_technoscore from tm_autogetbid where g_gb_id=' + IntToStr(z_AutoGet.z_Auto_g_gb_id) ;
try {try <1> S}
Query4.Close ;
Query4.SQL.Clear ;
Query4.SQL.Add(zh_Select_SQL) ;
Query4.Prepare ;
Query4.Open ;
Query4.First ;
except
// 数据库错
Application.MessageBox(
'数据库连接错误,请您检查或系统管理员联系',
'数据库错',
MB_OK+MB_ICONError) ;
Exit ;
end; {try <1> E}
if (Query4.Fields[1].AsString = '') or (Query4.Fields[2].AsString = '') then Exit ;
temp := Query4.Fields[0].AsFloat + Query4.Fields[1].AsFloat + Query4.Fields[2].AsFloat ;
// 更新 <定标记录表> 的总得分
zh_Update_SQL := 'update tm_autogetbid set gb_sumscore=' + Format('%3.2f', [temp]) + ' where g_gb_id=' + IntToStr(z_AutoGet.z_Auto_g_gb_id) ;
zh_PublicInsDelUpdQueryP(zh_Update_SQL); //*****//
//
end;
// 得出,商务分
procedure Tzfrm_AutoGetBid.z_TenderBusinessScoreP();
var
I,J: integer;
al_values: Double;
begin
// 得到 选择值
J := ListView1.Items.Count-1 ;
for I:=0 to J do
begin
// 得到 ListView1 中值
if ListView1.Items.Item[I].SubItems[6] = '废标' then continue ;
//
z_AutoGet.z_Auto_g_gb_id := StrToInt(ListView1.Items.Item[I].SubItems[7]) ; // 定标编号
// 计算商务总分
zh_Select_SQL := 'select sum(al_values) from tm_autogetbidlist where g_gb_id=' + IntToStr(z_AutoGet.z_Auto_g_gb_id) ;
al_values := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 更新 <定标记录表> 的商务总分
zh_Update_SQL := 'update tm_autogetbid set gb_businessscore=' + FloatToStr(al_values) + ' where g_gb_id=' + IntToStr(z_AutoGet.z_Auto_g_gb_id) ;
zh_PublicInsDelUpdQueryP(zh_Update_SQL); //*****//
end; // for - end
//
end;
// 9, 企业行为
procedure Tzfrm_AutoGetBid.z_TenderActionP();
var
a,b,c,d,s,temp_s: Double;
x,y: Double;
begin
//
// 得到参数表名
zg_ai_id := 12 ;
z_ParamTabName := 'tm_funcparam' + IntToStr(zg_ai_id) ;
// 得到 参数a值
zh_Select_SQL := 'select a from ' + z_ParamTabName + ' where g_fp_id=' + IntToStr(z_FuncParamPlanI) ;
a := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 得到 参数b值
zh_Select_SQL := 'select b from ' + z_ParamTabName + ' where g_fp_id=' + IntToStr(z_FuncParamPlanI) ;
b := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 得到 参数c值
zh_Select_SQL := 'select c from ' + z_ParamTabName + ' where g_fp_id=' + IntToStr(z_FuncParamPlanI) ;
c := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 得到 参数d值
zh_Select_SQL := 'select d from ' + z_ParamTabName + ' where g_fp_id=' + IntToStr(z_FuncParamPlanI) ;
d := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 得到 参数s值
zh_Select_SQL := 'select s from ' + z_ParamTabName + ' where g_fp_id=' + IntToStr(z_FuncParamPlanI) ;
z_s := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 应该从数据库中得到, "违法"项目编号 为 28
zg_ai_id := 28 ;
// 得到 参数z值
zh_Select_SQL := 'select x from tm_assessdata where (g_ui_id = '+ IntToStr(z_AutoGet.z_Auto_g_ui_id) + ') and (g_ai_id = ' + IntToStr(zg_ai_id) + ')' ;
x := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 应该从数据库中得到, "违规"项目编号 为 29
zg_ai_id := 29 ;
// 得到 参数y值
zh_Select_SQL := 'select x from tm_assessdata where (g_ui_id = '+ IntToStr(z_AutoGet.z_Auto_g_ui_id) + ') and (g_ai_id = ' + IntToStr(zg_ai_id) + ')' ;
y := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 条件运算
if x=a then
begin
s := z_s - b ;
end
else
begin
s:= z_s - (y/c)*d ;
end;
//showmessage(floattostr(s)+ ','+floattostr(s1)+ ','+floattostr(s2));
temp_s := s ;
//showmessage(floattostr(temp_s));
if temp_s>z_s then temp_s := z_s ;
z_s := temp_s ;
if z_s<0 then z_s := 0 ;
z_s := StrToFloat(Format('%2.2f', [z_s]));
// 应该从数据库中得到, "考评"的项目编号为8
zg_ai_id := 12 ;
// 插入最终结果分数
zh_Insert_SQL := 'insert into tm_autogetbidlist values('+ IntToStr(z_AutoGet.z_Auto_g_gb_id) + ', ' + IntToStr(zg_ai_id) + ', ' + FloatToStr(z_s) + ')' ;
zh_PublicInsDelUpdQueryP(zh_Insert_SQL); //*****//
//
end;
// 8, 技术创新
procedure Tzfrm_AutoGetBid.z_TenderTechnoNewP();
var
a,b,s,temp_s: Double;
x: Double;
begin
//
// 得到参数表名
zg_ai_id := 11 ;
z_ParamTabName := 'tm_funcparam' + IntToStr(zg_ai_id) ;
// 得到 参数a值
zh_Select_SQL := 'select a from ' + z_ParamTabName + ' where g_fp_id=' + IntToStr(z_FuncParamPlanI) ;
a := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 得到 参数b值
zh_Select_SQL := 'select b from ' + z_ParamTabName + ' where g_fp_id=' + IntToStr(z_FuncParamPlanI) ;
b := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 得到 参数s值
zh_Select_SQL := 'select s from ' + z_ParamTabName + ' where g_fp_id=' + IntToStr(z_FuncParamPlanI) ;
z_s := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 应该从数据库中得到, ""的技术创新为 27
zg_ai_id := 27 ;
// 得到 参数z值
zh_Select_SQL := 'select x from tm_assessdata where (g_ui_id = '+ IntToStr(z_AutoGet.z_Auto_g_ui_id) + ') and (g_ai_id = ' + IntToStr(zg_ai_id) + ')' ;
x := z_PublicQuery4F(zh_Select_SQL) ; //***//
// 条件运算
if x=a then
s := b
else
s := 0;
//showmessage(floattostr(s)+ ','+floattostr(s1)+ ','+floattostr(s2));
temp_s := s ;
//showmessage(floattostr(temp_s));
if temp_s>z_s then temp_s := z_s ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -