2001-10-06 오후 12:02:03 / 번호: 7101 / 평점: (-)
|
|
|
Re:
답변임다
^^;; |
윤준흠 /
Godseye
|
|
|
안녕 하세여. 조금 긴 글이 될거 같습니다.
먼저 제가 올려드린 다큐멘테이션(화면이미지)부분을 보시면 폼툴바기능중에서 빨간 동굴뱅이
그림 있져... 그부분이 서버 데이타를 Requery해오는 부분입니다. 전 모든 기능을 Remote View(RV)가
아닌 SPT로 구현을 했습니다.(사실 대단한것은 절대 아닙니다. 하지만 RV보다 더 편합니다.)
하지만 단점(?)은 님께서 말씀하신 실시간 갱신이 이루어 지지 않는다는 점입니다. 하지만
여기에서 한가지 생각해 보아야 할점이 있습니다. 실시간 갱신이 얼만큼 필요 하느냐 하는
문제입니다. C/S 어플리케이션을 설계할때는 보통 이런 문제는 크게 이슈가 되지 않는 부분이기도 하구여.
단순하게 생각해보아도(일단 제가올린 화면이미지만을 가지고 볼때에) Helper가 특정 고객을 응대할때 또
다른 Helper는 절대
그 특정 고객과의 응대가 이루어 질 수 없습니다. 우리가 이런 일련의 상황을 인위적으로 만들어 내지
않는다면 말입니다. 곧 1:1 개념이라는 것이죠. 곧 다른 거의 모든 업무도 이와 마찬가지 일겁니다.
물론 ORDER를 내야하는데 아이템이 많을경우 몇사람이 동시에 한 오더를 입력 할 수도 있을겁니다.
이럴경우에는 운용의 묘를 살리면 얼마든지 커버가 됩니다. 일단 100개의 아이템을 입력한다고
가정했을경우 서로 중복되지 않게 입력자들이 나누어서 입력 시키신후 Requery만 한번 해 주면 된다는
것이져. 지금까지 짧은(?) 저의 업무경험으로 보았을경우 그 부분은 큰 비중이 되지 않았습니다.
하지만 죽어도 실시간 갱신이 되어야 한다면 2가지 방법을 생각해 볼 수 있습니다.
1.Remote View를 이용하는 방법입니다. 하지만 절대 추천안함다. 아마도 해보신 분들은 아실테지만
.... 머 거의 주금이져. 돌날아 올까바 여기 까정만.
2.SPT를 이용하돼 주기적으로(타이머를 이용해도 됨다) Requery를 자동으로 해 오는 겁니다.
RV를 써도 SET REPROCESS TO nAttempts [SECONDS]에 셋팅해준 시간이 되어야만 갱신이 되기에
그 시간만큼 SPT구현상에서 해주면 되는것이지여.
아래에는 현재 제가 구현한 SPT 코딩 방법론입니다.
간단하게나마 이해를 돕기 위해서 샘플로 올립니다. 현재 구현이 다 된 코딩이지만 이글을 오리면서
짜집기 한것이니 참고용으로만 이해해 주시면 됩니다. 그리고 제 Application Framework의 모체는 폭시의
샘플프로그램인 Tastrade입니다. 아울러 SPT이기 때문에 아시겠지만 제 폭시 DB를 열어보면 아무것도
없는 황량한 벌판임다 -_-;;
폼 LOAD절
DODEFAULT()
WAIT WIND "서버데이타 전송중입니다. 잠시만 기다립시요 !" NOWAIT
LOCAL lcAlias1, lcAlias2, lcAlias3, lcAlias4, lcAlias5,;
lcCursor3, lcCursor4, lcCursor5, lcCursor6, lcCursor7, ;
lcSql1, lcSql2, lcSql3, lcSql4, lcSql5, ;
lnRetVal1, lnRetVal2, lnRetVal3, lnRetVal4, lnRetVal5
lcAlias1 = "tpmcbd01" &&충전 마스터
lcAlias2 = "v_cgd01" &&고객마스터
lcAlias3 = "card" &&PPS CARD
lcAlias4 = "v_deposit" &&입금현황
lcAlias5 = "debit_info" &&사용현황 PPS SERVER Debit_info
lcAlias6 = "tpmccd01" &&불만현황
lcAlias7 = "tpmcbd01" &&보상현황
lcAlias8 = "tpmccd02" &&환불현황
lcAlias9 = "tpmcgd02" &&복수핀
lcAlias10 = "tpmcgd01" &&추천자현황
lcAlias11 = "tpmcfd01" &&AGENT
lcAlias12 = "tpmcfd02" &&AGENT별 담당자.
lcCursor3 = "cusppscard" &&PPS CARD TABLE INFORMATION
lcCursor4 = "cusDeposit" &&입금현황
lcCursor5 = "cusUseList" &&사용현황
lcCursor6 = "cusCompl" &&불만현황
lcCursor7 = "cusCompt" &&보상현황
lcCursor8 = "cusRefnd" &&환불현황
lcCursor10 = "cusRc" &&추천자현황
lcCursor13 = "cusmpcard" &&복수핀검색 PPS CARD
WITH ThisForm
*충전마스터
.SQLSelectField1
= "rcmang_id,cardid,serial,rc_date,rc_gubun,pay_method,amount,bonus_rate,bonus_amt,total_amt,dpbmang
_id,dpcmang_id,"
.SQLSelectField1 = .SQLSelectField1
+ "cpmang_id,rdepositor,agent_id,attn_id,usamount,tax,remark,before_amt,user_id"
*고객마스터
.SQLSelectField2
= "kname,jumin_no,age,mw,tel_no,bonus_rate,code_name,c_type,hp_no,joindate,chag_count,chag_total"
*카드정보
.SQLSelectField3
= "cardid,serial,agent,cardtype,rate_type,language,activedate,expirydate,status,cardvalue,unitsleft,
remark" &&PPS CARD
*입금현황
.SQLSelectField4
= "dpmang_id,dp_day,dp_method,methodname,dptype,bkctname,acct_no,jmapno,expiredate,rate,depositor,am
ount,usamount,use_amount,remainder,rate_money,real_money,cardid,user_name"
&&사용현황 PPS SERVER Debit_info
.SQLSelectField5
= "card_no,serial,start_time,end_time,dest_number,duration,Deducted,leg,channel,remote_id,dnis,ani"
** 충전마스터
lcSql1 = [SELECT ] + .SQLselectField1 + [ FROM ] + lcAlias1 + [ WHERE (cardid="XXXXXXXXXX")
ORDER BY rcmang_id]
lnRetVal1 = .csSqlServer.SqlExecute(gnConnHandle1, lcSql1, lcAlias1)
IF lnRetVal1 < 0
=MESSAGEBOX(DATALOADERROR_LOC+CHR(13)+REQUESTADMIN_LOC, 16,AF_LOC)
RETURN .F.
ENDIF
** 고객마스터
lcSql2 = [SELECT ] + .SQLselectField2 + [ FROM ] + lcAlias2 + [ WHERE (cardid = "XXXXXXXXX")
ORDER BY cardid]
lnRetVal2 = .csSqlServer.SqlExecute(gnConnHandle1, lcSql2, lcAlias2)
IF lnRetVal1 < 0
=MESSAGEBOX(DATALOADERROR_LOC+CHR(13)+REQUESTADMIN_LOC, 16,AF_LOC)
RETURN .F.
ENDIF
** PPSCARD
lcSql3 = [SELECT ] + .SQLselectField3 + [ FROM ] + lcAlias3 + [ WHERE (cardid = "XXXXXXXXXX")]
lnRetVal3 = .csSqlServer.SqlExecute(gnConnHandle2, lcSql3, lcCursor3)
IF lnRetVal3 < 0
=MESSAGEBOX(DATALOADERROR_LOC+CHR(13)+REQUESTADMIN_LOC, 16,AF_LOC)
RETURN .F.
ENDIF
.DataEnvironment.InitialSelectedAlias = lcAlias1
ENDWITH
WAIT CLEAR
위의 부분에서 보시면 아시겠지만 굳이 저렇게 길게 코딩을 할 필요가 전여 없슴다.
시간에 쫒기다보니 OOP 및 구조적인 프로그램 구현 기법(?) 에 충실하지 못하게 구현이 되어서
그렇습니다. 여유가 되면 칼질을 해얍졉.
*신규자료 EVENTS
LPARAMETERS tlappendgubun
SELECT tpmcbd01
IF Thisform.DataChanged() AND thisform.AskToSave() = IDCANCEL
RETURN FILE_CANCEL
ENDIF
LOCAL lcRcGubun,;
lcPayMethod
WITH ThisForm
IF .chkLock1.Value = 1 &&충전구분
lcRcGubun = .cboRc_Gubun.Value
ENDIF
IF .chkLock2.Value = 1 &&입금방식
lcPayMethod = .cboPay_Method.Value
ENDIF
lnAutoKey = .AutoKey("TPMCBD01",DTOS(DATE()),3,gnConnHandle1) &&PARAMETERS tcTableId,
tcKeyDate, tnKeyLength, tnConnHandle
lcKey = ALLTRIM(Thisform.PkValue)
IF lnAutoKey < 0
RETURN
ENDIF
DODEFAULT()
IF .chkLock1.Value = 1
.cboRc_Gubun.Value = lcRcGubun
ELSE
.cboRc_Gubun.Value = "01"
ENDIF
IF .chkLock2.Value = 1 AND .cboRc_Gubun.Value <> "02" AND .cboRc_Gubun.Value <> "04"
.cboPay_Method.Value = lcPayMethod
ELSE
IF .cboRc_Gubun.Value <> "02" AND .cboRc_Gubun.Value <> "04"
.cboPay_Method.Value = "01"
ELSE
.cboPay_Method.Value = ""
ENDIF
ENDIF
.pgfRecharge.ActivePage = 1
.pgfRecharge.Enabled = .F.
.txtRcmang_id.Value = DTOS(DATE())+"R"+lcKey
.Requerycard(1,"")
.txtUser_id.Value = oApp.GetUserId()
.txtRc_Date.Value = DATETIME()
.txtCardid.SetFocus()
.chkTax.Value = .F.
ENDWITH
* 삭제 EVENTS
LOCAL lcRechargeId
lcRechargeId = ALLTRIM(ThisForm.txtRcMang_ID.Value)
IF EMPTY(lcRechargeId)
=MESSAGEBOX(SELECTDELETEDATA_LOC,0+16+0,AF_LOC)
RETURN .F.
ENDIF
afBaseForm::Delete("tpmcbd01",gnConnHandle1,[WHERE (rcmang_id = "]+lcRechargeId+[")])
ThisForm.pgfRecharge.Page9.SetFocus()
* 저장 EVENTS
LOCAL lnResult, llResult
llSave = .F.
lnSaveCheck = ThisForm.SaveValid()
IF lnSaveCheck = 0
*Sql Server Data Save
IF ThisForm.lisAdditing
lnResult = ThisForm.InsertData()
ELSE
IF !ThisForm.auth_update
=MESSAGEBOX(NOUPDATEAUTHORITY_LOC,16,AF_LOC)
ThisForm.Restore()
RETURN .F.
ENDIF
lnResult = ThisForm.UpdateData()
ENDIF
IF lnResult > 0
ThisForm.rAmount = 0
SELECT tpmcbd01
llSave = DODEFAULT()
IF llSave
* FoxPro Cursor Save Success
lcWhere = [WHERE (cardid="]+ThisForm.txtCardid.Value+[")]
Thisform.RequeryCard(3,lcWhere)
ThisForm.pgfRecharge.Enabled = .T.
ThisForm.cmdFormToolBar.cmdNew.SetFocus()
ENDIF
ELSE
llSave = .F.
ThisForm.txtCardid.SetFocus()
ENDIF
ELSE
DO CASE
CASE lnSaveCheck = 1
=MESSAGEBOX(RECHAGIDINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtrcmang_id.SetFocus()
CASE lnSaveCheck = 2
=MESSAGEBOX(RECHAGDATEINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtRc_Date.SetFocus()
CASE lnSaveCheck = 3
=MESSAGEBOX(CARDIDINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtCardid.SetFocus()
CASE lnSaveCheck = 4
=MESSAGEBOX(SERIALINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtSerial.SetFocus()
CASE lnSaveCheck = 5
=MESSAGEBOX(RECHAGGUBUN_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.cboRc_Gubun.SetFocus()
CASE lnSaveCheck = 6
=MESSAGEBOX(DPMETHODINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.cboPay_Method.SetFocus()
CASE lnSaveCheck = 7
=MESSAGEBOX(RECHAGAMOUNTINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.spnAmount.SetFocus()
CASE lnSaveCheck = 8
=MESSAGEBOX(BONUSAMOUNTINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.spnBonusAmount.SetFocus()
CASE lnSaveCheck = 9
=MESSAGEBOX(DPBMANGINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtDpbMang_Id.SetFocus()
CASE lnSaveCheck = 10
=MESSAGEBOX(DPCMANGINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.txtDpbMang_Id.SetFocus()
CASE lnSaveCheck = 11
=MESSAGEBOX(AGENTIDINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.cboAgent_Id.SetFocus()
CASE lnSaveCheck = 12
=MESSAGEBOX(ATTNIDINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.cboAttn_Id.SetFocus()
*!* CASE lnSaveCheck = 13
*!* =MESSAGEBOX(CPMANGIDINPUT_LOC, ;
*!* MB_ICONEXCLAMATION, ;
*!* AF_LOC)
*!* ThisForm.txtcpmang_id.SetFocus()
CASE lnSaveCheck = 14
=MESSAGEBOX(RECHAGTOTAMTINPUT_LOC, ;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.spnTotal_Amt.SetFocus()
CASE lnSaveCheck = 15
=MESSAGEBOX(DEPOSIT_LOC+TRANSFORM(ThisForm.rAmount,"@R 9,999,999")
+WHITCH_LOC+RECHARGEAMT_LOC+TRANSFORM(ThisForm.spnAmount.Value,"@R 9,999,999")+IS_LOC+CHR(13)+;
RECHAMT_LOC+TRANSFORM(ThisForm.spnAmount.Value-ThisForm.rAmount,"@R
9,999,999")+BETTERAMT_LOC,;
MB_ICONEXCLAMATION, ;
AF_LOC)
ThisForm.spnAmount.SetFocus()
ENDCASE
ENDIF
RETURN llsave
*저장시 신규데이타 서버사이드 INSERT METHOD
IF EMPTY(ThisForm.pgfRecharge.Page1.txtCardid.Value)
=MESSAGEBOX(CHECKCARDID_LOC, 16, AF_LOC)
RETURN -1
ENDIF
LOCAL lnResult
lcTableName = "tpmcbd01"
SELECT (lcTableName)
LOCAL lcRcMangID,lcRCDate,lcCardid,lcSerial,lcRcGubun,lcPayMethod,lnAmount,;
lnBonusRate,lcDpbMangid,lcDpcMangid,lcCpmangid,lnBonusAmount,lnBeforeAmount,;
lnTotalAmount,lnTax,lcRdepositor,lcUserid,lcAgentId,lcAgentName,lnUsAmount,lcRemark
WITH ThisForm
lcRcMangID = ALLTRIM(.txtRcMang_id.Value) &&충전관리번호
lcRCDate = TTOC(.txtRc_Date.Value) &&충전일자
lcCardid = ALLTRIM(.txtCardid.Value) &&PIN
lcSerial = ALLTRIM(.txtSerial.Value) &&SERIAL
lcRcGubun = ALLTRIM(.cboRc_Gubun.Value) &&충전구분
lcPayMethod = IIF(ISNULL(.cboPay_Method.Value) OR EMPTY(.cboPay_Method.Value),"NULL",ALLTRIM
(.cboPay_Method.Value)) &&입금방식
lnAmount = .spnAmount.Value &&금액
lnBonusRate = .spnBonus_Rate.Value &&보너스율
lcDpbMangid = IIF(ISNULL(.txtDpbMang_id.Value) OR EMPTY(.txtDpbMang_id.Value),"NULL",ALLTRIM
(.txtDpbMang_id.Value)) &&현입입금번호
lcDpcMangid = IIF(ISNULL(.txtDpcMang_id.Value) OR EMPTY(.txtDpcMang_id.Value),"NULL",ALLTRIM
(.txtDpcMang_id.Value)) &&카드입금번호
lcCpmangid = IIF(ISNULL(.txtCpMang_id.Value) OR EMPTY(.txtCpMang_id.Value),"NULL",ALLTRIM
(.txtCpMang_id.Value)) &&불만관리번호
lnBonusAmount = .spnBonusAmount.Value &&보너스금액
lnBeforeAmount = .txtBefore_Amt.Value &&충전전금액
lnTotalAmount = .spnTotal_Amt.Value &&충전총액
lnTax = IIF(ISNULL(.chkTax.Value) OR EMPTY(.chkTax.Value),0,1) &&세금계산서발행유무
lcRdepositor = IIF(ISNULL(.txtRdepositor.Value) OR EMPTY(.txtRdepositor.Value),"NULL",ALLTRIM
(.txtRdepositor.Value)) &&실입금자
lcUserid = ALLTRIM(.txtUser_Id.Value) &&충전자
lcAgentId = IIF(ISNULL(.cboAgent_Id.Value) OR EMPTY(.cboAgent_Id.Value),"NULL",ALLTRIM
(.cboAgent_Id.Value)) &&Agent ID
lcAttnid = IIF(ISNULL(.cboAttn_Id.Value) OR EMPTY(.cboAttn_Id.Value),"NULL",ALLTRIM
(.cboAttn_Id.Value)) &&Agent 담당자
lnUsAmount = .spnUsAmount.Value
lcRemark = IIF(ISNULL(.edtRemark.Value) OR EMPTY(.edtRemark.Value),"NULL",ALLTRIM
(.edtRemark.Value)) &&메모사항
ENDWITH
* PPS ORACLE SERVER CARD VALUE UPDATE
lcQuery = [UPDATE CARD SET unitsleft=unitsleft+]+TRANSFORM(lnTotalAmount)+[ WHERE (cardid="]
+lcCardId+[")]
lnResult = ThisForm.csSqlServer.SQLEXECUTE(gnConnHandle2,lcQuery,[])
IF lnResult > 0
lcQuery = [INSERT INTO ]+ lcTableName + ;
[ (rcmang_id,rc_date,cardid,serial,rc_gubun,pay_method,amount,]+;
[bonus_rate,dpbmang_id,dpcmang_id,cpmang_id,bonus_amt,]+;
[before_amt,total_amt,tax,rdepositor,user_id,agent_id,attn_id,usamount,remark) VALUES
(]+;
["]+lcRcMangId+[","]+lcRcDate+[","]+lcCardid+[","]+lcserial+[",]+;
["]+lcRcGubun+[",]+IIF(lcPaymethod="NULL","NULL",["]+lcPaymethod+["])+[,]+;
TRANSFORM(lnAmount)+[,]+TRANSFORM(lnBonusRate)+[,]+;
IIF(lcDpbMangid="NULL","NULL",["]+lcDpbMangid+["])+[,]+;
IIF(lcDpcMangid="NULL","NULL",["]+lcDpcMangid+["])+[,]+;
IIF(lcCpMangid="NULL","NULL",["]+lcCpMangid+["])+[,]+;
TRANSFORM(lnBonusAmount)+[,]+TRANSFORM(lnBeforeAmount)+[,]+;
TRANSFORM(lnTotalAmount)+[,]+TRANSFORM(lnTax)+[,]+;
IIF(lcRdepositor="NULL","NULL",["]+lcRdepositor+["])+[,]+;
["]+lcUserId+[",]+IIF(lcAgentId="NULL","NULL",["]+lcAgentId+["])+[,]+;
IIF(lcAttnid="NULL","NULL",["]+lcAttnId+["])+[,]+TRANSFORM(lnUsAmount)+[,]+;
IIF(lcRemark="NULL","NULL",["]+lcRemark+["])+[)]
lnResult = ThisForm.csSqlServer.SQLEXECUTE(gnConnHandle1,lcQuery,[])
ENDIF
RETURN lnResult
*저장시 신규데이타 서버사이드 UPDATE METHOD
LOCAL lnResult
lcTableName = "tpmcbd01"
SELECT (lcTableName)
LOCAL lcRcMangID,lcRCDate,lcCardid,lcSerial,lcRcGubun,lcPayMethod,lnAmount,;
lnBonusRate,lcDpbMangid,lcDpcMangid,lcCpmangid,lnBonusAmount,lnBeforeAmount,;
lnTotalAmount,lnTax,lcRdepositor,lcUserid,lcAgentId,lcAgentName,lnUsAmount,lcRemark
WITH ThisForm
lcRcMangID = ALLTRIM(.txtRcMang_id.Value) &&충전관리번호
lcRCDate = TTOC(.txtRc_Date.Value) &&충전일자
lcCardid = ALLTRIM(.txtCardid.Value) &&PIN
lcSerial = ALLTRIM(.txtSerial.Value) &&SERIAL
lcRcGubun = ALLTRIM(.cboRc_Gubun.Value) &&충전구분
lcPayMethod = IIF(ISNULL(.cboPay_Method.Value) OR EMPTY(.cboPay_Method.Value),"NULL",ALLTRIM
(.cboPay_Method.Value)) &&입금방식
lnAmount = .spnAmount.Value &&금액
lnBonusRate = .spnBonus_Rate.Value &&보너스율
lcDpbMangid = IIF(ISNULL(.txtDpbMang_id.Value) OR EMPTY(.txtDpbMang_id.Value),"NULL",ALLTRIM
(.txtDpbMang_id.Value)) &&현입입금번호
lcDpcMangid = IIF(ISNULL(.txtDpcMang_id.Value) OR EMPTY(.txtDpcMang_id.Value),"NULL",ALLTRIM
(.txtDpcMang_id.Value)) &&카드입금번호
lcCpmangid = IIF(ISNULL(.txtCpMang_id.Value) OR EMPTY(.txtCpMang_id.Value),"NULL",ALLTRIM
(.txtCpMang_id.Value)) &&불만관리번호
lnBonusAmount = .spnBonusAmount.Value &&보너스금액
lnBeforeAmount = .txtBefore_Amt.Value &&충전전금액
lnTotalAmount = .spnTotal_Amt.Value &&충전총액
lnTax = IIF(ISNULL(.chkTax.Value) OR EMPTY(.chkTax.Value),0,1) &&세금계산서발행유무
lcRdepositor = IIF(ISNULL(.txtRdepositor.Value) OR EMPTY(.txtRdepositor.Value),"NULL",ALLTRIM
(.txtRdepositor.Value)) &&실입금자
lcUserid = .txtUser_Id.Value &&충전자
lcAgentId = IIF(ISNULL(.cboAgent_Id.Value) OR EMPTY(.cboAgent_Id.Value),"NULL",ALLTRIM
(.cboAgent_Id.Value)) &&Agent ID
lcAttnid = IIF(ISNULL(.cboAttn_Id.Value) OR EMPTY(.cboAttn_Id.Value),"NULL",ALLTRIM
(.cboAttn_Id.Value)) &&Agent 담당자
lnUsAmount = .spnUsAmount.Value
lcRemark = IIF(ISNULL(.edtRemark.Value) OR EMPTY(.edtRemark.Value),"NULL",ALLTRIM
(.edtRemark.Value)) &&메모사항
ENDWITH
lcQuery = [UPDATE ]+ lcTableName + ;
[ SET rc_date="]+lcRcDate+[",]+;
[cardid="]+lcCardid+[",]+;
[serial="]+lcserial+[",]+;
[rc_gubun="]+lcRcGubun+[",]+;
[pay_method=]+IIF(lcPaymethod="NULL","NULL",["]+lcPaymethod+["])+[,]+;
[amount=]+TRANSFORM(lnAmount)+[,]+;
[bonus_rate=]+TRANSFORM(lnBonusRate)+[,]+;
[dpbmang_id=]+IIF(lcDpbMangid="NULL","NULL",["]+lcDpbMangid+["])+[,]+;
[dpcmang_id=]+IIF(lcDpcMangid="NULL","NULL",["]+lcDpcMangid+["])+[,]+;
[cpmang_id=]+IIF(lcCpMangid="NULL","NULL",["]+lcCpMangid+["])+[,]+;
[bonus_amt=]+TRANSFORM(lnBonusAmount)+[,]+;
[before_amt=]+TRANSFORM(lnBeforeAmount)+[,]+;
[total_amt=]+TRANSFORM(lnTotalAmount)+[,]+;
[tax=]+TRANSFORM(lnTax)+[,]+;
[rdepositor=]+IIF(lcRdepositor="NULL","NULL",["]+lcRdepositor+["])+[,]+;
[user_id="]+lcUserId+[",]+;
[agent_id=]+IIF(lcAgentId="NULL","NULL",["]+lcAgentId+["])+[,]+;
[attn_id=]+IIF(lcAttnid="NULL","NULL",["]+lcAttnId+["])+[,]+;
[usamount=]+TRANSFORM(lnUsAmount)+[,]+;
[remark=]+IIF(lcRemark="NULL","NULL",["]+lcRemark+["])+[,]+;
[ie_Date="]+TTOC(DATETIME())+["]+;
[ WHERE rcmang_id="]+lcRcMangId+["]
lnResult = ThisForm.csSqlServer.SQLEXECUTE(gnConnHandle1, lcQuery,[])
RETURN lnResult
*서버자료 Requery Method
LOAD절 응용하면 됩니다.
위의 부분이 일단 골자입니다. 그외 컨트롤부분은 Tastrade에 아주 잘 나와있구여.
코딩을 보시면 아시겠지만 마니마니 줄일 수 있습니다. 그건 나름대로의 경륜이겠지여. ^^;;
암튼 이자료가 도움이 되었으면 합니다.
|
|
|
이
글에 평점 주기:
0점
1점 ■
2점 ■■
3점 ■■■
4점 ■■■■
5점 ■■■■■
6점 ■■■■■■
7점 ■■■■■■■
8점 ■■■■■■■■
9점 ■■■■■■■■■
|
|
|
|
|
|