feat: comprehensive cross-file support and performance optimization (v3.3.0)

- Implemented cross-file completion, references, and validation for .frml files.
- Optimized resource discovery using IntelliJ indexing (ReferencesSearch) to fix IDE freeze.
- Refactored shared search logic into DynFormPathUtils.
- Excluded <ROW> tags from field definition requirements.
- Updated plugin version to 3.3.0.
This commit is contained in:
2026-05-14 18:27:57 +07:00
parent b6dc46d775
commit 431e51079c
35 changed files with 4693 additions and 565 deletions

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<FORMS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dynf/dynf-form-def.xsd">
<DATASET ID="DS-PROJECT_POLICY_INFO">
<SCHEMA>APP</SCHEMA>
<TABLENAME>PROJECT_POLICY_INFO</TABLENAME>
<KEYFIELDS>PROJ_ID</KEYFIELDS>
<SQL>
<SELECT>SELECT PROJ_ID
, PROJ_PRINCIPLES
, PROJ_OBJECTIVE
, PROJ_BENEFIT
, PROJ_GOLD
, PROJ_TAGET_GROUP
, PROJ_LOCATION
, PROJ_ACTIVITY
, PROJ_RESPONDER
, PROJ_INVOLVERS
, PROJ_INVOLVISSE
, PROJ_PHASE
, PROJ_MONITORING
, CREATE_BY
, CREATE_AT
, UPDATE_BY
, UPDATE_AT
</SELECT>
<FROM>FROM PROJECT_POLICY_INFO</FROM>
<ORDER>ORDER BY PROJ_ID</ORDER>
</SQL>
<FIELDS>
<FIELD NAME="PROJ_ID" TYPE="TEXT" LABEL="proj_id" WIDTH="50"/>
<FIELD NAME="PROJ_PRINCIPLES" TYPE="TEXT" LABEL="proj_principles" WIDTH="2000"/>
<FIELD NAME="PROJ_OBJECTIVE" TYPE="TEXT" LABEL="proj_objective" WIDTH="2000"/>
<FIELD NAME="PROJ_BENEFIT" TYPE="TEXT" LABEL="proj_benefit" WIDTH="2000"/>
<FIELD NAME="PROJ_GOLD" TYPE="TEXT" LABEL="proj_gold" WIDTH="2000"/>
<FIELD NAME="PROJ_TAGET_GROUP" TYPE="TEXT" LABEL="proj_taget_group" WIDTH="2000"/>
<FIELD NAME="PROJ_LOCATION" TYPE="TEXT" LABEL="proj_location" WIDTH="100"/>
<FIELD NAME="PROJ_ACTIVITY" TYPE="TEXT" LABEL="proj_activity" WIDTH="2000"/>
<FIELD NAME="PROJ_RESPONDER" TYPE="TEXT" LABEL="proj_responder" WIDTH="1250"/>
<FIELD NAME="PROJ_INVOLVERS" TYPE="TEXT" LABEL="proj_involvers" WIDTH="2000"/>
<FIELD NAME="PROJ_INVOLVISSE" TYPE="TEXT" LABEL="proj_involvisse" WIDTH="2000"/>
<FIELD NAME="PROJ_PHASE" TYPE="TEXT" LABEL="proj_phase" WIDTH="50"/>
<FIELD NAME="PROJ_MONITORING" TYPE="TEXT" LABEL="proj_monitoring" WIDTH="2000"/>
</FIELDS>
<MASTER-DATA DATASET-ID="DS-MASTER" MASTER-FIELDS="PROJ_ID" DETAIL-FIELDS="PROJ_ID"/>
</DATASET>
<DATASET ID="DS-PROJECT_EXPENSES">
<SCHEMA>APP</SCHEMA>
<TABLENAME>PROJECT_EXPENSES</TABLENAME>
<KEYFIELDS>PROJ_ID</KEYFIELDS>
<SQL>
<SELECT>SELECT PROJ_ID
, PEXP_SEQ
, PEXP_DETAIL
, PEXP_QT_01
, PEXP_QT_02
, PEXP_QT_03
, PEXP_QT_04
, PEXP_TOTAL
, CREATE_BY
, CREATE_AT
, UPDATE_BY
, UPDATE_AT
</SELECT>
<FROM>FROM PROJECT_EXPENSES</FROM>
<ORDER>ORDER BY PROJ_ID,PEXP_SEQ</ORDER>
</SQL>
<FIELDS>
<FIELD NAME="PROJ_ID" TYPE="TEXT" LABEL="รหัสอ้างอิงโครงการ" WIDTH="50"/>
<FIELD NAME="PEXP_SEQ" TYPE="NUMBER" LABEL="ลำดับ" WIDTH="10"/>
<FIELD NAME="PEXP_DETAIL" TYPE="TEXT" LABEL="รายละเอียด" WIDTH="250"/>
<FIELD NAME="PEXP_QT_01" TYPE="NUMBER" LABEL="ไตรมาส 1" WIDTH="15"/>
<FIELD NAME="PEXP_QT_02" TYPE="NUMBER" LABEL="ไตรมาส 2" WIDTH="15"/>
<FIELD NAME="PEXP_QT_03" TYPE="NUMBER" LABEL="ไตรมาส 3" WIDTH="15"/>
<FIELD NAME="PEXP_QT_04" TYPE="NUMBER" LABEL="ไตรมาส 4" WIDTH="15"/>
<FIELD NAME="PEXP_TOTAL" TYPE="NUMBER" LABEL="รวมยอดเงิน" WIDTH="2" FORM-NAME="PROJ_BDGT_TOTAL"/>
</FIELDS>
<MASTER-DATA DATASET-ID="DS-MASTER" MASTER-FIELDS="PROJ_ID" DETAIL-FIELDS="PROJ_ID"/>
</DATASET>
</FORMS>