写这样的重复代码的最佳方式是什么?
问题描述:
下面是我的代码,它打开了Monarch实例,并与Monarch(Monarch是一个数据挖掘工具)进行一些操作。写这样的重复代码的最佳方式是什么?
我必须重复下面的代码,每次只需更改一些参数,是否有以编程方式执行此操作的方式?我想知道这样做的最有效的方法。
a = MonarchObj.SetReportFile(rawdataS10, False)
openModel = MonarchObj.SetModelFile(freeKidsModel)
MonarchObj.CurrentFilter = "Under 60"
SummerDateShow = MonarchObj.SetFieldVisible("Date2", False)
SummerDateHide = MonarchObj.SetFieldVisible("Date", True)
ExportTOS = MonarchObj.JetExportTable(saveDir, "FreeKidsS10", 0)
MonarchObj.CloseAllDocuments
即时改变零件的一个例子是“在60”“FreeKidsS10”和日期&日期2字段。
如果简单地复制和粘贴代码是最effecient代码,你能告诉我走开
答
您可以创建一个过程,将参数作为变量字段,然后在任何情况下复制并粘贴该过程。该方法的签名是这样的:
Public Sub DataMiningMethod(ByVal modelFile as object, _
ByVal currentFilter as String, _
ByVal date1 as Boolean, _
ByVal date2 as Boolean, _
ByVal exportTableName as String)
因此,整个法会是这个样子:
Public Sub DataMiningMethod(ByVal modelFile as object, _
ByVal currentFilter as String, _
ByVal date1 as Boolean, _
ByVal date2 as Boolean, _
ByVal exportTableName as String)
a = MonarchObj.SetReportFile(rawdataS10, False)
openModel = MonarchObj.SetModelFile(modelFile)
MonarchObj.CurrentFilter = currentFilter
SummerDateShow = MonarchObj.SetFieldVisible("Date2", date2)
SummerDateHide = MonarchObj.SetFieldVisible("Date", date1)
ExportTOS = MonarchObj.JetExportTable(saveDir, exportTableName , 0)
MonarchObj.CloseAllDocuments
End Sub
答
将这个代码的方法,如果你想更精确放在阶级和阶级它与像
public void mymethod(string currentFilter, bool date2, bool date)
{
a = MonarchObj.SetReportFile(rawdataS10, False)
openModel = MonarchObj.SetModelFile(freeKidsModel)
MonarchObj.CurrentFilter = currentFilter
SummerDateShow = MonarchObj.SetFieldVisible("Date2", date2)
SummerDateHide = MonarchObj.SetFieldVisible("Date", date)
ExportTOS = MonarchObj.JetExportTable(saveDir, "FreeKidsS10", 0)
MonarchObj.CloseAllDocuments
}
答
每次我看到你使用的是Excel的不同参数。您可以尝试使用数据的另一个表,使这个方法得到在每个时间线,是这样的:
A B C D
1 Under60 FreeKidsS10 Date Date2
2 Under80 FreeKidsS20 DateZ Date3
3 Over80 FreeKidsS30 DateX Date4
,你改变你的宏使用的东西,如:
a = MonarchObj.SetReportFile(rawdataS10, False)
openModel = MonarchObj.SetModelFile(freeKidsModel)
MonarchObj.CurrentFilter = 'Sheet2!$A1'
SummerDateShow = MonarchObj.SetFieldVisible('Sheet2!$D1', False)
SummerDateHide = MonarchObj.SetFieldVisible('Sheet2!$C1', True)
ExportTOS = MonarchObj.JetExportTable(saveDir, 'Sheet2!$B1', 0)
MonarchObj.CloseAllDocuments
我不知道在确切的代码,但我可以沿着这条线去达到必要的目标
哇,似乎很简单。会把这个放在一个大脑屁。非常感谢您花时间帮助! – Waller 2010-11-02 13:06:40
不客气。 – Matt 2010-11-02 13:20:03