/// <summary> /// 取得資料表關連語法。 /// </summary> /// <param name="helper">資料庫命令輔助類別。</param> /// <param name="provider">資料表關連資訊提供者。</param> /// <param name="tableDefine">資料表定義。</param> private string GeGTableJoinCommandText(IDbCommandHelper helper, GTableJoinProvider provider, GTableDefine tableDefine) { StringBuilder oBuffer; oBuffer = new StringBuilder(); oBuffer.AppendFormat("From {0} {1} ", helper.GetTableName(tableDefine.DbTableName), "A"); oBuffer.AppendLine(); foreach (GTableJoin item in provider.TableJoins) { oBuffer.AppendFormat("Left Join {2} {3} On {0}.{1}={3}.{4} ", item.LeftTableAlias, helper.GetFieldName(item.LeftFieldName), helper.GetTableName(item.RightTableName), item.RightTableAlias, helper.GetFieldName(item.RightFieldName)); // 過濾公司編號 if (StrFunc.StrIsNotEmpty(item.RightCompanyID)) { oBuffer.AppendFormat("And {0}.{1}='{2}' ", item.RightTableAlias, helper.GetFieldName(item.RightCompanyID), this.SessionInfo.CompanyID); } oBuffer.AppendLine(); } return(oBuffer.ToString()); }
/// <summary> /// 取得包含資料表別名的欄位名稱。 /// </summary> /// <param name="helper">資料庫命令輔助類別。</param> /// <param name="fieldDefine">欄位定義。</param> public string GetDbFieldName(IDbCommandHelper helper, GFieldDefine fieldDefine) { GLinkFieldMapping oMapping; oMapping = this.Mappings[fieldDefine.FieldName]; if (BaseFunc.IsNull(oMapping)) { return(StrFunc.StrFormat("{0}.{1}", "A", helper.GetFieldName(fieldDefine.DbFieldName))); } else { return(StrFunc.StrFormat("{0}.{1}", oMapping.TableAlias, helper.GetFieldName(oMapping.SourceFieldName))); } }
/// <summary> /// 取得 SELECT 欄位。 /// </summary> /// <param name="helper">資料庫命令輔助類別。</param> /// <param name="fieldDefine">欄位定義。</param> public string GetSelectField(IDbCommandHelper helper, GFieldDefine fieldDefine) { var oMapping = this.Mappings[fieldDefine.FieldName]; if (BaseFunc.IsNull(oMapping)) { if (StrFunc.SameText(fieldDefine.FieldName, fieldDefine.DbFieldName)) { return(StrFunc.StrFormat("{0}.{1}", "A", helper.GetFieldName(fieldDefine.FieldName))); } else { return(StrFunc.StrFormat("{0}.{1} As {2}", "A", helper.GetFieldName(fieldDefine.DbFieldName), fieldDefine.FieldName)); } } else { return(StrFunc.StrFormat("{0}.{1} As {2}", oMapping.TableAlias, helper.GetFieldName(oMapping.SourceFieldName), fieldDefine.FieldName)); } }
/// <summary> /// 取得選取明細欄位。 /// </summary> /// <param name="helper">資料庫命令輔助類別。</param> /// <param name="fieldDefine">欄位定義。</param> public string GetDetailSelectField(IDbCommandHelper helper, GFieldDefine fieldDefine) { GLinkFieldMapping oMapping; string sTableAlias; string sFieldName; sTableAlias = "DA"; sFieldName = StrFunc.StrFormat("{0}.{1}", this.TableName, fieldDefine.FieldName); oMapping = this.Mappings[sFieldName]; if (BaseFunc.IsNull(oMapping)) { return(StrFunc.StrFormat("{0}.{1} As {2}", sTableAlias, helper.GetFieldName(fieldDefine.DbFieldName), helper.GetFieldName(sFieldName))); } else { return(StrFunc.StrFormat("{0}.{1} As {2}", oMapping.TableAlias, helper.GetFieldName(oMapping.SourceFieldName), helper.GetFieldName(sFieldName))); } }