1
yhj
2024-07-24 5e5d945e91568b973faa27d8ab0bcef99fc4a6c5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
#region
 
using System;
using System.Data;
using CSFrameworkV5.Business;
using CSFrameworkV5.Common;
using CSFrameworkV5.Core;
using CSFrameworkV5.Language;
using CSFrameworkV5.Library;
using CSFrameworkV5.Library.CommonClass;
 
#endregion
 
namespace CSFrameworkV5.SystemModule
{
    /// <summary>
    ///     Language的资料管理窗体,由代码生成器(Code Generator)自动生成
    /// </summary>
    public partial class frmLanguage : frmBaseDataDictionary
    {
        private bllLanguage _BLLInstance;
 
        public frmLanguage()
        {
            InitializeComponent();
        }
 
        private void btnBaiDuApi_Click(object sender, EventArgs e)
        {
            if (gvSummary.RowCount > 0)
            {
                if (Msg.AskQuestion($"共{gvSummary.RowCount}条记录,确定要翻译吗?") ==
                    false) return;
 
                var count = 0;
                var failed = 0;
                try
                {
                    frmWaitingEx.ShowMe(this);
 
                    //选择语言界面
                    var lan = frmBaiduTrans.Execute();
                    if (string.IsNullOrWhiteSpace(lan)) return; //没选择语言,或取消操作
 
                    //对应sys_Language的语言字段
                    var field = "ENG";
                    if (lan == "cht") field = "CHT"; //繁体
 
                    if (lan == "en") field = "ENG"; //英文
 
                    if (lan == "vie") field = "VN"; //越南文
 
                    var tran = BaiduTrans.CreateDefault();
 
                    var dt = gcSummary.DataSource as DataTable;
                    foreach (DataRow r in dt.Rows)
                    {
                        r[field] = tran.Tran(r["CHS"].ToStringEx(), "zh", lan);
                        if (DoSaveRow(r))
                            count++;
                        else
                            failed++;
                    }
                }
                finally
                {
                    frmWaitingEx.HideMe(this);
                }
 
                Msg.ShowInformation($"翻译完成!成功{count},失败{failed}条记录!");
            }
            else
            {
                Msg.Warning("表格没记录!");
            }
        }
 
        private void btnEmpty_Click(object sender, EventArgs e)
        {
            ClearContainerEditorText(pnlSearch);
        }
 
        private void btnQuery_Click(object sender, EventArgs e)
        {
            //搜索数据     
            try
            {
                frmWaitingEx.ShowMe(this);
 
                var type = txt_LanType.EditValue.ToStringEx();
                if (type == "All") type = "";
 
                var dt = _BLLInstance.Query(
                    ConvertEx.ToString(txt_ObjectID.EditValue),
                    ConvertEx.ToString(txt_CHS.EditValue),
                    ConvertEx.ToString(txt_CHT.EditValue),
                    ConvertEx.ToString(txt_ENG.EditValue), type);
                DoBindingSummaryGrid(dt); //绑定主表的Grid
                ShowSummaryPage(true); //显示Summary页面.
            }
            finally
            {
                frmWaitingEx.HideMe(this);
            }
 
            if (gvSummary.RowCount == 0) Msg.Warning("没有找到数据!");
        }
 
        private void btnRefreshLan_Click(object sender, EventArgs e)
        {
            try
            {
                frmWaitingEx.ShowMe(this);
                LanLib.LanguageData.Load();
                Msg.ShowInformation("更新缓存数据成功!");
            }
            finally
            {
                frmWaitingEx.HideMe(this);
            }
        }
 
        protected override void
            ButtonStateChanged(UpdateType currentState) //按钮状态改变时触发的事件
        {
            base.ButtonStateChanged(currentState);
 
            if (currentState == UpdateType.Modify)
            {
                txtObjectID.Enabled = false; //修改状态下不允许修改主键的数据
                txtObjectID.Properties.ReadOnly = true; //修改状态下不允许修改主键的数据
            }
 
            if (currentState == UpdateType.Add) txtObjectID.Enabled = true;
 
            txtCreateTime.Properties.ReadOnly = true;
        }
 
        protected override void DoAfterSave(DataTable dataTable)
        {
            base.DoAfterSave(dataTable);
 
            //修改了数据,重新加载语言包
            //LanLib.LanguageData.Load();
        }
 
        /// <summary>
        ///     绑定修改页面中所有输入框的数据源
        /// </summary>
        /// <param name="summary">数据源</param>
        protected override void DoBindingSummaryEditor(DataTable summary)
        {
            DoBindingEditorPanel(pcDetailEditor, summary);
            //在此可绑定其它自定义的输入框,参考frmCustomer的DoBindingSummaryEditor方法
        }
 
        public override void DoSave(IButtonInfo sender)
        {
            base.DoSave(sender);
        }
 
        private bool DoSaveRow(DataRow row)
        {
            try
            {
                var dtSave = row.Table.GetChanges();
                if (dtSave != null)
                    if (_BLLInstance.Update(dtSave))
                    {
                        row.Table.AcceptChanges();
                        return true;
                    }
 
                return false;
            }
            catch
            {
                row.Table.RejectChanges();
                return false;
            }
        }
 
        private void frmLanguage_Load(object sender, EventArgs e)
        {
            InitializeForm(); //自定义初始化操作
            SetLanguage();
        }
 
        protected override void InitializeForm()
        {
            _SummaryView =
                new DevGridView(
                    gvSummary); //实例化数据主视图,此接口可支持不同的主视图,比如Grid,TreeList.
            //_ActiveEditor = txtObjectID;//进入修改状态,显示第一个焦点的输入框,可以不设置
            //_KeyEditor = txtObjectID;//主键字段输入框,可以不设置
            _DetailGroupControl = pcDetailEditor; //修改页面所有输入框的容器
            _BLL = new bllLanguage(); //实例化基类业务逻辑层
            _BLLInstance = _BLL as bllLanguage; //本窗体的业务层对象引用
            base.InitializeForm();
 
            #region 以下代码全自动生成,请调整排版和顺序
 
            #endregion
        }
 
        protected override void ShowSummary()
        {
            //重写此方法打开窗体时不显示任何数据
        }
 
        #region 自动生成的事件或方法的主体部份
 
        #endregion
    }
}