unit MainForm;
interface
uses
Business.System, Business.Model, Business.Forms, Business.Data,
Business.Model.Flow;
type
TMainForm = class(TForm)
InfoBroker1: TInfoBroker;
FuncBroker1: TFuncBroker;
GraphicPageControl1: TGraphicPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DocView1: TDocView;
DocView2: TDocView;
DataNavigator1: TDataNavigator;
DataSetBrokeryj: TDataSetBroker;
DataSetBrokerbmxmhz: TDataSetBroker;
DataNavigator2: TDataNavigator;
Button1: TButton;
FlowBroker1: TFlowBroker;
procedure Action1Execute(Sender: TObject);
procedure DataNavigator1BeforeAction(Sender: TObject; var Accept: Boolean);
procedure BizFormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FlowBroker1BeforeFlowOut(Sender: TObject; Command: TFlowOutCommand);
procedure FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
private
{private declarations}
public
{public declarations}
end;
implementation
procedure TMainForm.Action1Execute(Sender: TObject);
begin
//DocView2.Doc.
//BMCSYJBDWD.
end;
procedure TMainForm.DataNavigator1BeforeAction(Sender: TObject; var Accept: Boolean);
var
count : Integer;
tempstr : String;
i : Integer;
begin
if TBizDataSetAction(Sender).ID = BizActnConsts.ActionDataSetSave then
begin
DataSetBrokeryj.DataSet.Open;
DataSetBrokerbmxmhz.DataSet.Open;
DataSetBrokerbmxmhz.DataSet.First;
count := DataSetBrokerbmxmhz.DataSet.RecordCount;
for i:=0 to count-1 do
begin
DataSetBrokeryj.DataSet.Edit;
DataSetBrokeryj.DataSet.FieldByName('XMBS').Value := DataSetBrokerbmxmhz.DataSet.FieldByName('XMBS').Value;
DataSetBrokeryj.DataSet.FieldByName('BDMC').Value := '建议书';
DataSetBrokeryj.DataSet.FieldByName('YJMC').Value := '部门初审意见';
//Dialogs.ShowMessage(DataSetBrokeryj.DataSet.FieldByName('XMBS').Value.ToString+DataSetBrokeryj.DataSet.FieldByName('BDMC').Value.ToString+DataSetBrokeryj.DataSet.FieldByName('YJMC').Value.ToString);
if JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtontongguo.Checked then
begin
DataSetBrokeryj.DataSet.FieldByName('LXYJ').Value :='同意';
end;
if JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtontaotai.Checked then
begin
//DataSetBrokeryj.DataSet.Edit;
DataSetBrokeryj.DataSet.FieldByName('LXYJ').Value :='不同意';
end;
if JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtonxiugai.Checked then
begin
//DataSetBrokeryj.DataSet.Edit;
DataSetBrokeryj.DataSet.FieldByName('LXYJ').Value :='返回修改';
end;
DataSetBrokerbmxmhz.DataSet.Next;
end;
end;
end;
procedure TMainForm.BizFormCreate(Sender: TObject);
var tempstr : String;
begin
if DataSetBrokeryj.DataSet.FieldByName('LXYJ').Value <> nil then
begin
tempstr := DataSetBrokeryj.DataSet.FieldByName('LXYJ').Value.ToString;
if tempstr = '同意' then
begin
JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtontongguo.Checked := True;
JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtontaotai.Checked := False;
JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtonxiugai.Checked := False;
end;
if tempstr = '不同意' then
begin
JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtontaotai.Checked := True;
JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtontongguo.Checked := False;
JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtonxiugai.Checked := False;
end;
if tempstr = '返回修改' then
begin
JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtonxiugai.Checked := True;
JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtontaotai.Checked := False;
JYSYWXX.TBMCSYJBDWD(DocView2.Doc).RadioButtontongguo.Checked := False;
end;
end;
end;
procedure TMainForm.Button1Click(Sender: TObject);
var
i: Integer;
lTask: TTask;
lTasks: TList;
begin
//流转的任务列表
lTasks := TList.Create;
try
for i:= FlowBroker1.FlowControl.TaskCount-1 downto 0 do
begin
lTask := FlowBroker1.FlowControl.TaskByIndex;
lTasks.Clear;
lTasks.Add(lTask);
FlowBroker1.FlowControl.FlowOut(lTasks);
end;
finally
lTasks.Free;
end;
end;
var
//true 表示正在流转任务
//False 表示从主界面上点流转按钮进入的
taskrunning: Boolean;
procedure TMainForm.FlowBroker1BeforeFlowOut(Sender: TObject; Command: TFlowOutCommand);
begin
if not taskrunning then
begin
//从主界面上点流转按钮进入的
//保证下面流转时候是被接收的流转
taskrunning := True;
Button1.Click;
//放弃从主界面上点流转按钮的动作
taskrunning := False;
Command.Accept := False;
end;
end;
procedure TMainForm.FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
var lFlowTask :TFlowTask;
lTask :TTask;
j :integer;
lDept,lPosition,lperson :string;
begin
for j:=0 to command.FlowControl.Flow.Tasks.count -1 do
begin
lTask := Command.FlowControl.Flow.Tasks[j];
if lTask.ProcUnitID = 'XMLXSQ' then
begin
lDept :=lTask.SenderDeptID;
lPosition :=lTask.SenderPositionID;
lPerson :=lTask.SenderID;
end;
end;
lFlowTask :=Command.FlowTasks.FindFlowTask('XMLXSQ');
if lFlowTask <> nil then
begin
lFlowTask.Executors.Clear;
lFlowTask.AllowExecutorRange := Org.OrgExpr.OrgKey(lDept, lPosition, lperson) ;
lFlowTask.ExecutorRange:= Org.OrgExpr.OrgKey(lDept, lPosition, lperson) ;
lFlowTask.ReLoadAllowExecutors;
lFlowTask.ReLoadExecutors;
end;
Command.UserConfirm :=False;
end;
end. |