sql >> Databáze >  >> RDS >> Access

Krásné bloky Boilerplate

Ve svém článku The ArrowKeyNav Routine jsem představil Sub, který můžete použít k přepsání výchozího zacházení s klávesami se šipkami nahoru a dolů na souvislém formuláři. Problém s rutinou, jak jsem ji představil, je, že ji musíte volat z každého ovládacího prvku, kde chcete potlačit funkci šipky.

Zde je návod, jak by to mohlo vypadat v modulu formuláře:

Private Sub cbSupplierID_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav KeyCode, Shift
End Sub

Private Sub chkDiscontinued_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav KeyCode, Shift 
End Sub

Private Sub tbID_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav KeyCode, Shift
End Sub

Private Sub tbListPrice_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav KeyCode, Shift
End Sub

Private Sub tbProductCode_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav vbKeyDown, Shift
End Sub

Private Sub tbProductName_KeyDown(KeyCode As Integer, Shift As Integer)
    ArrowKeyNav KeyCode, Shift
End Sub

Existuje několik způsobů, jak snížit množství standardního kódu, který v této situaci potřebujeme, ale pro účely tohoto článku to necháme stranou. Takže pro argumentaci předpokládejme, že neexistuje způsob, jak snížit množství kódu. Vzhledem k tomuto omezení, jak můžeme zvýšit čitelnost výše uvedeného kódu?

Spojení řádků kódu pomocí dvojtečky

Můžeme spojit více řádků kódu pomocí dvojtečky (: ).

se používá jako koncový prvek syntaktické gramatiky k pojmenování tokenu který funguje jako značka „konce příkazu“. Obecně je konec příkazu označen buď nebo znakem dvojtečky .

Zlepšení čitelnosti spojením řádků

Tato technika je něco, co musíte používat opatrně. Pokud se však použije uvážlivě, může zvýšit čitelnost vašeho kódu.

Ve výše uvedeném ukázkovém kódu každý Sub volá stejný přesný kód:

ArrowKeyNav KeyCode, Shift

Ve skutečnosti to není pravda. Když se podíváte pozorně, uvidíte, že tbProductCode_KeyDown() rutina prochází vbKeyDown namísto KeyCode jako první argument.

Tento rozdíl lze snadno přehlédnout při použití standardního formátování VBA:

Špatný kód vypadá špatně

Pokud spojíme řádky pomocí dvojteček – a upravíme mezery, aby všechna naše volání ArrowKeyNav jsou zarovnány doleva – pak nekonzistence, která se prolíná výše, vynikne v níže uvedeném kódu jako bolavý palec:

Při pohledu v kontextu normálních funkcí a podprogramů se náš blok standardního kódu jasně odlišuje. Toto rozlišení pomáhá zvýšit poměr signálu k šumu našeho kódu:


  1. Křížová tabulka s velkým nebo nedefinovaným počtem kategorií

  2. SQLite žádný takový sloupec

  3. Jak mohu opravit tuto chybu:není podporován SQL92?

  4. Způsobeno:java.lang.NoSuchMethodError:org.postgresql.core.BaseConnection.getEncoding()Lorg/postgresql/core/Encoding;