C#
string strPara = ""; strPara = txtRelation.Text.ToString(); // crystal reports 객체 생성 ReportDocument cr = new ReportDocument(); cr = new crt01(); cr.SetDataSource(dtRtn); cr.SetParameterValue("strID", strPara); // strID column에 strPara 값 전달 // crystal viewer 객체 생성 CrystalViewer a = new CrystalViewer(); a.SetReport(cr); frmPrintPreview.ShowPreview(a, "", ""); // 레포트 출력 전에 미리보기 띄움 a.Refresh();
/* Main Form */ string strPara = txtRelation.Text.ToString(); string strFrDt = cboFrDt.Text.ToString(); string strToDt = cboToDt.Text.ToString(); // xr01 이름인 xtra report의 객체 xrREPORT 생성 xr01 xrREPORT = new xr01(dtRtn, strPara, strFrDt, strToDt); xrREPORT.ShowPrintMarginsWarning = false; xrREPORT.RequestParameters = false; // Hide the Parameters UI from end-users. DevExpress.XtraReports.UI.Report..
[ DB에 연결하는 문자열 ] string connString = @"DataSource = "+ p_strIP +"; Initial Catalog = " + p_strCatalog + "; UserID = 아이디; Password = 비번"; 1. DataSource = ; 2. Initial Catalog = ; 3. UserID = ; 4. Password = ; 데이터베이스 연결하는 방법은 다양하고, 나는 아래 중 첫 번째 방법(모듈화)을 주로 사용한다. [ DB 1개 연결하는 경우 ] 1. 모듈화 /* Module */ class Con_Database { string connString = @"Data Source = IP주소;Initial Catalog=northwind;User ID=sa;..
C# 소스코드 내에서 data 조회하는 sql문을 작성한 다음에 Crystal Reports에 데이터를 뿌려줄 때를 생각해보자. Crystal Reports에서 데이터베이스 마법사를 통해 데이터 테이블 정보 (속성들)를 받아올 수 있는데, 이 떄 사용하는 방법들 중 하나가 XML schema 파일을 가져오는 것이다. 이번 포스트에서는 data table 정보를 XML schema 파일 형태로 생성해서 저장하는 소스코드를 살펴보겠다. // 쿼리문 작성 후 dtRtn 변수에 테이블 정보를 받아옴 dtRtn = db.GetDataTable(strSQL); dtRtn.TableName = "Table01"; // xml 파일 생성 StringBuilder sb = new StringBuilder(); Syste..
쿼리문(sql)을 작성하다가 끝에 \n 또는 \n\r 또는 Environment.NewLine 을 붙여주면 디버깅할 때 어떤 쿼리문인지 알 수가 있다. 즉, 가독성 좋은 소스코드를 작성할 때 필요한 이스케이프문이라고 볼 수 있다. 하지만 매번 소스코드에서 sql += "..." + Environment.NewLine; 을 작성하는게 귀찮지않나? 특히나 코드가 점점 길어진다면 매번 끝에 저걸 작성하는 것도 일이다. 함께 일하는 동료 개발자나 본인을 위해서라도 가독성 좋은 소스코드를 작성하는게 좋을 것이다. 클래스 파일을 따로 만들어서 거기에 아래와 같은 소스코드를 먼저 작성하고 저장한다 : using System; using System.Collections.Generic; using System.Linq..
우선, 저는 Visual Studio 2017 버전을 사용중이며, Windows form (줄여서 WinForm)에서 작성한 코드를 여기다가 공유해보려 합니다. 외부 폼으로부터 데이터를 받아오고 전송하는 방법들을 찾는 데 많은 시간과 과정이 필요했기 때문에, 다른 분들도 아래의 코드를 유용하게 쓰시길 바랍니다! 제가 발견한 방법은 총 2가지가 있습니다: Delegate, event 사용 외부 class폼에서 get, set 속성 사용 *참고로, 소스코드에서 " cls.NL" 이라고 적혀있는 건, 개행을 의미하는 Environment.NewLine 입니다. 그럼 한 번 살펴보도록 합시다! [ Delegate, event 사용 ] Main Form에 작성 : private void btn_Click(obje..
[ 인덱서 ] 인덱서(Indexer) : 색인 (속성+배열) 역할 : class 내의 배열,컬렉션을 외부에서 접근할 수 있도록 하는 역할 형식 : 속성 형식(get, set, return, value) + 배열 형식(this[int index]) // 방법1 객체명[index] = 값 또는 변수; //값을 배열의 해당 index 위치에 저장 (set) // 방법2 변수 = 객체명[index]; //해당 index의 값을 변수에 저장 (get) 정확한 사용 형식은 아래와 같다 : [접근한정자] 데이터형 this[int index]{ get{ } set{ } } //외부로부터 받아온 값을 set, 인덱서 배열에 저장된 값을 외부로 전달 get [ 속성 vs. 인덱서 ] 공통점 : 객체의 멤버 변수를 read..
우선, 속성으로 들어가기 전에 짚고 넘어갈 것이 있다. Java는 getter, setter를 사용한 DTO(Data Transfer Object)를 활용하여 객체지향 프로그래밍을 하지만, C#은 속성 get, set을 사용하여 캡슐화하여 객체 지향 프로그래밍을 한다. *캡슐화 : 한 class 안에 연관된 데이터를 묶고 정보를 숨겨서 class 자체를 캡슐처럼 만들기 [ 속성 ] 속성(Property) : class의 멤버변수 값을 읽기, 저장, 값 변경 변수는 읽기, 저장까지만 가능. 대상 : 접근 권한이 private, protected으로 선언된 멤버변수 public으로 선언 -> 이미 외부로 노출되어있으니까 속성을 사용할 필요가 없음 private으로 선언 -> 이 멤버변수 자체보다는 속성으로 ..