/// <summary>
  ///  자율관리-품질지적 일때
  /// </summary>
  /// <param name="curr_page">현제 페이지</param>
  /// <param name="page_size">페이지당 갯수</param>
  public DataSet Select_CMM_INDI_MST_ddlSearch_QUALITY_1(string pjt_cd, string mdul_cd, string nod_cd, string subc_idx, string str, string RegNm, string ComNm, string GjongNm, string GbnNm, string DocStatus, int curr_page, int page_size)
  {
   // 페이지 항목
   string strPage = "";
   // 검색항목
   string strWhere = " WHERE (C1.PJT_CD = @pjt_cd) AND (C1.MDUL_CD = @mdul_cd) AND (C1.NOD_CD LIKE @nod_cd) ";

   if (str == "C")
   {
    strWhere += @" AND (C1.SUBC_IDX = " + subc_idx.Replace("'", "''") + ") ";
   }
   else
   {
    strWhere += "";
   }

   if (RegNm != null && RegNm != "")
   {
    strWhere += "         AND C1.REG_ID LIKE '%" + RegNm.Replace("'", "''") + "%' ";
   }

   if (ComNm != null && ComNm != "")
   {
    strWhere += "         AND C1.SUBC_IDX LIKE '%" + ComNm.Replace("'", "''") + "%' ";
   }

   if (GjongNm != null && GjongNm != "")
   {
    strWhere += "         AND C1.SAFTY_GJONG_CD LIKE '%" + GjongNm.Replace("'", "''") + "%' ";
   }

   if (GbnNm != null && GbnNm != "")
   {
    strWhere += "         AND C1.SAFTY_GBN_CD LIKE '%" + GbnNm.Replace("'", "''") + "%' ";
   }

   if (DocStatus != null && DocStatus != "")
   {
    strWhere += "         AND C1.DOC_STATUS LIKE '%" + DocStatus.Replace("'", "''") + "%' ";
   }

   // 페이지 조건
   if (page_size > 0)
   {
    strPage = "  ROW_NO BETWEEN " + (curr_page * page_size + 1) + " AND " + ((curr_page + 1) * page_size) + " ";
   }

   // 기본 정의 SQL
   string strBaseSql = @" FROM       CMM_INDI_MST AS C1
INNER JOIN SYS_ENTCD_MST S1
 ON  C1.SAFTY_GJONG_CD = S1.ENTCD
   AND S1.PJT_CD = C1.PJT_CD
   AND S1.CLS_CD = 'QGON'
INNER JOIN SYS_ENTCD_MST S2
 ON  C1.SAFTY_GBN_CD = S2.ENTCD
   AND S2.PJT_CD = C1.PJT_CD
   AND S2.CLS_CD = 'QTYP'
";
   // 넘겨줄 SQL
   string SQL = @"
-- 페이지항목만 임시테이블변수로 저장
SELECT C1.ORI_ROW_NO AS ROW_NO, C1.INDI_IDX
INTO #T_SEARCH
FROM
(
SELECT
 ROW_NUMBER() OVER(ORDER BY C1.INDI_IDX) AS ORI_ROW_NO  -- 반환할 Row_no
 , ROW_NUMBER() OVER(ORDER BY C1.INDI_IDX DESC) AS ROW_NO -- 페이지 비교할 Row_No.
 , C1.INDI_IDX
"
+ strBaseSql + strWhere +
" ) AS C1 WHERE "
+ strPage+
@"

-- 조회값 Table[0]
SELECT TS.ROW_NO, C2.COM_NM, SUBSTRING(CONVERT(VARCHAR, C1.INDI_DD, 121), 1, 10) AS INDI_DD, C1.REG_ID, C1.SUBC_IDX, C1.TTL, SUBSTRING(CONVERT(VARCHAR,
 C1.DISP_RR, 121), 1, 10) AS DISP_RR, C1.DOC_STATUS, C1.INDI_IDX, C1.MDUL_CD, C1.NOD_CD, C3.MSURE_IDX, U1.USER_NM, C1.PJT_CD,
 C1.SAFTY_GJONG_CD, C1.SAFTY_GBN_CD, S1.CD_NM AS SAFTY_GJONG_NM, S2.CD_NM AS SAFETY_GBN_NM,
(CASE WHEN C1.SAFTY_GJONG_CD = '1' THEN '품질'
 WHEN C1.SAFTY_GJONG_CD = '2' THEN '안전'
 WHEN C1.SAFTY_GJONG_CD = '3' THEN '환경' ELSE '' END) AS GJONG_NM
FROM       CMM_INDI_MST AS C1
INNER JOIN #T_SEARCH AS TS
 ON  C1.INDI_IDX = TS.INDI_IDX
LEFT OUTER JOIN CDR_SUBC_MST AS C2
 ON  C1.SUBC_IDX = C2.SUBC_IDX
  AND C2.DEL_YN = 'N'
LEFT OUTER JOIN CMM_INDI_RSPN AS C3
 ON  C3.INDI_IDX = C1.INDI_IDX
LEFT OUTER JOIN SYS_USER_MST AS U1
 ON  C1.REG_ID = U1.USER_ID
INNER JOIN SYS_ENTCD_MST S1
 ON  C1.SAFTY_GJONG_CD = S1.ENTCD
  AND S1.PJT_CD = C1.PJT_CD
  AND S1.CLS_CD = 'QGON'
INNER JOIN SYS_ENTCD_MST S2
 ON  C1.SAFTY_GBN_CD = S2.ENTCD
  AND S2.PJT_CD = C1.PJT_CD
  AND S2.CLS_CD = 'QTYP'
ORDER BY ROW_NO DESC
";
   SQL += @"

-- 총카운터 Table[1]
SELECT COUNT(*) AS CNT
"

Posted by 말없제이
,

구글검색 DataTable.Select에 그룹방법(DISTINCT)
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/e6f7e2d7-662c-49d1-b56e-71dcd06ddbf5

Q : How??
myTable is a DataTable
DataRow[] DataRows = myTable.Select("DISTINCT FirstName");
return DataRows

A : DataTable.Select is not.
DataTable nonDistinctTable;
// fill the non distinct table...

// If the table has all the data and doesn't need filtering you can do the following...
DataTable distinctTable = table.DefaultView.ToTable("DistinctTable", true, "Col1");

// If the table needs further filtering you can use the DataView to filter, then 'convert' to a DataTable...
DataView view = table.DefaultView;
// set the row filtering on the view...
view.RowFilter = "Col1 = 'XYZ'";
// then get the distinct table...
DataTable distinctTable = view.ToTable("DistinctTable", true, "Col1");

ex --------------------------

  string strDivYstNig = "";

  DataTable dtRepYstNigGrp = ds.Tables[1].DefaultView.ToTable("DistinctTable", true, "CD_NM");
  for (int i = 0; i < dtRepYstNigGrp.Rows.Count; i++)
  {
   string strColNm = dtRepYstNigGrp.Rows[i]["CD_NM"].ToString();
   int iColNm = ds.Tables[1].Select(string.Format(" CD_NM = '{0}' ", strColNm)).Length;
   strDivYstNig += strColNm + ";" + iColNm.ToString() + ";";
  }

  lblMangerNm.Text = strDivYstNig;

Posted by 말없제이
,

DataTable 부분합.

DevTool/C# 2012. 5. 7. 09:33

DataTable 부분합.

 

부분합.
protected int intORDR_QTY = 0;
protected int intORDR_QTY_T = 0;
protected int intST_QTY = 0;
protected int intST_QTY_T = 0;
protected int intIN_QTY = 0;
protected int intIN_QTY_T = 0;
protected int intPLAC_QTY = 0;
protected int intPLAC_QTY_T = 0;

protected string strCOM_CD = string.Empty;
 

DataTable dt = Biz.SELECT_RSC_RM_IS_PL_LST_3(Dic);

        if (dt != null)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {


                if (strCOM_CD == dt.Rows[i]["COM_CD"].ToString())
                {
                    intORDR_QTY += int.Parse(dt.Rows[i]["ORDR_QTY"].ToString());
                    intST_QTY += int.Parse(dt.Rows[i]["ST_QTY"].ToString());
                    intIN_QTY += int.Parse(dt.Rows[i]["IN_QTY"].ToString());
                    intPLAC_QTY += int.Parse(dt.Rows[i]["PLAC_QTY"].ToString());
                }
                else
                {
                    if (!string.IsNullOrEmpty(strCOM_CD))
                    {
                        DataRow dr = dt.NewRow();
                        dr["COM_NM"] = "소계";
                        dr["COM_CD"] = "SUB";
                        dr["ORDR_QTY"] = intORDR_QTY.ToString();
                        dr["ST_QTY"] = intST_QTY.ToString();
                        dr["IN_QTY"] = intIN_QTY.ToString();
                        dr["PLAC_QTY"] = intPLAC_QTY.ToString();

                        dt.Rows.InsertAt(dr, i);
                        i++;
                    }

                    intORDR_QTY_T += intORDR_QTY;
                    intST_QTY_T += intST_QTY;
                    intIN_QTY_T += intIN_QTY;
                    intPLAC_QTY_T += intPLAC_QTY;

                    strCOM_CD = dt.Rows[i]["COM_CD"].ToString();

                    intORDR_QTY = int.Parse(dt.Rows[i]["ORDR_QTY"].ToString());
                    intST_QTY = int.Parse(dt.Rows[i]["ST_QTY"].ToString());
                    intIN_QTY = int.Parse(dt.Rows[i]["IN_QTY"].ToString());
                    intPLAC_QTY = int.Parse(dt.Rows[i]["PLAC_QTY"].ToString());
                }
            }

            if (!string.IsNullOrEmpty(strCOM_CD))
            {
                DataRow dr = dt.NewRow();
                dr["COM_NM"] = "소계";
                dr["COM_CD"] = "SUB";
                dr["ORDR_QTY"] = intORDR_QTY.ToString();
                dr["ST_QTY"] = intST_QTY.ToString();
                dr["IN_QTY"] = intIN_QTY.ToString();
                dr["PLAC_QTY"] = intPLAC_QTY.ToString();

                dt.Rows.InsertAt(dr, dt.Rows.Count);

                intORDR_QTY_T += intORDR_QTY;
                intST_QTY_T += intST_QTY;
                intIN_QTY_T += intIN_QTY;
                intPLAC_QTY_T += intPLAC_QTY;

                DataRow dr_T = dt.NewRow();
                dr_T["COM_NM"] = "합계";
                dr_T["COM_CD"] = "TOTAL";
                dr_T["ORDR_QTY"] = intORDR_QTY_T.ToString();
                dr_T["ST_QTY"] = intST_QTY_T.ToString();
                dr_T["IN_QTY"] = intIN_QTY_T.ToString();
                dr_T["PLAC_QTY"] = intPLAC_QTY_T.ToString();

                dt.Rows.InsertAt(dr_T, dt.Rows.Count);

                lblTotalST_QTY.Text = intST_QTY_T.ToString();
                lblTotalIN_QTY.Text = intIN_QTY_T.ToString();
            }

Posted by 말없제이
,

#region ===== 문자열을 Int형변환. =====

 /// <summary>
 /// 문자열을 Int형으로 변환(문자일경우 0으로 반환)
 /// </summary>
 /// <param name="s">문자열</param>
 /// <returns>숫자(문자일경우 0반환)</returns>
 public int StrToInt(string s)
 {
  bool CheckVal = false;

  for (int i = 0; i < s.Length; i++)
  {
   if (System.Char.IsNumber(s, i))
    CheckVal = true;
   else
   {
    if (s.Substring(i, 1) == ".")
     CheckVal = true;
    else
    {
     CheckVal = false;
     break;
    } //end of IF
   } //end of IF
  } //end of FOR

  // 숫자이면
  if (CheckVal)
  {
   return int.Parse(s);
  }
  else
  {
   return 0;
  }
 }

 #endregion

Posted by 말없제이
,


// object 형 string으로 변환
  private string ObjToString(object p)
  {
   string strRef = "";

   if (p == null)
   {
    strRef = "";
   }
   else
   {
    strRef = p.ToString();
   }

   return strRef;
  }

Posted by 말없제이
,

Dataset Row의 합계

DevTool/C# 2012. 2. 13. 10:13


///// 1. ViewState -> Dataset으로 변환

            ds = (DataSet)ViewState["ds"];
            dr = ds.Tables[0].NewRow();
            dr["sku"] = txtSKU.Text;
            ds.Tables[0].Rows.Add(dr);
            ViewState["ds"] = ds;


            ///// 2. Dataset Row의 합계 구하기

            int nSum_sku = 0;

            foreach (DataRow das in ds.Tables[0].Rows)

            {
                nSum_sku += int.Parse(das["sku"].ToString());
            }

Posted by 말없제이
,

Spread 멀티해더.

DevTool/C# 2012. 2. 13. 10:12

 

// Set the number or rows and columns in the headers.

fpSpread1.Sheets[0].ColumnHeaderRowCount = 3;

fpSpread1.Sheets[0].RowHeaderColumnCount = 2;


// Span the header cells as needed.

fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 0, 1, 2);

fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 2, 1, 2);

fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 4, 1, 2);

fpSpread1.Sheets[0].AddColumnHeaderSpanCell(1, 6, 1, 2);

fpSpread1.Sheets[0].AddColumnHeaderSpanCell(0, 0, 1, 8);

fpSpread1.Sheets[0].AddRowHeaderSpanCell(0, 0, 12, 1);


// Set the labels as needed -- using the Label property or

// the cell Text property.

fpSpread1.Sheets[0].ColumnHeader.Columns[0].Label = "East";

fpSpread1.Sheets[0].ColumnHeader.Columns[1].Label = "West";

fpSpread1.Sheets[0].ColumnHeader.Columns[2].Label = "East";

fpSpread1.Sheets[0].ColumnHeader.Columns[3].Label = "West";

fpSpread1.Sheets[0].ColumnHeader.Columns[4].Label = "East";

fpSpread1.Sheets[0].ColumnHeader.Columns[5].Label = "West";

fpSpread1.Sheets[0].ColumnHeader.Columns[6].Label = "East";

fpSpread1.Sheets[0].ColumnHeader.Columns[7].Label = "West";

fpSpread1.Sheets[0].ColumnHeader.Cells[0,0].Text = "Fiscal Year 2004";

fpSpread1.Sheets[0].ColumnHeader.Cells[1,0].Text = "1st Quarter";

fpSpread1.Sheets[0].ColumnHeader.Cells[1,2].Text = "2nd Quarter";

fpSpread1.Sheets[0].ColumnHeader.Cells[1,4].Text = "3rd Quarter";

fpSpread1.Sheets[0].ColumnHeader.Cells[1,6].Text = "4th Quarter";


// Set the row header so that the label displays.

fpSpread1.Sheets[0].RowHeader.Columns[0].Width = 45;

fpSpread1.Sheets[0].RowHeader.Cells[0,0].Text = "Branch #";

Posted by 말없제이
,

이미지를 SQL nText에 넣기.
Base64컨버터 사용.
Image가 있는데도 Text에 너란다 - -.

// 이미지 생성
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "이미지파일|*.jpg;*.bmp";
dlg.Multiselect = false;

if (dlg.ShowDialog(this) != System.Windows.Forms.DialogResult.OK)
 return;

FileStream fs = new FileStream(dlg.FileName, FileMode.Open, FileAccess.Read);
byte[] bImage = new byte[fs.Length];
fs.Read(bImage, 0, (int)fs.Length);

FKParameterCollection fkParam = new FKParameterCollection();
fkParam.UserInfo = AppContext.UserInfo;
fkParam.CreateContolParameterCollection(this);

DataTable dtNeo = new DataTable();
dtNeo.Columns.Add("CRUD_FLAG");     // 실사용코드
dtNeo.Columns.Add("SUGA_CD");     // 수가코드
dtNeo.Columns.Add("BIMSG_RTF");     // 이미지

DataRow drNeo = dtNeo.NewRow();
drNeo["CRUD_FLAG"] = "M";
drNeo["SUGA_CD"] = this.txtSUGA_CD.Text;

// byte[]를 Base64로 컨버터
string strBase64 = Convert.ToBase64String(bImage);
// Base64로된 것을 byte[]로변환.
//byte[] sa = Convert.FromBase64String(strBase64);
//string va = (BitConverter.ToString(bImage).Equals(BitConverter.ToString(sa)))? "0":"1";

drNeo["BIMSG_RTF"] = strBase64;

 

//호출
ImageConverter ImgConverter = new ImageConverter();

// 이미지 처리할것.
byte[] MENU_ICON = Convert.FromBase64String(ObjToString(dr["BIMSG_RTF_B"]));


if (MENU_ICON != null)
{
 if (MENU_ICON.Length > 0)
 {
  try
  {
   this.picItem.Image = (Image)ImgConverter.ConvertFrom(MENU_ICON);
  }
  catch
  {
   this.picItem.Image = null;
  }
 }
}

Posted by 말없제이
,
실행 중에 전체 컴파일(코드 디렉터리)
지금까지 설명한 세 가지 컴파일 방법 모두, 배포하기 전에 모든 코드 파일(코드 숨김 파일 및 지원 클래스)을 컴파일해야 합니다. ASP.NET 2.0에서는 코드 디렉터리를 사용할 수 있습니다.

코드 디렉터리는 컴파일되지 않은 클래스를 보관하는 특수 디렉터리입니다. 실행 중에 ASP.NET 런타임은 응용 프로그램에서 ASPX 페이지가 자동으로 참조하는 어셈블리로 이 디렉터리의 콘텐츠를 컴파일합니다. 즉, 코드 디렉터리를 사용함으로써 지원 코드에 대해 별도의 어셈블리를 만들고 참조하지 않아도 됩니다. 코드 디렉터리의 장점은 프로젝트를 완전히 컴파일하지 않고 배포할 수 있으므로 잠재적인 불일치 문제를 줄일 수 있다는 점이며, 단점은 서버에서 컴파일되지 않은 코드가 노출된다는 점입니다.

=== = == = == = =
매 컴파일하다보니 - -..
있었다는걸 잊어버리는..
Posted by 말없제이
,

js에서.. c#호출.

DevTool/C# 2009. 6. 6. 14:23

<script language="javascript">
function init()
{
alert('hello ');
<%SetData();%>; //------------------------------> main line
alert('<%=strName%>');
}
</script>
-------------------------------------------------------
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
this.ImageButton1.Attributes.Add("onclick",
"javascript:init();");
}
}
public void SetData()
{
strName = "mainpico";
}


 




===========================



1. 디자인 모드에서 클라이언트 히든버튼을 만듬

    <input type="hidden" id="hidden0" runat="server" style="width: 32px" />



2. 특정버튼을 클릭할 때 자바스크립트 함수를 호출하도록 설정

    <asp:ImageButton ID="ImgBtn0" runat="server" ImageUrl="~/3_MeChul/images/달력.gif" OnClientClick="send()" />



3. 자바스크립트에서는 전달하고 하는 변수값은 1번에서 생성한 input type='hidden'에 넣어줌

   <script type="text/javascript">
            function send() {
               var getX = event.clientX;
               var getY = event.clientY;
               document.getElementById("<퍼센트= hidden0.ClientID 퍼센트>").value = getX;
               document.getElementById("<퍼센트= hidden1.ClientID 퍼센트>").value = getY;
                } 
   </script>



4. 자바스크립트에서 받아온 변수값을 화면에 출력해주도록 하자.

 Protected Sub ImgBtn0_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImgBtn0.Click
        Label3.Text = hidden0.Value.ToString()
        Label4.Text = hidden1.Value.ToString()
    End Sub



5. 값이 잘 전달되는지 확인해보자.

    이미지 버튼을 클릭하면 클라이언트의 마우스 x,y 좌표값이 화면에 출력되도록 하자. 

   

    

             ↑히든버튼                                        ↑히든버튼



    아래 화면의 구현은

           1. 버튼 클릭 -> 자바스크립트 함수 실행

           2. 자바스크립트 변수를 히든버튼에 입력

           3. vs2005 툴에서 히든버튼의 value값을 받아서 Label3/4 에 뿌려줌


[출처] 자바스크립트의 변수를 asp.net 으로 가져오기 (변수공유)|작성자 지니진





자바스크립에서를 __doPostBack 으로 서버이벤트 호출하기 | 닷넷해볼까?
 2006.02.21 12:07
대박재열(gold0073)  
http://cafe.naver.com/dotnetscript/58 <INPUT id="cafeurlstr" type="hidden" value="http://cafe.naver.com/dotnetscript/58" name="cafeurlstr"> 
 
!------------스크립트------------------


<script language="javascript">

function CreateTest()

{

    alert("스크립트 호출 테스트입니다");

    __doPostBack('CreateTest','')

}

</script>



!-----------HTML----------------------

<form id="Form1" method="post" runat="server">

    <a href="javascript:CreateTest();">스크립트호출</a>

    <asp: LinkButton ID="CreateTest" runat="server" Onclick="CreateTest_Click" Visible="false" />

    ...

    ...

    ...

   <input type="hidden" name="__EVENTTARGET">
   <input type="hidden" name="__EVENTARGUMENT">
   <script language="javascript">
   function __doPostBack(eventTarget, eventArgument)
   {

    //doPostBack을 일으키기 위해 꼭 필요하다
    var theform = document.Form1;
    theform.__EVENTTARGET.value = eventTarget;
    theform.__EVENTARGUMENT.value = eventArgument;
    theform.submit();            
   }
   </script>     

</form>

!-----------코드비하인드----------------

Protected void CreateTest_Click(object sender,EventArgs e)

{

     Response.Write("호출하였습니다");

}

Posted by 말없제이
,