//产品销售计划执行分析
  if FormName='Frm_Sal_Qry_SalePlanOfItemAnalyse' then
  begin
     Frm_Sal_Qry_SalePlanOfItemAnalyse:=TFrm_Sal_Qry_SalePlanOfItemAnalyse.Create(Mainform);
     Frm_Sal_Qry_SalePlanOfItemAnalyse.SetSysParam(FLoginId,FModuleCode,FTmpSysMenuid,FLoginDate);
     Frm_Sal_Qry_SalePlanOfItemAnalyse.SetUserParam(Param1,Param2,Param3,Param4,Param5,Param6);
     Frm_Sal_Qry_SalePlanOfItemAnalyse.InitForm(Connection,True);
     Frm_Sal_Qry_SalePlanOfItemAnalyse.Show;
  end;  //营销业务员销售计划执行分析
  if FormName='Frm_Sal_Qry_SalePlanOfSalerAnalyse' then
  begin
     Frm_Sal_Qry_SalePlanOfSalerAnalyse:=TFrm_Sal_Qry_SalePlanOfSalerAnalyse.Create(Mainform);
     Frm_Sal_Qry_SalePlanOfSalerAnalyse.SetSysParam(FLoginId,FModuleCode,FTmpSysMenuid,FLoginDate);
     Frm_Sal_Qry_SalePlanOfSalerAnalyse.SetUserParam(Param1,Param2,Param3,Param4,Param5,Param6);
     Frm_Sal_Qry_SalePlanOfSalerAnalyse.InitForm(Connection,True);
     Frm_Sal_Qry_SalePlanOfSalerAnalyse.Show;
  end;  //部门销售计划执行分析菜单调用
  if FormName='Frm_Sal_Qry_SalePlanOfDeptAnalyse' then
  begin
     Frm_Sal_Qry_SalePlanOfDeptAnalyse:=TFrm_Sal_Qry_SalePlanOfDeptAnalyse.Create(Mainform);
     Frm_Sal_Qry_SalePlanOfDeptAnalyse.SetSysParam(FLoginId,FModuleCode,FTmpSysMenuid,FLoginDate);
     Frm_Sal_Qry_SalePlanOfDeptAnalyse.SetUserParam(Param1,Param2,Param3,Param4,Param5,Param6);
     Frm_Sal_Qry_SalePlanOfDeptAnalyse.InitForm(Connection,True);
     Frm_Sal_Qry_SalePlanOfDeptAnalyse.Show;
  end;

解决方案 »

  1.   

    吧begin end中键的放在一个过程中,
    再写一个简单的判断是哪个窗体的过程,就可以比较简单的
    调用了,怎么写我就省了阿
      

  2.   

    以上说的方法我也知道,我希望将所有的(N重复行)菜单的执行模块变成一个语句块,即下面这句
    变成类变量的模式处理
    Frm_Sal_Qry_SalePlanOfDeptAnalyse:=变量.Create(Mainform)
    因为每个菜单对应的form名称及相应的参数我是写在数据库中的,所以我希望能有通用的方法去处理,而我现在用的方法是最老式的处理方法很方便。希望高手能多给些意见!
    msn:[email protected]
      

  3.   

    if FormName='Frm_Sal_Qry_SalePlanOfDeptAnalyse' then
      begin
         Frm_Sal_Qry_SalePlanOfDeptAnalyse:=TFrm_Sal_Qry_SalePlanOfDeptAnalyse.Create 你的意思是把 引号里面的东西 对应到相应的Tform上面??好像...
    你可以考虑把相应的form单独建立dll或者exe,再调用
      

  4.   

    TFrm_Sal_Qry_SalePla,TFrm_Sal_Qry_SalePlanOfSalerAnalyse,TFrm_Sal_Qry_SalePlanOfDeptAnalyse
    均继承于一个TForm_Sal_Query_Base窗体。
    TForm_Sal_Query_Base在该窗体中:
    SetSysParam,SetUserParam,InitForm 均定义为虚函数。
    增加一个函数Deal;
      procedure Deal;
      begin
         SetSysParam(FLoginId,FModuleCode,FTmpSysMenuid,FLoginDate);
         SetUserParam(Param1,Param2,Param3,Param4,Param5,Param6);
         InitForm(Connection,True);
         Show;  
      end;
    这样,该段代码可以直接写为:
      Deal;
      

  5.   

    如果这种方式改起来比较麻烦的话,不知道大家有没有别的变通方法:
     原则:动态菜单——单击鼠标时,程序从数据库中取出需要显示的form的名字然后显示这个form.
    另外还需要再增加一些参数就更好了。