📄 client_bendi_datamodule.pas
字号:
unit Client_BenDi_DataModule;
interface
uses
SysUtils, Classes, DB, ADODB,QGraphics;
type
TClient_DataModule = class(TDataModule)
Client_ADOConnection: TADOConnection;
Select_Subject_Table_Insert: TADOQuery;
DanXuan_Subject_Table: TADOTable;
DuoXuan_Subject_Table: TADOTable;
PanDuan_Subject_Table: TADOTable;
DuoXuan_Subject_TableID: TIntegerField;
DuoXuan_Subject_TableStyle: TWideStringField;
DuoXuan_Subject_TableContent: TWideStringField;
DuoXuan_Subject_TableA_option: TWideStringField;
DuoXuan_Subject_TableB_option: TWideStringField;
DuoXuan_Subject_TableC_option: TWideStringField;
DuoXuan_Subject_TableD_option: TWideStringField;
DuoXuan_Subject_TableE_option: TWideStringField;
DuoXuan_Subject_TableF_option: TWideStringField;
DuoXuan_Subject_TableA_Select: TBooleanField;
DuoXuan_Subject_TableB_Select: TBooleanField;
DuoXuan_Subject_TableC_Select: TBooleanField;
DuoXuan_Subject_TableD_Select: TBooleanField;
DuoXuan_Subject_TableE_Select: TBooleanField;
DuoXuan_Subject_TableF_Select: TBooleanField;
DuoXuan_Subject_TableSelect_Subject_value: TFloatField;
DuoXuan_Subject_TableKey_value: TIntegerField;
PanDuan_Subject_TableID: TIntegerField;
PanDuan_Subject_TableStyle: TWideStringField;
PanDuan_Subject_TableContent: TWideStringField;
PanDuan_Subject_TableA_Select: TBooleanField;
PanDuan_Subject_TableB_Select: TBooleanField;
PanDuan_Subject_TableSelect_Subject_value: TFloatField;
PanDuan_Subject_TableKey_value: TIntegerField;
DanXuan_DS: TDataSource;
DuoXuan_DS: TDataSource;
PanDuan_DS: TDataSource;
DanXuan_Subject_TableID: TIntegerField;
DanXuan_Subject_TableStyle: TWideStringField;
DanXuan_Subject_TableContent: TWideStringField;
DanXuan_Subject_TableA_option: TWideStringField;
DanXuan_Subject_TableB_option: TWideStringField;
DanXuan_Subject_TableC_option: TWideStringField;
DanXuan_Subject_TableD_option: TWideStringField;
DanXuan_Subject_TableE_option: TWideStringField;
DanXuan_Subject_TableF_option: TWideStringField;
DanXuan_Subject_TableA_Select: TBooleanField;
DanXuan_Subject_TableB_Select: TBooleanField;
DanXuan_Subject_TableC_Select: TBooleanField;
DanXuan_Subject_TableD_Select: TBooleanField;
DanXuan_Subject_TableE_Select: TBooleanField;
DanXuan_Subject_TableF_Select: TBooleanField;
DanXuan_Subject_TableSelect_Subject_value: TFloatField;
DanXuan_Subject_TableKey_value: TIntegerField;
DanXuan_Subject_TableSubject_ID: TIntegerField;
DanXuan_Subject_TableFlag: TBooleanField;
DuoXuan_Subject_TableSubject_ID: TIntegerField;
DuoXuan_Subject_TableFlag: TBooleanField;
PanDuan_Subject_TableSubject_ID: TIntegerField;
PanDuan_Subject_TableFlag: TBooleanField;
DanXuan_Subject_TableDifficulty: TWideStringField;
DuoXuan_Subject_TableDifficulty: TWideStringField;
PanDuan_Subject_TableDifficulty: TWideStringField;
Select_Subject_Table_Update: TADOQuery;
Select_Subject_Table_Delete: TADOQuery;
Function Calculate_Key_Value(A_option,B_option,C_option,D_option,E_option,F_option:Boolean):string;
procedure DuoXuan_Subject_TableAfterScroll(DataSet: TDataSet);
procedure DanXuan_Subject_TableBeforePost(DataSet: TDataSet);
procedure DanXuan_Subject_TableAfterPost(DataSet: TDataSet);
procedure DanXuan_Subject_TableAfterScroll(DataSet: TDataSet);
procedure DanXuan_Subject_TableBeforeScroll(DataSet: TDataSet);
procedure DuoXuan_Subject_TableBeforePost(DataSet: TDataSet);
procedure PanDuan_Subject_TableAfterScroll(DataSet: TDataSet);
procedure PanDuan_Subject_TableBeforeScroll(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Client_DataModule: TClient_DataModule;
implementation
uses DanXiangXuanZhe_Frm, DuoXiangXuanZhe_Frm, PanDuanTi_Frm;
{$R *.dfm}
Function TClient_DataModule.Calculate_Key_Value
(A_option,B_option,C_option,D_option,E_option,F_option:Boolean):string;
{计算题目的KEY_VALUE,对于任何题目的任何选项组合,该值是唯一的,规则如下:
KEY_VALUE为6位的字符串 'XXXXXX' ,X为0或1,0代表不选,1代表选中
例如,有某题的答案为A和D,那么它的KEY_VALUE='100100'
有某题的答案为A、B、C,那么它的KEY_VALUE='111000'}
begin
{-------------------------所有答案都不选的分值情况-----------------------------------}
If (A_option=False)and(B_option=False)and(C_option=False)and
(D_option=False)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='000000'; { }
{-------------------------所有答案都不选的分值情况-----------------------------------}
{-------------------------只选一个答案的分值情况-----------------------------------}
If (A_option=True)and(B_option=False)and(C_option=False)and
(D_option=False)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='100000'; {A}
If (A_option=False)and(B_option=True)and(C_option=False)and
(D_option=False)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='010000'; {B}
If (A_option=False)and(B_option=False)and(C_option=True)and
(D_option=False)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='001000'; {C}
If (A_option=False)and(B_option=False)and(C_option=False)and
(D_option=True)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='000100'; {D}
If (A_option=False)and(B_option=False)and(C_option=False)and
(D_option=False)and(E_option=True)and(F_option=False)
Then Calculate_Key_Value:='000010';{E}
If (A_option=False)and(B_option=False)and(C_option=False)and
(D_option=False)and(E_option=False)and(F_option=True)
Then Calculate_Key_Value:='000001';{F}
{-------------------------只选一个答案的分值情况-----------------------------------}
{-------------------------只选两个答案的分值情况-----------------------------------}
If (A_option=True)and(B_option=True)and(C_option=False)and
(D_option=False)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='110000'; {A、B}
If (A_option=True)and(B_option=False)and(C_option=True)and
(D_option=False)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='101000'; {A、C}
If (A_option=True)and(B_option=False)and(C_option=False)and
(D_option=True)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='100100'; {A、D}
If (A_option=True)and(B_option=False)and(C_option=False)and
(D_option=False)and(E_option=True)and(F_option=False)
Then Calculate_Key_Value:='100010';{A、E}
If (A_option=True)and(B_option=False)and(C_option=False)and
(D_option=False)and(E_option=False)and(F_option=True)
Then Calculate_Key_Value:='100001';{A、F}
If (A_option=False)and(B_option=True)and(C_option=True)and
(D_option=False)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='011000'; {B、C}
If (A_option=False)and(B_option=True)and(C_option=False)and
(D_option=True)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='010100';{B、D}
If (A_option=False)and(B_option=True)and(C_option=False)and
(D_option=False)and(E_option=True)and(F_option=False)
Then Calculate_Key_Value:='010010';{B、E}
If (A_option=False)and(B_option=True)and(C_option=False)and
(D_option=False)and(E_option=False)and(F_option=True)
Then Calculate_Key_Value:='010001';{B、F}
If (A_option=False)and(B_option=False)and(C_option=True)and
(D_option=True)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='001100';{C、D}
If (A_option=False)and(B_option=False)and(C_option=True)and
(D_option=False)and(E_option=True)and(F_option=False)
Then Calculate_Key_Value:='001010';{C、E}
If (A_option=False)and(B_option=False)and(C_option=True)and
(D_option=False)and(E_option=False)and(F_option=True)
Then Calculate_Key_Value:='001001';{C、F}
If (A_option=False)and(B_option=False)and(C_option=False)and
(D_option=True)and(E_option=True)and(F_option=False)
Then Calculate_Key_Value:='000110';{D、E}
If (A_option=False)and(B_option=False)and(C_option=False)and
(D_option=True)and(E_option=False)and(F_option=True)
Then Calculate_Key_Value:='000101';{D、F}
If (A_option=False)and(B_option=False)and(C_option=False)and
(D_option=False)and(E_option=True)and(F_option=True)
Then Calculate_Key_Value:='000011';{E、F}
{-------------------------只选两个答案的分值情况-----------------------------------}
{---------------------------选三个答案的分值情况-----------------------------------}
If (A_option=True)and(B_option=True)and(C_option=True)and
(D_option=False)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='111000'; {A、B、C}
If (A_option=True)and(B_option=True)and(C_option=False)and
(D_option=True)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='110100';{A、B、D}
If (A_option=True)and(B_option=True)and(C_option=False)and
(D_option=False)and(E_option=True)and(F_option=False)
Then Calculate_Key_Value:='110010'; {A、B、E}
If (A_option=True)and(B_option=True)and(C_option=False)and
(D_option=False)and(E_option=False)and(F_option=True)
Then Calculate_Key_Value:='110001';{A、B、F}
If (A_option=True)and(B_option=False)and(C_option=True)and
(D_option=True)and(E_option=False)and(F_option=False)
Then Calculate_Key_Value:='101100'; {A、C、D}
If (A_option=True)and(B_option=False)and(C_option=True)and
(D_option=False)and(E_option=True)and(F_option=False)
Then Calculate_Key_Value:='101010'; {A、C、E}
If (A_option=True)and(B_option=False)and(C_option=True)and
(D_option=False)and(E_option=False)and(F_option=True)
Then Calculate_Key_Value:='101001'; {A、C、F}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -