📄 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 + -