2014-11-21 96 views
1

好的,所以这里是我所拥有的,我为我的团队创建了一个仪表板界面来简化过去的手动过程。这里输入的所有信息都需要传递。现在,.exe是独立的,可以通过共享驱动器被所有团队成员访问。称它为驱动器s保存到共享驱动器exe

团队成员创建了s:/dashboard.exe的快捷方式,并且从同一仪表板中拉出了所有快捷方式(使我更容易简化更新)..今天,我实现了一个我认为正在执行的功能比它更顺利。我创建使用My.Settings

它看起来像这样

Private Sub HandoffToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles HandoffToolStripMenuItem.Click My.Settings.SaveIncident = IncidentBox.Text My.Settings.SaveNumber = IncidentNum.Text My.Settings.SaveOpened = OpenedCall.CheckState My.Settings.SaveAnnounced = AnnouncedIC.CheckState My.Settings.SaveImpact = ImpactReport.CheckState My.Settings.SaveOC = OCBox.CheckState My.Settings.SaveSent = CheckBox6.CheckState My.Settings.SaveExec = CheckBox3.CheckState My.Settings.SaveCFAM = CBCFAM.CheckState My.Settings.SaveCFEC = CBCFEC.CheckState My.Settings.SaveCCMC = CBCCMC.CheckState My.Settings.SaveCORE = CBCORE.CheckState My.Settings.SaveFEIN = CBFEIN.CheckState My.Settings.SaveFORE = CBFORE.CheckState My.Settings.SaveFRAN = CBFRANK.CheckState My.Settings.SaveGLEN = CBGLEN.CheckState My.Settings.SaveHUNT = CBHUNT.CheckState My.Settings.SaveLENO = CBLENO.CheckState My.Settings.SaveLIJM = CBLIJ.CheckState My.Settings.SaveLIJB = CBBED.CheckState My.Settings.SaveNSUH = CBNSUH.CheckState My.Settings.SavePlAI = CBPLAI.CheckState My.Settings.SaveSOUT = CBSOUT.CheckState My.Settings.SaveSIUHN = CBSIUN.CheckState My.Settings.SaveSIUHS = CBSIUS.CheckState My.Settings.SaveSYOS = CBSYOS.CheckState My.Settings.SaveZUCK = CBZUCK.CheckState My.Settings.SaveLIHO = CBLIJH.CheckState My.Settings.SavePANS = CBMEDI.CheckState My.Settings.SaveMembers = CallMembers.Text My.Settings.SaveTRIGM = Minute.Text My.Settings.SaveTRIGS = Seconds.Text My.Settings.SaveBRIDM = BM.Text My.Settings.SaveBRIDS = BS.Text My.Settings.SaveEXECM = EM.Text My.Settings.SaveEXECS = ES.Text My.Settings.SaveTimeline = TimeLine.Text Me.Close() End Sub

是为保存代码保存功能

这里我们把它放回变量

Private Sub Dashboard_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Me.ToolTip1.SetToolTip(Me.CTOText, "Clicking this will send a text to the CTO") Me.ToolTip1.SetToolTip(Me.resolveText, "This will send a resolution text") Me.ToolTip1.SetToolTip(Me.SMSBtn, "This will send a text to SLBackupAlert") Me.ToolTip1.SetToolTip(Me.Complete, "This will output an e-mail timeline to the IC") Me.ToolTip1.SetToolTip(Me.LdrBTN, "This will populate regional directors based on sites selected") 'Handoff' IncidentBox.Text = My.Settings.SaveIncident IncidentNum.Text = My.Settings.SaveNumber OpenedCall.CheckState = My.Settings.SaveOpened AnnouncedIC.CheckState = My.Settings.SaveAnnounced ImpactReport.CheckState = My.Settings.SaveImpact OCBox.CheckState = My.Settings.SaveOC CheckBox6.CheckState = My.Settings.SaveSent CheckBox3.CheckState = My.Settings.SaveExec CBCFAM.CheckState = My.Settings.SaveCFAM CBCFEC.CheckState = My.Settings.SaveCFEC CBCCMC.CheckState = My.Settings.SaveCCMC CBCORE.CheckState = My.Settings.SaveCORE CBFEIN.CheckState = My.Settings.SaveFEIN CBFORE.CheckState = My.Settings.SaveFORE CBFRANK.CheckState = My.Settings.SaveFRAN CBGLEN.CheckState = My.Settings.SaveGLEN CBHUNT.CheckState = My.Settings.SaveHUNT CBLENO.CheckState = My.Settings.SaveLENO CBLIJ.CheckState = My.Settings.SaveLIJM CBBED.CheckState = My.Settings.SaveLIJB CBNSUH.CheckState = My.Settings.SaveNSUH CBPLAI.CheckState = My.Settings.SavePlAI CBSOUT.CheckState = My.Settings.SaveSOUT CBSIUN.CheckState = My.Settings.SaveSIUHN CBSIUS.CheckState = My.Settings.SaveSIUHS CBSYOS.CheckState = My.Settings.SaveSYOS CBZUCK.CheckState = My.Settings.SaveZUCK CBLIJH.CheckState = My.Settings.SaveLIHO CBMEDI.CheckState = My.Settings.SavePANS CallMembers.Text = My.Settings.SaveMembers Minute.Text = My.Settings.SaveTRIGM Seconds.Text = My.Settings.SaveTRIGS BM.Text = My.Settings.SaveBRIDM BS.Text = My.Settings.SaveBRIDS EM.Text = My.Settings.SaveEXECM ES.Text = My.Settings.SaveEXECS TimeLine.Text = My.Settings.SaveTimeline

一旦我拉出变量,它在我的机器上完美地工作,当我抓住我的仪表板它将有变量,如果保存正确..但我认为这是保存到.exe,所以当任何人打开s:/dashboard.exe时,他们会拉最近的副本,任何人都保存..相反,它是拉他们最最近保存的副本,即使它是共享驱动器。

是否有任何方法可以将此文件保存到.exe中,以便访问共享驱动器中的文件的任何人都可以获取相同的信息?

基本上,如果用户1将其保存在用户1的计算机上,我希望用户2能够使用用户1的数据从s:/ drive中获取它。

在此先感谢。

+1

您需要使用其他一些I/O机制专门将其写入您的驱动器。 'Settings'类只允许在用户级写入设置,这些设置会保存在本地用户文件夹中。 – 2014-11-21 13:41:52

回答

0

正如@詹姆斯提到的,'my.setting'不适合这个地方。我喜欢做的是使用数据表将它们编写为XML。

<!-- language: lang-vb --> 
'Declare a DataTable public to your application 
Public MySettings As New DataTable 

'On load of your form or application, load the existing setting if they exist 
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    'If you don't supply a full path for your file, the path will be the same as your EXE. 
    If System.IO.File.Exists("MySettings.xml") Then 
     'File exists, read from it 
     MySettings.ReadXml("MySettings.xml") 
    Else 
     'File does not exist, define it here 
     'Create the schema for the table 
     MySettings.Columns.Add(New DataColumn("SaveIncident", GetType(String))) 
     MySettings.Columns.Add(New DataColumn("SaveNumber", GetType(String))) 
     'Create you one record 
     MySettings.Rows.Add(MySettings.NewRow) 
     'Set Default values 
     MySettings.Rows(0)("SaveIncident") = "" 
     MySettings.Rows(0)("SaveNumber") = "" 
     'You may want to save it so it is out there now 
     'MySettings.WriteXml("MySettings.xml") 
    End If 
    'Set your variables if you want to use them 
    With MySettings.Rows(0) 
     IncidentBox.Text = .Item("SaveIncident") 
     IncidentNum.Text = .Item("SaveNumber") 

    End With 
End Sub 
'Here the settings are being saved on close of the form but you should do this through a save button or something. 
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing 
    With MySettings.Rows(0) 
     .Item("SaveIncident") = IncidentBox.Text 
     .Item("SaveNumber") = IncidentNum.Text 
    End With 
    MySettings.WriteXml("MySettings.xml") 
End Sub 

注意:这不是多用户友好的。最后保存的人将覆盖其他人的更改。这应该只用于很少改变的事情。

此外,使用此方法,您可以像记事本一样打开XML并对其进行编辑。所以你可以改变设置而不必打开exe。

+0

我明白你在广泛地获得什么,但是你能否应用我提供的代码给我一个关于如何导出这些设置的更好的想法?我希望它将所有这些内容写入XML并将其保存在S驱动器上,以便其他用户可以将其选中并在必要时最终重写XML文件。它本质上是通过共享驱动器将表单数据传输给其他用户。我试图转移的所有变量都列在上面的最初位置。 – Bobby 2014-11-24 11:26:01

+0

我改变了一点,所以它有2个变量名。这应该让你开始。 – Steve 2014-11-24 15:22:46

+0

史蒂夫我只是有点难度realiizing其余的将去..你开始一个名为SaveIncident和SaveNumber列,但这将意味着每个设置将获得一列,如果它真的是列SaveName和SaveAttribute SaveName是名称whats bieng保存IE SaveIncident和SaveAttribute是文本框,如Incidentbox.text – Bobby 2014-11-25 11:23:59