Obtenir des données variables à partir d'une forme à une autre dans vb.net
J'ai écrit un programme pour calculer des données de paie une fois que l'employé saisit ses informations et heures. J'ai un problème pour lire les données à partir de variables dans une forme à une autre. Ce que j'essayais de faire, c'était de la lecture à partir d'un formulaire appelé feuille de temps dans mon autre forme appelée Payroll_Submission. Voici le code que j'ai jusqu'ici et j'ai vraiment besoin d'obtenir des données à partir de l'autre forme de faire mes calculs. S'il vous plaît laissez-moi savoir si vous avez besoin de mon code de la feuille de temps, c'est long donc je n'ai pas attacher cette fois.
Public Class Payroll_Submission
Private Sub Payroll_Submission_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim counter As Integer
counter = 0
lblEmployee.Text = TimeSheet.EmpName
lblSuperName.Text = TimeSheet.Supervisor
lblReport.Text = TimeSheet.Period
If Not TimeSheet.flag Then
lblHoursWorked.Text = TimeSheet.txtMon1 + TimeSheet.txtTues1 + TimeSheet.txtWed1 + TimeSheet.txtThurs1 + TimeSheet.txtFri1 + TimeSheet.txtSat1 + TimeSheet.txtSun1
If lblOvertimeHours.Text > 40 Then
lblRegHours.Text = 40
lblRegHours.Text = lblHoursWorked.Text - 40
Else
lblRegHours.Text = lblHoursWorked.Text
lblOvertimeHours.Text = 0
End If
lblOvertimeHours.Text = "$15"
lblRateOver.Text = "$22.50"
HourlyPay.Text = Convert.ToInt32(lblRegHours.Text) * 15
lblOvertimeHours.Text = Convert.ToInt32(lblOvertimeHours.Text) * 22.5
lblGrossPay.Text = Convert.ToInt32(HourlyPay.Text) + Convert.ToInt32(lblOvertimeHours.Text)
If TimeSheet.chk1.Checked Then
counter = counter + 1
End If
If TimeSheet.chk2.Checked Then
counter = counter + 1
End If
If TimeSheet.chk3.Checked Then
counter = counter + 1
End If
If TimeSheet.chk4.Checked Then
counter = counter + 1
End If
If TimeSheet.chk5.Checked Then
counter = counter + 1
End If
If TimeSheet.chk6.Checked Then
counter = counter + 1
End If
If TimeSheet.chk7.Checked Then
counter = counter + 1
End If
lblPTOHours.Text = counter
End If
HourlyPay.Text = Convert.ToInt32(lblRegHours.Text) * 15
lblOvertimeHours.Text = Convert.ToInt32(lblOvertimeHours.Text) * 22.5
lblGrossPay.Text = Convert.ToInt32(lblRegHours.Text) + Convert.ToInt32(lblOvertimeHours.Text)
End Sub
Fin De La Classe
Vous devez vous connecter pour publier un commentaire.
Si je comprends ce que votre désir de le faire correctement, il est en fait très simple.
Dans votre feuille de temps de la forme appelez-vous votre Forme de livre de Paie de ce genre?
Si vous faites comme cela, vous devriez être en mesure d'accéder à tous les contrôles sur la feuille de paie de par:
etc etc.
Ce sera ensuite mis chacune des étiquettes et d'autres contrôles sur la forme de livre de Paie pour les Variables que vous avez dans vos feuilles de temps de la forme.
Vous devez assurez-vous de définir vos contrôles sur la forme de livre de Paie avant de le faire .showdialog.
Tout devrait ressembler à ceci:
Déclarer vos variables dans la feuille de temps de la forme en tant qu'Ami. par exemple,
En supposant que vous créez le
Payroll_Submission
forme de votreTimesheet
forme je regarde l'ajout d'un deuxième constructeur de votrePayroll_Submission
forme:Lorsque vous créez le formulaire de passer une référence à votre formulaire via le constructeur
Puis, une fois que vous remplacez les références à
TimeSheet
être_ts
, votre code doit fonctionner correctement.Simplement en regardant votre code, vous pourriez aussi le faire pour le rétrécir un peu pour le calcul de
counter
:InitializeComponent()
au lieu deMe.New
TimeSheet
à_ts
dans votre code, et il doit être fine.InitializeComponent()
de fonctionner, mais j'ai essayé d'obtenir constructeur de chaînage de travail. Il a été un moment depuis que j'ai écrit dans VB.NET alors j'ai peut être eu de la syntaxe de mal. Il est préférable d'utiliser le constructeur de chaînage.Payroll_Submission
forme.