Moravské přístroje, a. s., zdroj: https://www.mii.cz/art?id=38&lang=405, vytištěno: 14.08.2025 21:37:14

Hlavní stránkaPodporaFAQControl Web 2000 FAQ

Jakým způsobem lze načíst obsah archivního souboru do aplikace?
Obsah archivního souboru (předpokládejme soubor typu DBF) lze načíst do aplikace například pomocí přístroje recipe. Aby mohl přístroj recipe načíst data z archivního databázového souboru, je nutné nadefinovat mu stejnou strukturu jako má archivní databázový soubor. Při definici struktury v přístroji recipe je třeba si uvědomit, že archivery automaticky přidávají do struktury záznamu položky pro datum a čas, pokud to ovšem není zakázáno. Standardní jména těchto položek jsou DATE a TIME. V přístroji recipe je tedy nutné jako první položku nadefinovat položku s názvem DATE, typu date o délce 8 a druhou položku s názvem TIME, typu character o délce 8 (tj. čas ve formátu hh:mm:ss). Za těmito položkami musí následovat definice položek stejná jako v archiveru. Abyste mohli data z jednotlivých položek záznamu zpracovávat v rámci aplikace, nesmíte zapomenou nadefinovat výstupní datové elementy u jednotlivých položek přístroje recipe. Archivní soubor lze pak načíst pomocí OCL metody OpenFile přístroje recipe, data ze záznamů lze zapsat na nadefinované datové elementy pomocí OCL metody SetRecipe.

Příklad: Přenesení hodnot z archivního souboru do tabulkového přístroje

recipe.OpenFile( FileName, &ok );
if ok then
  table.HideTable();
  table.OpenTable( 'template.tbw', &ok ); (* Načtení předlohy tabulky *)
  n = 0;
  rcpDB.SetRecipe( n + 1, &ok );
  while ok do
    table.SetStringValue( 1, cFirstTblRow + n, cFirstTblCol + 0, vDBD_Date, false, false );
    table.SetStringValue( 1, cFirstTblRow + n, cFirstTblCol + 1, vDBD_Time, false, false );
    table.SetRealValue( 1, cFirstTblRow + n, cFirstTblCol + 2, vDBD_Value1, false, false );
    table.SetRealValue( 1, cFirstTblRow + n, cFirstTblCol + 3, vDBD_Value2, false, false );
    table.SetRealValue( 1, cFirstTblRow + n, cFirstTblCol + 4, vDBD_Value3, false, false );
    n = n + 1;
    recipe.SetRecipe( n + 1, &ok );
  end; (* while *)
  table.ShowTable();
end;
Download ukázkové aplikace dbf2tbl.zip ( HTTP, 115KB)