åå¨åé¢
æ°æ®çªå£æ¯Pb
çä¸ä¸ªç¹è²æ§ä»¶ï¼æäºæ°æ®çªå£å¯¹äºpb
æ¥è¯´å¯è°å¦è添翼ã
对æ°æ®åºä¸çæ°æ®æä½ï¼å ä¹é½å¯ä»¥å¨æ°æ®çªå£ä¸å®æã
使ç¨æ°æ®çªå£å¯ä»¥ç®åæ£ç´¢æ°æ®ã以å¾å½¢åçæ¹å¼æ¾ç¤ºæ°æ®ãç»å¶åè½å¼ºå¤§çæ°æ®ç»è®¡æ¥è¡¨ã
ä¸ã æ°æ®çªå£ç»æ¿
æ°æ®çªå£ç»æ¿ç±Designï¼ Previewï¼ Control Listï¼ Dataï¼ Propertieså Column Specification 6个è¯çªææ
1.1 Design è§çª
Design æ¯ä¸ä¸ªé常éè¦çè§çª ï¼ä½¿ç¨èå DesignâOptions æ¥æ¹å Design çªå£çå¤è§
1.1.1 General tab页设置
â Snap to Grid
ï¼éä¸è¯¥å±æ§æ¶ï¼å¨æ°æ®çªå£ä¸çé¨ä»¶èªå¨åç½æ ¼å¯¹é½ï¼ 建议é½éä¸
â¡ Show Grid
ï¼æ¯å¦æ¾ç¤ºç½æ ¼ã
— æªéä¸ | — éä¸å |
---|---|
![]() |
![]() |
â¢Show Ruler
ï¼æ¾ç¤ºæ å°ºã
— æªéä¸ | — éä¸ |
---|---|
![]() |
![]() |
⣠Xï¼ Y
ï¼ç½æ ¼ä¹é´çé´è·ï¼åä½æ¯æ°æ®çªå£å±æ§ä¸è®¾ç½®çåä½
⤠Show Edges
ï¼æ¯å¦æ¾ç¤ºè¾¹æ¡ã主è¦é对å段ãæ ç¾ãææ¬çèè¨
⥠Retrieve on Preview
ï¼æ¯å¦å¨é¢è§æ¶æ£ç´¢
1.1.2 Generation tab页设置
â Presentation Style
ï¼å¨è¯¥ä¸æå表æ¡ä¸å¯ä»¥éæ©è¦è®¾ç½®åªç§ç±»åçæ°æ®çªå£ãä¸é¢ç
å
¶ä»æä½é½æ¯é对éä¸çé£ç§ç±»åçæ°æ®çªå£èè¨çã
â¡ Background Color
ï¼è®¾ç½®æ°æ®çªå£çèæ¯é¢è²ã
⢠Text ç»æ¡
ï¼ border å¯ä»¥è®¾ç½® text é¨ä»¶çè¾¹æ¡ç±»åï¼ color å¯ä»¥è®¾ç½®ææ¬çé¢è²ã
⣠Columns ç»æ¡
ï¼ border å¯ä»¥è®¾ç½®å段çè¾¹æ¡ç±»åï¼ color å¯ä»¥è®¾ç½®å段ä¸æåçé¢
1.1.3 Prefixes tab页设置
设置æ°æ®çªå£ä¸æ¾ç½®é¨ä»¶æ¶å½åçé»è®¤åç¼
1.2 Preview è§çª
å¯ä»¥é¢è§æ°æ®çªå£çå¤è§ï¼å¹¶æ¾ç¤ºç¸åºè¡¨ä¸å¯¹åºçæ°æ®
å¨è¯¥çªå£ä¸å¯ä»¥è¿è¡åç§æ°æ®æä½ï¼å æ¬æ°æ®è¿æ»¤ãæ°æ®æåºãå¢å æ°æ®ãå é¤æ°æ®ãæ£ç´¢æ°æ®ãæ¥æ¾æ°æ®ä»¥å翻页ç
è¿äºæä½é½å¯ä»¥å¨é¼ æ å³é®å¼¹åºèåä¸å®æ
1.2.1 æ¥æ¾æ°æ®
–å¼åºèå | — æ¥æ¾å 容 |
---|---|
![]() |
![]() |
1.2.2 翻页
— å¼åºèå | –å¼åºèå |
---|---|
![]() |
![]() |
- first pageï¼ç¿»å°ç¬¬ä¸é¡µï¼
- prior pageï¼åä¸é¡µï¼
- next pageï¼ä¸ä¸é¡µï¼
- last pageï¼æåä¸é¡µï¼
1.2.3 å¢å ãå é¤æ°æ®
å¨æ°æ®çªå£ä¸å¢å æè å é¤æ°æ®ï¼å¾é¦å 设置æ°æ®çªå£ç¸åºçå±æ§ï¼
å 许修æ¹çå段Tab Order å¼ä¸è½ä¸º 0
— | — |
---|---|
![]() |
![]() |
1.3 Control List è§çª
Control List æ¯æ°æ®çªå£ä¸ææçé¨ä»¶ææçä¸ä¸ªå表
1.4 Data è§çª
æ¾ç¤ºçæ¯æ°æ®çªå£å¯¹è±¡ä¸çæ°æ®,å¾å¤æä½å Preview è§çªä¸çé½ç¸å .
该è§çªä¾§éäºå¯¹åºè¡¨ä¸å个å段çåå¼ï¼è Preview è§çªä¾§éäºæ°æ®çªå£å¯¹è±¡çæ¾ç¤ºææ
1.5 Properties è§çª
å±æ§è§çªæ¾ç¤ºçæ¯å½åéä¸å¯¹è±¡çå±æ§ï¼å¯ä»¥å¯¹è¿äºå±æ§è¿è¡ä¿®æ¹
1.6 Column Specification è§çª
æ¯ä¸ä¸ªæ¯è¾éè¦çè§çªï¼å¨è¯¥è§çªä¸å¯ä»¥å¢å ãå é¤ãä¿®æ¹åçåå§å¼ãæ£éªè¡¨è¾¾å¼æè æ ¡éªä¿¡æ¯
举个æ åï¼
å设 empno
çä½æ°æ¯ 10ï¼å¦æä½æ°ä¸æ£ç¡®ï¼ååºè¯¥æéç¨æ·ã
å¨ Validation Expression
å为å段 empno
è¾å
¥æ ¡éªè¡¨è¾¾å¼ï¼len(empno) = 10
å¨ Validation message
ä¸è¾å
¥ï¼’åå·¥ç¼å·å¿
须为 10 ä½ï¼ ‘
å½ç¨åºè¿è¡æ¶ï¼ä¼èªå¨æ ¡éªç¨æ·è¾å
¥çå
容æ¯å¦ä½æ°ä¸º 10 ä½ï¼å¦åæ¾ç¤ºè¾å
¥çä¿¡æ¯
äºãæ°æ®çªå£çæ°æ®æº
Pb
æä¾ç Quick Select
ï¼å¿«ééæ©ç±»åï¼ã SQL Select
ï¼ SQL éæ©ç±»åï¼ã Query
ï¼æ¥è¯¢ç±»åï¼ã External
ï¼å¤é¨ç±»åï¼ å Stored Procedure
ï¼åå¨è¿ç¨ç±»åï¼ 5ç§æ°æ®æº
2.1 Quick Select æ°æ®æº
å¿«æ·æ°æ®æºï¼æ¯ç»å¸¸ä½¿ç¨çä¸ç§æ°æ®æºï¼å¯ä»¥å¿«éå°å建æ°æ®çªå£ ã
使ç¨è¿ç§æ°æ®æºï¼åªè½ä»ä¸ä¸ªæ°æ®è¡¨æè è§å¾ä¸éåæ°æ®
éè¦ä»å¤ä¸ªæ°æ®è¡¨ä¸éåæ°æ®èä¸è¿æ³ä½¿ç¨è¿ç§æ°æ®æºæ¶ï¼åªè½å建对åºçè§å¾
— | — |
---|---|
![]() |
![]() |
2.2 SQL Select æ°æ®æº
éæ©è¿ç§æ°æ®æºæ¶ï¼SQLè¯å¥è®¾è®¡æ¯å¾å½¢åçï¼ä¹å¯ä»¥æå·¥è¾å ¥SQLè¯å¥
— â éæ©æ°æ®æº | –â¡éæ©è¡¨ |
---|---|
![]() |
![]() |
–⢠éæ©å段 | — SQLè¯æ³åå¾å½¢ååæ¢ |
![]() |
![]() |
— ⣠å®ä¹æ£ç´¢æ¡ä»¶ | |
![]() |
![]() |
2.3 Query æ°æ®æº
PB
å¯ä»¥å°ç¹å®ç SQL
è¯å¥ä¿å为 Query
å¯¹è±¡ï¼ ä¸åç Query æ°æ®æºçæ°æ®çªå£é½å¯ä»¥ä½¿ç¨è¿äºå·²ç»ä¿åQuery
对象æ¥ä½ä¸ºæ°æ®æºï¼å¢å¼ºäº SQL
è¯å¥çéç¨æ§
–â æ°å»ºQuery æ°æ®æºå¯¹è±¡ |
–⡠使ç¨Query æ°æ®æº |
---|---|
![]() |
![]() |
2.4 External æ°æ®æº
æ¯ä¸ç§æ¯è¾ç¹æ®çæ°æ®æºï¼å¯ä»¥å¼¥è¡¥å ¶ä»åç§æ°æ®æºçä¸è¶³
å½åä¸åå¨äºæ°æ®åºä¸çæ°æ®æ交éæè è¦å©ç¨æ°æ®çªå£çæäºç¹æ§ä½ä¸è¿è¡æ°æ®å¤çæ¶ï¼è¿ä¸¤ç§æ åµä¸é½å¯ä»¥ä½¿ç¨ External æ°æ®æºçæ°æ®çªå£
–â æå®æ°æ®æº | — ⡠设置æ°æ®ç±»ååé¿åº¦ |
---|---|
![]() |
![]() |
2.5 Stored Procedureï¼åå¨è¿ç¨ï¼
å¯ä»¥ç´æ¥ä½¿ç¨æ°æ®åºä¸å·²ç»å建好çåå¨è¿ç¨ä½ä¸ºæ°æ®æº
SQL
è¯å¥æ éç½ä¸ä¼ éï¼å¯ä»¥åå°ç½ç»éä¿¡éåç½ä¸ä¼ è¾ SQL
è¯å¥çæ¶é´ï¼ æ以æ§è¡æçæ¯å
¶ä»æ°æ®æºçæ°æ®çªå£è¦é«
— â éæ©æ°æ®æº | –â¡ éæ©æ°æ®åºä¸å建好çåå¨è¿ç¨ |
---|---|
![]() |
![]() |
2.6 Web Service æ°æ®æº
è¿æ¯
PB
11.5 以åæ°å çæ°æ®æº
–â éæ©Web Service æ°æ®æº | –â¡è¾å ¥WebServiceçWSDLæ件çå°å |
---|---|
![]() |
![]() |
–⢠éæ©WebServiceæ¥å£ | –⣠éæ©WebService æ¥å£æ¹æ³ |
![]() |
![]() |
ä¸ãæ°æ®çªå£æ¾ç¤ºæ ·å¼
3.1 Grid æ¾ç¤ºæ ·å¼
æ°æ®çªå£å¸å±æ´é½ï¼ä½ä¸è½çµæ´»å°å®æå段ãæ ç¾ã表头çå¸å±
å段横åæåå¨ detail band ä¸ï¼æ ç¾æ¨ªåæåå¨ header band ä¸ï¼åå段ç¸å¯¹åºï¼å段åå段ä¹
é´æç½æ ¼çº¿åéï¼ç±»ä¼¼äºçµåè¡¨æ ¼ ã
å¦ä¸å¾æ示
3.2 Tabular æ¾ç¤ºæ ·å¼
å段ãæ ç¾çå¸å±å Grid æ¾ç¤ºæ ·å¼çæ°æ®çªå£ç¸åï¼é½æ¯æ¨ªåæåçï¼ä½æ¯å段ä¹é´æ²¡æç½æ ¼çº¿åéã
å段åæ ç¾çå¸å±å¯ä»¥éæè°æ´ï¼å¨ header band ä¸çæ ç¾å¯ä»¥éæææ¾å° detail band ä¸ï¼
detail band ä¸çå段ä¹å¯ä»¥ææ¾å° header band ä¸
3.3 Group æ¾ç¤ºæ ·å¼
æ°æ®çªå£å¯ä»¥æå®æé£ä¸ªï¼æé£äºï¼å段è¿è¡åç»ï¼å¯ä»¥ç¨æå®çåç»æ¡ä»¶å°æ°æ®åç»æ¾ç¤ºï¼å¹¶ä¸å 许为æ¯ç»æå®ä¸äºè®¡ç®ã
ä¾å¦ï¼è¦æ¾ç¤ºåé¨é¨åå·¥çèªèµæ°æ®ï¼å¯ä»¥æé¨é¨åç»
— â æé¨é¨åç» | — â¡åç»åæ°æ® |
---|---|
![]() |
![]() |
3.4 Freedom æ¾ç¤ºæ ·å¼
è¿ç§æ¾ç¤ºæ ·å¼çæ°æ®çªå£å¸å±ä¹å¾çµæ´»ï¼å¯ä»¥éæå®æå段åæ ç¾çä½ç½®
— â éæ©Freeform | — â¡å½å ¥è¡¨åä¿¡æ¯ |
---|---|
![]() |
![]() |
3.5 Label æ¾ç¤ºæ ·å¼
å¦æç¨æ·æ³è¦çæé®ä»¶æ ç¾ï¼å¯ä»¥ä½¿ç¨ Label æ¾ç¤ºæ ·å¼çæ°æ®çªå£æ¥å®ç°
å¨å导çæå¼ä¸ï¼å¯ä»¥è®¾å®æ ç¾çä¸äºåæ°ã
å¯ä»¥æå®æ ç¾ç大å°ï¼å æ¬ä¸æ¹é¢ç设å®ï¼ Label æ¬èº«ç大å°ãLabel ä¹é´çè¾¹æ¡ã Label çå¸å±é¡ºåºã
å¨ Label ç»æ¡ä¸ï¼åæ°â Acrossâæ横åæ¾ç¤ºçæ ç¾æ°ç®ï¼ â Downâ表示ä¸é¡µä¸ç«åæ¾ç¤ºçæ ç¾æ°ç®
— | — |
---|---|
![]() |
![]() |
![]() |
![]() |
3.6 N-up æ¾ç¤ºæ ·å¼
å¯ä»¥å¨åä¸é¡µä¸æ¾ç¤ºå¤åç¸åå段çä¸ç§ç¹æ®çæ¾ç¤ºæ ·å¼ .
å¯ä»¥è®¾ç½®æ¯è¡éå¤æ¾ç¤ºå段çæ¬¡æ° ï¼é»è®¤æ¯2
è¿éæ们æ¯è¡æ¾ç¤º2ååå·¥ç¼å·ååå·¥å§å
— â éæ©N-upæ ·å¼ | — â¡è®¾ç½®æ¯è¡æ¾ç¤ºåæ° |
---|---|
![]() |
![]() |
3.7 CrossTab æ¾ç¤ºæ ·å¼
éè¿CrossTab æ¾ç¤ºæ ·å¼æ们å¯ä»¥å¶ä½åºä¸å¾æ示ç交åæ¥è¡¨
–â éæ©CrossTab æ¾ç¤ºæ ·å¼ | –⡠设置è¡åç±»ãååç±» |
---|---|
![]() |
![]() |
æç»æ¾ç¤ºææ
3.8 Graph æ¾ç¤ºæ ·å¼
Graph æ¾ç¤ºæ ·å¼ å¯ä»¥æ¾ç¤ºé¥¼å¾ãæ±ç¶å¾ãæ线å¾ç
Graph æ¾ç¤ºæ ·å¼çæ°æ®çªå£æ¶ï¼ä¸ä¸ªä¸»è¦åæ°æ¯
- Category æ¾ç¤ºå¨æ¨ªååæ è½´ä¸çå段
- Values æ¾ç¤ºå¨çºµååæ è½´ä¸çå段
- Series 横ååæ è½´ä¸åç»æ¯è¾æ¶çåç»æ å
— â éæ©Graph æ ·å¼ | — â¡ éæ©æ¨ªåã纵ååæ |
---|---|
![]() |
![]() |
–⢠éæ©å¾è¡¨æ ·å¼å设置æ é¢ | |
![]() |
æ们è¿ééæ©æ±ç¶å¾æ¾ç¤ºï¼ä¸å ±å17ç§æ ·å¼å¯ä»¥éæ©ï¼æå ´è¶£çå°ä¼ä¼´å¯ä»¥é½è¯è¯
3.9 Composite æ¾ç¤ºæ ·å¼
è¿ç§æ ·å¼çæ°æ®çªå£å¯ä»¥å°å¤ç§ç±»åçãå¤ä¸ªé»è¾ä¸æ¯«ä¸ç¸å ³çæ°æ®çªå£æ¾ç½®å°ä¸èµ·ï¼æ¯ä¸ç§æ¯è¾çµæ´»ç
æ们æåé¢å¶ä½å¥½çæ±ç¶å¾åè¡¨æ ¼æ¾å°ä¸èµ·
— â éæ©Composite æ¾ç¤ºæ ·å¼ | — â¡ éæ©è¦å±ç¤ºçæ¥è¡¨ |
---|---|
![]() |
![]() |
æç»æ¾ç¤ºææ
3.10 RichText æ¾ç¤ºæ ·å¼
è¿ç§æ ·å¼çæ°æ®çªå£ä½¿æ°æ®åºä¸çæ°æ®åæåå¯ä»¥å¨ä¸èµ·æçï¼å¯ä»¥æ¹ä¾¿å°å°æ°æ®åºä¸çæ°æ®åæåå
容ä¸èµ·å½¢ææ
æ¡£ãæ¥å ã
— â éæ©RichText æ¾ç¤ºæ ·å¼ | — â¡ éæ©æåå¤çå·¥å · |
---|---|
![]() |
![]() |
æç»æ¾ç¤ºææ
3.11 OLE 2.0 æ¾ç¤ºæ ·å¼
OLE 对象é¾æ¥ååµå
¥ ã使ç¨å®å¯ä»¥å°å
¶ä»è½¯ä»¶çåè½å¼å
¥å° PB
å¼åçåºç¨ç¨åºä¸
使ç¨è¿ç§æ¾ç¤ºæ ·å¼çæ°æ®çªå£ï¼å¯ä»¥åé´å
¶ä»è½¯ä»¶ç强大åè½ï¼å¼¥è¡¥ PB
å¨æäºä¸ä¸æ§è¾å¼ºé¢åä¸çä¸è¶³æ空ç½
— â éæ©OLE æ ·å¼ | — ⡠设置åç» |
---|---|
![]() |
![]() |
3.12 TreeView æ¾ç¤ºæ ·å¼
è¯¥æ ·å¼å¯ä»¥æç
§æ å½¢ç»ææ¾ç¤ºæ°æ®ï¼æ们以emp
ådept
表为ä¾ï¼ä»¥dept_name
å段è¿è¡åç»
— â éæ©TreeView æ ·å¼ | — â¡ éæ©dept_nameåç» |
---|---|
![]() |
![]() |
æç»ææ
åãæ°æ®çªå£å¯¹è±¡ä»ç»
æ°æ®çªå£ç¨å¸¦ï¼ Bandï¼å°å
¶åéæåé¨å ï¼ä¸ä¸ªæ åçæ¥è¡¨ä¸è¬ç±é¢å¤´ãæ°æ®ã页èãæ»è®¡åé¨åææï¼åå«å¯¹åºæ°æ®çªå£ç Headerï¼ Detailï¼
Summary å Footer åé¨å
带 | æè¿° |
---|---|
Header |
åºç°å¨æ¯é¡µç顶端ï¼ç¨äºæ¾ç¤ºæ é¢ååçé¢å¤´ã æ¾ç½®è¡¨å¤´ãæ¥è¡¨æ¥æçä¸äºè½å¤æ¹ä¾¿æ¥é çå å®¹ï¼ å³ä½¿è¿é¨åå段ç Tab Order å¼ä¸ä¸º 0ã DisplayOnly å±æ§ä¸º False ä¹ä¸å 许ç¨æ·ç¼è¾ï¼å¹¶ä¸ä¹åªè½æ¾ç¤ºå¤æ¡è®°å½ä¸çä¸æ¡ |
Detail |
å
å«äºæ°æ®çªå£å¯¹è±¡ç主ä½ï¼æ¾ç¤ºäºåè¡çæ°æ®åç¸å
³çæ ç¾ã æ¾ç½®æ°æ®ãè¡¨æ ¼ï¼ç¨åºè¿è¡æ¶ï¼æ°æ®çªå£èªå¨å¤ç该åºåï¼æ ¹æ®æ°æ®åºä¸çæ°æ®æ¾ç¤ºä¸æ¡æè å¤æ¡æ°æ® |
Summary |
åºç°å¨æ¯é¡µçåºç«¯ï¼ç¨æ¥æ¾ç¤ºææ¬åé¡µå· æ¾ç½®é¡µå å°è®¡ã页å·ç页èæ¹é¢çå 容 |
Footer |
åºç°å¨ DataWindow 对象çæåä¸é¡µï¼ç¨æ¥ä¸ºæ´ä¸ªæ°æ®çªå£å¯¹è±¡æ¾ç¤ºæ»è®¡åæ»å æ¾ç½®æ»è®¡ãå¶è¡¨äººçéè¦å¨è¡¨æ ¼æåæ¾ç½®çå 容 |
äºãæ°æ®çªå£å¸¸ç¨å½æ°
å½æ° | åæ° | 说æ |
---|---|---|
dw_1.insertrow(row) |
row 设置æå
¥ä½ç½®æåæ¶è¿åæå ¥æåçè¡å·ï¼å¤±è´¥è¿å-1 insertrow(0) 表示å¨æåä¸è¡æå
¥ä¸è¡ |
æå ¥ç©ºè¡ |
dw_1.deleterow(row) |
row è¦å é¤çè¡å·æåæ¶è¿å1ï¼å¤±è´¥æ¶è¿å-1 deleterow(0) 代表å é¤å½åè¡ |
å é¤è¡ |
dw_1.retrieve() |
dw_1.retrieve(åæ°1,åæ°2,åæ°3...) |
æ£ç´¢æ°æ® |
dw_1.update(accept,resetflag) |
accept ï¼é»è®¤ä¸ºtrueï¼æ§è¡ä¹åè°ç¨resetflag :é»è®¤ä¸ºtrueï¼æ°æ®çªå£èªå¨éç½®æ´æ°æ å¿æåè¿å1ï¼å¤±è´¥è¿å-1 |
ä¿®æ¹ææ´æ°æä½ |
dw_1.setsort(format) |
format : A ååºï¼Déåºæåæ¶è¿å1ï¼å¤±è´¥æ¶è¿å-1 |
设置æåº |
dw_1.sort() |
æåæ¯è¿å1ï¼å¤±è´¥æ¶è¿å-1 | æç §å½åæ°æ®çªå£ çæåºè§åè¿è¡æ åº |
dw_1.setfilter(format) |
format :æ¯å符串ï¼å¯ä»¥ä½¿ç¨å段åæå段å·å®ä¹æåæ¶è¿å1ï¼å¤±è´¥æ¶è¿å-1 ä¾1ï¼ dw_1.setfilter("sal> 5000 and age < 10000") ä¾2ï¼ dw_1.setfilter(#3>5000) ä¾3ï¼ dw_1.setfilter("") |
设置æ°æ®çªå£çè¿ æ»¤æ¡ä»¶ |
dw_1.filter() |
对æ°æ®çªå£è¿è¡è¿ 滤 | |
dw_1.reset() |
æåè¿å1ï¼å¤±è´¥è¿å-1 | æ¸ é¤æ°æ®çªå£çæ ææ°æ® |
dw_1.scroll(number) |
number :æ»å¨çè¡æ°åæ°ä¸ºæ£æ°çæ¶ååä¸æ»å¨ï¼ä¸ºè´æ°æ¶åä¸æ»å¨ æåè¿åæ§ä»¶ç¬¬ä¸è¡æ¾ç¤ºçæ°æ®è¡å·ï¼å¤±è´¥æ¶è¿å-1 |
设置æ»å¨çè¡æ° |
dw_1.scrolltorow(row) |
row æå®çè¡å·æåè¿å1ï¼å¤±è´¥è¿å-1 |
æ»å¨å°æå®è¡ |
dw_1.scrollpriorpage() |
æ»å¨å°ä¸ä¸é¡µ | |
dw_1.ScrollNextPage() |
æ»å¨å°ä¸ä¸é¡µ | |
dw_1.scrollpriorrow() |
æ»å¨å°ä¸ä¸è¡ | |
dw_1.scrollnextrow() |
æ»å¨å°ä¸ä¸è¡ | |
dw_1.getrow() |
没æå½åè¡æ¶è¿å0ï¼å¤±è´¥è¿å-1ï¼æåè¿åå½åè¡å· | è·å¾å½åè¡çè¡å· |
dw_1.getcolumn() |
没æå½ååæ¶è¿å0ï¼å¤±è´¥è¿å-1ï¼æåè¿åå½ååç åå· | è·åå½ååçåå· |
dw_1.setrow(row) |
row æå®çè¡å·æåè¿å1ï¼å¤±è´¥è¿å-1 |
设置å½åè¡ |
dw_1.setcolumn(column) |
coumn åå·æååæåè¿å1ï¼å¤±è´¥è¿å-1 ä¾ï¼è®¾ç½®å½åå为第5å ä¾ï¼è®¾ç½®å½åå为ageå |
设置å½åå |
dw_1.setrowfocusindicator(f,x,y) |
f ç¨äºæ示å½åè¡çå¯è§åå¾æ x xåæ y yåæ æåè¿å1ï¼å¤±è´¥è¿å-1 ä¾ï¼è®¾ç½®æå½¢å¾æ ä¾2ï¼è®¾ç½®å¾çæ§ä»¶p_arrow为æ示å¾æ |
设置ç¨äºæ示å½å è¡çå¯è§åå¾æ |
dw_1.rowcount() |
æ æ°æ®æ¶è¿å0ï¼å¤±è´¥è¿å-1 | è·å¾æ°æ®çªå£æ»è¡ æ° |
dw_1.modifiedcount() |
è¿å被修æ¹ä½æªæ´æ°çæ°æ®è¡æ° æ æ°æ®æ¶è¿å0ï¼å¤± è´¥è¿å-1 |
è·å¾æ°æ®çªå£ä¸è¢« ä¿®æ¹ï¼ä½æªæ´æ°ç æ°æ®è¡æ°ãï¼ä¸å æ¬æ°æå ¥çè¡ï¼ |
dw_1.deletedcount() |
æ æ°æ®æ¶è¿å0ï¼å¤±è´¥è¿å-1 | è·å¾æ°æ®çªå£ä¸å äºå é¤æ è®°ï¼æªå updateæä½çæ° æ®è¡æ° |
dw_1.filteredcount() |
æ æ°æ®æ¶è¿å0ï¼å¤±è´¥è¿å-1 | è·å¾è¢«è¿æ»¤æçæ° æ®è¡æ° |
dw_1.accepttext() |
å°è¿å¨ç¼è¾ä¸çæ° æ®ï¼ä¼ éå°æ°æ®çª å£æ§ä»¶ | |
dw_1.gettext() |
è·å¾ç¼è¾æ§ä»¶ä¸ç ææ¬ | |
dw_1.settext(text) |
æåè¿å1ï¼å¤±è´¥è¿å-1 | 设置ç¼è¾æ§ä»¶ä¸ç ææ¬ |
dw_1.GetItemDate (row,column,dwbuffer,originalvalue) |
row æå®æ°æ®è¡çè¡å· column ï¼ æå®çæ°æ®å dwbuffer : æå®è¯»åæ°æ®çç¼å²åº originalvalue 为trueæ¶ï¼è¿ååå§ç¼å²åºçå¼ï¼ä¸º falseæ¶è¿åå½åå¼
ä¾ï¼åæ°æ®çªå£ |
è·åæå®å段çæ¥ æååé |
dw_1.GetItemDateTime(row,column,dwbuffer,originalvalue) |
row : æå®æ°æ®è¡çè¡å· column ï¼ æå®çæ°æ®å dwbuffer æå®è¯»åæ°æ®çç¼å²åº originalvalue 为trueæ¶ï¼è¿ååå§ç¼å²åºçå¼ï¼ä¸º falseæ¶è¿åå½åå¼ |
è·åæå®å段çæ¥ ææ¶é´ååé |
dw_1.GetItemTime(row,column,dwbuffer,originalvalue) |
row æå®æ°æ®è¡çè¡å· column ï¼ æå®çæ°æ®å dwbuffer æå®è¯»åæ°æ®çç¼å²åº originalvalue 为trueæ¶ï¼è¿ååå§ç¼å²åºçå¼ï¼ä¸º falseæ¶è¿åå½åå¼ |
è·åæå®å段çæ¶ é´ååé |
dw_1.GetItemString(row,column,dwbuffer,originalvalue) |
row æå®æ°æ®è¡çè¡å· column ï¼ æå®çæ°æ®å dwbuffer æå®è¯»åæ°æ®çç¼å²åº originalvalue 为trueæ¶ï¼è¿ååå§ç¼å²åºçå¼ï¼ä¸º falseæ¶è¿åå½åå¼ |
è·å¾æå®å段çå 符串åé |
dw_1.GetItemNumber(row,column,dwbuffer,originalvalue) |
row æå®æ°æ®è¡çè¡å· column ï¼ æå®çæ°æ®å dwbuffer : æå®è¯»åæ°æ®çç¼å²åº originalvalue 为trueæ¶ï¼è¿ååå§ç¼å²åºçå¼ï¼ä¸º falseæ¶è¿åå½åå¼ |
è·å¾æå®å段çæ° å¼ååé |
dw_1.GetItemDecimal(row,column,dwbuffer,originalvalue) |
row æå®æ°æ®è¡çè¡å· column ï¼ æå®çæ°æ®å dwbuffer æå®è¯»åæ°æ®çç¼å²åº originalvalue 为trueæ¶ï¼è¿ååå§ç¼å²åºçå¼ï¼ä¸º falseæ¶è¿åå½åå¼ |
è·å¾æå®å段çå° æ°ååé |
dw_1.sharedata(dwsecondary) |
æåè¿å1ï¼å¤±è´¥è¿å-1 | æ°æ®çªå£æ§ä»¶æ°æ® å ±äº«ï¼ä¿æåæ¥æ´ æ° |
dw_1.sharedataoff() |
æåè¿å1ï¼å¤±è´¥è¿å-1 | å ³éæ°æ®çªå£ä¹é´ çå ±äº«å ³ç³» |
dw_1.print() |
æ åè¿å1ï¼å¤±è´¥è¿å-1 | æå°æ°æ®çªå£ |
dw_1.printcancel() |
æåè¿å1ï¼å¤±è´¥è¿å-1 | åæ¶æ°æ®çªå£çæ å° |
dw_1.getitemstatus (row,colum,dwbuffer) |
row : æå®æ°æ®çè¡å· column : æå®çæ°æ®å dwbuffer : æå®è¯»åæ°æ®çç¼å²åºï¼é»è®¤ä¸ºä¸»ç¼å²åºï¼ è¿åä¸ä¸ªdwitemstatus æ举åé
ä¾ï¼åæ°æ®çªå£ |
è·åæå®å段çç¶ æ |
dw_1.setitemstatus (row,colum,dwbuffer,status) |
row : æå®æ°æ®çè¡å· column : æå®çæ°æ®å dwbuffer :æå®è¯»åæ°æ®çç¼å²åºï¼é»è®¤ä¸ºä¸»ç¼å²åºï¼ è¿åä¸ä¸ªdwitemstatus æ举åé status æ举åé
ä¾ï¼è®¾ç½®æ°æ®çªå£ |
设置æå®å段çç¶ æ |
dw_1.setitem(row,column,value) |
row : æå®çè¡ column :æå®çå value : èµå¼çå
容 |
为æå®å段èµå¼ |
dw_1.getvalidate(column) |
column å®ä¹æ£éªè§åçå段ï¼åºå·æå段åï¼ãè¿å æå®å段çæææ§æ£éªè§å | è·åå½åæäºå段 çæææ§æ£éªè§å |
dw_1.setvalidate(column,rule) |
column å®ä¹æ£éªè§åçå段ï¼åºå·æå段åï¼ rule æ°çæææ§æ£éªè§å æåè¿å1ï¼å¤±è´¥è¿å-1 |
设置å½åæäºå段 çæææ§æ£éªè§å |
å ãæ°æ®çªå£ä½¿ç¨æå·§
6.1 æ°æ®çªå£çå¢å æ¹æ¥
6.1.1 å°ç¼è¾çæ°æ®æ¾å°ä¸»ç¼å²åº
dw_1.accepttext()
6.1.2 å¢å ä¸è¡æ°æ®
dw_1.insertrow(0)
6.1.3 å é¤ä¸è¡æ°æ®
dw_1.deleterow(row)
6.1.4 æ´æ°æ°æ®
dw_1.update()
-
å¨ä½¿ç¨
update()
å½æ°å°ä¿®æ¹çæ°æ®ä¿åå°æ°æ®åºä¸æ¶ï¼å¿ é¡»è¦è®¾ç½®æ°æ®çªå£çä¿®æ¹å±æ§ã -
æ°æ®çªå£åªè½ä¿®æ¹ä¸ä¸ªæ°æ®è¡¨
-
å½å¢å ãå é¤æè éæ°éæ©äºå段æ¶ï¼
PB
å°æ°æ®çªå£çä¿®æ¹å±æ§ç½®ä¸ºä¸å 许ï¼è¿æ¶ä¹åºè¯¥è¿è¡æ工设置
å项 RowsâUpdate Properties è¿è¡ä¿®æ¹å±æ§ç设置
- Allow Updates : éä¸è¯¥é项ï¼æå 许继ç»è¿è¡å ¶ä»å±æ§ç设å®
- Table to Update :è¦è¢«æ´æ°ç表
- Where Clause for Update/Delete
é项 | 说æ |
---|---|
Key Columns |
åç¨æ·åºç¨ç¨åºæè
ç¨æ·é½ä»¥å éæ¹å¼è®¿é®æ°æ®åºæ¶å¯ä»¥éä¸è¯¥é项 åªä½¿ç¨å¨â Unique Key Column(s)âå表æ¡ä¸æå®çæä¸åè¿è¡æ°æ®æ´æ° |
Key and Updateable Columns |
é»è®¤çä¿®æ¹æ¹å¼ ç¨ä¸»é®ååå¯ä»¥ä¿®æ¹çåæ¥å建 where åå¥ |
Key and Modified<br/>Columns |
ä¸é¢ä¸¤ç§æ¹æ³çæä¸ ç¨ä¸»é®åæ°æ®åçäºååçåæ¥äº§ç where åå¥ |
- Key Modification
é项 | 说æ |
---|---|
Use Delete then Insert |
å å é¤åæ主é®å¼ï¼ç¶åå使ç¨æ°ç主é®å¼æå ¥ä¸ä¸ªå®æ´çè¡ |
Use Update |
éè¿Updateè¯å¥ä¿®æ¹æ°æ® |
- Updatable Columns : éè¦ä¿®æ¹çå
- Unique Key Columnï¼sï¼ : å¯ä¸è½å¤ç¡®å®ä¸è¡çå
6.1.5 æ¥æ¾æ°æ®
dw_1.settransobject(sqlca)
dw_1.retrieve()
6.2 æ°æ®çªå£æ´æ°å¤ä¸ªè¡¨
æè·¯ï¼ å¨æä¿®æ¹æ°æ®çªå£çUpdateå±æ§
举个æ åï¼ dw_1æ°æ®çªå£ä¸å å«ä¸¤å¼ 表çå段ï¼emp(å工信æ¯è¡¨)ï¼dept(é¨é¨è¡¨)
select dept.deptno,dept.dname,
emp.empno,emp.ename
from emp,dept
where emp.deptno = dept.deptno
å¨å建æ°æ®çªå£æ¶è®¾ç½®ä¸º dept 表å¯ä¿®æ¹
Int li_update
li_update = dw_1.Update(True,False) //æ¥åæåä¸ä¸ªå段å
容ï¼å¹¶ä¸ä¸æ¸
é¤è¡ä¿®æ¹æ å¿
// å¦æ对 Department 表çä¿®æ¹æåï¼ä¸ä¸æ¥å°±è¦ä¿®æ¹å¦ä¸ä¸ªè¡¨ Employee
If li_update = 1 Then
//é¦å
ï¼å
³æ对 dept 表çä¿®æ¹
dw_1.ModIfy('dept_dname.Update = "No"')
dw_1.ModIfy('dept_deptno.Update = "No"')
dw_1.ModIfy('dept_deptno.Key = "No"')
//使 emp 表æ为æ°çå¯ä¿®æ¹è¡¨
dw_1.dwModIfy('DataWindow.Table.UpdateTable = ~'emp~' ')
dw_1.ModIfy('emp_empno.Update = "Yes"')
dw_1.ModIfy('emp_ename.Update = "Yes"')
dw_1.ModIfy('emp_empno.Key = 'Yes' ' )
//ç¶åä¿®æ¹ Employee 表
li_update = dw_1.Update()
If li_update = 1 Then
Commit Using SQLCA;
Else
MessageBox("ä¿®æ¹éè¯¯ï¼ ", "æ°æ®ä¿®æ¹é误ï¼é误代ç "&
+ String(SQLCA.SqlDBCode) + "~r~n é误åå ï¼ "+ SQLCA.SqlErrText)
Rollback Using SQLCA;
End If
//æ¢å¤æ°æ®çªå£å¼å§æ¶çå±æ§ï¼ä»¥ä¾¿ä¸ä¸æ¬¡ç¨æ·åå»âä¿åâæé®æ¶
//ç¨åºè½å¤æ£ç¡®æ§è¡
dw_1.ModIfy('dept_dname.Update = "Yes"')
dw_1.ModIfy('dept_deptno.Update = "Yes"')
dw_1.ModIfy('dept_deptno.Key = "Yes"')
dw_1.ModIfy('DataWindow.Table.UpdateTable = ~'dept~' ')
dw_1.ModIfy('emp_empno.Update = "No" ')
dw_1.ModIfy('emp_ename.Update = "No" ')
dw_1.ModIfy('emp_empno.Key = "No" ')
Else
MessageBox('é¨é¨è¡¨æ´æ°å¤±è´¥ï¼åæ»æ´æ¹ä¸ºé¨é¨')
Rollback Using SQLCA;
End If
6.3 设置å段åªè¯»
â æ¹æ³ä¸
å°tab order 设置为0
â¡ æ¹æ³äº
dw_1.modify("cname.tabsequence = 0 ")
⢠æ¹æ³ä¸
dw_1.modify( "meno.edit.displayonly=yes")
⣠æ¹æ³å
dw_1.modify("code_course.protect= 1")
6.4 åæ¢æ°æ®çªå£æ°æ®æº
dw_1.dataobject = "æ°æ®çªå£å"
6.5 éèæ°æ®çªå£å·æ°è¿ç¨
dw_1.setredraw(false) //ä¸å·æ°
dw_1.setredraw(true) //å·æ°
6.6 æ°æ®çªå£å ±äº«æ°æ®
dw_2.sharedata(dw_1)
6.7 æ°æ®çªå£SQLä¸ä¼ é in çåæ°
select emp.empno,emp.ename,emp.job,emp.mgr,emp.hiredate,emp.sal,emp.comm from emp where emp.empno in (ä¼ å
¥çåæ°)
//å¨ä¼ ç»æ°æ®çªå£æ¶ï¼inä¸çå
容å¿
é¡»æ¯æ°ç»ç±»å
string[] arr_in
arr_in[1]='7369'
arr_in[2]='7499'
arr_in[3]='7521'
dw_1.retrieve(ls_in)
6.8 è·åå½åæ°æ®çªå£çsql
dw_1.getsqlselect()
6.9 设置å½åæ°æ®çªå£çsql
dw_1.setsqlselect(sql)
6.10 è°ç¨åæ°æ®çªå£
integer rtncode
datawindowchild dwc_child
rtncode = dw_1.getchild("主çªå£å段", dwc_child)
if rtncode = 1 then
messagebox('',dwc_child.getitemstring(1,'åçªå£å段'))
else
messagebox('æ示','æªè·åå°åæ°æ®çªå£!')
end if
6.11 å¤ææ°æ®çªå£æ¯å¦è¢«ä¿®æ¹
//å¤ææ°æ®çªå£æ¯å¦ä¿®æ¹,建议åå¨closequeryäºä»¶ä¸
if dw_1.modifiedcount() + dw_1.deletedcount() > 0 then
messagebox('æ示','æ°æ®çªå£å·²ç»ä¿®æ¹,æ¯å¦ä¿åï¼')
else
messagebox('æ示','æ°æ®çªå£æ²¡æä¿®æ¹,æ£å¸¸éåº')
end if
6.12 æ°æ®çªå£éç½®
dw_1.reset()
6.13 æ°æ®çªå£éæ°åç»
//éæ°åç»,å¨æ们å¤çè¿æ»¤åæåºåï¼å¦ææ¯åç»çªå£å¯è½ä¼ç ´ååç»è§å
//æ以æ们è¦è¿è¡éæ°åç»ï¼éæ°åç»ä¸è¬é½æ¯å¨filter()æsort()åé¢
dw_1.groupcalc()
6.14 è·å¾æ°æ®çªå£çç¶æ
//(å¯éç¶æ:datamodified! new! newmodified! notmodified!)
//å½ç¬¬ä¸æ¬¡ä½¿ç¨retrieve()å½æ°ä»æ°æ®åºä¸è¯»åæ°æ®æ¶ï¼ææå¨æ°æ®çªå£ç¼å²åºçè®°å½ä¸å段é½æ¯å±äº
NotModified!ç¶æã
//å½æ¶æ°æ®è¢«ä¿®æ¹è¿åï¼è¢«ä¿®æ¹è¿çè®°å½ç¶ææ å¿ä¸å段ç¶ææ å¿é½ä¼è¢«æ¹æDataModified!
//å½å¢å ä¸ç¬æ°æ®æ¶ï¼å¢å æ°æ®çå段ç¶ææ å¿ä¸ºNotModified!,è®°å½ç¶ææ å¿ä¸ºNew!.
//å½æ们å¨å¢å çå段ä¸å¡«ä¸æ°æ®åï¼å段ç¶ææ å¿ä¸ºDataModifiedï¼è®°å½ç¶ææ å¿ä¸ºNewModified!
if dw_1.getitemStatus(1,dw_1.deletedcount(),primary!) = datamodified! then
messagebox('1:已修æ¹æ°æ®','datamodified!')
elseif dw_1.getitemStatus(1,dw_1.deletedcount(),primary!) = new! then
messagebox('2:å·²å¢å æ°æ®','new!')
elseif dw_1.getitemStatus(1,dw_1.deletedcount(),primary!) = newmodified! then
messagebox('3:已填åæ°æ®','newmodified!')
elseif dw_1.getitemStatus(1,dw_1.deletedcount(),primary!) = notmodified! then
messagebox('4:æªä¿®æ¹æ°æ®','notmodified!')
end if
6.15 设置æ°æ®çªå£ç¶æ
//(å¯éç¶æï¼datamodified! new! newmodified! notmodified!)
dw_1.setitemstatus(1,dw_1.deletedcount(),primary!,notmodified!)
6.16 æ¥æ¾æ°æ®çªå£ä¸ç¬¬ä¸ä¸ªè¢«éä¸çè¡
dw_1.getselectedrow(0)
6.17 æ°æ®çªå£æ¥æ¾ï¼findï¼
//dw_1.find(æ¥æ¾æ¡ä»¶è¡¨è¾¾å¼,å¼å§è¡, ç»æè¡), å¦æ表达å¼æç«ï¼é£ä¹å°±è¿å符åæ¡ä»¶çè¡å·
dw_1.find('id=8',1,10)
6.18 æ°æ®çªå£è¿æ»¤
â ååè¿æ»¤
dw_1.setfilter("isnull(åå)")
dw_1.filter()
â¡æ¡ä»¶è¿æ»¤
dw_1.setfilter("åå='" + åå¼ + "'")
dw_1.filter()
â¢ æ¸ é¤è¿æ»¤
//æ¹æ³ä¸
dw_1.setfilter('')
dw_1.filter()
//æ¹æ³äº
dw_1.setfilter('1=1')
⣠sqlè¯å¥è¿æ»¤
sql = 'select * from 表å where isnull(å段å , ''空'') = ''空'' ' ;
6.19 æ°æ®çªå£å页
â
å¢å ä¸ä¸ªè®¡ç®å
计ç®åå¿
é¡»æ¾å¨detail段
expressionä¸è¾å
¥:ceiling(getrow()/20)
è¿é表示æ¯é¡µ20æ¡æ°æ®
è¿é20è¿å¯ä»¥ç¨å ¨å±å½æ°å代ï¼è¿æ ·å¯ä»¥å 许ç¨æ·ä»»æ设置æ¯é¡µå¤å°è¡ã
â ¡å®ä¹åç»,éæ©èårows->create group…
æ计ç®åå段åç»ï¼å¹¶ä¸å®å°check box–>new page on group breakéä¸
â ¢ å°æ¤è®¡ç®å设为ä¸å¯è§
ç¶åæ·»å 以ä¸æé®ï¼å®æå页åè½
â é¦é¡µ
dw_1.scrolltorow(0)
dw_1.setrow(0)
â¡ ä¸ä¸é¡µ
dw_1.scrollpriorpage()
⢠ä¸ä¸é¡µ
dw_1.scrollnextpage()
⣠æåä¸é¡µ
dw_1.scrolltorow(dw_1.rowcount())
dw_1.setrow(dw_1.rowcount())
6.20 æ°æ®çªå£æåº
â æ£åºæå
dw_1.setsort("åå a")
dw_1.sort()
â¡ ååºæå
dw_1.setsort("åå d")
dw_1.sort()
⢠åå»æåº
string ls_old_sort, ls_column
char lc_sort
if right(dwo.name,2) = '_t' then
ls_column = left(dwo.name, len(string(dwo.name)) - 2)
ls_old_sort = this.describe("datawindow.table.sort")
if ls_column = left(ls_old_sort, len(ls_old_sort) - 2) then
lc_sort = right(ls_old_sort, 1)
if lc_sort = 'a' then
lc_sort = 'd'
else
lc_sort = 'a'
end if
this.setsort(ls_column + " " + lc_sort)
else
this.setsort(ls_column + " a")
end if
this.sort()
end if
6.21 æ°æ®çªå£è·åç¦ç¹
dw_1.setfocus()
dw_1.setrow("æ°æ®è¡å·")
dw_1.setcolumn("å段å")
6.22 æ°æ®çªå£è¡ç¸å ³
â è¡å¤ç
dw_1.rowcount() //è·åæ»è¡
dw_1.getrow() //è·åå½åè¡
dw_1.setrow(1) //设置å½åè¡
dw_1.scrolltorow() //æ»å¨å°ç®æ è¡
dw_1.selectrow(1, true) //å°ç¬¬ä¸è¡åæéä¸ç¶æ
dw_1.isselected(1) //æ£æ¥ç¬¬ä¸è¡æ¯å¦è¢«éæ©
â¡ ç¹å»é«äº®æ¾ç¤º
â å¨æ°æ®çªå£çclickäºä»¶ä¸ï¼åå ¥ä»¥ä¸ä»£ç
if row > 0 then
this.selectrow(0,false)
this.selectrow(row,true)
end if
â ¡å¨æ°æ®çªå£rowfocuschangedäºä»¶ä¸ï¼åå ¥ä»¥ä¸ä»£ç
if currentrow > 0 then
selectRow(0, false)
selectRow(currentrow, true)
scrolltorow( currentrow )
end if
⢠éè¡åè²
â
æå¼æ°æ®çªå£
â
¡. å³é® detail
â
¢. æ¾å°å³ä¾§ color å±æ§å³ä¾§çå°å¾æ
â
£. å¨è¡¨è¾¾å¼ä¸è¾å
¥ä»¥ä¸ä»£ç
if ( mod( getrow() , 2) = 1 , rgb(255,255,255) , rgb(235,255,235) )
⣠èªå¢è¡
â
. æ·»å 计ç®åï¼ page n of n
â
¡. éæ© getrow()
⤠设置æ¯é¡µæå°è¡æ°
â
. æ·»å 计ç®å page n of n ï¼è¾å
¥å
¬å¼ï¼ ceiling(getrow()/20)
â
¡. éæ©èå rows->create group ï¼å建åç»ï¼éæ©åæå建çå
¬å¼åpage_1
â
¢. å建å®åç»åï¼éæ©å³ä¾§å±æ§ï¼ new page on group break æä¸å¾å³å¯
â
£. å¦æéè¦æåä¸é¡µä¸è¶³è¡¥ç©ºè¡
long ll_pagerow = 6 //æ¯é¡µæå°è¡æ°
long ll_count, ll_row
ll_count = dw_1.retrieve()
//åå¾ç°ææ¥è¡¨çæ»è¡æ°
ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
if ll_count < ll_pagerow then
for ll_row = 1 to ll_count
dw_print.insertrow(0) //补足空è¡
next
end if
⥠移å¨è¡
//移å¨è¡
//ï¼primary!主ç¼å²åº delete!å é¤ç¼å²åº filter!è¿æ»¤ç¼å²åºï¼
//dw_name.rowsmove(å¼å§è¡,ç»æè¡,ç¼å²åº,è¦ç§»å¨å°çå¦ä¸çªå£å,å¨åªä¸è¡åé¢æå
¥,æå
¥åªä¸ªç¼å²åº)
//rowsmoveè¿å¯ä»¥å¨åä¸æ°æ®çªå£çä¸åç¼å²åºè¿è¡ç§»å¨è¡
//å¦ï¼ä»å é¤ç¼å²åºç§»å¨è¡å°ä¸»ç¼å²åºå®ç°æ¢å¤åè½ï¼
dw_1.deleterow(1) //å é¤ç¬¬1è¡
dw_1.rowsmove(1,dw_1.deletedcount(),delete!,dw_1,1,primary!) //æ¢å¤ç¬¬1è¡
⦠å¤å¶è¡
//å¤å¶è¡ï¼primary!主ç¼å²åº delete!å é¤ç¼å²åº filter!è¿æ»¤ç¼å²åºï¼
//dw_name.rowscopy(å¼å§è¡,ç»æè¡,ç¼å²åº,è¦å¤å¶å°çå¦ä¸çªå£å,å¨åªä¸è¡åé¢æå
¥,æå
¥åªä¸ªç¼å²åº)
//rowscopy( )--åºæ¬ç¨æ³å移å¨è¡å·®ä¸å¤
dw_1.deleterow(1) //å é¤ç¬¬1è¡
dw_1.rowscopy(1,dw_1.deletedcount(),delete!,dw_1,1,primary!) //å¤å¶ç¬¬1è¡
6.23 åå¤ç
â è·å¾æ°æ®çªå£ææçåå
integer li_index
for li_index = 1 to integer(dw_1.object.datawindow.column.count)
messagebox(string(li_index),dw_1.describe("#" + string(li_index) + ".name"))
next
â¡ è·å¾å段对åºçdbname
integer li_index
for li_index = 1 to integer(dw_1.object.datawindow.column.count)
messagebox(string(li_index),dw_1.describe("#" + string(li_index) +".dbname"))
next
⢠å¤å¶å
dw_1.object.å段å.primary = dw_1.object.å段å.primary
⣠è·åæ¾ç¤ºå
describe('DataWindow.Table.GridColumns')
6.24 æ°æ®çªå£ä¸å®ç°å¤éæ¡
â å¨æ°æ®çªå£çsqlä¸ï¼æ·»å å¤éæ¡å段
'0' as checkbox
⡠设置å段ç edit å±æ§ä¸º checkbox
ï¼å¹¶å¾é3d look
⢠设置(data value for on = 1)ï¼è®¾ç½®(data value for off = 0)
⣠ådw_1æ°æ®çªå£çclickäºä»¶ä¸å
if dwo.name = "checkbox" then
if dw_1.rowcount() = 0 then
else
if dw_1.object.checkbox[1] = "1" then
for row = 1 to dw_1.rowcount()
dw_1.object.checkbox[row] = "0"
next
else
for row = 1 to dw_1.rowcount()
dw_1.object.checkbox[row] = "1"
next
end if
end if
end if
⤠å¤ææ¯å¦éä¸
long i
if dw_1.rowcount() = 0 then return 0
for i = 1 to dw_1.rowcount()
if dw_1.getitiemstring(i, "checkbox") = '1' then
messagebox('æ示信æ¯'ï¼â第â+string(i)+'è¡è¢«éä¸')
end if
next
6.25 æ°æ®çªå£è½¬datastore
datastore lds_data
lds_data = create datastore
//ç»å®ä¾ååçdatastoreåéå
³èæ°æ®çªå£å¯¹è±¡
lds_data.dataobject = 'd_data'
//ç»æ°æ®åå¨å¯¹è±¡æå®äºå¡å¯¹è±¡
lds_data.settransobject(sqlca)
//æ¥ä¸æ¥å°±åæä½æ®éæ°æ®çªå£ä¸æ ·äº
long ll_row
ll_row = lds_data.insertrow(0)
lds_data.object.name[ll_row] = 'å¼ ä¸'
6.26 å¨ææ°æ®çªå£
â æ°æ®çªå£èµå¼ä¸åå¼
//1 èµå¼
dw.setitem(è¡, 'åå称', å¼)
dw.object.åå[è¡å·] = å¼
//2 åå¼
dw_1.object.å段å[è¡æ°] //ç´æ¥åå¼
dw_1.object.å段å.text //ææ¬æ¡
dw_1.GetItemString(è¡æ°,åå) //å符串
dw_1.GetItemNumber(è¡æ°,åå) //æ°å¼
dw_1.GetItemDate(è¡æ°,åå) //æ¥æ
dw_1.GetItemDateTime(è¡æ°,åå) //æ¥ææ¶é´
dw_1.GetItemDecimal(è¡æ°,åå) //å°æ°
â¡ éè¿describe
è·åæ°æ®çªå£ä¸çåç§å±æ§
dw_1.Describe("#1.name") //è·åå段å称 title
dw_1.Describe("title.ColType") //è·åå段类å char(100)
dw_1.Describe("title.background.color") // è·åå段èæ¯é¢è² 536870912
dw_1.Describe("title.background.mode") //è·åå段èæ¯æ¨¡å¼ 1
dw_1.Describe("title.edit.Autohscroll") //è·åå段æ¯å¦å
许èªå¨æ¨ªåæ»å¨ yes
dw_1.Describe("title.key") //è·åå段æ¯å¦ä¸ºä¸»é® no
dw_1.Describe("title.protect") //è·åå段ä¸çæ°æ®ä¿æ¤ 0
dw_1.Describe("title.SlideLeft") //è·åå段çæ»å¨å±æ§ï¼å½å·¦é¢ç©ºç½æ¶æ¯å¦åå·¦æ»å¨ï¼ no
dw_1.Describe("title.slideup") //è·åå段çæ»å¨å±æ§ï¼å½ä¸é¢åºç°ç©ºç½æ¶æ¯å¦åä¸æ»å¨ï¼ no
dw_1.Describe("title.tabsequence") // è·åå段çTabOrderå¼ 15
dw_1.Describe("title.update") //è·åå段æ¯å¦å¯ä»¥ä¿®æ¹ yes
dw_1.Describe("title.validation") // è·åå段çæ ¡éªè§å
dw_1.Describe("title.expression") // è·åå段ç表达å¼
dw_1.Describe("Evaluate('LookupDisplay(sex)',1)") // è·åæ¾ç¤ºå¼çå±æ§
⢠éè¿modify
ä¿®æ¹æ°æ®çªå£ä¸çåç§å±æ§
dw_1.modify("title.background.mode='1'") // ä¿®æ¹å段èæ¯æ¨¡å¼
dw_1.modify("title.background.color = '0'") //ä¿®æ¹å段èæ¯é¢è²
dw_1.modify("title.criteria.dialog = yessex.criteria.override_edit =yes") //ä¿®æ¹æ£ç´¢è§å
dw_1.modify("title.edit.required = yes") //ä¿®æ¹å段为å¿
é¡»è¾å
¥
dw_1.modify("title.format = 'yyyy-mm-dd'") // ä¿®æ¹å段æ¾ç¤ºæ ¼å¼ä¸ºæ¥ææ ¼å¼
dw_1.modify("title.key = yes") // ä¿®æ¹å段为主é®
dw_1.modify("title.protect ='1~tif(isrownew(),0,1)'") //ä¿®æ¹å段çä¿æ¤å±æ§
⣠ç¨åºè¿è¡ä¸å¨æå建æ°æ®çªå£
æ¹æ³â
string str_dwsyntax,str_lag
//è·å¾æ°æ®çªå£1çè¯æ³
str_dwsyntax=dw_1.object.datawindow.syntax
//æ ¹æ®æ°æ®çªå£1çè¯æ³å¨æçææ°æ®çªå£2çè¯æ³
dw_2.create(str_dwsyntax)
//对æ°æ®çªå£2çå
容ä½å±é¨ä¿®æ¹
str_lag="stu_id_t.font.height='-12' stu_id_t.font.face='楷ä½_GB2312'"
//åä½å12å·åä½ï¼ç±å®ä½æ¹ä¸ºæ¥·ä½
dw_2.modify(str_lag)
dw_2.settransobject(sqlca)
dw_2.retrieve()
æ¹æ³â ¡
å¨ç¨åºä¸ä½¿ç¨ç³»ç»å½æ°LibraryExport()å¾å°æ个已ç»åå¨çæ°æ®çªå£å¯¹è±¡çæºä»£ç
æ¹æ³â ¢
å¨PBå¼åç¯å¢çåºç®¡çç»ç¬(Library Painter)ä¸ä½¿ç¨ç§»åºåè½(å³é®âExport)å°æ个æ°æ®çªå£å¯¹è±¡çè¯æ³ä¿åå°ææ¬æ件ä¸
æ¹æ³â £
//è¿æ¥é»è®¤äºå¡sqlca
sqlca.dbms = "O84 Oracle8/8i (8.x.4+)"
SQLCA.LogPass = 'æ°æ®åºå¯ç '
SQLCA.ServerName = âæå¡å¨IPâ
SQLCA.LogId = 'æ°æ®åºç¨æ·å'
SQLCA.AutoCommit = False
SQLCA.DBParm = "PBCatalogOwner='hb_zh'"
sqlca.autocommit = false
sqlca.dbparm = ""
connect using sqlca;
string dw_sql,dw_style
string dw_syntax,dw_syntax_error,dw_create_error
//设置æ°æ®çªå£sql
dw_sql = "select * from 表å"
//设置æ°æ®çªå£é£æ ¼
dw_style = "style(type=grid)"
//æé sqlæ°æ®æº
dw_syntax = sqlca.syntaxfromsql(dw_sql, dw_style, dw_syntax_error)
//å¤æsqlæ°æ®æºæ¯å¦æé误
if len(dw_syntax_error) > 0 then
messagebox("æ示", "æé sqlæ°æ®æºé误: " + dw_syntax_error)
return
end if
//éè¿sqlæ°æ®æºå建dw_1æ°æ®çªå£
dw_1.create(dw_syntax,dw_create_error)
//å¤ædw_1æ°æ®çªå£å¨å建ä¸æ¯å¦æé误
if len(dw_create_error) > 0 then
messagebox("æ示", "å建æ°æ®çªå£é误: " + dw_create_error)
return
end if
//æ£ç´¢æ°æ®
dw_1.settransobject(sqlca)
dw_1.retrieve()
以ä¸ç¨å°çSyntaxFromSQL()
å½æ°åCreate()
å½æ°å
·ä½è¯´æå¦ä¸
6.27 æ°æ®çªå£å¯¼å ¥å¯¼åº
â æ°æ®çªå£å¯¼å ¥
//dw_1.importfile(导å
¥çæ件类å, æ件å, æ件çå¼å§è¡ , æ件çç»æè¡, æ件çå¼å§å, æ件çç»æå, æ°æ®çªå£çå¼å§å )
//å 为导åºçæ°æ®çªå£é½ææ é¢ï¼æ以æ们è¿è¾¹ä»ç¬¬2è¡å¼å§å¯¼å
¥
dw_1.importfile(text!,'1.txt',2,10,1,10,1) //导å
¥txtæ件
dw_1.importfile(excel!,'1.xls',2,10,1,10,1) //导å
¥xlsæ件
dw_1.importfile(excel!,'1.xlsx',2,10,1,10,1)//导å
¥xlslæ件
dw_1.importfile(csv!,'1.csv',2,10,1,10,1)//导å
¥csvæ件
â¡ æ°æ®çªå£å¯¼åº
//dw_name.saveas(ååå¯å«è·¯å¾,å¦å为çç±»å,æ¯å¦æ¾ç¤ºåæ é¢)
dw_1.saveas("1.txt",text!,true) //å¦å为txtæ件
dw_1.saveas("1.xls",excel!,true) //å¦å为xlsæ件
dw_1.saveas("1.xlsx",excel!,true) //å¦å为xlslæ件
dw_1.saveas("1.csv",csv!,true) //å¦å为csvæ件
6.28 æ°æ®çªå£å¿«æ·é®
//1ãæ°å»ºäºä»¶
//äºä»¶å keydown
//event ID pbm_dwnkeyï¼éæ©è¿ä¸ªå°±å¯ä»¥äºï¼å
¶ä»åæ°å®ä¼èªå·±è®¾ç½®ï¼
//2ãå¨æ¤äºä»¶ä¸ï¼åå
¥ä»¥ä¸ä»£ç
if key = KeyEnter! then Send(Handle(this),256,9,0)
6.29 设置datawindowçå½åè¡æ示å¾æ
//å¨datawindowä¸å»ºç«ä¸ä¸ªè®¡ç®å,expression为'',并å°è¯¥è®¡ç®å移å¨ä¸ºdatawindowç第ä¸ä¸ªåï¼å¨
//datawindowæ§ä»¶çrowfocuschangedäºä»¶ä¸åå
¥ä»£ç ï¼
SetRowFocusIndicator(hand!) //å°æææ ·å¼
setrowfucsindicator(p_1) //èªå®ä¹å¾çæ ·å¼
6.30 æå°datawindowçå 容å°æ件ä¸
//æ°æ®çªå£æå°åºpdf
dw_1.object.datawindow.print.filename ="c:/temp.pdf"
dw_1.print()
6.31 å°Gridé£æ ¼æ¹æèªç±æ ¼å¼
å¨DWçeditsourceä¸å°processing=1ç1æ¹ä¸º0
6.32 æ°æ®çªå£èªå¨è°æ´å¤§å°
å¨æ°æ®çªæå¨çªå£çResizeäºä»¶ä¸ç¼å代ç
Resize(dw_datamon,this.Workspacewidth()-50,this.Workspaceheight()-50)
6.33 ä¸ä¸ªæ¥è¡¨ä¸è¦æä¸ä¸ªè®¡ç®åï¼æ¯å 个NUMååç¸å ï¼å çæ¶åå 个åä¸æä¸ä¸ºç©ºå°±å ä¸åºæ¥
æ¹æ³â
设置æ¤æ°æ®åçå使å¼ä¸º0.0ãä½å¿ éå¨æ°æ®çªå£å¯¹è±¡ä¸è®¾ï¼å³éèåRowsä¸çColumn Specificationsâ¦â¦é项ï¼å¨Initial Valueåä¸åä¸0.0å³å¯
æ¹æ³â ¡
计ç®åå ¬å¼éç¨å¦ä¸ï¼
// A + B + C
if(isnull(A), 0,A) + if(isnull(B), 0,B) + if(isnull(C), 0,C)
6.34 å¨æçæçæ¥è¡¨ä¸æä¹ä¿®æ¹å个带åºç宽度ãä½ç½®?
// æ¹ådetailåºçé«åº¦ï¼
dw_1.Modify("DataWindow.detail.Height=200")
6.35 å¨æçæçæ¥è¡¨ä¸å¢å ææ¬ï¼æ é¢ï¼ï¼æ对æ é¢æ çææ¬è¿è¡ä¿®æ¹
//对æ é¢æ ææ¬çæ´æ¹(ææ¬å为dept_name_t)
dw_1.modify("dept_name_t.text = 'åä½å称'")
6.36 å¨æçæçæ¥è¡¨ä¸å¨æå¢å 计ç®å
string ls_modrow
dw_1.Modify("DataWindow.summary.Height=64")
ls_modrow = 'Create compute(band=summary font.charset="0" font.face="MS Sans Serif" font.family="2" font.height="-8" font.pitch="2" font.weight="400" background.mode="1" background.color="536870912" color="0" x="9" y="4" height="52" width="297" format="[general]" expression="count(dept_id for all)" alignment="1" border="0" crosstab.repeat=no )~r~n'
dw_1.modify( ls_modrow )
6.37 å¨æä¿®æ¹gridæ°æ®çªå£ä¸ç½æ ¼çº¿æ¯å¦å¯è§ï¼å¹¶å¨detailåºå¢å å ä¸æ¡çº¿
dw_1.Modify("DataWindow.Grid.Lines='1' ")
dw_1.Modify("DataWindow.detail.Height=332")
ls_line = 'Create line(band=detail background.mode="2" background.color="16777215" pen.style="0" pen.width="5" pen.color="0" x1="37" y1="320" x2="1458" y2="316" )~r~n'
dw_1.modify( ls_line )
6.38æ°æ®çªå£ä¸æ·»å ä¸è®¡ç®åï¼ç»è®¡ä¸ä¸æ§å«ä¸ºç·çè®°å½æ°
//æ·»å ä¸ä¸ªè®¡ç®å
sum( if( stu_sex ='ç·', 1, 0 ))
6.39 æ°æ®çªå£ä¸æ°æ®èªå¨æè¡
å¨PowerBuilderåºç¨ç¨åºçå¼åè¿ç¨ä¸, 使ç¨DataWindowæ¶, ç»å¸¸ä¼éå°æåçæ°æ®å¤ªé¿, ä¸è½åæ¶å ¨é¨æ¾ç¤ºçæ åµ. è¥éç¨èªå¨æ°´å¹³æ»å¨, æä½èµ·æ¥åä¸å¤ç®ä¾¿ï¼é£ä¹æ们å°å¦ä½å®ç°åæ°æ®å¤è¡æ¾ç¤º, å³å®ç°åæ°æ®çèªå¨æè¡å¢ï¼
â å¨DataWindow Painterä¸æå¼æ¤DataWindow对象
â¡å¨é设å®èªå¨æè¡çåä¸åå»é¼ æ , å¼¹å¼æ¤åçå±æ§çªå£
⢠éæ©Positionæ ç¾, éä¸Autosize Height å¤éæ¡
⣠éæ©Editæ ç¾, ä¸éä¸Auto Horz Scrollå¤éæ¡
⤠åå»OKæé®, ä¿åæåçä¿®æ¹
⥠ç¹ä¸Detail Band (å³åæDetailçç°è²é¿å¸¦), åå»é¼ æ å³é®, éæ©Properties… èå项
⦠éä¸Autosize Heightå¤éæ¡
⧠åå»OKæé®, ä¿åæåçä¿®æ¹
⨠ä¿åæ¤DataWindow
注æ:è¿å¨ä¸èµ·çæ±åï¼ä¸é´æ²¡ææ ç¹æç©ºæ ¼åéï¼, ç³»ç»å°è®¤ä¸ºæ¯ä¸ä¸ªåè¯, ä¸ä¼èªå¨è¿è¡æè¡ï¼ è±æä¹æ¯å¦æ¤â¦â¦DWçªå£æè¡å¦æææ±åçè¯å°±å¿ éä¸é´å ç©ºæ ¼æä¼æè¡ï¼å¦åææ ·è®¾ç½®é½ä¸è¡ãä¾å¦ä½ å¦ææ³å¨ç¬¬20ä½æè¡ï¼å°±å å¤æ第20ä½æ¯å¦æ¯ä¸ªæ±åï¼å¦ä¸æ¯å°±å¨ç¬¬20ä½åå ç©ºæ ¼ï¼å¦ææ¯æ±åå°±å¨ç¬¬19ä½å ç©ºæ ¼ãå¤ææ¯å¦æ¯æ±åå¯ä»¥ç¨å®çASCIIç æ¯å¦å¤§äº127æ¥å¤æ
6.40 è¿ç»é¡µæ°æå°å¤ä¸ªæ°æ®çª
â 建ç«ä¸ä¸ªå ¨å±åé
integer g_int_page=0
⡠建ç«ä¸ä¸ªå ¨å±å½æ°f_setpage()
return g_int_page
⢠å¨æ°æ®çªå£å¯¹è±¡ä¸å å ¥ä¸è®¡ç®ågs_pagenum
//å©ç¨å
¨å±æ¶µæ°æ¥ä¼ éå
¨å±åé
page() + f_setpage()
⣠å¨æ¯ä¸ä¸ªæ°æ®çªå£æ§ä»¶çprintendäºä»¶ä¸æ¹åå ¨å±åéçå¼ï¼ä»¥ä½¿è®¡ç®åçå¼åçåå
g_int_page=dw_1.getitemnumber(dw_1.rowcount(),"gs_pagenum")
⤠å½ææçªå£æå°å®æ¯åå°å ¨å±åéæ¢å¤
g_int_page=0
6.41 å¨æå®ç°æå°ä¸åºå®çæ°æ®å
åä¸ä¸ªç¨åºï¼å ¶ä¸çä¸ä¸ªåè½æ¯ï¼
ä¾å¦ï¼æ°æ®åºãéåï¼åºå·ï¼å§åï¼å¹´é¾ï¼æ§å«ï¼åºçå¹´æï¼å¦åï¼èå¡ï¼å·¥èµï¼ççï¼ã
客æ·è¦æ±å¨ç¨åºçè¿è¡ä¸è¿è¡éæ©ï¼å¯¹è¡¨ç项任æéï¼ï¼ç¶åæå°åºæ¥ã
å¦éæ©å§åï¼å¹´é¾ï¼åºçãåæå°å§åï¼å¹´é¾ï¼åºçã
åå¦éæ©å§åï¼å·¥èµãåæå°å§åï¼å·¥èµãæä¸ç¥éå¦ä½å»å®ç°
æ¹æ³â
建æ°æ®çªå£å¯¹è±¡æ¶ï¼éç¨Gridé£æ ¼(Gridé£æ ¼æ°æ®çªå£çå段宽度å¯ä»¥éææå¨ï¼å¦åExcel)ï¼ä¸éè¦æå°çå段å¯ä»¥éæ¶å°å ¶å®½åº¦æå¨ä¸ºé¶
æ¹æ³â ¡
ç¨å表æ¡æ¾ç¤ºåºææçåï¼å¯ä»¥å¤éé«äº®åãéè¿Modifyå½æ°å¨æå®ä¹éä¸åçä½ç½®ï¼å®½åº¦ä»¥åæ¯å¦å¯è§çå±æ§