This sample demonstrates functions to access or modify the information stored in a Repository.
#ifdef _WIN32
#define TECIT_DLLIMPORT
#include "TFormer7.h"
#undef TECIT_DLLIMPORT
#else
#define TECIT_DLLIMPORT
#define _TEC_UNIX
#define TEC_UNIX_BUILD
#include <TECITStd/TECITStd.h>
#include <TFormer7.h>
#undef TECIT_DLLIMPORT
#undef TECIT_DLLIMPORT
#undef _TEC_UNIX
#undef TEC_UNIX_BUILD
#endif
ERRCODE ConnectToStandAloneForm (HTFORM hTForm)
{
eCode =
TFormer_SetRepositoryName (hTForm,
"C:/Documents and Settings/All Users/Application Data/TEC-IT/TFORMer/7.5/Examples/Command Line/ODBCReportPDF/ODBCReportPDF.tff");
return eCode;
}
ERRCODE ConnectToRepository (HTFORM hTForm)
{
eCode =
TFormer_SetRepositoryName (hTForm,
"C:/Documents and Settings/All Users/Application Data/TEC-IT/TFORMer/7.5/Examples/Demo Repository/Demos.tfr");
return eCode;
}
ERRCODE DataFieldUsageStandAloneForm (HTFORM hTForm)
{
LPCSTR pszProjectName = NULL;
HPROJECTVAR_ITERATOR it = NULL;
LPCSTR pszDataFieldName = NULL;
BOOL bProjectVarValid = FALSE;
bProjectVarValid = (it != NULL);
if (eCode == TYPE_E_ELEMENTNOTFOUND)
while (bProjectVarValid && eCode ==
ErrOk)
{
if (pszDataFieldName != NULL && eCode ==
ErrOk)
{
printf (pszDataFieldName);
switch (eVarUsage)
{
case eVarUsage_Calculated: printf (
" --> The value of this DataField is computed within the FormLayout");
break;
case eVarUsage_Normal : printf (
" --> The DataField is used within the FormLayout; its value can be set");
break;
case eVarUsage_NotUsed : printf (
" --> This DataField is not used in this FormLayout");
break;
case eVarUsage_Parameter : printf (
" --> This is a system DataField (like the page number) used within the FormLayout");
break;
}
printf ("\n");
}
}
return eCode;
}
ERRCODE FetchFormLayoutStandAloneForm (HTFORM hTForm)
{
HFORM_ITERATOR itForm = NULL;
LPCSTR pszFormDescription= NULL;
BOOL bFormValid = FALSE;
LPCSTR pszProjectName = NULL;
bFormValid = (itForm != NULL);
if (bFormValid && eCode ==
ErrOk)
{
printf ("description: ");
if (pszFormDescription != NULL && eCode ==
ErrOk)
printf (pszFormDescription);
printf ("\n");
}
return eCode;
}
ERRCODE IterateProjects (HTFORM hTForm)
{
HPROJECT_ITERATOR itProject = NULL;
LPCSTR pszProjectName = NULL;
BOOL bProjectValid = FALSE;
bProjectValid = (itProject != NULL);
if (eCode == TYPE_E_ELEMENTNOTFOUND)
while (bProjectValid && eCode ==
ErrOk)
{
if (pszProjectName != NULL && eCode ==
ErrOk)
printf ("project name: '%s'\n", pszProjectName);
}
return eCode;
}
ERRCODE IterateFormLayoutsRepository (HTFORM hTForm)
{
HPROJECT_ITERATOR itProject = NULL;
BOOL bProjectValid = FALSE;
LPCSTR pszProjectName = NULL;
HFORM_ITERATOR itForm = NULL;
BOOL bFormValid = FALSE;
LPCSTR pszFormName = NULL;
bProjectValid = (itProject != NULL);
if (eCode == TYPE_E_ELEMENTNOTFOUND)
while (bProjectValid && eCode ==
ErrOk)
{
if (pszProjectName != NULL && eCode ==
ErrOk)
{
printf ("project name: '%s'\n", pszProjectName);
bFormValid= (itForm != NULL);
if (eCode == TYPE_E_ELEMENTNOTFOUND)
while (bFormValid && eCode ==
ErrOk)
{
if (pszFormName != NULL && eCode ==
ErrOk)
printf (" form name: '%s'\n", pszFormName);
}
}
}
return eCode;
}
ERRCODE IterateDataFieldsStandAloneForm (HTFORM hTForm)
{
LPCSTR pszProjectName = NULL;
HPROJECTVAR_ITERATOR it = NULL;
BOOL bProjectVarValid = FALSE;
LPCSTR pszDataFieldName = NULL;
bProjectVarValid = (it != NULL);
if (eCode == TYPE_E_ELEMENTNOTFOUND)
while (bProjectVarValid && (eCode ==
ErrOk))
{
{
if (pszDataFieldName != NULL && eCode ==
ErrOk)
{
printf (pszDataFieldName);
printf ("\n");
}
}
}
return eCode;
}
void DataSourceOdbcModify ()
{
}
void DataSourceCsvModify ()
{
}
void DataSourceXmlModify ()
{
}
ERRCODE IterateDataSourcesProject (HTFORM hTForm, LPCSTR pszProjectName)
{
HDATASOURCE_ITERATOR itDataSource = NULL;
BOOL bDataSourceValid = FALSE;
LPCSTR pszDataSourceName = NULL;
HDSPARAMETER_ITERATOR itDSParam = NULL;
BOOL bDSParamValid = FALSE;
LPCSTR pszDSParamName = NULL;
bDataSourceValid = (itDataSource != NULL);
if (eCode == TYPE_E_ELEMENTNOTFOUND)
while (bDataSourceValid && eCode ==
ErrOk)
{
if (pszDataSourceName != NULL && eCode ==
ErrOk)
printf ("datasource name: '%s'\n", pszDataSourceName);
{
bDSParamValid = (itDSParam != NULL);
if (eCode == TYPE_E_ELEMENTNOTFOUND)
while (bDSParamValid && eCode ==
ErrOk)
{
if (pszDSParamName != NULL && eCode ==
ErrOk)
printf (" parameter name: '%s'\n", pszDSParamName);
}
}
}
return eCode;
}
ERRCODE IterateDataSources (HTFORM hTForm)
{
HPROJECT_ITERATOR itProject = NULL;
BOOL bProjectValid = FALSE;
LPCSTR pszProjectName = NULL;
printf ("Global project\n");
eCode = IterateDataSourcesProject (hTForm, NULL);
return eCode;
bProjectValid = (itProject != NULL);
if (eCode == TYPE_E_ELEMENTNOTFOUND)
while (bProjectValid && eCode ==
ErrOk)
{
if (pszProjectName != NULL && eCode ==
ErrOk)
{
printf ("project name: '%s'\n", pszProjectName);
eCode = IterateDataSourcesProject (hTForm, pszProjectName);
}
}
return eCode;
}
ERRCODE IterateDataSourcesStandAloneForm (HTFORM hTForm)
{
eCode = IterateDataSourcesProject (hTForm, NULL);
return eCode;
}
void ReportError (
ERRCODE eCode, HTFORM hTForm, LPCSTR pszFunction)
{
LPCSTR pszErrDescription = NULL;
LPCSTR pszErrSource = NULL;
LPCSTR pszErrInformation = NULL;
return;
if (pszFunction)
printf ("Error in %s\n", pszFunction);
printf ("Error : 0x%08x\n", eCode);
if (hTForm)
{
if (pszErrDescription && pszErrDescription[0])
printf("TFError : %s\n", pszErrDescription);
if (pszErrInformation && pszErrInformation[0])
printf("TFInformation : %s\n", pszErrInformation);
if (pszErrSource && pszErrSource[0])
printf("TFSource : %s\n", pszErrSource);
}
}
void main ()
{
HTFORM hTForm = NULL;
if (!hTForm)
return;
printf ("Stand-alone FormLayout samples\n");
eCode = ConnectToStandAloneForm (hTForm);
ReportError (eCode, hTForm, "ConnectToStandAloneForm");
{
printf ("\nFetchFormLayout:\n");
eCode = FetchFormLayoutStandAloneForm (hTForm);
ReportError (eCode, hTForm, "FetchFormLayoutStandAloneForm");
printf ("\nDataFieldUsage:\n");
eCode = DataFieldUsageStandAloneForm (hTForm);
ReportError (eCode, hTForm, "DataFieldUsageStandAloneForm");
printf ("\nIterateDataFields:\n");
eCode = IterateDataFieldsStandAloneForm (hTForm);
ReportError (eCode, hTForm, "IterateDataFieldsStandAloneForm");
printf ("\nIterateDataSources:\n");
eCode = IterateDataSourcesStandAloneForm(hTForm);
ReportError (eCode, hTForm, "IterateDataSourcesStandAloneForm");
}
printf ("\n----------------------\nRepository samples\n");
eCode = ConnectToRepository (hTForm);
ReportError (eCode, hTForm, "ConnectToRepository");
{
printf ("\nIterateProjects:\n");
eCode = IterateProjects (hTForm);
ReportError (eCode, hTForm, "IterateProjects");
printf ("\nIterateFormLayoutsRepository:\n");
eCode = IterateFormLayoutsRepository (hTForm);
ReportError (eCode, hTForm, "IterateFormLayoutsRepository");
printf ("\nIterateDataSources:\n");
eCode = IterateDataSources (hTForm);
ReportError (eCode, hTForm, "IterateDataSources");
}
}