名师点评如何得知每一个报表的.docx

上传人:b****5 文档编号:29297699 上传时间:2023-07-22 格式:DOCX 页数:92 大小:81.61KB
下载 相关 举报
名师点评如何得知每一个报表的.docx_第1页
第1页 / 共92页
名师点评如何得知每一个报表的.docx_第2页
第2页 / 共92页
名师点评如何得知每一个报表的.docx_第3页
第3页 / 共92页
名师点评如何得知每一个报表的.docx_第4页
第4页 / 共92页
名师点评如何得知每一个报表的.docx_第5页
第5页 / 共92页
点击查看更多>>
下载资源
资源描述

名师点评如何得知每一个报表的.docx

《名师点评如何得知每一个报表的.docx》由会员分享,可在线阅读,更多相关《名师点评如何得知每一个报表的.docx(92页珍藏版)》请在冰豆网上搜索。

名师点评如何得知每一个报表的.docx

名师点评如何得知每一个报表的

⏹掌握NE5000E/80E/40E产品的体系结构

⏹掌握NE5000E/80E/40E的单板构成

⏹掌握NE5000E/80E/40E换板操作

⏹了解NE5000E/80E/40E升级操作

:

:

如何得知每一個報表的GH和GF之間的筆數?

:

Ans:

可在GH的起始程序,用GETRECN(fm-C[,to-C])計算目前兩個鍵值間筆數。

:

:

對一檔案做SETWHILEFROMXTOY後,如何求得X和Y之間的筆數?

:

Ans:

Table.RecordCount即可

:

:

請問在lookuplist內使用SQL元件有無方法設定鍵值範圍?

:

Ans:

不能設鍵值範圍,但可在edit的起始程序對SQL做where.

:

:

有關報表掉字(會亂成一團)的問題:

可能發生的情況如下:

:

:

1.只要在DT的行數不是1的時候,幾乎一定會掉字.

:

:

2.也會有預視和印表機印出來不一樣的結果.

:

:

3.Subpanel最容易發生且最明顯.

:

:

4.若僅是很單純的列印(沒有Subpanel),列印大量中文字(用Label或Memo)也會掉字.

:

Ans:

解決方式為:

:

1.在要列印的文字前後加上長度不一的空白,可解決部份問題.若純為Label,則在要列印

:

的Label前多貼一個Label,內容定為數字,顏色設為白色,可以解決全部的掉字問題.

:

2.我的經驗如下最好是使用新細明體的字型.:

3.subpanel內的label或field如掉字,則不要用運算式:

4.label或field的字型改變底線或斜體可能會好一點:

5.顏色改變一下,我測試過黃色可以,但其他顏色不一定可以

:

:

有關報表選擇後的列印問題:

:

:

甲產品(數量)10(DT):

:

(金額)200:

:

乙產品(數量)5:

:

(金額)1000:

:

希望讓USER輸入

(1)只印數量

(2)只印金額(3)兩著都印,如果選(3)則無問題,

:

:

若USER選1OR2則印出來行與行之間會空一行,請問如何解決?

?

:

Ans:

在init設定DT的高度即可.

:

:

請問如何動態決定是否資料關聯?

:

Ans:

RELINVOINVOSUB.Relmode=0代表沒關連.

:

:

如何取得資料字典內的資料表欄位之中文抬頭,謝謝!

:

Ans:

getdict("VDDEMO","ITEM","QUANTITY")

:

:

如何控制印表預覽元件?

:

:

如何控制印表預覽時,只出現word連結,但不要出現excel連結?

:

Ans:

可在rep上貼報表元件->控制面板,然後控制面板可自行設計.

:

:

請問有關多欄位判斷式儲存至另一顯示用欄位的方法:

:

:

如何在表單新增資料時,將已輸入之A、B兩欄位的資料透過條件式運算將其結果存入:

:

C欄位?

而C欄位不輸入只是顯示。

爾後如果A、B兩欄的值有變動,C欄亦需跟著變動.

:

:

遍尋操作手冊及Q&A好像沒找到相關說明(在新增時)?

謝謝!

:

Ans:

在Table的"系統預設"內,設定C欄位=A、B兩欄位的資料運算即可.

:

:

(續)我需要的是A、B兩欄位的資料透過IF....ELSE...ENDIF的'條件運算,非單獨A,B

:

:

欄位的運算.試過子程式控制,但REPLACE時被系統擋掉,原因是非修改模式…:

Ans:

(1)Table的存檔前,執行REPLACE即可:

並判斷Table.state()=3&&新增,2更改,1瀏覽.

:

(2)若要動態顯示是LABEL,則a.此LABEL須設資料表如M_CLAS;b.資料表的存檔後寫:

Label5.Exp.Source="'(總筆數:

'+Alltrim(Str(M_CLAS.LASTREC()))+'筆)'"

Return.t.

:

:

TVDCHECK元件,為何無’起始程序’/’結束程序’/’執行條件’?

:

:

當點選TRUE後如希望處理其他動作(如將其他元件VISIBLE=FALSE)如何控制?

:

Ans:

起始程序可用OnEnterEvent;結束程序可用OnExitEvent!

:

:

有關Gridcopy的問題:

:

:

使用SQL查詢出資料並放在GRID2中,欲COPY到GRID1(TABLE)中應如何作?

:

Ans:

Grid一定要連接Table,才能顯示.所以你可selesqlcopytotempseletable:

appendfromtemp

:

:

請問有辦法取得field的加總值(Totalval)嗎?

:

Ans:

Field.TotalVal就是,但是否加總需設True.

:

:

(續)我是說能將秀出來那個加總值assign給一個edit.text嗎?

:

Ans:

可在Table的移動後,寫assign(edit.text,field.totalval)

:

:

有關check無法即時更新:

:

:

當table只有一筆資料時,剛進入form去查看該check的狀態時,並無法即時反應?

:

:

除非在init重新下refresh()才會正常反應?

?

:

Ans:

LTYPE測試並無此現象,而你的是CTYPE,所以測出來確實有此問題!

:

不過在INIT加Refresh()就會重新抓取.12/29/99'

:

:

Vd2.0網路版可否像Vd1.1不用架server就可以使用網路的功能?

:

Ans:

和VD1.1一樣,但BDE的LOCALSHARE要設成True.

:

:

VDTips:

設計模式常用熱鍵一覽表:

:

C+W存檔C+D鍵盤順序F6DBModuleF9程式編輯:

C+K重整C+E啟動物件預設值F7除錯F11物件編輯器:

C+L對齊C+M套用物件預設值F8執行F12點提示

:

:

報表設計大難題,VD要如何做到橫向累計效果?

?

:

:

請教各位...我有一支報表格式如下:

:

DT:

:

1:

field01field02field03field01:

:

PFSUM01SUM02SUM03:

:

2:

203040:

:

PFLABEL01LABEL02LABEL03:

:

3:

205090←問題:

:

第2行是用SUM得到合計ok,

:

:

現在我要做第3行橫向累計,用多個LABEL元件,並用運算式分別設定:

:

:

TRAN(SUM01.VALUE,'@N10'):

:

TRAN(SUM02.VALUE+VAL(LABEL01.CAPTION),'@N10'):

:

TRAN(SUM03.VALUE+VAL(LABEL02.CAPTION),'@N10'):

:

跑出來結果只有SUM01,SUM02,SUM03沒有LABEL的累加值,為什麼會這樣呢?

:

:

後來我把LABEL換FIELD元件來做,同樣在運算式設定:

:

:

TRAN(SUM01.VALUE,'@N10'):

:

TRAN(SUM02.VALUE+VAL(FIELD01.TEXT),'@N10'):

:

TRAN(SUM03.VALUE+VAL(FIELD02.TEXT),'@N10'):

:

卻出現FIELD元件沒有TEXT屬性?

請問我該怎麼做呢?

TKS!

!

:

Ans:

TRAN(SUM01.VALUE,'@N10'):

TRAN(SUM01.VALUE+SUM02.VALUE,'@N10'):

TRAN(SUM01.VALUE+SUM02.VALUE+SUM03.VALUE,'@N10'),應該可以!

:

:

報表選印表機的問題?

:

:

在印表畫面中,有一個'版面設定'可以讓USER自行選擇印表機,可是為什麼每次印表時,:

:

該印表機都會回到'系統預設印表機'呢?

若USER不把想要印表的印表機給設成'預設'時,:

:

將會發生想要印表時,都要再去選一次印表機,這樣不是很不方便嗎?

:

Ans:

這是大部分的report設計方式規格,如果你要讓user設定,需自行開一table儲存:

然後在印表前,動態設定要印至哪一台印表機.

:

:

在Grid中Field的"執行條件"判斷是否已執行過沖帳作業,如果已執行就無法做更改的

:

:

動作,但卻無法自動顯示警告訊息,所以才在init以下設計程式:

:

:

IFARV02->ARV02_08=1:

:

GRID0.NAME.WHEN.SOURCE=".F.":

:

Navigator0.CANCEL():

:

MESSAGE("本應收帳款已沖帳,無法修改資料!

!

"):

:

ENDIF:

:

RETURN:

:

但是出現Message後,卻仍可做修改的動作,所以才想做按下Esc鍵,以離開此筆資料.:

Ans:

你最好在Table的更新前,判斷是否可更新比較好控制!

:

:

有關於報表”印表路徑”PageSetup()問題1?

?

:

:

若想用一個TABLE(DBF)去管理系統中所有報表及其使用之列印機種及位置,是否可行?

?

:

:

(看過VF/VB所寫的程式,好像都是如此管理的),但因為VD之特性必需先開啟報表,才能

:

:

改變或得知該報表之預設印表機名稱路徑及紙張大小…..?

:

:

如果可行(又REPX.PageSetup()只能在REPnOPEN後方能呼叫),請問應如何才能按一

:

:

BUTTON去呼叫WINDOWS的印表機管理設定畫面?

?

:

Ans:

VD並無直接呼叫WINDOWS的印表機管理設定畫面指令,VD的特性需先開啟報表,

:

才能改變或得知該報表之預設印表機名稱路徑及紙張大小,不過你可以open但不顯示,

:

newrep()現在有四個參數,newrep('test','',.f.)即讓報表open但不顯示

:

:

有關於報表”印表路徑”PageSetup()問題2?

?

:

:

請問應如何才能如ASSIGN(REPX.DefaultPaperSize,'Letter81/2*11in'),:

:

改變該報表之預設印表機?

:

Ans:

有一個功能函數getprint(n)可以抓取windows的印表機,如你要改變印表機,

:

只要在report的init下REPX.DefaultPrinter=getprint(n).

:

:

直接印表的問題?

:

:

在FORM中有一BUTTON,執行程序是TEST(),程式如下:

:

:

AA=NEWREP("PASS_REP","",.F.):

:

AA.PRINT():

:

AA.CLOSE():

:

RETURN:

:

以上是不經預覽而直接印表,可是在執行時,畫面會閃動一下,因為會很快的開啟REP,

:

:

然後印表資料丟到印表機,接著就關閉REP…怎麼做才可以不用看到此閃動畫面呢?

:

Ans:

你的作法是正確的,目前沒有其他方法.

:

:

REP轉EXCEL,WORD,FAX在報表抬頭位置可否於系統後抬加入是否使用之參數?

:

:

如此可依客戶之需求或程式售價之高低開放程式師自由發揮控制..

:

Ans:

vd20.exe*.vds-p?

?

?

用_DOS_PARA得到參數,在rep的init去控制報表抬頭位置.

:

:

在報表中使用TABLE1中的欄位關聯兩個TABLE2及TABLE3共三個TABEL,

:

:

列印資料表設為TABLE1為何列印時第一筆的資料內容會亂跳,而無法正常出現?

:

:

大部都是過濾後,最後一筆資料會出現在第一筆而使此第一筆會無法印出?

?

:

Ans:

請傳sampletopeter@

:

或是貼一個RH,然後在RH的起始程序寫table1.refresh()看看(RH高度設1).

:

:

請問為何有些Label(Field)的最後一個字不會被列印出來,有些則會.?

:

Ans:

請將[自動縮放]的屬性設.F.,並將寬度拉寬一點點就可以了,因為報表再計算上可能

:

會有誤差一兩點,所以請改用以上方式.

:

:

請問如何動態加入圖形?

:

:

設計模式下可以加入圖形檔,但在執行模式要如何做?

假如edit0.text中有圖形檔案名稱,:

:

是不是該寫成edit0.text=image0.image?

?

?

…該在哪個event下?

:

Ans:

G=Button0.Glyph,G.LoadFromFile("Test.bmp"),只能用BMP檔.

:

:

(廣告時間)提供功能完整的權限管理,支援VD2.0....

:

:

權限管理在一套完整的系統裡佔著相當重要的角色,目前VD20所支援的權限管理,

:

:

在使用者界面上並不是那麼的容易使用,尤其要教會一般的USER更加困難,:

:

於是作者開發一個多功能的權限管理,讓設計師可以很快的將這個權限管理功能融入

:

:

自己所設計的系統中,並提供範例說明。

其功能如下:

:

:

1.可依照員工資料動態設定MAINMENU功能:

:

2.個別設定每個FORM->TABLE新增、刪除、修改功能:

:

3.個別設定每個FORM->TABLE->FIELD顯示、修改、加密功能:

:

4.個別設定每個FORM->每個物件顯示、執行、修改、加密功能:

:

5.MAINMENU、TABLE、FIELD、物件自動匯入,無須一個一個定義:

:

6.SOURCECODE完全公開,可依照自己的意思加以修改:

:

7.只需在FORM->INIT加入一行程式,就可達到權限管理功能:

:

8.簡易USER操作界面.歡迎洽詢jear@蘇正榮89.01.17.

:

:

STATUSBAR寬度如何設定?

依六.元件使用Q15使用,會顯示無Width之屬性?

:

:

有沒有方法可以設定單獨item之寬度?

:

Ans:

p=StatusBar0.Panels:

P0=p.Items(0):

p0.Width=200

:

:

Navigator中之”控制面版”有何作用?

:

:

當navigator貼在panel上時,若設定”控制面版”,則所有navigator中之功能均無法使用,

:

:

且進入設計模式後,也無法刪除控制面版之設定,必須刪除navigator,再貼一個新的才可以?

:

Ans:

Navigator0.LinkPanel是新加入的屬性,如果有設定,一定要按更改才能編輯!

:

:

ALIASPATH()的問題:

:

:

請問我的系統並非C/S為什麼我在下?

ALIASPATH("VDDEMO")卻傳回空字串呢?

:

Ans:

我測試ALIASPATH("VDDEMO")正常,會傳回路徑,:

請檢查是否有此資料集,或vengine32.dll是否run到舊版

:

:

請問如何直接執行資料重整而不出現資料集的資料表單資料畫面?

:

Ans:

packs('vddemo','*.*')直接重整所有檔案!

:

:

怎麼用_sys_user_info.adduserallinfo(...)?

:

Ans:

寫法:

_sys_user_info.ADDUSERALLINFO('003','004','AAA1','AAA1','AAA1','1',.T.,.T.).

:

:

有關SQLSERVER登錄:

:

:

SQLSERVER7.0環境下,client透過BDENative連上server,active第一個sql物件,都會

:

:

出現uesr及passwd的視窗.:

:

問題1:

曾經自己設計一個login的畫面,取得username及passwd,用logindb()登錄資料庫,

:

:

再activesql物件時,還是會出現user及passwd的視窗:

:

問題2:

權限管理的問題:

vd的帳號管理資料存在vds檔,在多個client端,操作者異動vd

:

:

本身的帳號(getuser()),勢必要更新每個client的vds,或者vds放在網路讓每個操作

:

:

者共用,是否是如此?

還是有其它的方法可用.:

:

問題3:

cs架構中,要異動使用者帳號(比如新增),是不是都要作兩個動作:

:

:

(1)在sqlserver新增使用者:

:

(2)新增同一使用者在vds裡面:

:

PS:

LOGINDB()函數好像沒什麼作用,回傳值永遠是0,但也沒有任何訊息?

:

Ans:

1.我們有專案是使用SQLServer資料庫,用logindb()很正常.:

2.vds放在網路讓每個操作者共用,若還要控制user的功能權,最好開Table自行設計.:

3.沒錯,但通常c/s的架構,我較喜歡用"sa"logindb(),然後開一Table來管理user權限.

:

:

Form關閉時,會在關閉某SQL時發生錯誤?

!

:

:

將Form關閉到一半時,會有Vd2.0錯誤訊息如下:

:

:

invaliduseofkeyword.;Token:

AND;LineNumber:

6.:

:

按確定並關閉VD2程式,接下來在幾個的Accessviolation錯誤訊息後,就會出現“這個

:

:

程式執行的作業無效即將關閉"的Windows錯誤訊息或是Runtime32的一連串錯誤訊息!

:

:

多試幾次後,還會造成系統資源不足很是困擾…,奇怪的是造成錯誤的SQL在Form中,開

:

:

關都沒問題!

?

PS:

如果將Where陳述式拿掉,就沒有上述的問題。

:

Ans:

請在formend程序下:

sql0.active=0;return即可。

:

據我推斷,form結束時,sql元件仍在active狀態,但因sql元件是用form上面元件當做

:

傳入值。

而form一關掉sql元件的傳入值就變成null.會出現您的錯誤訊息狀況……。

:

:

有關SQLDELETE發生錯誤訊息:

:

:

在INVO主檔刪除前程序:

:

:

SQL5.SEND("DELETEFROMINVOSUBWHERETRN_NO=&(SQL0->TRN_NO):

:

RETURN.T.:

:

結果是主檔,副檔都有刪除,但是,會有ERRORMESSAGE:

:

:

"ERRORCREATINGCUSORHANDLE"…….該如何避免?

?

:

Ans:

Q&A有提到,除了select以外,其他的語法要用Execute:

:

SQL5.Execute("DELETEFROMINVOSUBWHERETRN_NO=&(SQL0->TRN_NO)").

:

:

環境MS-SQL,如何將報表中的table,在init時動態換成另一table(即原reopen的功能,

:

:

因reopen不適用於MS-SQL)?

:

Ans1:

通常sql設計報表,是直接select後即可,若要用reopen,需增加一dbf資料集當暫存檔.

:

Ans2:

:

換掉SQL元件的內容,直接在ini下sql0.send('select*fromtable')即可更換。

:

:

Dbase資料庫若用SQL語法會比較慢?

?

(潘孝仁)

:

:

我將進銷存範例中,出貨作業改成全部用SQL指令,發覺速度差變慢很多,這是正常的嗎?

?

:

:

用MS-SQLServer資料庫也會這樣嗎?

?

:

Ans1:

在Form中Dbase用sql應該較快,不過userlock的問題要先測試.我也試過,速度比

:

table快很多才是,主檔和附檔之relation用主檔sql之移動後程序來引發附檔sql之

:

record移動,另外各個lookuplist也用sql動態取得資料,速度都不錯,不過常出現lock

:

檔的問題,變成另外的user無法同時使用,這是目前我無法解決的,是不是在BDE的

:

system的ini將localshare設成true會比較好,就需要訊光指導一下了!

另外若是在report

:

上用同樣的方式來寫,速度好像會慢很多,這點我也很奇怪?

(合泰):

Ans2:

使用SQL指令最好不要關連,用CacheUpdate的方式會比較快,SQLServer應該一樣.

:

:

Dbase資料庫用SQL語法會比較慢?

?

(潘孝仁回合泰解答partI)

:

:

1.現在將SQL0跟SQL1的RELATION刪除,不照書上做關聯,速度快了兩倍,但還是比較慢.

:

:

2.所以我沒有用移動後去啟動SQL1.:

:

3.LOOKUPLIST應該也有關係(大概有十個)所以我再改掉再跟你討論.:

:

4.不過我上次LOOKUPLIST用SQL好像碰到問題,我再試試,無解再問你.

:

:

Dbase資料庫用SQL語法會比較慢?

?

你是對的,只是變麻煩了(潘孝仁回合泰解答partII)

:

:

1.發覺將relation拿掉,就算sqlcommand用where也不會跟著關聯.

:

:

2.放在移動後程序快很多,3.只是變成很麻煩4.其他如客戶名稱,我再試一下如何顯示出來.

:

:

SQL還是很麻煩(GRID怎麼設關聯...等等......)(潘孝仁)

:

:

1.GRID有顯示客戶名稱,沒有設關聯(因為太慢),就顯示不出正確客戶名稱.請問如何處理?

:

:

2.發覺EDIT也不會跟著顯示(不設關聯的話),所以要在移動後重新SELECT而且新增時

:

:

不會跟著清空白.所以得改成LABEL,並且新增前又要將此LABEL清成空白..........:

:

3.還不知道有何要注意的..............:

:

4.是否可改善sql關聯的速度,不然用VD寫程式就跟用其他開發工具一樣不會比較省事!

?

:

Ans:

SQL關聯的速度慢是因為移動後會把關聯的SQL重新ReAvtive所以速度慢,你應該

:

使用CacheUpdate方式把明細檔和客戶檔JOIN成一個Table就不會慢了!

(Peter)

:

:

VD2.0可以連接SQL7.0嗎?

?

有哪些要注意的?

?

:

Ans:

可以!

只是處理計算,複製,最好不要用dBase語法(如copyto...)需用SQL語法;

:

日期型態,如果不須時間,用C8比較好(定位格式關係).

:

:

請問在MS-SQL7下,將TABLECOPYTOTEMP,如何對該TEMPTABLE設INDEX?

:

Ans1:

C/S架構,應使用SQL語法較適當,如sql.execute('CREATEINDEX?

?

onTable(?

?

)')

:

Ans2:

引用時Orderby即可.

:

:

請問SQL如何做到AUTONO自動編號的功能?

?

/

Ans:

需存檔前寫程式取得,例如x=sql0.send('selectmax(?

?

?

)fromtable'),看你的編碼公式.

:

:

利用SQLENTERPRISEMANAGER來建Primarykey的時候,如何自訂其名稱?

:

Ans:

PRIMARYKEY的名稱是不能改或自定的!

用SQL語法可以:

:

CREATETABLEinfo_taxa

:

(:

compnoCHAR

(2)NOTNULL,/*[公司編號]*/:

yyyymmCHAR(6)NOTNULL,/*[年度]*/:

headCHAR

(2)NOTNULL,/*[字軌]*/:

from1intNULL,/*[1正式號碼起始]*/:

to1intNULL,/*[1正式號碼終止]*/:

from2intNULL,/*[2ipo號碼起始]*/:

to2intNULL,/*[2ipo號碼終止]*/:

from3intNULL,/*[3備用號碼起始]*/:

to3intNULL,/*[3備用號碼終止]*/:

from4intNULL,/*[4IPO備用起始]*/:

to4intNULL,/*[4IPO備用終止]*/:

CONSTRAINTpk_taxaPRIMARYKEY(compno,yyyymm))

:

:

如何將搜尋條件寫入TVDSQL物件的Filter中:

:

:

當我用Navigator的搜尋時,若此Navigator的DataSet為一個TVDTABLE時,

:

:

它會將所搜尋的條件寫入TVDTABLE物件中的Filter,例如若搜尋欄位TRN_NO中

:

:

含有01的值,此時的TVDTABEL中的Filter會有'01'$TRN_NO的字出現,則我可運用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1