Technické tipy – 4 dubnové tipy jsou tady!

Automaticky přeloženo z Deepl

Add Komoncharoensiri, ředitel technických služeb společnosti 4D Inc.

Jako vývojář 4D musíte držet krok s novými pokroky, které 4D neustále dodává. Kromě tipů a triků poskytovaných týmem produktu jsou Tech Tips dalším odkazem pro osvojení si některých konceptů 4D.

Tento článek se zabývá 4 tipy:

  • Jak zacházet se zástupnými znaky SQL jako s doslovným řetězcem
  • Jak programově získat název projektu
  • Preemptivní metody v rámci stejného řetězce volání by měly být také preemptivní
  • Vytvoření nového dokumentu View Pro na základě listu

Jak zacházet se zástupnými znaky SQL jako s doslovným řetězcem?

Na rozdíl od systému 4D, který má pouze jeden zástupný znak („@“), má SQL více zástupných znaků (např. „%“, „?“, „_“, „#“ atd.). SQL používá zástupné znaky k nahrazení jednoho nebo více znaků v řetězci. Seznam zástupných znaků jazyka SQL naleznete zde. Zástupné znaky SQL se používají převážně s operátorem LIKE a klauzulí WHERE k vyhledávání zadaného vzoru ve sloupci.

Při dotazování na řetězce, které obsahují zástupné znaky SQL pomocí operátoru WHERE/LIKE v jazyce 4D SQL, musí být zástupné znaky escapovány, aby byly považovány za doslovné znaky. V operátoru LIKE je podporována klauzule ESCAPE, která označuje znak escape.

Řekněme například, že data, na která se má dotazovat, obsahují „Zákazník_1“, „Zákazník_11“, „Zaměstnanec_1“ a „Zaměstnanec_11“. Cílem je vyhledat všechny řetězce, které končí znakem „_1“.

Protože podtržítko („_“) je jedním z náhradních znaků v jazyce SQL, musí být escapováno, aby bylo považováno za doslovný znak. To lze zapsat takto.

ARRAY TEXT($results; 0)
Begin SQL
   SELECT ID from Table_1
   WHERE Field_2 LIKE '%\_1' ESCAPE '\'
   INTO : $results
End SQL

Před podtržítko („_“) se umístí znak zpětného lomítka („\“), který je pak definován jako znak escape. Znak escape způsobí, že SQL bude následující znak považovat za doslovný znak.

Programové získání názvu projektu.

Při práci v projektovém režimu je někdy potřeba zjistit název projektové aplikace. Chcete-li název projektu získat programově, použijte příkaz Složka s konstantou fk složka databáze. Vlastnost „name“ vráceného objektu složky je název projektu. Například za předpokladu, že je vytvořen projekt s názvem „example project“, v následujícím řádku:

$projectName:=Folder(fk database folder).name

$projectName se v aplikaci projektu vrátí „example project“.

Preemptivní metody v rámci stejného řetězce volání by měly být také preemptivní

Při práci s preemptivní metodou musí být všechny metody v rámci téhož řetězce volání rovněž preemptivní / thread-safe. To zahrnuje typické metody projektu a metody v rámci metod třídy, jako je například collection.sort(), kde by 1. argumentem byl název metody.

Kromě toho budou metody bezpečné pro vlákna obsahovat podmínky, jako např:

  • Musí mít povolenou vlastnost „Lze spustit v preemptivních procesech“ nebo „indiferentní“.
  • Nesmí obsahovat zásuvné moduly, které nejsou bezpečné pro vlákna (thread-unsafe)
  • Nesmí používat žádné meziprocesové proměnné
  • Nesmí volat příkazy související s rozhraním (např. DIALOG).

Vytvoření nového dokumentu VP na základě listu

Je možné vytvořit nový dokument 4D View Pro na základě konkrétního listu jiného dokumentu 4D View Pro.

Níže je uvedena obslužná metoda, která jako první parametr přijme název oblasti View Pro a požadované indexové číslo listu a vytvoří nový dokument obsahující pouze tento list jako objekt:


// VP_Extract_Sheet
#DECLARE($vpAreaName_t : Text; \
$sheetIdx_l : Integer)\
->$newVP_ob : Object

var $srcVP_ob : Object

$srcVP_ob:=VP Export to object($vpAreaName_t)

$newVP_ob:=OB Copy($srcVP_ob)

$newVP_ob.spreadJS.sheets:=New object( \
VP Get sheet name($vpAreaName_t; $sheetIdx_l); \
$newVP_ob.spreadJS.sheets[VP Get sheet name($vpAreaName_t; $sheetIdx_l)])

$newVP_ob.spreadJS.activeSheetIndex:=0
$newVP_ob.spreadJS.sheetCount:=1

To umožní, aby konkrétní listy z dokumentu VP nebo jakýkoli dokument importovaný do oblasti VP byly extrahovány jako vlastní dokument VP.

Zabalit

Tak to jsou naše 4 tipy a triky na duben! Doufám, že jste se dozvěděli něco nového a budete je používat při každodenním kódování.

Pokud se vám výše uvedené tipy líbily, další byste našli ve znalostní databázi 4D, knihovně informací o technologii 4D, kde jsou průběžně zveřejňovány týdenní technické tipy a měsíční technotes. Již léta pomáhá zákazníkům najít odpovědi na jejich problémy a bude v tom pokračovat i v dalších letech.

Add Komoncharoensiri
Add Komoncharoensiri je klíčovým členem týmu technické podpory od roku 2000. Svou kariéru ve společnosti začal jako inženýr technické podpory a poté se v roce 2003 vypracoval na pozici 4D Evangelist, v roce 2006 na pozici Internal Application Manager a v roce 2007 na pozici Director of Technical Services.Add získal v roce 2000 bakalářský titul v oboru počítačových věd na San Jose State University. Jeho vášní je uživatelská zkušenost (UX) a programování uživatelského rozhraní. Podílel se na vývoji a správě webových stránek 4D Knowledgebase a 4D Partner Central.