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.