2013-10-08 3 views
0

Мне нужна серьезная помощь в системе vb.net. Я разрабатываю систему заказа на рабочем столе, мой поток процесса идет как Customer ---> Order -------> Invoice ------> Payment, NB * все это происходит через сотрудника, сотрудника делает заказ от имени клиента.Vb.net 2008 с базой данных SQL Server 2005

Так что я хочу, чтобы во всем потоке процесса, как только вы закончили добавлять данные о клиенте, он отправляется в ORDER, поэтому я хочу, чтобы он имел тот же CustomerID для клиента, с которым я занят.

Может кто-нибудь, пожалуйста, помогите мне с кодом запуска?

ответ

0

Предполагая Customer, Order, Invoice и Payment классы:

Ord = New Order(Cust.CustomerID) 

В основном только сдавшим в настоящее время Cust идентификатора конструктора заказа, когда вы создаете его. Если вам нужно создать «пустые» заказы, перегрузить конструктор:

Class Order 
    Public Sub New() 
     ... 
    End Sub 

    Public Sub New (Cust As Long) 
     ... 
    End Sub 

Если это не представляется возможным по какой-то странной причине, сделать возможной загрузку клиента с помощью метода:

Ord = New Order() 
Ord.LoadCust(Cust.CustomerID) 

- ------------ Редакция для процедурной версии -----------------------

PUBLIC ThisCustID As String ' (?) THIS is a global variable if declared 
           ' outside a SUB like in a module 

.... клиент делает вещи

ThisCustID = ID_OF_NEW_CUST  ' what was just saved in db 

далеко в модуле заказа:

Public Sub MakeNewOrder() 
    ' has access to ThisCustID, but should not change it 
End Sub 

или:

Public Sub MakeNewOrder(CustID) 
    ' pass the current customer and avoid a global variable. 

полоскание и повторить для ThisOrderID перейти к Invoice

+0

я не могу обойтись без использования класса? Как и для моего staffID, который остается неизменным в потоке процесса, я создал подпрограмму под модулем и кнопкой входа, я закодировал: Если dr.read = true, тогда вызовите эту подпрограмму = dr (0), тогда, когда сотрудники вошли в систему, его StaffID остается неизменным, так как я могу сделать то же самое для customerID? –

+0

, то просто создайте глобальную переменную 'ThisCustomerID', присвойте ей значение для текущего сдерживания в процессе вашего клиента, а затем получите доступ к этой переменной для процесса заказа. Трудно дать элегантное решение для процедурного программирования, не видя кода. Или эти актеры все разные EXE или что-то подобное? – Plutonix

+0

Я сделал глобальную переменную. Public Sub CustID (byval CustID as String) conn.close conn.open query = "select cust_id от клиентов, где cust_id = '" и custID. Command.sqlcommand (query, conn) и т. Д. Но теперь у меня нет подсказки о том, как вызвать его в форме заказа –

Смежные вопросы