?? zkshow.cs
字號:
/// 添加datagrid的列標題
/// </summary>
/// <param name="myset">層信息的dataset</param>
private void addstyle(DataSet Ceng_DataSet)
{
DataSet yanset = new DataSet();
DataBase myDB = new DataBase();
yanset = myDB.RunProcedure("get_yanxin","yan");
CurrencyManager objcengCM;
GridTableStyle = new DataGridTableStyle();
GridTableStyle.MappingName = "cenginfo";
objcengCM = (System.Windows.Forms.CurrencyManager)this.BindingContext[Ceng_DataSet.Tables[0]];
GridTableStyle.GridColumnStyles.Add(new DataGridTextBoxColumn(objcengCM .GetItemProperties()["煤層名稱"]));
GridTableStyle.GridColumnStyles[0].MappingName = "煤層名稱";
GridTableStyle.GridColumnStyles[0].HeaderText = "煤層名稱";
GridTableStyle.GridColumnStyles[0].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[0].NullText = string.Empty;
GridTableStyle.GridColumnStyles.Add(new DataGridTextBoxColumn(objcengCM .GetItemProperties()["止煤深度"]));
GridTableStyle.GridColumnStyles[1].MappingName = "止煤深度";
GridTableStyle.GridColumnStyles[1].HeaderText = "止煤深度";
GridTableStyle.GridColumnStyles[1].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[1].NullText = string.Empty;
GridTableStyle.GridColumnStyles.Add(new DataGridTextBoxColumn(objcengCM .GetItemProperties()["底板坐標x"]));
GridTableStyle.GridColumnStyles[2].MappingName = "底板坐標x";
GridTableStyle.GridColumnStyles[2].HeaderText = "底板坐標x";
GridTableStyle.GridColumnStyles[2].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[2].NullText = string.Empty;
GridTableStyle.GridColumnStyles.Add(new DataGridTextBoxColumn(objcengCM .GetItemProperties()["底板坐標y"]));
GridTableStyle.GridColumnStyles[3].MappingName = "底板坐標y";
GridTableStyle.GridColumnStyles[3].HeaderText = "底板坐標y";
GridTableStyle.GridColumnStyles[3].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[3].NullText = string.Empty;
GridTableStyle.GridColumnStyles.Add(new DataGridTextBoxColumn(objcengCM .GetItemProperties()["底板坐標z"]));
GridTableStyle.GridColumnStyles[4].MappingName = "底板坐標z";
GridTableStyle.GridColumnStyles[4].HeaderText = "底板坐標z";
GridTableStyle.GridColumnStyles[4].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[4].NullText = string.Empty;
GridTableStyle.GridColumnStyles.Add(new DataGridTextBoxColumn(objcengCM .GetItemProperties()["煤層偽厚"]));
GridTableStyle.GridColumnStyles[5].MappingName = "煤層偽厚";
GridTableStyle.GridColumnStyles[5].HeaderText = "煤層偽厚";
GridTableStyle.GridColumnStyles[5].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[5].NullText = string.Empty;
GridTableStyle.GridColumnStyles.Add(new DataGridTextBoxColumn(objcengCM .GetItemProperties()["利用厚度"]));
GridTableStyle.GridColumnStyles[6].MappingName = "利用厚度";
GridTableStyle.GridColumnStyles[6].HeaderText = "利用厚度";
GridTableStyle.GridColumnStyles[6].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[6].NullText = string.Empty;
GridTableStyle.GridColumnStyles.Add(new DataGridTextBoxColumn(objcengCM .GetItemProperties()["煤層傾角"]));
GridTableStyle.GridColumnStyles[7].MappingName = "煤層傾角";
GridTableStyle.GridColumnStyles[7].HeaderText = "煤層傾角";
GridTableStyle.GridColumnStyles[7].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[7].NullText = string.Empty;
GridTableStyle.GridColumnStyles.Add(new DataGridComboBoxColumn(yanset.Tables["yan"],0,0));
GridTableStyle.GridColumnStyles[8].MappingName = "頂板巖性";
GridTableStyle.GridColumnStyles[8].HeaderText = "頂板巖性";
GridTableStyle.GridColumnStyles[8].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[8].NullText = string.Empty;
GridTableStyle.GridColumnStyles.Add(new DataGridComboBoxColumn(yanset.Tables["yan"],0,0));
GridTableStyle.GridColumnStyles[9].MappingName = "底板巖性";
GridTableStyle.GridColumnStyles[9].HeaderText = "底板巖性";
GridTableStyle.GridColumnStyles[9].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[9].NullText = string.Empty;
GridTableStyle.GridColumnStyles.Add(new DataGridTextBoxColumn(objcengCM .GetItemProperties()["等級"]));
GridTableStyle.GridColumnStyles[10].MappingName = "等級";
GridTableStyle.GridColumnStyles[10].HeaderText = "等級";
GridTableStyle.GridColumnStyles[10].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[10].NullText = string.Empty;
this.dataGrid_lay.TableStyles.Add(this.GridTableStyle);
//這個可以不加的??!
GridTableStyle.GridColumnStyles.Add(new DataGridTextBoxColumn(objcengCM .GetItemProperties()["鉆孔序號"]));
GridTableStyle.GridColumnStyles[11].MappingName = "鉆孔序號";
GridTableStyle.GridColumnStyles[11].HeaderText = "鉆孔序號";
GridTableStyle.GridColumnStyles[11].Alignment = HorizontalAlignment.Left;
GridTableStyle.GridColumnStyles[11].Width =0; //隱藏起來不讓用戶輸入
GridTableStyle.GridColumnStyles[11].NullText = this.kong_id.ToString();
GridTableStyle.GridColumnStyles[11].ReadOnly = true;
}
#endregion
#region 根據鉆孔的煤層信息畫出簡單的剖面示意圖
/// <summary>
/// 打開空白的文件
/// </summary>
/// <returns>返回打開的紀錄集,失敗返回空</returns>
private SuperMapLib.soRecordset get_Recordset()
{
SuperMapLib.soRecordset temp_Recordset;
SuperMapLib.soDatasetVector myV;
SuperMapLib.soStrings myString;
SuperMapLib.soDataSource myDatasource;
myString=new SuperMapLib.soStringsClass();
this.axSuperMap1.Connect(this.axSuperWorkspace1.CtlHandle);
myDatasource=this.axSuperWorkspace1.OpenDataSource(Application.StartupPath+"\\temp.sdb","temp",SuperMapLib.seEngineType.sceSDBPlus,false);
if(myDatasource!=null)
{
SuperMapLib.soDatasets myDatasets= myDatasource.Datasets;
for(int i=1;i<=myDatasets.Count;i++)
{
this.axSuperMap1.Layers.AddDataset(myDatasets[i],true);
}
myString.Add("*");
myV = (SuperMapLib.soDatasetVector)myDatasource.Datasets["Region"];
temp_Recordset = myV.Query("",true,myString,"");
if(temp_Recordset.RecordCount>0)
{
temp_Recordset.DeleteAll(); //先清除所有的紀錄
temp_Recordset.Update();
}
return temp_Recordset;
}
else
{
return null;
}
}
/// <summary>
/// 得到鉆孔邊框的幾何對象
/// </summary>
/// <param name="j_high">孔的高度</param>
/// <param name="j_z">孔口Z坐標</param>
/// <returns>SuperMapLib.soGeoRegion</returns>
private SuperMapLib.soGeoRegion get_kong_Region(double j_high,double j_z)
{
SuperMapLib.soGeoRegion myRegion;
SuperMapLib.soPoints myPoints;
myPoints = new SuperMapLib.soPointsClass();
myRegion = new SuperMapLib.soGeoRegionClass();
//1.1 生成井邊框多邊形。
myPoints.Add2(10,j_z+10);
myPoints.Add2(20,j_z);
myPoints.Add2(20,j_z-j_high);
myPoints.Add2(0,j_z-j_high);
myPoints.Add2(0,j_z);
myPoints.Add2(10,j_z+10);
myRegion.AddPart(myPoints);
return myRegion;
}
/// <summary>
/// 得到煤層的幾何對象
/// </summary>
/// <param name="ceng_h">煤層的厚度</param>
/// <param name="ceng_z">煤層的Z坐標</param>
/// <returns>幾何對象 SuperMapLib.soGeoRegion</returns>
private SuperMapLib.soGeoRegion get_ceng_Region(double ceng_h,double ceng_z)
{
SuperMapLib.soGeoRegion ceng_Region = new SuperMapLib.soGeoRegionClass();
SuperMapLib.soPoints myPoints = new SuperMapLib.soPointsClass();
myPoints.Add2(0,ceng_z);
myPoints.Add2(20,ceng_z);
myPoints.Add2(20,ceng_z-ceng_h);
myPoints.Add2(0,ceng_z-ceng_h);
myPoints.Add2(0,ceng_z);
ceng_Region.AddPart(myPoints);
return ceng_Region;
}
/// <summary>
/// 返回煤層的頂板和底板填充信息的結構體。
/// </summary>
/// <param name="up_t">頂板巖性</param>
/// <param name="down_t">底板巖性</param>
/// <param name="up_h">上高</param>
/// <param name="down_h">下高</param>
/// <param name="ceng">層標示 1.只有一層 2.多層的最上部分 3.多層的最下部分 4.其他的</param>
/// <param name="j_h">井的高度</param>
/// <param name="j_z">井的Z坐標</param>
/// <param name="ceng_h">煤層的厚度</param>
/// <param name="ceng_z">煤層的Z坐標</param>
/// <returns></returns>
private lay_Region get_ceng_fill(int up_t,int down_t,double up_h,double down_h,int ceng,double j_z,double j_h,double ceng_z,double ceng_h)
{
lay_Region mylay_fill = new lay_Region(up_t,down_t);
switch(ceng)
{
case 1: //只有一層
{
//先畫上部
if(up_h>=8)
{ //畫出折線
mylay_fill.lay_up_Region.AddPart(draw_pline(ceng_z,0));
//draw_pline(ceng_z,0);
}
else
{ //直接畫成矩形
mylay_fill.lay_up_Region.AddPart(draw_line(ceng_z,up_h,0));
//draw_line(ceng_z,up_h);
}
//再畫下部分
if(down_h>=8)
{ //畫出折線
mylay_fill.lay_down_Region.AddPart(draw_pline(ceng_z,ceng_h));
}
else
{ //直接畫成矩形
mylay_fill.lay_down_Region.AddPart(draw_line(ceng_z,-down_h,ceng_h));
}
}
break;
case 2: //多層的最上層
{
//畫上部
if(up_h>=8)
{ //畫出折線
mylay_fill.lay_up_Region.AddPart(draw_pline(ceng_z,0));
}
else
{ //直接畫成矩形
mylay_fill.lay_up_Region.AddPart(draw_line(ceng_z,up_h,0));
}
//再畫下部
if(down_h>=14)
{ //畫出折線
mylay_fill.lay_down_Region.AddPart(draw_pline(ceng_z,ceng_h));
}
else
{ //分成平均的兩半
mylay_fill.lay_down_Region.AddPart(draw_line(ceng_z,-down_h/2,ceng_h));
}
}
break;
case 3: //多層的最下層
{
//先畫上部
if(up_h>=14)
{ //畫出折線
mylay_fill.lay_up_Region.AddPart(draw_pline(ceng_z,0));
}
else
{ //分成平均的兩半
mylay_fill.lay_up_Region.AddPart(draw_line(ceng_z,up_h/2,0));
}
// 再畫下部分
if(down_h>=8)
{ //畫出折線
mylay_fill.lay_down_Region.AddPart(draw_pline(ceng_z,ceng_h));
}
else
{ //直接畫成矩形
mylay_fill.lay_down_Region.AddPart(draw_line(ceng_z,-down_h,ceng_h));
}
}
break;
case 4: //多層的中間層
{
if(up_h>=14)
{ //畫出折線
mylay_fill.lay_up_Region.AddPart(draw_pline(ceng_z,0));
}
else
{ //分成平均的兩半
mylay_fill.lay_up_Region.AddPart(draw_line(ceng_z,up_h/2,0));
}
if(down_h>=14)
{ //畫出折線
mylay_fill.lay_down_Region.AddPart(draw_pline(ceng_z,ceng_h));
}
else
{ //分成平均的兩半
mylay_fill.lay_down_Region.AddPart(draw_line(ceng_z,-down_h/2,ceng_h));
}
}
break;
}
return mylay_fill;
}
/// <summary>
/// 處理直接畫成矩形的情況 /如果是底板把lin_h取反
/// </summary>
/// <param name="ceng_z">起點坐標</param>
/// <param name="lin_h">高度 如果是底板把lin_h取反</param>
/// <param name="ceng_h">該層煤的厚度。 在頂板時取0</param>
/// <returns></returns>
private SuperMapLib.soPoints draw_line(double ceng_z,double lin_h,double ceng_h)
{
SuperMapLib.soPoints myPoints= new SuperMapLib.soPointsClass();
myPoints.Add2(0,ceng_z-ceng_h);
myPoints.Add2(0,ceng_z+lin_h-ceng_h);
myPoints.Add2(20,ceng_z+lin_h-ceng_h);
myPoints.Add2(20,ceng_z-ceng_h);
myPoints.Add2(0,ceng_z-ceng_h);
return myPoints;
}
/// <summary>
/// 處理畫成折線的情況 如果為上部 lin_h取 0
/// </summary>
/// <param name="ceng_z">起點坐標</param>
/// <param name="lin_h">煤層的厚度 頂板時為0 </param>
/// <returns></returns>
private SuperMapLib.soPoints draw_pline(double ceng_z,double lin_h)
{
SuperMapLib.soPoints myPoints= new SuperMapLib.soPointsClass();
if(lin_h != 0)
{
myPoints.Add2(0,ceng_z-lin_h);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -