|
按照当前操作人部门,找出相应的满意度调查的的单号,通过对比编制人设置的计划结束投票的时间,如果没有超过时间限制,参与投票的人可以选择满意度调查的单号,
通过 单号+当前人部门+时间判断结果= 控制从模版表导入模版内容.
我有7个表关系是:
模版主表 把数据写入 调查主表
模版内容表 把数据写入 调查内容表
调查选项表 负责分类存放 1.满意
1.不满意
2.同意
2.不同意
编号部门关联表 编号 部门
这个表用来存放,编制满意度调查单时指定能参与投票的部门
下面是从模版表写入调查内容表代码,需要高手帮我写点,先通过当前操作人部门 查找 编号部门关联表,找出相应的表单编号,再控制从模版表写入:
procedure TMainForm.BizFormShow(Sender: TObject);
begin
//如果调查内容主表
if not dsbmain.DataSet.Active then dsbmain.DataSet.Open;
//如果模版调查内容主表
if not dsbModelmain.DataSet.Active then dsbModelmain.DataSet.Open;
dsbmain.DataSet.Append;
dsbmain.DataSet.FieldByName('TBNumber').AsString := dsbModelmain.DataSet.FieldByName('TBNumberId').AsString;
dsbmain.DataSet.FieldByName('Initiator').AsString := dsbModelmain.DataSet.FieldByName('Editor').AsString;
dsbmain.DataSet.FieldByName('LaunchTM').AsString := dsbModelmain.DataSet.FieldByName('EditTime').AsString;
dsbmain.DataSet.FieldByName('PlanTM').AsString := dsbModelmain.DataSet.FieldByName('PlanEndTime').AsString;
dsbmain.DataSet.FieldByName('LaunchedDP').AsString := dsbModelmain.DataSet.FieldByName('OrgDp').AsString;
dsbmain.DataSet.post;
end;
procedure TMainForm.dsbmainAfterInsert(DataSet: TDataSet);
var
lNum: integer;
begin
//如果调查内容表
if not dsbcontent.DataSet.Active then dsbContent.DataSet.Open;
//如果调查内容模版表
if not dsbModelcontent.DataSet.Active then dsbModelcontent.DataSet.Open;
lNum := 1;
dsbModelcontent.DataSet.First;
while not dsbModelcontent.DataSet.Eof do
begin
dsbcontent.DataSet.Append;
dsbcontent.DataSet.FieldByName('NumberID').AsInteger := lNum;
dsbcontent.DataSet.FieldByName('SureyContent').AsString := dsbModelcontent.DataSet.FieldByName('ModelContent').AsString;
dsbcontent.DataSet.FieldByName('SelectID').AsString := dsbModelcontent.DataSet.FieldByName('SelectID').AsString;
dsbcontent.DataSet.Post;
inc(lNum);
dsbModelcontent.DataSet.Next;
end;
end; |
|