123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530 |
- $PBExportHeader$w_addqty_input.srw
- forward
- global type w_addqty_input from w_publ_base
- end type
- type dw_1 from u_dw_rbtnfilter within w_addqty_input
- end type
- type cbx_3 from checkbox within w_addqty_input
- end type
- type cbx_1 from checkbox within w_addqty_input
- end type
- type cbx_2 from checkbox within w_addqty_input
- end type
- type em_1 from editmask within w_addqty_input
- end type
- type cbx_4 from checkbox within w_addqty_input
- end type
- type cbx_5 from checkbox within w_addqty_input
- end type
- end forward
- global type w_addqty_input from w_publ_base
- integer width = 1819
- integer height = 1468
- string title = "生成辅数串"
- boolean controlmenu = false
- boolean minbox = false
- windowtype windowtype = response!
- event insert_childrow ( )
- dw_1 dw_1
- cbx_3 cbx_3
- cbx_1 cbx_1
- cbx_2 cbx_2
- em_1 em_1
- cbx_4 cbx_4
- cbx_5 cbx_5
- end type
- global w_addqty_input w_addqty_input
- type variables
- int if_addmxdscrp=0
- int if_addformula = 0
- int if_sumqty = 0
- int if_format = 0
- String cur_mxdscrp = ''
- String cur_formula = ''
- s_addqty_input s_input
- end variables
- forward prototypes
- public function integer wf_new ()
- end prototypes
- event insert_childrow();long li_row
- li_row=dw_1.insertrow(0)
- dw_1.scrolltorow(li_row)
- dw_1.SetColumn ('num1')
- end event
- public function integer wf_new ();long ll_ucrow,i
- dw_1.reset()
- for i = 1 to 30
- dw_1.insertrow(0)
- next
- dw_1.setfocus()
- dw_1.setcolumn('num1')
- return 1
- end function
- on w_addqty_input.create
- int iCurrent
- call super::create
- this.dw_1=create dw_1
- this.cbx_3=create cbx_3
- this.cbx_1=create cbx_1
- this.cbx_2=create cbx_2
- this.em_1=create em_1
- this.cbx_4=create cbx_4
- this.cbx_5=create cbx_5
- iCurrent=UpperBound(this.Control)
- this.Control[iCurrent+1]=this.dw_1
- this.Control[iCurrent+2]=this.cbx_3
- this.Control[iCurrent+3]=this.cbx_1
- this.Control[iCurrent+4]=this.cbx_2
- this.Control[iCurrent+5]=this.em_1
- this.Control[iCurrent+6]=this.cbx_4
- this.Control[iCurrent+7]=this.cbx_5
- end on
- on w_addqty_input.destroy
- call super::destroy
- destroy(this.dw_1)
- destroy(this.cbx_3)
- destroy(this.cbx_1)
- destroy(this.cbx_2)
- destroy(this.em_1)
- destroy(this.cbx_4)
- destroy(this.cbx_5)
- end on
- event open;call super::open;Long i,j,k,li_pos,chc=0
- Dec ld_num[]
- Dec ld_tmpnum
- String ls_mxdscrp,ls_num
- long li_pos1,li_pos2
- String ls_num1,ls_num2
- if_addmxdscrp = long( f_profilestring (sys_empid,'addqty_input', "if_addmxdscrp", '0'))
- IF if_addmxdscrp = 1 THEN
- cbx_1.Checked = true
- ELSE
- cbx_1.Checked = false
- END IF
- if_addformula = long( f_profilestring (sys_empid,'addqty_input', "if_addformula", '0'))
- IF if_addformula = 1 THEN
- cbx_2.Checked = true
- ELSE
- cbx_2.Checked = false
- END IF
- if_sumqty = long( f_profilestring (sys_empid,'addqty_input', "if_sumqty", '0'))
- IF if_sumqty = 1 THEN
- cbx_3.Checked = true
- ELSE
- cbx_3.Checked = false
- END IF
- if_format = long( f_profilestring (sys_empid,'addqty_input', "if_format", '0'))
- IF if_format = 1 THEN
- cbx_4.Checked = true
- int li_formatnum
- li_formatnum = long( f_profilestring (sys_empid,'addqty_input', "formatnum", '0'))
- em_1.text = string(li_formatnum)
- ELSE
- cbx_4.Checked = false
- END IF
- wf_new()
- cur_mxdscrp = message.stringparm
- ls_mxdscrp = cur_mxdscrp + ' '
- IF if_addmxdscrp = 0 THEN RETURN
- IF POS(ls_mxdscrp,'/')<=0 THEN
- Do while len(ls_mxdscrp) <> 0
- li_pos = pos(ls_mxdscrp,' ')
- IF li_pos > 0 THEN
- ls_num = left(ls_mxdscrp,li_pos - 1)
- IF isNumber(ls_num) THEN
- chc++
- ld_num[chc] = Dec(ls_num)
- END IF
- END IF
- ls_mxdscrp = mid(ls_mxdscrp,li_pos+1,len(ls_mxdscrp))
- Loop
-
- //填格
- k = 1
- FOR i = 1 TO dw_1.Rowcount()
- FOR j = 1 TO 6
- IF k > chc THEN RETURN
- dw_1.setitem(i,j,ld_num[k])
- k++
- NEXT
- NEXT
- ELSE
- DO WHILE pos(ls_mxdscrp,'/')>0
- li_pos1 = pos(ls_mxdscrp,'/')
- li_pos2 = pos(ls_mxdscrp,'*')
- IF li_pos1 > 0 THEN
- ls_num1 = left(ls_mxdscrp,li_pos2 - 1)
- ls_num2 = MID(ls_mxdscrp,li_pos2 + 1,li_pos1 - li_pos2 - 1)
- IF NOT isNumber(ls_num1) THEN ls_num1 = '0'
- IF NOT isNumber(ls_num2) THEN ls_num2 ='0'
- chc++
- ld_num[chc] = Dec(ls_num1)
- chc++
- ld_num[chc] = Dec(ls_num2)
- END IF
- ls_mxdscrp = mid(ls_mxdscrp,li_pos1+1,len(ls_mxdscrp))
- LOOP
-
- k = 1
- FOR i = 1 TO (CHC /2)
- FOR j = 1 TO 2
- dw_1.setitem(i,j,ld_num[k])
- k++
- NEXT
- NEXT
- END IF
- end event
- event close;call super::close;IF cbx_4.Checked THEN
- Int li_formatnum
- li_formatnum = Long(em_1.Text)
- f_SetProfileString (sys_empid,'addqty_input', "formatnum", String(li_formatnum))
- END IF
- CloseWithReturn(This,s_input)
- end event
- type cb_func from w_publ_base`cb_func within w_addqty_input
- integer x = 1157
- integer y = 1180
- integer width = 311
- integer height = 96
- string text = "确定"
- integer picsize = 0
- toolbaralignment pic_align = alignatleft!
- boolean border = true
- end type
- event cb_func::clicked;call super::clicked;//ld_tnum 总数量
- //ls_numstr 明细
- Long i,j,num = 0
- Dec ld_num,ld_tnum,ld_A,ld_B
- String ls_numstr
- String ls_numstr1
- String ld_Aa,ld_Bb
- int li_pos
- string ls_formatstr
- li_pos = long(em_1.text)
- IF cbx_5.checked = true then
- dw_1.AcceptText( )
- FOR i = 1 TO dw_1.RowCount()
- ld_A = dw_1.GetItemDecimal(i,1)
- ld_B = dw_1.GetItemDecimal(i,2)
- IF IsNull(ld_A) OR ld_A = 0 or IsNull(ld_B) OR ld_B = 0 THEN CONTINUE
-
- ld_Aa = String(ld_A,'#,#0.#####')
- ld_Bb = String(ld_B,'#,#0.#####')
- IF right(ld_Aa,1) = '.' then ld_Aa = left(ld_Aa,len(ld_Aa) - 1)
- IF right(ld_Bb,1) = '.' then ld_Bb = left(ld_Bb,len(ld_Bb) - 1)
- // ls_numstr = ls_numstr + String(ld_A,'#,##.#####')+'*'+String(ld_B,'#,##.#####')+ '/'
- // ls_numstr1 = ls_numstr1 + String(ld_A,'#,##.#####')+'*'+String(ld_B,'#,##.#####')+ '/'
- ls_numstr = ls_numstr + ld_Aa+'*'+ld_Bb+ '/'
- ls_numstr1 = ls_numstr1 + ld_Aa+'*'+ld_Bb+ '/'
- ld_tnum = ld_tnum + (ld_A * ld_B)
- num = num +ld_B
- NEXT
-
- s_input.addqty = num
- s_input.qty = ld_tnum
- s_input.addqtystr = ls_numstr
- s_input.formula = ls_numstr1
-
- s_input.flag = 1
- ELSE
- if not cbx_4.checked then
- ls_formatstr = '#######'
- else
- ls_formatstr = '#0.'
- do while li_pos > 0
- ls_formatstr += '0'
- li_pos = li_pos - 1
- loop
- end if
-
- dw_1.AcceptText( )
-
- FOR i = 1 TO dw_1.RowCount()
- FOR j = 1 TO 6
- ld_num = dw_1.GetItemDecimal(i,j)
- IF IsNull(ld_num) OR ld_num = 0 THEN CONTINUE
-
- if ls_formatstr = '#######' then //位数不固定
- IF Round(ld_num,0) = ld_num THEN
- ls_numstr = ls_numstr + String(ld_num,'#######') + ' '
- ls_numstr1 = ls_numstr1 + String(ld_num,'#######') + '+'
- ELSE
- ls_numstr = ls_numstr + String(ld_num,'#0.#####') + ' '
- ls_numstr1 = ls_numstr1 + String(ld_num,'#0.#####') + '+'
- END IF
- else
- ls_numstr = ls_numstr + String(ld_num,ls_formatstr) + ' '
- ls_numstr1 = ls_numstr1 + String(ld_num,ls_formatstr) + '+'
- end if
- ld_tnum = ld_tnum + ld_num
- num++
- NEXT
- NEXT
-
- ls_numstr = Left(ls_numstr,Len(ls_numstr) - 1)
- ls_numstr1 = Left(ls_numstr1,Len(ls_numstr1) - 1)
-
- IF ld_tnum = 0 THEN
- MessageBox('提示','请输入数量', Information!, OK! )
- RETURN
- END IF
-
- s_input.addqty = num
-
- IF if_sumqty = 1 THEN
- s_input.flag = 1
- s_input.qty = ld_tnum
- ELSE
- s_input.flag = 0
- END IF
-
- IF if_addmxdscrp = 1 THEN
- s_input.addqtystr = ls_numstr
- ELSE
- s_input.addqtystr = ''
- END IF
-
- IF if_addformula = 1 THEN
- s_input.formula = ls_numstr1
- ELSE
- s_input.formula = ''
- END IF
- END IF
- Close(PARENT)
- end event
- type cb_exit from w_publ_base`cb_exit within w_addqty_input
- integer x = 1467
- integer y = 1180
- end type
- event cb_exit::clicked;s_input.addqty = -1
- s_input.addqtystr = ''
- close(parent)
- end event
- type dw_1 from u_dw_rbtnfilter within w_addqty_input
- integer width = 1774
- integer height = 1104
- integer taborder = 20
- boolean bringtotop = true
- string dataobject = "dw_addqty_input"
- boolean vscrollbar = true
- end type
- event dwnkey;call super::dwnkey;IF KeyDown(Keydownarrow!) THEN
- IF dw_1.GetRow() = dw_1.RowCount() THEN
- PARENT.TriggerEvent('insert_childrow')
- END IF
- ELSE
- IF KeyDown(KeyEnter!) AND NOT KeyDown(KeyControl!) AND NOT KeyDown(KeyShift!) THEN
- IF Key = KeyEnter! THEN //
- keybd_event ( 9, 0, 0 , 0 ) // 按下tab
- keybd_event ( 9, 0, 2, 0 ) // 释放tab
- RETURN 1
- END IF
-
- IF dw_1.GetColumnName( ) = 'num6' AND dw_1.GetRow() = dw_1.RowCount() THEN
- PARENT.TriggerEvent("insert_childrow")
- RETURN 1
- END IF
- END IF
- END IF
- end event
- type cbx_3 from checkbox within w_addqty_input
- integer x = 530
- integer y = 1124
- integer width = 375
- integer height = 64
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long backcolor = 134217739
- string text = "合计到数量"
- end type
- event clicked;IF THIS.Checked THEN
- if_sumqty = 1
- ELSE
- if_sumqty = 0
- END IF
- f_SetProfileString (sys_empid,'addqty_input', "if_sumqty", String(if_sumqty))
- end event
- type cbx_1 from checkbox within w_addqty_input
- integer y = 1120
- integer width = 521
- integer height = 60
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long backcolor = 134217739
- string text = "生成辅数串到备注"
- end type
- event clicked;IF THIS.Checked THEN
- if_addmxdscrp = 1
- ELSE
- if_addmxdscrp = 0
- END IF
- f_SetProfileString (sys_empid,'addqty_input', "if_addmxdscrp", String(if_addmxdscrp))
- end event
- type cbx_2 from checkbox within w_addqty_input
- integer y = 1196
- integer width = 521
- integer height = 60
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long backcolor = 134217739
- string text = "生成辅数串到公式"
- end type
- event clicked;IF THIS.Checked THEN
- if_addformula = 1
- ELSE
- if_addformula = 0
- END IF
- f_SetProfileString (sys_empid,'addqty_input', "if_addformula", String(if_addformula))
- end event
- type em_1 from editmask within w_addqty_input
- integer x = 530
- integer y = 1252
- integer width = 183
- integer height = 84
- integer taborder = 30
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 33554432
- string text = "1"
- alignment alignment = center!
- borderstyle borderstyle = stylelowered!
- string mask = "0"
- boolean spin = true
- string minmax = "1~~5"
- end type
- type cbx_4 from checkbox within w_addqty_input
- integer y = 1264
- integer width = 507
- integer height = 60
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 33554432
- long backcolor = 134217739
- string text = "辅数串固定小数位"
- end type
- event clicked;IF THIS.Checked THEN
- if_format = 1
- ELSE
- if_format = 0
- END IF
- f_SetProfileString (sys_empid,'addqty_input', "if_format", String(if_format))
- end event
- type cbx_5 from checkbox within w_addqty_input
- integer y = 1336
- integer width = 805
- integer height = 64
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long backcolor = 134217739
- string text = "新模式 前两列(规格,数量)"
- end type
- event clicked;long flag
- IF THIS.CHECKED = TRUE THEN
- flag = 1
- ELSE
- flag = 0
- END IF
- f_SetProfileString (sys_empid,'newmode', "flag", String(flag))
- end event
- event constructor;
- IF long( f_profilestring (sys_empid,'NEWMODE', "flag", '0')) = 1 THEN
- THIS.CHECKED = TRUE
- ELSE
- THIS.CHECKED = FALSE
- END IF
- end event
|