一、相关的表:
AClaims_ClaimLetter_Data 存Claim letter form实时数据的
lkp_AClaims_ClaimLetter Claim letter配置表,配置某个Claim letter的初始化字段和动态参数字段。
lkp_AClaims_ClaimLetter_DataOptions Claim letter数据源配置表,只包括select 和radio的数据源配置。
二、Claim letter目前的逻辑
首先配置lkp_AClaims_ClaimLetter表,增加ghostgraft想要的字段,包括初始化字段,和动态填值的字段。其中lkp_AClaims_ClaimLetter_DataOptions表是存储select和radio的数据源配置sql。最后把这些字段的值都保存到AClaims_ClaimLetter_Data中,这样ghostgraft只需要一个参数cCLD_ID(AClaims_ClaimLetter_Data表示一条记录的guid)就可以获取到整个form需要的数据了。
三、Claim letter 如何配置
step 1:首先配置system_report,没什么好说的,再配置lkp_AClaims_ClaimLetter 如下介绍
insert into dbo.lkp_AClaims_ClaimLetter ( Code ---这个claim letter的唯一标示,应该是唯一的,最好和真是的Claim letter的名字一样就行了 ,sREP_ID ,sREP_Name ,InitSQL ---初始化sql,一个form可能不是所有需要的字段都是填选的字段,有一些字段是获取的字段,比如policy的num,有效日期。。,这些字段不需要显示到claim letter的设置地方,而这些字段的值是需要存下来的,ghostgraft的form会用到这些字段。 ,Configration /*[ { "name": "Claimant", 字段在页面上显示的名称 "field": "Claimant", 字段名 "type": "text", 字段的类型 目前只支持text,select,checkbox,radio,textarea "default": "123", 默认值 "required": "1", 是否必填 "order": 1 排序字段 }, { "name": "Insured Name", "field": "InsuredName", "type": "select", "options": "A_002_CLAIMS_DISCLOSURE_TO_CLMNT_InsuredName", select类型的数据源,有两种形式,1:['Purk','Lion']直接是js的array;2:A_002_CLAIMS_DISCLOSURE_TO_CLMNT_InsuredName字符串,碰到是字符串会去匹配lkp_AClaims_ClaimLetter_DataOptions表,然后根据里面的初始化sql去取数据。 "default": "123", "required": "1", "order": 2 }, { "name": "Claimant CheckBox", "field": "ClaimantCheckBox", "type": "check_box", "default": "1", "required": "1", "order": 3 }, { "name": "Claimant Radio", "field": "ClaimantRadio", "type": "radio", "options": "A_002_CLAIMS_DISCLOSURE_TO_CLMNT_ClaimantRadio", radio类型的数据源,有两种形式,1:[['1','Lion'],['2','Purk']]直接是js的数组,注意是array里面套array;2:A_002_CLAIMS_DISCLOSURE_TO_CLMNT_ClaimantRadio字符串,碰到是字符串会去匹配lkp_AClaims_ClaimLetter_DataOptions表,然后根据里面的初始化sql去取数据。 "default": "123", "required": "0", "order": 4 }, { "name": "Claimant TextArea", "field": "ClaimantTextArea", "type": "text_area", "default": "123", "required": "1", "order": 5 }]*/ ) select 'A_002_CLAIMS_DISCLOSURE_TO_CLMNT' ,sREP_ID ,sREP_Name ,'select NowDate ,cCD_ClaimCode ,cCD_DOL = convert(varchar(100), cCD_DOL, 101) ,PD_ID ,PD_InceptionDate = isnull(PD_InceptionDate, '''') ,PD_EffectiveDate ,PD_ExpirationDate , --PD_GarageVehicleST, Cancel_OR_Expiration = isnull(Cancel_OR_Expiration, '''') ,Date_CancelExpiration ,LapseToDate = isnull(LapseToDate, '''') ,sCT_Phys_State ,PolicyNumber ,AgencyName ,AgencyAddress1 ,AgencyAddress2 ,AgencyCSZ ,InsuredName ,InsuredAddress1 ,InsuredAddress2 ,InsuredCSZ ,AdjusterName ,AdjusterPhone ,cCD_LossReportDate = convert(varchar(100), cCD_LossReportDate, 101) from vw_Claims_LetterInfo with ( nolock ) where cCD_ID = @cCD_ID for xml path(''root'')' ---------一定要加上 for xml path('root'),这样才能被正常解析 ,'[{ "name":"Claimant", "field":"Claimant", "type":"text", "default":"123", "required":"1", "order":1 },{ "name":"Insured Name", "field":"InsuredName", "type":"select", "options":"A_002_CLAIMS_DISCLOSURE_TO_CLMNT_InsuredName", "default":"123", "required":"1", "order":2 },{ "name":"Claimant CheckBox", "field":"ClaimantCheckBox", "type":"check_box", "default":"1", "required":"1", "order":3 },{ "name":"Claimant Radio", "field":"ClaimantRadio", "type":"radio", "options":"A_002_CLAIMS_DISCLOSURE_TO_CLMNT_ClaimantRadio", "default":"123", "required":"0", "order":4 },{ "name":"Claimant TextArea", "field":"ClaimantTextArea", "type":"text_area", "default":"123", "required":"1", "order":5 }]' from dbo.System_Reports where sREP_Name = 'A_002_CLAIMS DISCLOSURE TO CLMNT'
step2: 如果有select或radio的数据源是动态的,需要配置lkp_AClaims_ClaimLetter_DataOptions表
insert into dbo.lkp_AClaims_ClaimLetter_DataOptions ( Code ---与lkp_AClaims_ClaimLetter配置的code想匹配 ,Options --- 数据源初始化sql,select只需要返回val(直接对应select的value和text)的集合,display返回为null。 radio需要返回val(对应radio的value),display对应radio的展示名称 ) values ( 'A_002_CLAIMS_DISCLOSURE_TO_CLMNT_ClaimantRadio' ,'select 1 as val,''Claimant Radio first'' as display from policy_quote where PQ_ID=@CLMID union select 2,''Claimant Radio second''' ) insert into dbo.lkp_AClaims_ClaimLetter_DataOptions ( Code ,Options ) values ( 'A_002_CLAIMS_DISCLOSURE_TO_CLMNT_InsuredName' ,'select ''Purk Wu'',null from policy_quote where PQ_ID=@CLMID union select ''Lion Wu'',null' )