Tabella SQL con un invito all'azione?

0

Tutto ciò è fatto in Microsoft Access 2007 e SQL Server. Stiamo creando un modo per i nostri utenti di prendere rapidamente appunti su un cliente. Queste note rapide conterranno tag che richiederanno all'utente i dati basati su quel tag. I tag devono essere limitati a poche opzioni di selezione da cui l'utente può scegliere. I tag saranno codificati come [TAG] nel database.

Un paio di esempi:

Rimborso dell'ordine

[[OrderNumber]] - Was refunded 

Quando l'utente seleziona l'esempio precedente, gli verrà chiesto di inserire un elenco degli ordini del cliente attualmente selezionato e un campo per consentire all'utente di inserire un ordine specifico. Quando l'utente sceglie l'ordine, la nota rapida sarà simile a:

[123456] - Was refunded

Nota generale

Emailed receipt for order [[OrderNumber]] to email address: [emailAddress]

Sembrerebbe:

Emailed receipt for order [123456] to email address: [email protected]

Il problema

Il problema principale è che ogni tag richiama un'azione diversa.

  1. Un tag del numero dell'ordine richiama una funzione che estrae il numero dell'ordine da poche colonne in una tabella ordini.
  2. Un tag di indirizzo email mostrerà tutti gli indirizzi email del cliente corrente o consentirà all'utente di inserire un'altra email in un campo.

La nostra soluzione proposta

Abbiamo pensato di inserire i dati in una tabella con il seguente formato:

╔════════╦══════════════╦══════════════════════╦════════════════╗
║ NoteID ║   NoteTag    ║   columnReference    ║ tableReference ║
╠════════╬══════════════╬══════════════════════╬════════════════╣
║      1 ║ emailaddress ║     email address    ║ emailAddTable  ║
╚════════╩══════════════╩══════════════════════╩════════════════╝

Ora questa tabella può essere un modo rapido per acquisire i dati, ma sarà difficile per le chiamate alle funzioni, e molto sarà comunque gestito a livello di codice.

Domande

Che cos'è un modo semplice e pulito per richiamare determinate chiamate all'azione in un programma basato sui tag in una breve nota? Un grosso ciclo che controlla i tag in una stringa e poi chiama le funzioni specifiche?

    
posta Elias 07.10.2015 - 18:49
fonte

1 risposta

1

Utilizza un metodo di fabbrica.

Public Function GetObjectByClassName(ByRef className As String) As Object
    Select Case className
        Case "Cat: Set Factory = New Cat
        Case "Dog": Set Factory = New Dog
        Case Else: Err.Raise Description:="Factory does not recognise this className."
    End Select
End Function

Ora tutto ciò di cui hai bisogno è una classe per ogni azione e un metodo "esegui" in ogni classe.

Dim executor as object
executor = GetObjectByClassName("Dog")
executor.Execute() 'woof
    
risposta data 07.10.2015 - 19:03
fonte

Leggi altre domande sui tag