Export_appl_param

C/C++Pascal

BOOL Export_appl_param(cdp_t cdp, t_export_param * epar);
function Export_appl_param(cdp : cdp_t; var epar : t_export_param) : Boolean;


Parametry

cdp
kontextová proměnná klienta
epar
struktura typu t_export_param popisující parametry exportu


Od verze

8.0, upraveno v 8.1, 9.0, 9.5

Popis

Funkce exportuje otevřenou aplikaci do souborů. Zobecňuje starší funkci Export_appl_ex (která již není ve verzi 9 použitelná). Vlastnosti exportu jsou popsány ve struktuře epar takto:

Složka význam
cbSize velikost struktury t_export_param v bajtech
hParent rodičovské okno pro případné dialogy (od verze 9 nevyužito)
with_data exportovat včetně dat v tabulkách (význam dalších 6 parametrů naleznete v popisu dialogu pro export aplikace)
with_role_privils exportovat včetně práv rolí
with_usergrp exportovat včetně práv uživatelů a skupin
exp_locked exportovat zašifrovaně
back_end exportovat pouze back-end (od verze 9 nevyužito)
date_limit pokud obsahuje nenulovou hodnotu, udává datum a exportují se pouze objekty změněné po tomto datu, je-li nula, exportují se všechny komponenty aplikace
file_name plná cesta k výstupnímu souboru s příponou APL, udává zároveň adresář pro umístění ostatních souborů vzniklých při exportu;
long_names je-li TRUE, pak se jména souborů přímo odvodí ze jmen objektů, je-li FALSE, pak jména souborů budou zkrácena na formát 8.3 (od verze 9 nevyužito)
report_progress je-li TRUE, pak se bude volat callback
callback procedura, která bude zavolána pro každý objekt exportu nebo nil.
param nepovinný parametr předaný beze změny funkci callback
schema_name jméno exportované aplikace, pokud je prázdné, použije se aktuální jméno
overwrite pokud některý z exportovaných souborů existuje a overwrite má hodnotu FALSE (0), skončí export s chybou, pokud má nenulovou hodnotu, bude soubor přepsán

Složka report_progress říká, zdá se má zobrazovat průběh exportu. Je-li callback = nil, zobrazí se průběh exportu pomocí standardního dialogu 602SQL. Je-li hodnotou složky callback ukazatel na proceduru typu:

procedure CallBack(Categ : Integer; Value : PChar; Param : Pointer ); stdcall;
void CallBack( int Categ, char * Value, void * Param );

může aplikace informovat o průběhu exportu vlastními prostředky. Argument Categ určuje typ stavové informace, argument Value její hodnotu a argument Param je kopií hodnoty složky param ze struktury t_export_param. Je-li procedura specifikována, volá ji funkce Export_appl_param při exportu každého objektu a v několika dalších situacích:

Categ ValuePopis
IMPEXP_PROGMAXpočet objektů (typu Integer) Volána na začátku exportu a ve Value je počet všech objektů v aplikaci (jako Integer), umožňuje např. nastavit property Max na ProgressBaru
CATEG_... jméno objektu Volána pro každý objekt, vrací kategorii a jméno exportovaného objektu
IMPEXP_FILENAME viz popis Pokud následuje po volání IMPEXP_PROGMAX, je Value jméno APL souboru, pokud následuje po volání CATEG_..., je Value jméno souboru s exportovaným objektem
IMPEXP_PROGSTEP N/A Volána po skončení exportu objektu, umožňuje např. posunout ProgressBar o jeden krok (Value nemá význam)
IMPEXP_ERROR popis chyby Chybové hlášení o příčině neúspěchu importu objektu, nebo o výsledku importu celé aplikace
IMPEXP_STATUS závěrečná informace o úspěchu či neúspěchu importu Na konci importu

Definici struktury t_export_param a případné procedury z parametru callback naleznete v definičních souborech pro příslušné programovací jazyky.



Návratová hodnota

Funkce vrací TRUE při úspěchu a FALSE při chybě.



Příklad

Export aktuální aplikace z Delphi (CDK)

procedure TMainForm.ac_aplexportExecute(Sender: TObject);
var
  myep : t_export_param;
  aplfile_name : string;
begin
  aplfile_name := SQL602Connection1.Application+'.apl';
  SaveDialog_expapl.FileName := 'c:\'+aplfile_name;
  SaveDialog_expapl.Filter := 'Definiční soubor (*.apl)|*.apl';

  if SaveDialog_expapl.Execute then
    aplfile_name :=  SaveDialog_expapl.FileName;
  with myep do begin
    hParent := 0;
    with_data := TRUE;
    with_role_privils := TRUE;
    with_usergrp := FALSE;
    exp_locked := FALSE;
    back_end := FALSE;
    date_limit := 0;
    file_name := Pchar(aplfile_name);
    long_names := TRUE;
    report_progress := TRUE;
    callback := NIL;
    param := NIL;
    schema_name := Pchar(SQL602Connection1.Application); //resp := ''
    overwrite := TRUE;
  end;
  myep.cbSize := SizeOf(myep);

  if SQL602Connection1.Export_appl_param(myep) then
    ShowMessage('Export proběhl OK')
  else
    ShowMessage('Export skončil s chybou');
end;

Viz