www.pudn.com > jq_transfile.ARJ > SDKRPT.PRG


*ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ· 
*º                                                         º 
*º   ÎļþÃû³Æ: SDKRpt                                      º 
*º   ¹¦    ÄÜ: SDK for FoxProµÄ±¨±íÉú³É³ÌÐò                º 
*º   °æ    Ȩ: ±±¾©Ï£Íû¸ß¼¼Êõ¼¯ÍÅ                          º 
*º   ×÷    Õß: Âí¿Æ                                        º 
*º   °æ±¾ÀúÊ·: ÐÞ¸ÄÈÕÆÚ   ÐÞ¸ÄÕß   ˵Ã÷                    º 
*º             ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ     º 
*º             1996.06.08  Âí¿Æ   ³ÌÐòµÚÒ»°æ               º 
*º                                                         º 
*º   Èë¿Ú²ÎÊý: RptName ©¤ ±¨±íÎļþÃû³Æ                     º 
*º                                                         º 
*ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ 
para RptName 
priv all like p* 
 
if dbf()=="" 
   do _Error in MisTool with "ÇëÏÈ´ò¿ªÄ³Ò»Êý¾Ý¿â!" 
   retu 
endi 
 
pcColor='N/W,W+/B,W+/W,W+/B,W/B,W+/B,W+/W,W/B,N/W,N+/W' 
if !type("RPTNAME")=='C' 
   RptName=GetFileName() 
	if at('.',right(RptName,4))=0 
		RptName=RptName+".DBF" 
	endi 
else 
	if at('.',right(RptName,4))=0 
		RptName=RptName+".DBF" 
	endi 
   if !file(RptName) 
      RptName=GetFileName() 
   endi 
endi 
if RptName=='' 
   retu 
endi 
 
pnArea=sele(0) 
sele 0 
if !file(RptName) 
	pSafe=set("SAFE") 
	set safe off 
	crea TABLE &RptName (RPTHEAD M, RPTFOOT M, PAGEHEAD M,PAGEFOOT M,FIELDS M) 
	appe blan 
	set safe &pSafe 
endi 
use &RptName 
pRptAlias=alias() 
 
set memo to 1024 
 
pcRptHead=RptHead 
pcRptFoot=RptFoot 
pcPageHead=PageHead 
pcPageFoot=PageFoot 
pnSelFldNum=iif(meml(FIELDS)=0,0,meml(FIELDS)-1) 
if pnSelFldNum!=0 
	dime pSelFldLst[pnSelFldNum] 
	for pI=1 to pnSelFldNum 
		pSelFldLst[pI]=mline(FIELDS,pI) 
	endf 
endi 
 
pcColor='N/W,W+/B,W+/W,W+/B,W/B,W+/B,W+/W,W/B,N/W,N+/W' 
=DefiWind("FLDSEL",1,1,24,78,"colo (pcColor) titl '±¨±í¸ñʽÉè¼Æ'") 
=ActiWind("FLDSEL") 
 
defi popu SFldPop mover mult scro mark "" colo (pcColor) 
for pI=1 to pnSelFldNum 
    defi bar pI of SFldPop prom " * "+pSelFldLst[pI]+": "+ChnField(pSelFldLst[pI]) 
endf 
 
pnBarNo=pnSelFldNum 
sele (pnArea) 
do DefiFldBar 
pcRela=set("RELA") 
if !pcRela=="" 
	for pI=1 to occu(" INTO ",pcRela) 
		pnPos1=at(" INTO ",pcRela,pI)+6 
	? pnPos1 
		pnLen=at(",",subs(pcRela,pnPos1)) 
		if pnLen=0 
			pnLen=len(subs(pcRela,pnPos1))+1 
		endi 
		pcDBF=subs(pcRela,pnPos1,pnLen-1) 
? pnLen 
	? pcDBF 
	wait 
		sele (pcDBF) 
		do DefiFldBar 
	endf		 
endi 
sele (pnArea) 
 
pcEnter=on("KEY","ENTER") 
pcSpaceBar=on("KEY","SPACEBAR") 
 
*on key label Enter do EnterHandle 
pnDsnOp=1 
pnSFldSel=1 
 
on key label ENTER do MarkBar 
on key label SPACEBAR do MarkBar 
do whil pnDsnOp<=2 
   =cls() 
   if pnDsnOp=1 
      do BodyDesign 
   else 
      do LayoutDesign 
   endi 
   =GetCtrl(21,6,14,3,  "pnDsnOp","func '*H \><>º 
\*º                                                                        º 
\*ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ 
 
pTmpName=sys(3) 
\do _OutReport in MisTool with "<>","±¨±í" 
\retu 
\ 
\proc <> 
 
pnSelFldNum=iif(meml(FIELDS)=0,0,meml(FIELDS)-1) 
if pnSelFldNum!=0 
	dime pSelFldLst[pnSelFldNum,3] 
	for pI=1 to pnSelFldNum 
		pSelFldLst[pI,1]=mline(FIELDS,pI) 
		pSelFldLst[pI,2]=ChnField(pSelFldLst[pI,1]) 
		pSelFldLst[pI,2]=subs(pSelFldLst[pI,2],at(".",pSelFldLst[pI,2])+1) 
		if len(pSelFldLst[pI,2])>GetSize(pSelFldLst[pI,1]) 
			pSelFldLst[pI,3]=len(pSelFldLst[pI,2]) 
		else 
			pSelFldLst[pI,3]=GetSize(pSelFldLst[pI,1]) 
		endi		 
	endf 
endi 
\go top 
for pI=1 to meml(RptHead) 
   \? "<>" 
endf 
\pPageHead=.t. 
\pLineNo=<> 
 
if pnSelFldNum!=0 
	\do whil !eof() 
	\	if pPageHead 
	\		pPageHead=.f. 
	for pI=1 to meml(PageHead) 
		\		? "<>" 
	endf 
	pTopStr="Ú" 
	pSepStr="Ã" 
	pBotStr="À" 
	for pI=1 to pnSelFldNum 
		pTopStr=pTopStr+repl('Ä',pSelFldLst[pI,3])+"Â" 
		pSepStr=pSepStr+repl('Ä',pSelFldLst[pI,3])+"Å" 
		pBotStr=pBotStr+repl('Ä',pSelFldLst[pI,3])+"Á" 
	endf 
	pTopStr=left(pTopStr,len(pTopStr)-1)+"¿" 
	pSepStr=left(pSepStr,len(pSepStr)-1)+"´" 
	pBotStr=left(pBotStr,len(pBotStr)-1)+"Ù" 
	\		? "<>" 
	pFldStr="³" 
	for pI=1 to pnSelFldNum 
		pFldStr=pFldStr+repl(' ',iif(pSelFldLst[pI,3]>len(pSelFldLst[pI,2]),; 
			(pSelFldLst[pI,3]-len(pSelFldLst[pI,2]))/2,0)); 
			+pSelFldLst[pI,2]+; 
			repl(' ',iif(pSelFldLst[pI,3]>len(pSelFldLst[pI,2]),; 
			(pSelFldLst[pI,3]-len(pSelFldLst[pI,2]))/2+0.5,0))+"³" 
	endf 
	\		? "<>" 
	\	endi 
 
	\	if pLineNo<_PLENGTH 
	\		pLineNo=pLineNo+2 
	\		? "<>" 
	pStr="³" 
	for pI=1 to pnSelFldNum 
		if pSelFldLst[pI,3]>GetSize(pSelFldLst[pI,1]) 
			pStr=pStr+repl(' ',(pSelFldLst[pI,3]-GetSize(pSelFldLst[pI,1]))/2) 
		endi 
		if pI=1 
			\		? "<>" 
		else 
			\		?? "<>" 
		endi 
		\		?? <> 
		if pSelFldLst[pI,3]>GetSize(pSelFldLst[pI,1]) 
			pStr=repl(' ',(pSelFldLst[pI,3]-GetSize(pSelFldLst[pI,1]))/2+0.5) 
		else 
			pStr="" 
		endi 
		pStr=pStr+"³" 
	endf 
	\		?? "<>" 
	\	else 
	\		pLineNo=<> 
	\		pPageHead=.t. 
	\		? "<>" 
	for pI=1 to meml(PageFoot) 
		\		? "<>" 
	endf 
	\		if !eof() 
	\			eject 
	\		endi 
	\	endi 
	\	skip 
	\endd 
	\if !pPageHead 
	\	? "<>" 
	\endi 
endi 
 
for pI=1 to meml(RptFoot) 
   \? "<>" 
endf 
\ejec 
 
\retu 
 
set text to 
set text off 
set cons &pCons 
retu 
 
 
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 
*³ Function:    GetSize                                            ³ 
*³ Description:                                                    ³ 
*³                                                                 ³ 
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 
func GetSize 
para pFldName 
retu fsize(subs(pFldName,at(".",pFldName)+1),left(pFldName,at(".",pFldName)-1)) 
 
 
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 
*³ Function:    GetFileName                                        ³ 
*³ Description:                                                    ³ 
*³                                                                 ³ 
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 
func GetFileName 
priv pFileName 
 
pFileName=repl(' ',128) 
=DefiWind("GetName",4,15,12,64,"colo &pcColor titl '×¢ Òâ'") 
=ActiWind("GetName") 
@2,3 say "ÇëÊäÈ뱨±íÎļþÃû:" 
=Get(2,21,'pFileName',"pict repl('X',128) vali !pFileName=='' size 1,24") 
=GetCtrl(5,10,12,6,"pOpSel","func '*H \