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

📄 scliceunit.cpp

📁 16人格测试 16人格测试 16人格测试 16人格测试
💻 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 + -