The call of the designer is similar to the call in general API programming. If the option LL_OPTION_SUPPORT_DELAYEDFIELDEFINITION is set, the steps marked with * do not need to be executed in advance. List & Label then queries sort orders, variables and fields at the required time via the data provider itself.
// Initialization
<create instance of your own ILLDataProvider implementation>
<create print job, set parameters and the data provider>
(LlJobOpen, LlSetOption)
<define data structure>
(LlDbAddTable,
LlDbAddTableRelation,
LlDbAddTableSortOrder*)
<define all possible variables>
(LlDefineVariableStart,
LlDefineVariable*,
LlDefineVariableExt*,
LlDefineVariableExtHandle*)
<define all possible fields>
(LlDefineFieldStart,
LlDefineField*,
LlDefineFieldExt*,
LlDefineFieldExtHandle*)
// Job, Designer
<start Designer>
(LlDefineLayout)
// Deinitialization
<detach Data provider and close job>
(LlSetOption,
LlJobClose)