The CeFree annotation is designed to handle custom processing and output for:

1️⃣ Reports of type GeneratorType.ReportCursor (cursor-based reports).

2️⃣ Independent utility objects with a form-like UI that can be used for:


Annotation Parameters:

🖥️ Output & Custom Rendering

📋 Table Display Configuration


Example Usage:

1️⃣ Custom Report UI Using CeFree


@ObjectGeneratorCE(type = GeneratorType.Free, label = "Payments Balance", generationLevel = GenerationLevel.UI)
@CeFree(fields = "fields", alternatingRowColors = true, withRowNumber = true)
data class FreeReportUtilityPaymentsEntityResult(
    override var id: Long,
    var period: Long,
    var registratorID: Long,
    var stringID: Long,
    var registratorType: Int,
    var transactionType: TransactionType,
    var addressId: Long,
    var zoneId: Long,
    var amount: Double
) : BaseEntity {
    @Composable
    override fun StatusIcon() {
        Icons.Default.Build
    }

    @Composable
    override fun StatusVectosIcon(): IconVector {
        return IconVector(imageVector = Icons.Default.Build, contentDescription = "Setting", tint = Color.Cyan)
    }
}

// Function to define custom table fields
fun fields(): List<ReportField> {
    return listOf(
        ReportField(
            name = "name",
            headerTitle = LocalizationManager.getTranslation("name"),
            headerTextColor = Color.DarkGray,
            headerBackgroundColor = Color.Yellow,
            type = FieldTypeHelper.TEXT
        )
    )
}

2️⃣ Custom Cursor Processing (Manual Handling)