コード例 #1
0
        public HYS.Common.Objects.Rule.IOutboundRule[] GetRules()
        {
            List <IOutboundRule> rules = new List <IOutboundRule>();

            foreach (FileOutChannel ch0 in FileOutboundAdapterConfigMgt.FileOutAdapterConfig.OutboundChanels)
            {
                FileOutChannel ch = ch0.Clone();
                ch.Rule.RuleID = ch0.Rule.RuleID;

                if (!IsExist(ch, GWDataDBField.i_IndexGuid.FieldName))
                {
                    InsertDataID(ch);
                }
                if (!IsExist(ch, GWDataDBField.i_DataDateTime.FieldName))
                {
                    InsertDataDT(ch);
                }

                InsertFieldsForFile(ch);

                rules.Add(ch.Rule);
            }

            return(rules.ToArray());
        }
コード例 #2
0
        private void InsertFieldsForFile(FileOutChannel ch)
        {
            List <FileOutQueryResultItem> Cache = new List <FileOutQueryResultItem>();

            foreach (FileOutQueryResultItem item in ch.Rule.QueryResult.MappingList)
            {
                if (!item.ThirdPartyDBPatamter.FileFieldFlag)
                {
                    continue;
                }
                Cache.Add(item);
            }

            foreach (FileOutQueryResultItem item in Cache)
            {
                foreach (GWDataDBField f in item.ThirdPartyDBPatamter.FileFields)
                {
                    string sTargetField = f.GetFullFieldName().Replace(".", "_");;  //important!!!

                    if (!IsExist(ch, sTargetField))
                    {
                        FileOutQueryResultItem ritem = new FileOutQueryResultItem();

                        ritem.ThirdPartyDBPatamter.FieldName = "";
                        ritem.TargetField   = sTargetField;
                        ritem.GWDataDBField = f.Clone();
                        ritem.SourceField   = f.GetFullFieldName();

                        ch.Rule.QueryResult.MappingList.Add(ritem);
                    }
                }
            }
        }
コード例 #3
0
 private bool IsExist(FileOutChannel ch, string fieldname)
 {
     foreach (FileOutQueryResultItem item in ch.Rule.QueryResult.MappingList)
     {
         if (item.TargetField == fieldname)
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #4
0
        private void InsertDataID(FileOutChannel chn)
        {
            FileOutQueryResultItem item = new FileOutQueryResultItem();

            item.ThirdPartyDBPatamter.FieldName = "";
            item.TargetField   = "data_id";
            item.GWDataDBField = GWDataDBField.i_IndexGuid;
            item.SourceField   = item.GWDataDBField.FieldName;

            chn.Rule.QueryResult.MappingList.Add(item);
        }
コード例 #5
0
        private void InsertDataDT(FileOutChannel chn)
        {
            FileOutQueryResultItem item = new FileOutQueryResultItem();

            item.ThirdPartyDBPatamter.FieldName = "";
            item.TargetField   = "data_dt";
            item.GWDataDBField = GWDataDBField.i_DataDateTime;
            item.TargetField   = item.GWDataDBField.FieldName;

            chn.Rule.QueryResult.MappingList.Add(item);
        }
コード例 #6
0
        public FChannel(FFileOutConfig frm, XCollection <FileOutChannel> channels)
        {
            InitializeComponent();
            parentForm   = frm;
            channelSet   = channels;
            type         = "Add";
            channel      = new FileOutChannel();
            criteriaList = new XCollection <FileOutQueryCriterialItem>();
            resultList   = new XCollection <FileOutQueryResultItem>();

            this.Text = "Add Channel";
            GetChannelNameSet(channels);
        }
コード例 #7
0
        public FChannel(FFileOutConfig frm, XCollection <FileOutChannel> channels, int index)
        {
            InitializeComponent();
            parentForm   = frm;
            channelSet   = channels;
            type         = "Modify";
            channel      = channels[index];
            channelIndex = index;
            criteriaList = channel.Rule.QueryCriteria.MappingList;
            resultList   = channel.Rule.QueryResult.MappingList;

            this.Text = "Modify Channel";
            GetChannelNameSet(channels);
            ShowChannel();
        }
コード例 #8
0
        /// <summary>
        /// Copy Channel
        /// </summary>
        /// <param name="frm"></param>
        /// <param name="channels"></param>
        /// <param name="copyChannel"></param>
        public FChannel(FFileOutConfig frm, XCollection <FileOutChannel> channels, FileOutChannel copyChannel)
        {
            InitializeComponent();
            parentForm = frm;
            channelSet = channels;
            type       = "Add";

            channel      = copyChannel;
            criteriaList = channel.Rule.QueryCriteria.MappingList;
            resultList   = channel.Rule.QueryResult.MappingList;

            this.Text = "Add Channel";
            GetChannelNameSet(channels);
            ShowChannel();
        }
コード例 #9
0
        private void WriteData(FileOutChannel ch, DataSet ds)
        {
            if (ds == null || ds.Tables.Count < 1)
            {
                return;
            }
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                string   sFileName = FileOutboundAdapterConfigMgt.BuildOutFileName(ch, dr);
                IniFile2 iniF      = new IniFile2(sFileName, FileOutboundAdapterConfigMgt.FileOutAdapterConfig.OutGeneralParams.CodePageName);
                foreach (FileOutQueryResultItem item in ch.Rule.QueryResult.MappingList)
                {
                    if (item.ThirdPartyDBPatamter.FileFieldFlag)
                    {
                        string fname = WriteFieldData(item.ThirdPartyDBPatamter, ds, dr);
                        iniF.WriteValue(item.ThirdPartyDBPatamter.SectionName, item.ThirdPartyDBPatamter.FieldName, fname);
                    }
                    else
                    {
                        if (item.ThirdPartyDBPatamter.FieldName.Trim() == "")
                        {
                            continue;
                        }

                        string sFieldName = item.TargetField;

                        string val = "";
                        if (!Convert.IsDBNull(dr[sFieldName]))
                        {
                            val = Convert.ToString(dr[sFieldName]);
                        }

                        iniF.WriteValue(item.ThirdPartyDBPatamter.SectionName, item.ThirdPartyDBPatamter.FieldName, val);
                    }
                }

                //---- debug...
                if (!Program.bRunSingle)
                {
                    if (OnDataDischarge != null)
                    {
                        OnDataDischarge(new string[] { dr["Data_ID"].ToString() });
                    }
                }
                //----- debug end----
            }
        }
コード例 #10
0
        private void btnChannelCopy_Click(object sender, EventArgs e)
        {
            int count = channelSet.Count;

            FileOutChannel copyChannel = channelSet[channelIndex].Clone();

            copyChannel.ChannelName += "_copy";

            FChannel frm = new FChannel(this, channelSet, copyChannel);

            frm.ShowDialog(pMain);

            if (channelSet.Count > count)
            {  // Add successfully
                channelIndex = count;
                lstvChannel.Items[channelIndex].Selected = true;
            }
        }