TFormer_GetFirstProjectVarIt

Repository Access · String encodings

Definition

Windows: ANSI; Unix: UTF-8

HPROJECTVAR_ITERATOR TFormer_GetFirstProjectVarIt(HTFORM pInstance, LPCSTR pszProjectName, ERRCODE * peCode);

Windows only: UTF-16

HPROJECTVAR_ITERATOR TFormer_GetFirstProjectVarItW(HTFORM pInstance, LPCWSTR pszProjectName, ERRCODE * peCode);

Contract

Returns an iterator pointing to the first DataField in the specified Project.

Creates a new DataField iterator and sets its position to the first DataField in the Project specified by pszProjectName. If pszProjectName is NULL or empty the DataField of the global Project are iterated. To get the name of the DataField call TFormer_ProjectVarItGetName.

Returns

Iterator in case of success, NULL in case of an error (check peCode in this case)

Parameters

Parameter / typeDescription
pInstanceHTFORM


The TFORMer instance provided by a previous call to TFormer_Init

pszProjectNameLPCSTR / LPCWSTR


The name of the Project within the Repository.

peCodeERRCODE *


Error code, ErrOk (0) in case of success

Note

Release the iterator after use with TFormer_FreeProjectVarIt! Memory leaks may occur otherwise.

This example iterates all DataFields within the global Project.

  ERRCODE               eCode             = ErrOk;
  LPCSTR                pszProjectName    = NULL; // we want to iterate datafields of global Project
  HPROJECTVAR_ITERATOR  it                = NULL;
  BOOL                  bProjectVarValid  = FALSE;
  EVarUsage             eVarUsage         = eVarUsage_Invalid;
  LPCSTR                pszDataFieldName  = NULL;

  it               = TFormer_GetFirstProjectVarIt (hTForm, pszProjectName, &eCode);
  bProjectVarValid = (it != NULL);

  // TYPE_E_ELEMENTNOTFOUND should not be treated as error
  if (eCode == TYPE_E_ELEMENTNOTFOUND)
    eCode = ErrOk;

  // iterate all DataFields
  while (bProjectVarValid && (eCode == ErrOk))
  {
    // check, whether the DataField is editable
    eVarUsage = TFormer_ProjectVarItGetUsage (hTForm, it, &eCode);      
    if ((eVarUsage == eVarUsage_Normal) && (eCode == ErrOk))
    {
      // do something
      pszDataFieldName = TFormer_ProjectVarItGetName (it, &eCode);
      if (pszDataFieldName != NULL && eCode == ErrOk)
      {
        printf (pszDataFieldName);
        printf ("\n");
      }
    }

    // get next DataField
    bProjectVarValid = (TFormer_GetNextProjectVarIt (it) == ErrOk);
  }

  // release iterator
  TFormer_FreeProjectVarIt (it);

Search documentation

Search in
More scopes
Additional scopes

All contents