📄 scliceunit.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "AdminUnit.h"
#include "SCliceUnit.h"
#include "DMUnit.h"
#include "CountUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "DBGridEh"
#pragma link "GridsEh"
#pragma link "Wwdatsrc"
#pragma link "RzPanel"
#pragma link "RzButton"
#pragma link "RzTabs"
#pragma link "RzLabel"
#pragma resource "*.dfm"
Tfrm_sclice *frm_sclice;
AnsiString cf,cq,cname,cid;
//---------------------------------------------------------------------------
__fastcall Tfrm_sclice::Tfrm_sclice(TComponent* Owner)
: TForm(Owner)
{
if(!qry_client->Active)
qry_client->Open();
}
//---------------------------------------------------------------------------
void __fastcall Tfrm_sclice::CreateParams(TCreateParams& Params)
{
//TODO: Add your source code here
TForm::CreateParams(Params);
//子窗口类型
Params.Style=WS_CHILD|WS_CLIPSIBLINGS;
//设置父为主窗体
Params.WndParent = frm_admin->rzpnl1->Handle;
Params.X = 1;
Params.Y = 0;
if(Width > frm_admin->ClientWidth)
frm_admin->ClientWidth= Width ;
Params.Width = frm_admin->rzpnl1->ClientRect.Right;
if(Height > (frm_admin->rzstsbr1->Top - frm_admin->rztlbr1->Height))
frm_admin->rzpnl1->ClientHeight = frm_admin->rztlbr1->Height + frm_admin->rzstsbr1->Height ;
Params.Height = frm_admin->rzpnl1->ClientHeight;
}
void __fastcall Tfrm_sclice::FormClose(TObject *Sender,
TCloseAction &Action)
{
frm_admin->ActiveChild = 0;
Action=caFree;
}
//---------------------------------------------------------------------------
void __fastcall Tfrm_sclice::btnExitBtnClick(TObject *Sender)
{
this->Close();
}
//---------------------------------------------------------------------------
void __fastcall Tfrm_sclice::dbgrdh1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
AnsiString sqltxt;
cid = qry_client->FieldByName("ID")->AsString;
cf = qry_client->FieldByName("CFactor")->AsString;
cq = qry_client->FieldByName("CQuestion")->AsString;
cname = qry_client->FieldByName("姓名")->AsString;
sqltxt = "select * from " + cf ;
qry_factor->Close();
qry_factor->SQL->Clear();
qry_factor->SQL->Add(sqltxt);
qry_factor->Open();
btnFindBtn->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall Tfrm_sclice::btnFindBtnClick(TObject *Sender)
{
AnsiString cFactor,cValue,cType,sqltxt;
int iNum;
frm_count->Show();
frm_count->Update();
frm_count->upPercent();
cType = qry_client->FieldByName("类型")->AsString;
frm_count->upPercent();
if(qry_factor->Active)
{
frm_count->upPercent();
qry_factor->First();
while(!qry_factor->Eof)
{
frm_count->upPercent();
cFactor = qry_factor->FieldByName("Factor")->AsString;
cValue = qry_factor->FieldByName("原始分")->AsString;
sqltxt = "select Cent from Model where Factor = \"" + cFactor.Trim() + "\" and Value = \"" + cValue.Trim() + "\" and MCode = \"" + cType.Trim() + "\"";
// ShowMessage(sqltxt);
iNum = DM->qry_factor_model(sqltxt,DM->conn,"Cent");
qry_factor->Edit();
qry_factor->FieldByName("标准分")->AsInteger = iNum;
qry_factor->Post();
qry_factor->Next();
}
}
if(qry_factor->Active)
{
frm_count->upPercent();
qry_factor->First();
while(!qry_factor->Eof)
{
frm_count->upPercent();
cType = qry_factor->FieldByName("标准分")->AsString;
qry_factor->Edit();
qry_factor->FieldByName(cType)->AsString = "*";
qry_factor->Post();
qry_factor->Next();
}
}
getSJ();
frm_count->Hide();
}
//---------------------------------------------------------------------------
void Tfrm_sclice::getSJ()
{
//TODO: Add your source code here
if(!frm_count->Showing);
frm_count->Show();
frm_count->Update();
AnsiString sqltxt;
frm_count->upPercent();
int igetSJ,A,B,C,E,F,G,H,I,L,M,N,O,Q1,Q2,Q3,Q4;
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"A\"";
frm_count->upPercent();
A = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"B\"";
frm_count->upPercent();
B = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"C\"";
frm_count->upPercent();
C = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"E\"";
frm_count->upPercent();
E = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"F\"";
frm_count->upPercent();
F = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"G\"";
frm_count->upPercent();
G = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"H\"";
frm_count->upPercent();
H = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"I\"";
frm_count->upPercent();
I = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"L\"";
frm_count->upPercent();
L = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"M\"";
frm_count->upPercent();
M = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"N\"";
frm_count->upPercent();
N = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"O\"";
frm_count->upPercent();
O = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"Q1\"";
frm_count->upPercent();
Q1 = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"Q2\"";
frm_count->upPercent();
Q2 = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"Q3\"";
frm_count->upPercent();
Q3 = runsql(sqltxt,"标准分");
frm_count->upPercent();
sqltxt = qry_factor->SQL->Text + " where Factor = \"Q4\"";
frm_count->upPercent();
Q4 = runsql(sqltxt,"标准分");
frm_count->upPercent();
//次级人格因素计算
igetSJ = ((38 + 2*L + 3*O + 4*Q4)-(2*C + 2*H + 2*Q3))/10 ;
frm_count->upPercent();
lb1->Caption = "1、适应与焦虑型:" + IntToStr(igetSJ);
frm_count->upPercent();
igetSJ = ((2*A + 3*E + 4*F + 5*H)-(2*Q2 + 11))/10;
frm_count->upPercent();
lb2->Caption = "2、内向与外向型:" + IntToStr(igetSJ);
frm_count->upPercent();
igetSJ = ((77 + 2*C + 2*E + 2*F + 2*N)-(4*A + 6*I + 2*M))/10;
frm_count->upPercent();
lb3->Caption = "3、感情用事与安详机警型:" + IntToStr(igetSJ);
frm_count->upPercent();
igetSJ = ((4*E + 3*M + 4*Q1 + 4*Q2)-(3*A + 2*G))/10;
frm_count->upPercent();
lb4->Caption = "4、怯懦与果断型:" + IntToStr(igetSJ);
frm_count->upPercent();
//十六种人格因素测验应用计算
igetSJ = C + F + (11-O) + (11-Q4);
frm_count->upPercent();
lb5->Caption = "1、心理健康因素:" + IntToStr(igetSJ);
frm_count->upPercent();
igetSJ = Q3*2 + G*2 + C*2 + E + N + Q2 + Q1;
frm_count->upPercent();
lb6->Caption = "2、专业而有成就者的人格因素:" + IntToStr(igetSJ);
frm_count->upPercent();
igetSJ = (11-A)*2 + B*2 + E + (11-F)*2 + H + I*2 + M + (11-N) + Q1 +Q2*2;
frm_count->upPercent();
lb7->Caption = "3、创造能力人格因素:" + IntToStr(igetSJ);
frm_count->upPercent();
igetSJ = B + G + Q3 + (11-F);
frm_count->upPercent();
lb8->Caption = "4、在新的环境中有成长能力的人格因素:" + IntToStr(igetSJ);
frm_count->upPercent();
}
int Tfrm_sclice::runsql(AnsiString stxt,AnsiString cid)
{
//TODO: 取因素值
frm_count->upPercent();
int inum;
if(qry1->Active) qry1->Close();
qry1->SQL->Clear();
qry1->SQL->Add(stxt);
qry1->Open();
if(qry1->RecordCount > 0)
inum = qry1->FieldByName(cid)->AsInteger;
else
inum = 0;
return inum;
}
void __fastcall Tfrm_sclice::N1Click(TObject *Sender)
{
frm_count->Show();
frm_count->Update();
frm_count->upPercent();
AnsiString tSql,ca;
frm_count->upPercent();
TADOQuery *tQryings = new TADOQuery(this);
frm_count->upPercent();
TADOQuery *tQry = new TADOQuery(this);
frm_count->upPercent();
try
{
frm_count->upPercent();
tSql = "select * from " + qry_client->FieldByName("CFactor")->AsString;
frm_count->upPercent();
tQryings->Connection = DM->conc;
frm_count->upPercent();
tQryings->Close();
frm_count->upPercent();
tQryings->SQL->Clear();
frm_count->upPercent();
tQryings->SQL->Add(tSql);
frm_count->upPercent();
tQryings->Open();
frm_count->upPercent();
tQry->Connection = DM->conc;
frm_count->upPercent();
tQry->Close();
frm_count->upPercent();
tQryings->First();
frm_count->upPercent();
while(!tQryings->Eof)
{
frm_count->upPercent();
tSql = "select SUM(RNum) as cs from " + qry_client->FieldByName("CQuestion")->AsString + " where Factor = \"" + tQryings->FieldByName("Factor")->AsString + "\"";
tQry->SQL->Clear();
tQry->SQL->Add(tSql);
tQry->Open();
tQryings->Edit();
tQryings->FieldByName("原始分")->AsInteger = tQry->FieldByName("cs")->AsInteger;
tQryings->Post();
tQryings->Next();
}
}
catch(...)
{
Application->MessageBox("系统错误,生成评测报告错误,请联系管理员。",
Application->Title.c_str(), MB_OK + MB_ICONSTOP + MB_TOPMOST);
}
delete tQryings;
delete tQry;
frm_count->Hide();
}
//---------------------------------------------------------------------------
void __fastcall Tfrm_sclice::btnDeleteBtnClick(TObject *Sender)
{
AnsiString sqltxt,tt;
tt = "您是否确认将 " + cname + " 删除";
if (Application->MessageBox(tt.c_str(),Application->Title.c_str(), MB_YESNO + MB_ICONSTOP + MB_TOPMOST) ==IDYES)
{
try
{
sqltxt = "DROP TABLE " + cf;
DM->qry_public->Close();
DM->qry_public->Connection = DM->conc;
DM->qry_public->SQL->Clear();
DM->qry_public->SQL->Add(sqltxt);
DM->qry_public->ExecSQL();
sqltxt = "DROP TABLE " + cq;
DM->qry_public->Close();
DM->qry_public->Connection = DM->conc;
DM->qry_public->SQL->Clear();
DM->qry_public->SQL->Add(sqltxt);
DM->qry_public->ExecSQL();
qry_client->Delete();
}
catch(...)
{
Application->MessageBox("系统错误,删除测试用户数据异常,请联系管理员。",
Application->Title.c_str(), MB_OK + MB_ICONSTOP + MB_TOPMOST);
}
tt = "已成功删除 " + cname;
Application->MessageBox(tt.c_str(), Application->Title.c_str(),
MB_OK + MB_ICONWARNING + MB_TOPMOST);
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -