Specific Service Identification
특정 서비스(업체) 식별 방법
현재(2020-09-02~)
Boolean 타입의 프로퍼티를 정의해서 판단
프로퍼티 이름은 아래 예시처럼 업체 이름을 한글로 사용 (ex. Is[업체명] )
public partial class SA400102 : JERPBaseForm
{
public bool Is비씨태창 { get { return SessionInfo.ServiceID.Equals("20170905004"); } }
public bool Is남도하이텍 { get { return SessionInfo.ServiceID.Equals("20180807001"); } }
protected override void OnLoad(EventArgs e)
{
if (Is비씨태창)
{
// ...
}
else if (Is남도하이텍)
{
// ...
}
}
public override void NewClick()
{
InitControls(groupPanel);
InitControls(grdDetail);
if (Is비씨태창)
checkEditEx1.EditValue = "Y";
// ...
}
}
public partial class SA400102 : JERPBaseForm
{
bool bctcChk_ = false; //비씨태창 구분용
bool ndhtChk_ = false; //남도 구분용
protected override void OnLoad(EventArgs e)
{
if (SessionInfo.ServiceID.Equals("20170905004")) // 비씨태창
{
bctcChk_ = true;
// ...
}
else if (SessionInfo.ServiceID.Equals("20180807001")) // 남도하이텍
{
ndhtChk_ = true;
}
}
public override void NewClick()
{
InitControls(groupPanel);
InitControls(grdDetail);
// 비씨태창일때
if (bctcChk_)
checkEditEx1.EditValue = "Y";
// ...
}
}
프로시저에서
Service ID 값을 프로시저의 파라미터(@p_service_id)로 전달 받고 스칼라 변수(@v_service_alias)를 정의하여 업체 이름을 할당해서 판단
ALTER PROCEDURE [dbo].[P_MA_A2000_S] (
@p_work_type varchar(10) = 'Q',
@p_service_id varchar(20) = '',
...
@p_error_code VARCHAR(100) = '' OUTPUT,
@p_row_count INT = 0 OUTPUT,
@p_error_note NVARCHAR(100) = '' OUTPUT,
@p_return_str NVARCHAR(500) = '' OUTPUT,
@p_error_msg NVARCHAR(1000) = '' OUTPUT,
@p_error_state VARCHAR(500) = '' OUTPUT,
@p_error_proc NVARCHAR(200) = '' OUTPUT
)
/*[!WITH ENCRYPTION]*/
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE @v_service_alias nvarchar(200) = ''
BEGIN
BEGIN TRY
IF @p_service_id = '20170905004'
SET @v_service_alias = '비씨엔씨'
ELSE IF @p_service_id = '20180807001'
SET @v_service_alias = '남도하이텍'
...
-------------------------------------------------------
IF @p_work_type = 'N'
BEGIN
...
END
-------------------------------------------------------
END TRY
BEGIN CATCH
...
END CATCH
END
~2020-09-02 까지
SessionInfo.ServiceId 멤버의 값으로 판단
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// 대동테크
if (SessionInfo.ServiceId.Equals("20191106002"))
{
// ...
}
// GST
else if (SessionInfo.ServiceId.Equals("20191114001"))
{
// ...
}
}
잘못된 방법
comCodeMaster 테이블의 group_code 필드에 'SYS041' 코드로 등록된 sub_code 필드의 값으로 판단
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// ...
// 블루인더스 구분
ResultSet rs = CommonExecuteSQL(@" SELECT * FROM ComCodeMaster WHERE group_code='SYS041' AND sub_code ='BLUEIND' AND use_yn ='Y'");
if (rs.ResultDataSet.Tables[0].Rows.Count > 0)
{
colp_qty.Caption = "수량";
b_blue = true;
}
rs = CommonExecuteSQL(@" SELECT * FROM ComCodeMaster WHERE group_code='SYS041' AND sub_code ='HAUTO' AND use_yn ='Y'");
if (rs.ResultDataSet.Tables[0].Rows.Count > 0)
{
grpDetail.CustomHeaderButtons[6].Properties.Visible = true;
colordkey.Visible = true;
}
rs = CommonExecuteSQL(@" SELECT * FROM ComCodeMaster WHERE group_code='SYS041' AND sub_code ='DAETECK' AND use_yn ='Y'");
if (rs.ResultDataSet.Tables[0].Rows.Count > 0)
{
str_DAETECK = "Y";
colp_qty.Visible = false;
colp_qtyunit.Visible = false;
colp_itemnm.Visible = false;
colspec.Visible = false;
coldlramt.Visible = false;
colpursiz.Width = 180;
colinsiz.Width = 180;
}
// ...
}
Last updated
Was this helpful?