📄 frmmain.cs
字号:
/// </summary>
/// <param name="oleT"></param>
/// <param name="strTN"></param>
/// <returns>返回一个哈希表,键是字段名,值是字段类型</returns>
private System.Collections.Hashtable GetFieldListAndType(OleDbConnection oleT,string strTN)
{
ArrayList alField=this.GetFieldListbyTN(oleT,strTN);
ArrayList alFieldType=this.GetFieldListTypesbyTN(oleT,strTN);
System.Collections.Hashtable htFielListAndType=new Hashtable();
for(int i=0;i<alField.Count;i++)
{
htFielListAndType.Add(alField[i].ToString(),alFieldType[i].ToString());
}
return htFielListAndType;
}
private void lbMBB_SelectedIndexChanged(object sender, System.EventArgs e)
{
lvMBZD.Items.Clear();
if(trans.TargetTable.Count<=0)
trans.TargetTable.Add(lbMBB.Items[lbMBB.SelectedIndex].ToString());
else
trans.TargetTable[0]=lbMBB.Items[lbMBB.SelectedIndex].ToString();
_alTargetField=GetFieldListbyTN(trans.TargetConn,trans.TargetTable[0].ToString());
_alTargetFieldType=GetFieldListTypesbyTN(trans.TargetConn,trans.TargetTable[0].ToString());
for(int i=0;i<_alTargetField.Count;i++)
{
ListViewItem temp=new ListViewItem();
temp.Text=_alTargetField[i].ToString();
temp.SubItems.Add(_alTargetFieldType[i].ToString());
temp.SubItems.Add("");
temp.SubItems.Add("");
lvMBZD.Items.Add(temp);
}
}
private void lvMBZD_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(DragData)))
{
DragData data = (DragData)e.Data.GetData(typeof(DragData));
Point pt = lvMBZD.PointToClient( new Point(e.X, e.Y) ) ;
ListViewItem selItem=lvMBZD.GetItemAt(pt.X,pt.Y);
CFieldRelation cFieldRelation = new CFieldRelation();
cFieldRelation.SourceTable = data.m_strTableName;
cFieldRelation.SourceField = data.m_strFieldName;
cFieldRelation.SourceType = data.m_strFieldType;
cFieldRelation.TargetTable = lbMBB.Items[lbMBB.SelectedIndex].ToString();
cFieldRelation.TargetField = selItem.SubItems[0].Text;
cFieldRelation.TargetType = selItem.SubItems[1].Text;
DYGXDesign a=new DYGXDesign(oleY,cFieldRelation);
a.ShowDialog();
cFieldRelation.TransType=a.FieldRelation.TransType;
selItem.Tag = cFieldRelation;
selItem.SubItems[2].Text=data.m_strTableName+"."+data.m_strFieldName;
selItem.SubItems[3].Text=cFieldRelation.TransType;
}
}
private void lvMBZD_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
e.Effect=e.AllowedEffect;
//this.Cursor=Cursors.Cross;
//if (e.Data.GetDataPresent ( DataFormats.Text ))
// e.Effect = DragDropEffects.Copy ;
//else
//e.Effect = DragDropEffects.None ;
}
private string[] GetZDZbyZDMTM(OleDbConnection oleConn,string strTN,string strZDM)
{
string[] strsReturn=null;
if(oleConn.State==System.Data.ConnectionState.Closed)
oleConn.Open();
OleDbCommand dc=oleConn.CreateCommand();
dc.CommandText="select count(*) from "+strTN;
OleDbDataReader dr=dc.ExecuteReader();
dr.Read();
int rowCount=dr.GetInt32(0);
dr.Close();
dc.CommandText="select "+strZDM+ " from "+strTN;
dr=dc.ExecuteReader();
int i=0;
strsReturn=new string[rowCount];
while(dr.Read())
{
strsReturn[i]=dr.GetValue(0).ToString();
i++;
}
dr.Close();
dc.Dispose();
return strsReturn;
}
private void frmMain_Load(object sender, System.EventArgs e)
{
ColumnHeader a=new ColumnHeader();
a.Text="目标字段名";
a.Width=180;
ColumnHeader b=new ColumnHeader();
b.Text="字段类型";
b.Width=200;
ColumnHeader c=new ColumnHeader();
c.Text="源字段名";
c.Width=180;
ColumnHeader d=new ColumnHeader();
d.Text="转换规则";
d.Width=180;
lvMBZD.Columns.Add(a);
lvMBZD.Columns.Add(b);
lvMBZD.Columns.Add(c);
lvMBZD.Columns.Add(d);
}
private void miSaveLog_Click(object sender,System.EventArgs e)//“保存转换日志”菜单的响应方法
{
if(rtbLog.Text!="")
if(sfd.ShowDialog()==System.Windows.Forms.DialogResult.OK)
rtbLog.SaveFile(sfd.FileName,RichTextBoxStreamType.TextTextOleObjs);
}
private void miClearLog_Click(object sender,System.EventArgs e)//“清除转换日志”菜单的响应方法
{
rtbLog.Clear();
}
/// <summary>
/// "修改转换规则"菜单的响应方法
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void miModifyTransRule_Click(object sender,System.EventArgs e)
{
CFieldRelation relation=(CFieldRelation)lvMBZD.Items[lvMBZD.SelectedIndices[0]].Tag;
DYGXDesign winDYGXD=new DYGXDesign(trans.SourceConn,relation);
winDYGXD.ShowDialog();
lvMBZD.Items[lvMBZD.SelectedIndices[0]].SubItems[3].Text=winDYGXD.FieldRelation.TransType;
}
private void miDelTransRule_Click(object sender,System.EventArgs e)
{
ListViewItem selItem=lvMBZD.Items[lvMBZD.SelectedIndices[0]];
DelTransRuleOflvItem(selItem);
}
/// <summary>
/// 删除列表项中的tag和第2和3个子列表项(一般是lvMBZD列表视图)。
/// </summary>
/// <param name="selitem">指定的列表项</param>
private void DelTransRuleOflvItem(ListViewItem selitem)
{
if(selitem!=null)
{
CFieldRelation cfr=(CFieldRelation)selitem.Tag;
selitem.Tag=null;
selitem.SubItems[3].Text="";
selitem.SubItems[2].Text="";
}
}
private void menuItem2_Click(object sender, System.EventArgs e)
{
trans.FieldRelation.Clear();
for( int i=0; i<lvMBZD.Items.Count; ++i )
{
if ( lvMBZD.Items[i].Tag!=null )
{
CFieldRelation relation = (CFieldRelation)lvMBZD.Items[i].Tag;
trans.FieldRelation.Add(relation);
}
}
System.Threading.Thread thrTrans =new System.Threading.Thread(new System.Threading.ThreadStart(trans.TransitionBegin));
thrTrans.Start();
while(thrTrans.Join(40))
{
//MessageBox.Show("数据转换完成");
}
}
private string[] GetZDL(ListView lv,int ColumnIndex)
{
string[] strsZDL=new string[lv.Items.Count];
for(int i=0;i<lv.Items.Count;i++)
{
strsZDL[i]=lv.Items[i].SubItems[ColumnIndex].Text;
}
return strsZDL;
}
protected override void DefWndProc ( ref System.Windows.Forms.Message m )
{
switch(m.Msg)
{
case WM_SendLog:
string a=System.Runtime.InteropServices.Marshal.PtrToStringAnsi(m.WParam);
rtbLog.Text+=a;
break;
default:
base.DefWndProc(ref m);
break;
}
}
private void menuItem5_Click(object sender, System.EventArgs e)
{
CUpdateTransition cUpdateTrans=new CUpdateTransition();
cUpdateTrans.FieldRelation.Clear();
for( int i=0; i<lvMBZD.Items.Count; ++i )
{
if ( lvMBZD.Items[i].Tag!=null )
{
CFieldRelation relation = (CFieldRelation)lvMBZD.Items[i].Tag;
cUpdateTrans.FieldRelation.Add(relation);
}
}
frmFieldAssociate winFieldAssociate=new frmFieldAssociate();
winFieldAssociate.TargetFieldAndType=this.GetFieldListAndType(trans.TargetConn,trans.TargetTable[0].ToString());
winFieldAssociate.SourceFieldAndType=this.GetFieldListAndType(trans.SourceConn,trans.SourceTable[0].ToString());
winFieldAssociate.TargetTable=trans.TargetTable;
winFieldAssociate.SourceTable=trans.SourceTable;
winFieldAssociate.TargetFieldList=this._alTargetField;
winFieldAssociate.SourceFieldList=this._alSourceField;
winFieldAssociate.ShowDialog();
cUpdateTrans.FieldAssociate=winFieldAssociate.FieldAssociate;
cUpdateTrans.SourceConn=trans.SourceConn;
cUpdateTrans.TargetConn=trans.TargetConn;
cUpdateTrans.SourceTable=trans.SourceTable;
cUpdateTrans.TargetTable=trans.TargetTable;
System.Threading.Thread thrUpdateTrans=new System.Threading.Thread(new System.Threading.ThreadStart(cUpdateTrans.UpdateTransStart));
thrUpdateTrans.Start();
}
private void panel3_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
lbSource.Left=panel3.Width/2-lbSource.Width/2;
}
private void label3_Click(object sender, System.EventArgs e)
{
}
private void panel6_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
lbTarget.Left=panel6.Width/2-lbTarget.Width/2;
}
private void panel8_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
lbTransLog.Left=panel8.Width/2-lbTransLog.Width/2;
}
private void lvMBZD_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(lvMBZD.SelectedItems.Count>0)
{
if(e.Button==MouseButtons.Right)
lvMBZD.ContextMenu=_ctmTransRule;
}
}
private void rtbLog_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(rtbLog.Text!="")
{
if(e.Button==MouseButtons.Right)
rtbLog.ContextMenu=_ctmTransLog;
}
}
private void lvMBZD_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
{
if(lvMBZD.Sorting==SortOrder.None)
{
lvMBZD.Sorting=SortOrder.Ascending;
}
else if(lvMBZD.Sorting==SortOrder.Ascending)
{
lvMBZD.Sorting=SortOrder.Descending;
}
else
{
lvMBZD.Sorting=SortOrder.Ascending;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -