|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
- 花键轴设计的主程序 Database_main.cpp : implementation file$ v2 m4 G: K1 e' [+ Y
; U" z- j1 c2 K6 q' R- u+ c+ h-
9 B1 l6 m/ A+ Z. }+ Y
% B: m" j& h* e2 D2 B5 N- #include "stdafx.h"
- t2 q* L$ v. R$ E c6 q2 I4 { - % V! V6 n% w5 h) }* S
- #include "app_data.h"
7 K7 f4 l6 e) w& S2 g# n
6 P2 R7 O1 q* E8 g0 n6 D- I; M2 o- #include "Database_main.h"
& Q- W8 y: _: v - # U$ h1 V9 O) T# M( j9 p5 t- E
- 6 [6 i, l! ^3 ?! @
- 3 L( r# V5 i8 _' ]; B: h7 c
- #ifdef _DEBUG+ _! U$ @! F0 o7 S" @2 W
, Y# D' Q# W5 p5 V% |0 I9 K6 k! Z- #define new DEBUG_NEW; s5 d- H- m% }$ P
+ A5 s) v6 g( w- #undef THIS_FILE
1 L" T, B8 ?" q3 h' \& |/ C9 S1 ?
9 I2 F$ L% c t( M" s- static char THIS_FILE[] = __FILE__;
. R# u" I3 ~8 g2 @
4 c$ ?" R3 N" k* C2 ?5 }- #endif, F' [0 }9 a. F7 E
- 8 N3 z. H7 c! U4 z" J
-
5 P/ | A+ h$ k3 C: y - $ F5 C) @1 P/ y$ L, x# I. H
- CDatabase_main::CDatabase_main(CWnd* pParent /*=NULL*/)( H7 z) {0 A# e7 y
% P7 J5 |7 U9 s# N4 `9 y& G( K- : CDialog(CDatabase_main::IDD, pParent)0 P. W( x, i& q
' \+ F2 S( {3 `- {
( }9 x% @6 j3 R- @8 c - / e+ v: o, a- I4 J
- //{{AFX_DATA_INIT(CDatabase_main)
% }% r' r+ q2 N$ k. H# g
8 y* Y, f; N) ^1 k- // NOTE: the ClassWizard will add member initialization here
8 C: V/ J2 l7 \$ s# y) S - * g% F7 T! O, l+ l# V3 g
- //}}AFX_DATA_INIT
( _- m, u6 n6 e" H! u2 Q# ~ g - ' r2 U# N! g( d. k |% i) P
- }
( O( }- @- }- c8 |: Z8 r' N
' y- n* d# j, f/ Z- X) d-
$ O9 }, d v! o5 m
3 L) c/ {3 ~" _$ l& x+ A$ Z$ D- ' a8 l; e% I% r1 Q% O4 _5 v& b+ g
- 5 m* O! a" |+ [5 V* Y# Z1 `
- void CDatabase_main::DoDataExchange(CDataExchange* pDX)
( p( Z2 @" r; E2 \% I. L3 R' M
' Z. s! a) l& y9 T8 g- {) R6 X; a9 @7 ]
: ?% x) D) v" c; j) [* F- CDialog::DoDataExchange(pDX);' t# H+ J& w2 ]6 x
* k+ r: V* n4 j- //{{AFX_DATA_MAP(CDatabase_main)& B" {) e$ J4 | X8 ]' a
1 g3 y, g6 R; e) N$ r0 s& D2 _- DDX_Control(pDX, IDC_LIST_PARA, m_list_control);% ]; H b; J$ U$ k2 Q5 ^
- ' j' w/ B) ?5 C* c$ K, {
- //}}AFX_DATA_MAP6 c- [* U5 G4 S0 N$ \1 Z" G
- ( ?# I6 `: S3 I' ~8 ~5 j5 e4 D
- }
! h4 @* ?' ~/ E* c# z - ; u8 C3 e: T1 o4 m
- BEGIN_MESSAGE_MAP(CDatabase_main, CDialog)7 j) `4 V, F/ G! Q7 y
- + D# m( n, f9 {0 q
- //{{AFX_MSG_MAP(CDatabase_main)
8 D3 J/ Y& E! r2 S% K4 G
* G, _& b9 e- y- K0 a z- ON_WM_DESTROY()
, A4 r' d" X8 Y; h4 t - . g1 L* M7 ^6 @; J0 b$ |
- //}}AFX_MSG_MAP- v3 E( j0 C) y. F" b, q }
- 4 I+ E4 c2 m. c
- END_MESSAGE_MAP()2 m: e: R- g6 Z, n
- . F0 q" I* o) X6 s" y1 w4 B
- ( ]! ?9 K- }; g, j
- % V7 p. a. S; p
- BOOL CDatabase_main::OnInitDialog()4 Z! v/ A: n+ U/ I
, ~! I6 t9 l' I" ^" U% n! ~- {3 y" u: A% u' q; r
u- J5 m% y! f6 [& \* f# i a- CDialog::OnInitDialog();
. j. u, O& S. F& {7 t) c8 K
7 ^' z+ |5 E; t) K- ' l6 F( H9 l5 i, T
- ~& }9 x2 G' r \7 N5 k' y# Z( e& \( B
- // TODO: Add extra initialization here7 i6 Z7 L4 T# X& Z' u
- / e4 N2 `* k+ U, A* }7 o/ {
- try{$ R: T0 V+ l: M0 N2 C6 c7 l4 j
' j6 h. t/ T; e% |5 F) H- m_pdatabase=new CDatabase();
/ R3 A9 l' P2 i( z
3 b5 x2 \; p6 u- m_pset=new CRecordset();* o2 K' j" g2 w5 A* k4 V- [
0 Z4 j, v; s9 K7 r, f/ y- m_pdatabase->Open(_T("data"),FALSE,FALSE,_T("ODBC;DSN=data"),FALSE);* d8 o6 Q% K# N+ C$ L( L0 f
- 2 L% Y! u# ] d' v" `
- m_pset->m_pDatabase=m_pdatabase;
: T) ] {- Q E U4 j
8 f) y: B5 M' F9 _" E4 |; [- }
- n0 W. Z3 C( @6 A1 f
4 `& e( }- N5 z- ^6 Y; k- caTCh(CDBException* e){# Q. [4 E5 M+ O# D, E# h0 s$ V
- * _+ U* D2 `# O! ^; J* I8 Y* F* C
- e->ReportError();" I, ^$ p, {- d
- 8 ]$ Z+ V* ? _ l9 z
- e->Delete();5 O8 N" ]( i2 t7 e0 R P
0 c2 n, d, A, c! x- delete m_pset;
7 a1 ^' N! {; V+ p0 `: d" s - + c; W5 c4 v( g4 T: N+ J
- delete m_pdatabase;
9 J( L/ B9 N# x' I7 [* P
( B4 I0 f( c: _6 l; E0 R- return TRUE;} n' Z4 @# k7 m6 N9 i
- 8 S G) U: K. \7 H7 d& N
- DataShow("data");
1 D1 F m1 Z& a - 3 Q \& n* M9 K" R9 z" }
- return TRUE; // return TRUE unless you set the focus to a control. i( h5 g6 L* i5 [
1 [0 s& l3 m, w! m- // EXCEPTION: OCX Property Pages should return FALSE9 z; ]& W2 `6 C2 ~
/ O, F$ i, p" e; _; z( Y2 n% V- }# W, k! ]4 E% @% R9 [# o9 P, `
+ r: e3 H- v0 ]! g4 M- void CDatabase_main::ClearList()
; E& F! p- A& F% k" F! Q( J: R h# V
& w$ L8 ]' g0 S1 \- {
- N+ Z5 }# k0 Q( U* g; C Z - % X/ V& Z C! C1 j
- //m_list_control.SetExtendedStyle(LVS_EX_FULLROWSELECT);
6 X n( X: ?3 \5 a5 b. r. z9 u) N - & @7 o/ E; p3 m2 V# A
- //m_list_control.SetExtendedStyle(LVS_EX_GRIDLINES);& N* V# J+ [* U3 Z; U! S4 ], C
5 d. z8 K3 R* g0 t* ]* t& M- m_list_control.DeleteAllItems();
: U" g8 @) K& K4 Z0 p) l: y b
5 n6 T3 b* p$ w/ h( @! a7 F- while(m_list_control.DeleteColumn(0));+ \8 l |: ?0 _. L5 p4 I
9 O4 U& {; Z5 b; W; d: @* \* S- UpdateWindow(); l6 a' V4 u4 P/ A" l7 I; n! F( O; p+ u
4 d/ o% i, k0 L: h- }3 F; c: r9 h7 @1 g, A
& X ]% \0 P" H* C- void CDatabase_main::DataShow(CString table_name)7 |1 @' G, O6 X1 Q4 c* _; p
- . {! |2 ^9 j7 W+ ?
- {. X; w: U# b `
- t: q9 k8 e u5 x) Z8 v- ClearList();
) e: y. C1 U& g0 Y$ G
! X' x' G1 _! N8 _5 j+ `- CString strSQL;
' p$ l4 @. D% m: W9 G9 Z - 9 C5 E: y" \3 c( ~+ \1 m
- strSQL="select * from "+table_name;
& z; J& b; v( P C# \
9 [' }# c- h D- Y J9 _# I- ShowInformation(strSQL);. z" Y1 E/ \3 w6 \" y+ r1 g; ]
5 j- ?$ Y g* c, ^1 h- }
1 k1 ] ?; l7 r" O J4 L
2 ?$ i0 {' b1 R' D7 _' g8 r-
; ?1 J; r; a* D) _# \3 j6 z: _ - 4 Q( {" |% p t A' `+ B/ q
- BOOL CDatabase_main::ShowInformation(CString strSQL)
. ^& Y/ [: Z0 a - A, i% ?! ?2 A
- {3 H9 H j" f4 A+ M
- ( a" @) L, E3 Z5 D, E
- if(!m_pdatabase->IsOpen()) return FALSE;, a7 ], d. s5 w; z9 `
$ O8 S9 ?' l$ y/ F6 W" H! H5 b- if(!m_pset) return FALSE;0 @" b6 f( k4 e
- " l* x: p: _9 N+ l& R9 Z
- try{; E! p) Z6 D) y3 ^& y
% l5 z0 _: g8 P8 b* [5 {- BeginWaitCursor();
2 I5 Y) j* t. a3 `9 s% T
+ z) D" ]* j# W! }9 x \: g0 H- if(m_pset->IsOpen()) m_pset->Close();
5 W2 ]2 B, B. _1 C# R+ L
! I+ K0 X. X$ h$ `0 l- m_pset->Open(CRecordset::dynaset,strSQL);
: W# X$ }: b' b' a3 J8 R6 \ - Y( J7 e9 w3 ?3 t# t' \
- if(!m_pset->IsEOF())9 ?, R5 L. d6 x+ ~) G2 M
3 U+ x9 ~' A% k- {m_pset->MoveLast();
' }2 t7 D; o2 t) E6 n( c
1 q5 E# n$ Z4 L- m_pset->MoveFirst();}
5 ~- O8 l3 G' V' M7 p9 _$ }# @% @
, u/ e* E/ J) \& _- F4 f- nFieldCount=m_pset->GetODBCFieldCount();' n' v# c" _: l9 v& g7 s6 i
- 9 x0 L+ i7 W6 ?0 e2 o9 f& k
- CODBCFieldInfo fieldinfo;
0 v; S! |+ q" D+ F2 d; O* [& _) \
, u; R0 c( v1 i h! A- for(int n=0;n<nFieldCount;n++){
. x! T' y0 r; U( q9 ?& \$ S B - 1 o ~: ~# ~! s7 ~! V" x# n
- m_pset->GetODBCFieldInfo(n,fieldinfo);. @2 o! e* Y$ L" c4 V ~% p
- 0 A8 y6 c- b) g! K0 F9 g
- int nWidth=m_list_control.GetStringWidth(fieldinfo.m_strName)+35;6 S3 g# Q$ { ~' ?! B% N
* L0 N* [, w' a, B7 f- m_list_control.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);7 F- a' a) q% I# F- C5 y# Q7 \
- $ z+ m$ v A3 j
- }( w- Q2 Y: A2 W7 G
- 8 N: f+ [1 w, X; S* l
- CString strValue;/ b8 P- Z7 J+ p8 t7 s% |% r: B" j
- 6 J0 v7 h3 _! d2 `2 L5 G
- m_pset->MoveFirst();: Y7 H) Y# b6 a8 \% x; @; r' f1 w
- % ?9 @4 z; y8 \5 L, M* U8 N
- int nCount=0;
% p$ w2 C) O3 l5 y. M h - " s4 `+ | M$ l4 x" l
- while(!m_pset->IsEOF()){
9 U3 n0 h. b+ B* ~% N' k7 t - ! V$ I( A3 w& ?; S, T: f
- m_list_control.InsertItem(nCount,strValue);" C, b$ D( E5 y
- q j* ~% U0 K3 x6 ^- for(int j=0;j<nFieldCount;j++){4 d, I2 I- R1 v) Z! {! m
; g3 ]9 s5 ?/ t% r# V2 }- m_pset->GetFieldValue(j,strValue);
- k, Y: I, Z3 |% f - % P% H! d7 [. N' f: N0 T. T- f
- m_list_control.SetItemText(nCount,j,strValue);
) x6 N# a4 r8 D/ ~ - 3 U! b9 I: d8 F) _
- }- a: k* p7 M! F
$ H9 E9 `! F! m- m_pset->MoveNext();
/ @$ |! |* k8 u2 R( i
- M# J1 Z7 c1 V% h+ R( e- nCount++;" A+ f5 V9 O+ n8 }, Z+ Z
+ S& n0 _' y+ u0 @+ z- }
/ g6 ^9 R3 l: E6 I6 X - " G6 w: v% ^0 ^
- EndWaitCursor();5 c! f- Y+ C4 A6 j! r; x0 M
- : ~+ C+ e8 b- ~9 W, U4 Q
- }
; m g8 p6 J: g+ `& p0 n
- E4 g/ ~) N9 r$ Y% Z" F' @$ M1 \& D- catch(CDBException *e){
3 E+ s# H' P/ J' g - * _' U8 O9 x$ u+ P* w! F
- e->Delete();
' B5 B/ z E! [. ]* l0 o; [# B( y# y
8 h1 [" M2 h! p2 A- EndWaitCursor();, W) @- Q& C; R9 h( r2 y
- 6 X) f6 A( q8 F/ P, g# d
- return FALSE;
9 `1 z% K5 h) L% {. f# L& L
7 ^- [! A- i r Q: {- }! x( a: h$ v* [% q' X
- & |( [, I4 n4 r
- return TRUE;1 Z- _5 n+ |; g( e; b
2 {) [6 u Q. a$ d- }, Q5 |: ^ \$ e4 W( `" p
- ! R' s M# t- S/ y
-
. ~; y5 U7 Y7 q; b2 P# _
! `7 j0 E# g; j8 }" |6 H- void CDatabase_main::OnDestroy()! ?9 ~. Y- U U v; o% X2 b7 c
- - Q! T' R" d, [2 ~4 j
- {
3 t& {2 b& u; |% T+ O - ! ]3 ^; V9 m: a0 p3 g
- CDialog::OnDestroy();
4 ~. e; g2 C# F) S
- t4 {7 B# Q9 u9 p$ q; p, b- ) n; y f( u% {2 [2 n( y1 h$ G
- , s t7 `' e" `/ ^
- // TODO: Add your message handler code here
/ v% r# V4 ?7 P+ [+ m! o0 r1 J
: D# ]) |' o# C0 J- delete m_pset;
e7 D2 p( e# h$ b& E9 p6 ~" \1 {: v - 5 S+ l& r% ?: S$ e& {' N: J9 H
- delete m_pdatabase;
1 W5 N5 k0 K; s1 g$ Y/ g+ c
3 _: U6 y- u6 V" {! u+ B- }8 r% F% k& W4 z& h+ G1 h
- 0 t1 B) Z* R3 h$ c1 U0 }6 B
- extern CString str[8];$ U' @% a3 q5 d8 {' w( E* v6 b) b
8 @- L1 U; W0 S( g- void CDatabase_main::OnOK()3 o" c( W8 _+ E/ e2 K
- 4 O* ~. v0 J: R1 A+ m Q' T
- {
1 P* A' g4 G6 X% V1 c! e' t4 h4 R
3 [# \3 m/ v& v4 h0 }6 q m- // TODO: Add extra validation here
5 l) v$ C) s4 @+ D
$ F: U8 N; h8 N- r8 F8 V- }- UINT uSelectedCount=m_list_control.GetSelectedCount();
0 z$ c0 k8 R$ \" a7 v
" K& x! e/ d- c+ H- if(uSelectedCount>1||uSelectedCount==0)
N$ t" D+ k# O0 l: L0 Z2 R - * g/ E7 B8 P3 L
- {
" \6 {8 R& P* x \
& G* Y! Q* j8 t+ u5 z# x; U+ c- if(uSelectedCount==0)1 d* X& O) b* _& } u" U
; ]- b" [8 G0 _* D( l: }- {8 J) R7 Y+ `. t
) o( S: Y& |- l* J* R2 Y! Z$ t+ X* i- MessageBox("要选择一条参数!","提示",MB_ICONWARNING+MB_OK);5 f V/ x" a# q( t( V- `5 A0 E
5 n5 O: l6 z1 N+ Y; L% |- return;; k8 I0 L. ?, r% ]
- 5 k$ v, @9 m9 \+ q
- }2 _( U) Q4 E* F4 o' _2 L# S7 {8 B
~+ [+ ^ h' C( i) @1 O- if(uSelectedCount>1)0 X2 @* I, l. J2 j# R+ L1 Y H) f
- 2 K' ]% W0 b$ a8 [- y
- { 2 v# g6 O8 R; R, j& N4 a
- 9 R9 X: @/ f7 j2 h3 A |4 i# \. B
- MessageBox("只能选择一条参数!","提示",MB_ICONWARNING+MB_OK);
; z! j' @) `7 `& S6 D2 A2 \
8 O* G- J/ N1 `' t" }5 X+ @* K- return;
8 ?/ N- o! |3 o" l' y% h! ]
! O' _0 O7 K/ C* G% g1 y* S9 x- }, P$ Q( g: h5 ^! O! |
- 4 y2 e; `1 Q# _1 B
- }6 d6 o$ G/ l4 y/ ^& g
- # U( V; R: N$ V, E- ~. A) Y
- else7 ?0 G. p. d" \& L- q2 k8 J/ o+ `
- 1 s0 P( j3 G+ _/ e6 H' C9 ?) w
- { 9 M! f9 d M. m. u( j6 {4 O- }
- 3 p1 |" Z# c: v: k
- int nItemSel=0;9 {; P' q9 s+ B" ]) t
- ( M8 M; M- ^$ j, ^7 k4 f0 w6 c! R
- nItemSel=m_list_control.GetNextItem(nItemSel-1,LVNI_SELECTED);3 J7 ]; U! C4 P( X6 H
- 4 A2 b0 S5 L/ i7 {
- for(int j=0;j<nFieldCount;j++)- I" e: b( `/ d) |4 I# R5 r6 y# f
" ?0 o7 {7 U9 E" s- str[j]=m_list_control.GetItemText(nItemSel,j);
3 l O6 m1 h% B
* n& Q# a2 P; } V$ P- _9 Y8 g1 M" k- }
$ m, n. u6 w- [
+ ~# E) w3 \9 ?3 x- M" O( U+ ]- CDialog::OnOK();
8 J3 T6 [7 F; ~9 J" ?: C* B - . p8 C$ P4 u j% J2 p/ J8 N" d/ [& w0 k
- }) b0 z% c, o0 v7 a8 O
( s4 Z% m a/ C% _- 4 r2 @; a- _. G3 t
2 R6 D8 v# ^- c) q0 j* i-
/ m. F; p3 F* \* A - 7 ? e& I# i( s5 r
- 圆头直杆圆凸模的主程序:
/ O3 u0 B, R3 q9 A - ; e" J7 Z0 R' H5 k
-
7 ]0 w, a. o) }+ T: X( V$ } - 0 a9 ~# Q; c! D
- Database_main.cpp : implementation file% {, C) j( C6 D/ ~
) i5 M1 P* c+ X5 R* W, Z- #include "stdafx.h"
4 P6 k# m# F8 a( r2 E: y
& Q( b1 K/ [+ ^( D- #include "tumo_data.h"
: m6 P/ P9 V$ V) T/ D% \( s
5 j3 l9 d2 w8 m: k- #include "Database_main.h"( c' p% X, f0 x: B0 |
- ( }* w1 }) y" I6 O: {- l
- 7 K- z( }+ m# |' M2 P( B
. I. Y9 Z4 p' A b. j% e" V- #ifdef _DEBUG, D' x( h8 x5 Y+ k {5 c' C1 T
; m; v/ o) r2 ]+ K1 |7 ^- #define new DEBUG_NEW' }% i5 A0 |. U( o0 x7 w! X
( E/ N) M) I( f; N- #undef THIS_FILE5 }6 `2 H0 v1 v z# }& q: M4 O
+ |0 _& b, M/ {" V$ W* d. }- static char THIS_FILE[] = __FILE__;; `- X4 W9 g3 D# Z
3 \- Y7 z& Y1 q0 m8 B5 a- #endif
; K5 c) _+ c% l3 g" W+ [( s - ; q) K) U5 e* ^4 P: C. u4 U9 x) f
-
5 p! v' f4 A5 q i" b3 A - ' G, {7 ~. \. G
- // CDatabase_main dialog& _, s" G: o5 M: D8 K: {4 h
' o9 i, z: j7 e& s9 K) z9 d- CDatabase_main::CDatabase_main(CWnd* pParent /*=NULL*/)" E g8 ?- x' }8 q. g, w
- ( t* q: N2 ^" C: H6 d1 h# i H
- : CDialog(CDatabase_main::IDD, pParent)& D$ K' i8 p2 g, o- \
+ T0 j0 W# {+ [0 b- {
) n( R0 E/ @& m& X2 v, \! S - % e K: h: m: l( f9 ]" r* y
- //{{AFX_DATA_INIT(CDatabase_main)" X9 H9 E* Z6 D
- & Y' {# ? O) y, w8 p+ J, e
- // NOTE: the ClassWizard will add member initialization here6 l9 l0 C4 C, Y Q
( ~8 p$ g3 V! E; z1 H- //}}AFX_DATA_INIT
" s' J: R% M# q! I
$ |# _9 q6 Y X- }
3 [3 G5 |' j; k. ?
5 j# C; U0 R2 @# k1 I- void CDatabase_main::DoDataExchange(CDataExchange* pDX)3 }+ F- n- X. t( x/ ~3 {% ^
" R* P. }: C' f9 L$ c- {, Q! ~; m. b: \% H: A
- 9 J' a/ s+ r, h. C1 w# t
- CDialog::DoDataExchange(pDX); V, ?% ~, ^% O0 j J
& b4 x, g% N' \4 P+ l$ m+ Y- //{{AFX_DATA_MAP(CDatabase_main)4 D! `" d$ M& B% B) {; U
2 M/ _& {& a- N& x6 L& g- DDX_Control(pDX, IDC_LIST_PARA, m_list_control);
& } ?* M% n. [; X- i - ! e* e8 `5 V1 T; z" _# G# o
- //}}AFX_DATA_MAP
; M0 c h2 A8 B7 J3 V7 ~/ d) ` - . h. G# F& s, @. Q0 d" s h2 {
- }) w( ~2 N O5 }; ~5 h; ^
- 0 X2 ?! {! n# ^
- BEGIN_MESSAGE_MAP(CDatabase_main, CDialog)
8 r# ?5 ]' `: ], n6 r: l3 _
2 n; b; i9 F, U- //{{AFX_MSG_MAP(CDatabase_main)
0 }/ `+ T; e: k% W - ( c; \% h$ c3 I& e9 }4 f! C
- ON_WM_DESTROY()8 K' P+ B$ I$ N% j& I: R0 A
2 d1 J( ^% E" a! z1 |7 K+ I- //}}AFX_MSG_MAP9 w6 B8 }9 J$ C
9 R' S/ I8 ?7 X3 f5 g- END_MESSAGE_MAP()
( O. p. D! d# L! Z% b4 S! f9 h - ! j6 R$ B$ R) m- ~8 t* j, C4 {: _
- 7 @, w9 L( ]+ R3 c6 m2 j% v# o. a. Y
- 0 a" m" E% g) f2 m* d
- // CDatabase_main message handlers/ g3 w& z- h+ z; h
- ; [0 X5 ]& H9 p8 }1 J, x3 Q! B
- BOOL CDatabase_main::OnInitDialog()
2 y' ?) Q; f; ^ - % ? A7 L: r( ]
- {! I- B+ [+ \" x6 p7 Y
5 Z6 y+ t2 d' g9 U: q- CDialog::OnInitDialog();; s$ f5 r6 G; n8 G) t! z. X
- , @( u/ B# Q, `
- " x/ m. U; |, T7 \" l/ J: ^
- 3 T% B8 h4 E6 p7 P* ?
- // TODO: Add extra initialization here- e9 l, S- ]1 n% {6 w; P- O
; W/ ~3 G1 V6 Z- try{( ]/ E4 L8 {' }7 r% ~# u+ g
* H0 T+ o9 u" V$ s; s- m_pdatabase=new CDatabase();
7 L. a. o/ `1 W. `( q4 q' n+ r; K# b
/ X h3 ^9 Z$ s0 w+ [- m_pset=new CRecordset();
( u) `* Y; y6 ?4 Z2 x
3 q" y: C+ {" Q( `- N- m_pdatabase->Open(_T("data"),FALSE,FALSE,_T("ODBC;DSN=data"),FALSE);
5 Z, E* w7 W+ J6 N, ^: \ - 5 S+ f$ U7 D1 p! `0 P) @
- m_pset->m_pDatabase=m_pdatabase; 5 w& Q Q& S" e0 p& y+ x
- 1 V; R% W9 A( {- ^7 m
- }
; y* N/ k# G; B8 Q6 H3 @ - / k; B9 n$ b/ Z. P i
- catch(CDBException* e){
5 [, r; C1 B& A
3 h% c# _( g/ A1 J- e->ReportError();
/ j {1 P! @: A0 i" ?- r - , a C1 X: s) r
- e->Delete();
/ C4 ?$ T S. h# p" p# z
& v3 r* W3 n, r9 c- delete m_pset;6 i4 e! B; V' }9 H& `& i
- . @5 E( o; Z: X- Y& Q
- delete m_pdatabase;( t0 X$ \7 r, l& z& h$ [
) x( z. B0 Z# p% b# f- return TRUE;}
9 I9 g( h4 K9 F- R- [
1 H; x/ U) d% V7 K- DataShow("data1");
! z$ H' V0 T% @: ?3 F9 x, [ - / V% e8 A' x, U: L0 A
- return TRUE; // return TRUE unless you set the focus to a control, S5 [ a m; J2 O4 V& k8 u
- 7 V' k. m* t9 d7 w
- // EXCEPTION: OCX Property Pages should return FALSE1 d- H% C/ R4 ?3 C
# X2 c8 N; [+ d# V/ j0 [- }( B" g% B. ?5 M5 ~$ B; x
6 p8 I4 P; n/ l2 {! B- void CDatabase_main::ClearList()* W2 z+ B" U( n
+ B0 k% d8 @3 { V( d5 `. T- E- {: p2 N- F$ O$ j% \2 R" K
% ^6 J: _9 g& z5 h- y4 Q$ @- //m_list_control.SetExtendedStyle(LVS_EX_FULLROWSELECT);
. w" E) I" v0 K1 _2 K' C - . s6 P! t$ W$ ]
- //m_list_control.SetExtendedStyle(LVS_EX_GRIDLINES);
- Y( n' }) i$ B$ m; @) F/ ^% d
/ l' S5 O6 S! e% {- m_list_control.DeleteAllItems();
: k/ ]; D' n) P \8 g/ N - 8 v7 C9 a$ g! R9 R
- while(m_list_control.DeleteColumn(0));0 K9 S7 T8 o# j7 T g T. z
+ `6 V6 Q) O7 Z) z0 M0 b1 e2 }- UpdateWindow();
! N: A. E8 T5 L0 ~5 x* K( M4 w5 j( X - - v5 u |# U7 ~$ @$ t( H
- }
$ i+ ?. i. `7 Q, _) y* p# m - " y" p3 f) r' O2 w
- void CDatabase_main::DataShow(CString table_name)
7 R1 y& F% a5 p' l0 C' u/ X8 e; C, I
, e! o z* R) ]8 O) @- {5 D" H& t/ a A
- 0 s% u( |# d! @
- ClearList();+ U4 U0 [" e5 S
l, n3 ^( K5 f+ I( W5 o- CString strSQL;
& j: l5 W, J B- j7 } - & R) G! D6 x; s! N
- strSQL="select * from "+table_name;
* _1 ?, Z- }! L5 T8 [$ N5 n+ Q: k3 X
. w" K7 U l1 T* u! Y- ShowInformation(strSQL);4 d, ^1 s! \8 Q- F+ y
# u$ `( [* K) Q8 j4 K- }4 I: T( k- r( X: n( Y3 x
- # ]" L) [, ^1 H. M9 y. p* r
-
8 T+ n) x6 V& `8 i7 F - + ]: H8 J- q" p6 G+ |
- BOOL CDatabase_main::ShowInformation(CString strSQL)
, V" Z* S; O. t2 s% P) i - # v1 X* W: ~, S# j" U2 {
- {
- ^7 k) [" H& c% W" b* C
- f$ C; }' ]1 `- if(!m_pdatabase->IsOpen()) return FALSE;' C H! W, R& B
F. Z, ]5 P1 c) @- if(!m_pset) return FALSE;
% j' C4 \8 P9 |. b$ _; f0 K
$ z1 l* T# j! d# H+ G! R5 k/ X- try{
% Y" M2 [4 D) R* z2 H - 4 e5 A3 o6 i2 k' o9 V
- BeginWaitCursor();, `2 P+ O. |6 i6 ]# s/ l
- & W1 S; E1 E: m1 q0 m
- if(m_pset->IsOpen()) m_pset->Close();, L) @1 p" D$ i7 c/ C( \
, w4 k I. A b! B8 V5 d: N- m_pset->Open(CRecordset::dynaset,strSQL);
1 _/ W& R; r* P
- Z2 f8 h/ _4 ]$ S2 o) t- if(!m_pset->IsEOF())3 L- {3 }! M* q I! K4 d; ^
3 H& a) d3 Y5 x' a- {m_pset->MoveLast();3 s' ~0 O( L: b. t' \7 |" w
- % h# A' b/ c5 e. d* ~/ L4 p
- m_pset->MoveFirst();}' y4 E& L- w& |% V& Q# M
* [/ H1 x3 h1 m7 z. L- nFieldCount=m_pset->GetODBCFieldCount();
& S- e% A1 m" B - - c/ T' K) H+ j; i! K! F
- CODBCFieldInfo fieldinfo;
+ j/ U: f8 b: Q1 K8 |
- q9 @6 Q7 a8 \* r3 u- for(int n=0;n<nFieldCount;n++){* a' B& k# X! \7 K9 @, |
- ' D) G0 U4 k: t1 b" N1 W# v
- m_pset->GetODBCFieldInfo(n,fieldinfo);+ o; s# X7 t% G* Y
- . S( |% v; d/ G( ?/ o
- int nWidth=m_list_control.GetStringWidth(fieldinfo.m_strName)+35;
4 o8 p% f/ z& C9 O - # f" g( D3 O Z2 N c0 x: f
- m_list_control.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);
! C2 ?/ |- @# G, U' K - + J6 R4 N& g: N8 \' ~
- }4 a; x. U# A( ?1 c* F
- & H3 Q3 j9 H! O$ y, A" W$ ]% A+ S9 K
- CString strValue;$ z8 A1 H4 G# d7 R% j8 R. y
- - i3 P, ~/ I; t4 C# e" ]
- m_pset->MoveFirst();/ m+ b7 z, B- p8 h7 L+ {
, U# v8 {+ y2 a6 P; L- int nCount=0;
/ ?/ |8 [4 a9 w - * O* t5 ?, x$ |/ V6 c/ x' c
- while(!m_pset->IsEOF()){- |+ \/ A. m0 b! N9 }4 }
- 9 C$ w8 h4 l2 \$ ?+ e) y( I8 X. k/ P
- m_list_control.InsertItem(nCount,strValue);
- r" C$ |" ?/ j4 y* z
+ E, O0 ]8 S) u* E- for(int j=0;j<nFieldCount;j++){
& l, P& N# c7 U. c. S2 \2 z% I& K
1 {4 R! k! b( h- m_pset->GetFieldValue(j,strValue);2 W3 Q. c5 A3 ~7 w
5 t! g3 L. f" h6 ?- m_list_control.SetItemText(nCount,j,strValue);
6 R' y5 c0 a& K$ {$ s, ^
( z. {5 y7 @( u5 i- }
" U+ p% M3 g8 Y9 h! |* ?" M ^# M - 8 l$ @- d. |. D3 L' l& n& [
- m_pset->MoveNext();; O; ~2 I) w2 K: G
4 {( M! n) z o! K9 q$ G2 L- nCount++;
; R. I: L2 k: ^0 |' K/ \8 X - ' f7 M! S; Q, F
- }6 d+ m v7 [, T( y3 l% n
- 1 l4 I, ~" e$ s- `, O; k
- EndWaitCursor();
: z* U b/ z% ^( ]8 p4 d" ^( Z& f& z
, I7 Y, S0 [ B9 l6 J- }( I, c5 @7 G) \4 w1 |& z
3 N' }2 i1 k* [* ] s9 k- catch(CDBException *e){' m2 ]; v4 ^6 O$ A
- 3 D, w9 _% F' j) D% v% Z
- e->Delete();
8 b$ `# a$ E+ V( x- H' |
1 Y P$ y& [: C* o$ S* L7 Q- EndWaitCursor();
; R: R+ {/ T. V; t$ s
' u% q& K) m3 O0 j1 S/ {/ k8 U- return FALSE;
1 a6 R7 @+ w- H& G" g. ? - + D- f4 p, p: Y
- }- b. J1 Y5 A) C6 Y
- 3 u1 Q2 B2 v" m. \6 n Y1 K/ c4 J
- return TRUE;
% I M% c8 R& F6 V - - ^: ]) `! z9 c! _* v- m$ {
- }, H( I& r& u5 B8 E: c9 D
- 9 D& _" V A" g+ b8 W! T0 m' G
-
/ j9 f u4 @+ E
# e; R7 k1 | I+ }( i5 x0 L1 ~- K9 c0 J- void CDatabase_main::OnDestroy()
2 q" R5 U, | r - & a2 r) v2 E1 Z
- {( o3 z4 q! ~! }
# M9 Y; C7 t5 o2 m- CDialog::OnDestroy();
. S6 S- B4 {: k9 P1 f8 |
$ ?2 g7 l2 T, Z+ H1 |. T2 L/ Q- 9 j, }$ w0 b" a
: Z; {3 \& g C% \. j! C. B- // TODO: Add your message handler code here# e# }7 i- @9 L2 a
- % F4 q e9 Z' c
- delete m_pset;
1 a! @# D' }% V7 C$ T - * f, p+ z- B' X
- delete m_pdatabase;2 c M+ T( y/ \4 N) d
- 6 o# h; D5 I' \. a
- }
3 l# H; @" f; c; N/ n8 C - ; w" {% A( {3 ~) `
- 0 x I6 R3 @7 o8 ^( m" G
B- K9 ~6 ^; `$ U- extern CString str[6];4 i3 \; t5 q& n& J: G+ I; Y
- # q/ H4 L# }' ~% n
- void CDatabase_main::OnOK()
5 e- n+ g! k, p6 v$ c
- V4 A5 L) k# g7 y- { q" T, E ?* P+ U. V
- . p) X/ P# l9 i8 Y
- // TODO: Add extra validation here/ R0 j* G) p& F
( G. B: f7 L# \* X+ x& s- UINT uSelectedCount=m_list_control.GetSelectedCount();
; p6 @( ^9 _$ l; G) V - 2 D! i- n9 @/ Z% b7 c
- if(uSelectedCount>1||uSelectedCount==0)& D/ F2 J) G7 o* b9 Q- g
; E8 e" @) ]3 |& M& m- {
/ ?9 j+ j3 Q; T+ j/ I - & t6 T& S* W" Y
- if(uSelectedCount==0) ^6 d- ?/ p8 s
+ Q, ?" k( ^! v' ]& @' b( O- {
1 R! X7 l5 Y j, _7 X$ g/ y
% \% e# Y% X5 r x/ T/ v- U- MessageBox("要选择一条参数!","提示",MB_ICONWARNING+MB_OK);6 @0 `7 T ~2 G( r( D7 z l+ S7 D7 Y
+ V1 u8 E2 o- |. z2 \- return;
5 q8 t7 n3 m) [- @6 U# i( a4 [
$ C r- b% l( b) a- }% l) }/ I/ ]$ m/ \/ D& q; S W8 B
- ' m* [7 k6 Q @, ?
- if(uSelectedCount>1)
: t- h* x( t( ^6 O- s5 K8 ]3 E6 E
+ ? D% j& O% m) ~% U- { # F1 z3 x, P' y. x+ C
- 3 c7 P$ M- Y) k% J$ C
- MessageBox("只能选择一条参数!","提示",MB_ICONWARNING+MB_OK);) y1 T) X% N$ C* a( ^: @; }
- ) _5 i9 N* p2 W$ j* j Q! W) _, R
- return;4 n9 L: b7 @# \
5 R" c/ D3 {# o+ O- }
( A: l& N$ l1 d6 M# ]7 d9 J* K% s
# c" R' Y3 ?" _ t( Q5 ]- }
: y4 H" R- ]9 l7 h - 0 s. ]( ~: x, k. Y8 J$ C
- else
, |7 @& U4 o% i5 }) R8 W - * j5 [/ _% s: h7 p; E# k3 L
- {
+ m. i& C6 s2 b5 P
6 W+ U2 i4 j' I$ c! `, X- int nItemSel=0;+ B. a5 ^3 |6 b( o' N( S1 _( {
! C' K8 K4 |5 t* N- nItemSel=m_list_control.GetNextItem(nItemSel-1,LVNI_SELECTED);1 }' J' V1 J3 v2 A; Y- S
& g0 D' G2 R @" k- for(int j=0;j<nFieldCount;j++)! l& f) y% S6 q3 Q1 {" |
! Q+ V1 n f% Q8 p5 s. r! s* x- str[j]=m_list_control.GetItemText(nItemSel,j);( s {0 `& J! Z8 `+ J
9 L, a: v8 e3 s) \$ h* {/ G0 f- }' h" |# ^. ?- N6 v
8 |7 ^3 k3 u' @( K! \6 X! J- CDialog::OnOK();
& c7 ~7 I2 c0 C5 |
9 y/ k8 `& K6 V- }
& r+ c) c1 u; O P3 y( [& m' z
4 l4 M5 x5 g, N( _8 {- 0 ]8 }, H! b" a3 N% R) ]# w9 n
4 ]8 E$ n' B( g" c" v; F1 P- 1 T% j6 d( p2 o
- 5 t% J, S$ x% O
- 9 d" F& x5 f$ p, n0 D6 j. B
- 3 S3 k' c) q. |3 G- A
- 花键轴数据库的连接程序app.cpp5 x( v- v8 Y+ }: f
- + S; B* P! J9 o" u
-
9 \/ ` {4 `: ^6 @5 I% ~
; w8 k' E& Y- K' g' d9 B- #include <stdio.h>
: |& N$ h6 M6 p! K$ E
- ~2 L" V( T( I% S5 i- d- #include <uf.h>
- o$ k; T( I; D: @# Y8 O; q: h - 3 K9 {4 @6 `$ X
- #include <uf_defs.h>
% B) t, a5 r: j5 f# T$ i" e) q
- h! A2 Z g" r& M" H9 n6 X6 [- #include <uf_exit.h>
0 z$ m/ Q" y% |1 D+ p - 5 e7 [! ^$ n8 c; E$ A" g/ k
- #include <uf_ui.h>
/ D9 p9 h. f, ?: Z - 4 ]3 w# F8 _- p! b1 M* l1 }
- #include <uf_styler.h>
6 ?" Q+ ?6 U& S) f% e( O - $ S# a8 k `: h9 P# @- n& y6 }
- #include <uf_mb.h>
' l: U$ \" L9 S# I/ h, g7 H - 4 d, R, p7 _ @$ \( Q
- #include <stdlib.h>% d$ ? O) z/ ~0 V! [8 L* P. l% u
- : T. B' k+ V8 @' B3 Y, \/ Y
- #include <uf_modl_expressions.h>
1 B) F( |% f# x9 ?! T
# f* E7 U, S$ I. D- #include <uf_part.h>; _% `# l+ g. Z2 q w2 c
. K- d4 K# v$ k- #include <uf_modl.h>
0 |$ p) }% A0 o9 f' T, z
, P$ F6 ]( u* P, [4 |5 p- #include <uf_assem.h>! H" O" i1 @1 x8 e" o; d7 J
- ) d/ Y' p) S8 B/ M+ g3 U3 L
- #include <math.h>3 |* K# K' i D- N$ N* c8 |! x# g
$ x# D1 M, R8 W+ i `" \" i- #include "app.h"
0 i7 j- d2 V# g9 r: e) y - " d2 k3 D; ~, P/ f
- /* The following definition defines the number of callback entries */
5 R' B$ a: R, }9 k; s3 U# h. C
' n, i9 l. ~1 }# C$ j- _& I7 i- /* in the callback structure: */
- Y1 M2 a$ ]! w! y% l) Y6 U( E - 2 x: ~( z# T) k9 a
- /* UF_STYLER_callback_info_t APP_cbs */
& k, N' D2 h$ T) D3 ^% N$ K
4 ~% o; n0 x: ?, q5 Q# _% @- #define APP_CB_COUNT ( 6 + 1 ) /* Add 1 for the terminator */$ N9 z B& s8 k) N
* S! ?# z( g: A% Y* C, w6 S' \- i! f- extern "C" DllExport bool para_database_func(void *str_mid);
q! i! i& s& a/ i8 t7 w- z - 9 ~* Z: n+ o1 a5 P" w8 F9 q# F
- UF_STYLER_item_value_type_t data[7];
) Z* p. [( g4 U# [; A) J" C% b
0 [" w) E8 d1 ~/ M. e) w6 [' F- static UF_STYLER_callback_info_t APP_cbs[APP_CB_COUNT] =, u7 P6 O/ W* s8 f; t) ?
- a9 ]0 K; D; R4 s3 `- {
* t# j& q( ^; O) W- C8 f& Y - 3 A* v- r' r& Z
- {UF_STYLER_DIALOG_INDEX, UF_STYLER_CONSTRUCTOR_CB , 0, APP_constructor_cb},
( t8 I I" B+ Q3 d - 4 c$ R$ X4 k' m5 R" c
- {UF_STYLER_DIALOG_INDEX, UF_STYLER_DESTRUCTOR_CB , 0, APP_destructor_cb},
8 a7 W# e" B* M+ w, B; p. k' J
. H+ P4 x [5 T P* D6 f- {UF_STYLER_DIALOG_INDEX, UF_STYLER_OK_CB , 0, APP_ok_cb},4 N8 u3 a" `7 }
- * R6 Y# g% |" Y% ~
- {UF_STYLER_DIALOG_INDEX, UF_STYLER_APPLY_CB , 0, APP_apply_cb},4 B4 w `# @. I. [8 e7 c1 X
: `7 c+ C: f% T' Q" |! X$ U6 N' T- {UF_STYLER_DIALOG_INDEX, UF_STYLER_CANCEL_CB , 0, APP_cancel_cb},
. ~! g( | H5 G1 ~" C
8 \/ ?# K$ l' ]5 f0 V* A) d J3 e- {APP_ACTION_DATA , UF_STYLER_ACTIVATE_CB , 0, APP_action_database},6 C" F; F/ C1 |% p& X1 m e% t% t8 l
0 o- k3 E' v6 O5 \2 w- {UF_STYLER_NULL_OBJECT, UF_STYLER_NO_CB, 0, 0 }
+ b5 _, S$ S/ S1 J' ~' `2 T
) |0 C" Q( [ {5 d3 |2 ~- };; V) j( B3 h/ O% i- v
- - u5 i( }3 S+ C3 s. J- u
- * R+ f2 s- v) m4 U* Z+ a1 K( G; n. D5 t
- + N, A# C- R" ~2 q* n, t0 Y
- static UF_MB_styler_actions_t actions[] = {
. q1 P6 {7 L1 h. S6 @
+ [& }8 O" a( ^- F- l- { "app.dlg", NULL, APP_cbs, UF_MB_STYLER_IS_NOT_TOP },8 ? u8 a* s, Z! b& X/ u
! X+ C- z3 j2 O3 H% z2 Q- { NULL, NULL, NULL, 0 } /* This is a NULL terminated list */; E8 J6 b, y, B$ \
3 p# `* K3 Y P7 M3 r3 E" b- };
. B2 G5 e( O" T. S/ M - 1 t4 b( u7 c& J5 n' o
- //#ifdef MENUBAR_COMMENTED_OUT
0 |% S/ J- }$ Q+ r0 J% S) Y3 w$ n - ; Z7 ?8 j O" D: @$ [8 D
- extern void ufsta (char *param, int *retcode, int rlen)
0 G g/ \. ^7 k) {+ L1 E - . t8 `7 {( \0 i4 H
- {" a8 g% Y# ?, z ]
- . g% A, v1 g) e% _ W! d3 I, u
- int error_code;
4 s! m' C; b( ~0 d. D8 Q
' {9 `0 l- ~) q6 ]) X- 8 ~3 @ g- F! j3 j/ ~
" M% `+ ]( G/ B% ~" ~7 H- if ( (UF_initialize()) != 0)$ X1 y/ ?& f* U( t) e. u
5 b) R2 p9 w3 \; i0 [! h& f6 b- return;3 I2 C5 C" |' l9 Z/ r) l
# ?. k3 ?/ v) ~8 x$ L$ F- 7 Q% g% f' t. {( c/ U
- 1 A. w# ^) ^; s: g
- if ( (error_code = UF_MB_add_styler_actions ( actions ) ) != 0 )6 X7 d% q% X+ R5 C5 }
- : M; O% o" m: N9 i" W6 Q- m
- {& [7 U" A+ {6 r4 k+ d* M
7 o# O( V9 H# Z* W- char fail_message[133];! r% P) j: ~, O2 G+ J% z
- ; }. a7 T; w' _; A3 z
-
K# t3 J. ^2 ^! q& r# S* X
4 o* [( s1 H1 e6 u( a, a- UF_get_fail_message(error_code, fail_message);3 l% q% n8 v' a' Q9 C
5 d' j% n8 e1 R0 C7 Z8 w: E8 K- printf ( "%s\n", fail_message );) Q' L4 ?! q- o
( v1 Z; K% T& r j3 c5 f- }/ @$ ]2 T# i* a
0 \8 S; g( b+ P6 J* I-
) e. I" R1 B# A, A - + ^" N- x. V* O
- UF_terminate();
' g7 ]; `% {! K* l- I! T - + B, P/ X; Y! b) d
- return;( L, n7 X4 Q# M0 v& S
- ) ~2 I$ s1 m/ E5 u
- }
+ f- T1 r9 s% `1 o/ K
$ ?6 X( O) s* [- //#endif /*MENUBAR_COMMENTED_OUT*/
5 W/ T$ D d* R9 z) U' A - 6 M' f7 {( c n. l
- ; c: U# R0 R7 f. b
4 z% }* M3 I9 L6 l% L- #ifdef DISPLAY_FROM_CALLBACK( f! |6 z! M" ^6 i+ p3 P+ |' f
- w! ?. M7 G5 d+ n* X6 G
- extern int <enter the name of your function> ( int *response )
/ G! s% ?1 f" o( l4 ~( ^; k5 |
Q1 M8 J6 `# ~5 r! i- {
0 @. S& }5 Z) h& e9 L6 c - 4 x& j6 v8 q" F) |' ^ k$ j
- int error_code = 0;
" [. K' h3 u1 k' o' J1 O - # B9 ]; ~- e+ U! v
-
1 T4 {! r1 \# J7 T8 _+ H( i
9 d* A2 c5 F& v+ g( Z- k4 F$ z- if ( ( error_code = UF_initialize() ) != 0 )/ u) v1 {9 n& f# h) y
; E* x7 u8 N H3 T7 \# L x- return (0) ;
+ T! W% M3 B. F/ z; L
# F8 }4 E: \, l# Z6 g; l-
$ D& r2 h# b, q9 z4 E - 3 U m4 b( S1 t: p- G. r$ S7 r
- if ( ( error_code = UF_STYLER_create_dialog ( "app.dlg",
4 e9 `, [! y8 _9 p
( n; d% a0 G) I2 {9 K- APP_cbs, /* Callbacks from dialog */
7 m* h {; t% }9 r7 I
' m, ]* U) R; |, _' P# O! j f- APP_CB_COUNT, /* number of callbacks*/
9 B/ z( y' p! E+ g% X* Q4 X
' c" Z; z; b# F& c2 a o- NULL, /* This is your client data */# P2 I* z @) @! P
- 7 V# v% H+ k; Q2 ^, [6 n
- response ) ) != 0 )# q+ s6 r* t, r. }3 H; _& a4 |! H
- 0 K5 U0 s' [% [, b3 I1 J
- {
) G$ p0 a- V+ z1 W
4 S: `8 ?+ J2 Q; U. n5 n8 C$ }- char fail_message[133];; s4 ]% y1 X& n2 \0 R3 K. ]- w
- % r; ]5 Y4 c3 A7 [
-
7 V" A K6 }% m( u - ! L$ l( |, Q- u2 s5 f& A
- /* Get the user function fail message based on the fail code.*/
6 p! j6 A( E) h2 g
G/ ^1 A c; s- UF_get_fail_message(error_code, fail_message);
2 H% R. W y9 X' G. b' J! R - ! P D; D) C' J6 t; I
- UF_UI_set_status (fail_message);! e v1 l& ~$ Y" \) x; n
- % L6 A6 _% N2 Z/ I9 V
- printf ( "%s\n", fail_message );4 q! S/ ~$ n; \3 x; a6 Q; L& y
- 1 ?& c/ j$ f% {
- }! Q! ]+ ~% Q5 \) L& P+ O; l
- - d& d( q" m; I2 d
-
- h! c& X: v4 O+ d- q7 h - 3 i: |/ e3 Z" J# S5 Z( a; X7 ?/ b, [9 G. V
-
" E" Q; r$ n6 |4 a3 V
: @" q) G7 s: @3 m/ N- UF_terminate(); ' K3 T$ N9 Y; [0 }
7 ] l, f* ~; ^- return (error_code);
. e7 \% o2 [( g1 e& v- ^
# K- f0 {. H8 q1 C2 e" r( D- }% ~# |2 f* }7 k% b- D/ P& }6 I
6 b& n+ m0 N+ c& }" J- #endif /* DISPLAY_FROM_CALLBACK */; s- f1 C& W$ \; [# g" N
8 h' K: z- F! Z1 x# y9 j- H- #ifdef DISPLAY_FROM_USER_EXIT5 F+ R) H- |; t
. Q5 p, k% |+ F, \- l- extern void <enter a valid user exit here> (char *param, int *retcode, int rlen)1 X5 r% }- M2 T Y8 Y* ^; H
& `7 a. i: Q* g- {
% {0 @9 H% V& O$ B8 a ? - ) J6 q) o* u# s2 P2 k: f) C2 u! N0 c
- int response = 0;
9 L3 w# Q+ y/ ]3 O) b$ U0 n
& l- v# T- i; q* ^4 F9 c- int error_code = 0;* n5 [5 z% _( q$ g' z6 Y
- 1 d+ X' C' ?# r. j% @7 x- N5 Q
- 2 p- ~; F0 }4 u, L% t, U" z# S
4 Y9 E# u4 \) |" x- if ( ( UF_initialize() ) != 0 ) W# M5 Y- x& o: K5 f3 m1 t
- ) C6 z1 y* T8 l7 |9 U
- return;
- D! i& N, Q* O0 D9 x
0 }6 F5 L/ B9 b: Q: s-
4 N, z8 ^8 U& H+ Y/ o7 o/ C. a& I
1 B- f( I6 b2 g& j6 N0 `- if ( ( error_code = UF_STYLER_create_dialog ( "app.dlg",
. j5 a4 k. |$ {* c
- `. q9 ?1 r! N% R, u- APP_cbs, /* Callbacks from dialog */
, M2 A M3 H* p$ m
6 ^- ^0 j) F7 [% b) Q6 t- APP_CB_COUNT, /* number of callbacks*/7 S \( Q" E* U1 J
9 Z0 z8 d7 k/ U+ S' |- NULL, /* This is your client data */" [. W" ?" ~8 K$ M) ?
- " D* q5 _, W5 f. l/ O
- &response ) ) != 0 )1 j; H6 G8 A! z1 W1 |
# V, j2 G: Z( }. K9 f+ ^( l- {
3 f" r0 S5 ~! `' l4 h
" w( l, \+ n3 R' T- char fail_message[133];
* R" h: {- n- h/ Q# C' l! W! x - 9 j- W3 V: b) N( _ s* R
-
" ~2 b7 c, E$ a& Y! `# `
: W/ j. T# F; t: C1 Q$ S" |- /* Get the user function fail message based on the fail code.*/- _$ }8 y4 w9 E& Z7 D+ f
0 W/ B) q3 d/ |) v! S- UF_get_fail_message(error_code, fail_message);/ O. X' x. r& h4 ]8 e7 \2 m% l' b
5 z3 {) j% V* L7 m# Y" K- UF_UI_set_status (fail_message);
! `6 `5 t% N3 ?' R3 q4 g - 8 e& ?1 w8 L* V$ D( \2 J
- printf ( "%s\n", fail_message );& y- z4 V- ]: F( V; O; G8 T9 Q1 K
- * _/ @# m9 w0 B) ~: F' s
- }
' a$ _* F0 T2 S9 E- x. p
/ Q, @& H5 B. U8 Z% L8 z-
. \9 J E( X* g3 i% h - % _! n: n. j2 q3 O% ~" C
-
+ k) H1 G' `7 M4 f) Q
. l' _) g& n" M6 |7 n4 h- UF_terminate();
1 w4 C; y- G4 e) j" X w7 G - 4 F+ ?+ C2 U; U* R( G& x, V+ a
- return;" G: z9 F# a6 \! ?$ R% |( }. ]9 g
- 0 `& }' e+ P4 {& y( X
- }
& L8 c( V7 @. `- q% |
J* [4 D# l5 O8 q6 U-
# r7 L! P$ m0 s2 @) }4 U. Q* S
" X# P$ A7 m* |9 k% L+ r$ E- [- extern int ufusr_ask_unload (void)8 H) z. F9 F! _1 ^. J5 \8 E$ `
3 b5 a, I5 k- k- {
. u' v8 x W$ W1 n( G$ i - 2 Q# @) {8 @1 H# d. L6 a2 ]$ C
- /* unload immediately after application exits*/6 M. v Z# M0 _: z0 b' Q2 r* ]9 i
8 d- Z F; a# \( m! L5 p- return ( UF_UNLOAD_IMMEDIATELY );
4 {! A$ d( G; t8 s, J - 5 N G# \; x5 g
- + C8 z$ M; L4 y0 z
- , U" |. n4 ?% O9 N, D8 A
- /*via the unload selection dialog... */
2 f1 Z, i- [' y' o" D- t
8 c: ^5 t& b; O7 o/ b1 c+ Y- /*return ( UF_UNLOAD_SEL_DIALOG ); */
8 Y! G5 b% I+ ^& c# _* J5 B9 T - ) Q, ? R F7 g2 v
- /*when UG terminates... */2 Q( G% n/ }* }1 U( ]
- 0 G8 o) [, p" W x/ q, S4 _0 m
- /*return ( UF_UNLOAD_UG_TERMINATE ); */; i% J# O/ e0 b0 R* ^: B
- * E @: t1 ]# f. d
- }
7 t7 z0 v& a' u" C3 \; [; m" ? - ( e7 t8 i" B' M! Y
- extern void ufusr_cleanup (void)% p% l# r, o, J5 K- ~ z/ R1 q
- . Q/ Y+ W/ c# D
- {' {1 ]3 `) Y T( \8 o) t
, `# W$ U [* W5 Q8 s0 ~- return;; P; n9 ~" M; R1 ]( O
& n& r0 ]# w0 E- }, t# W7 g( @# ^, h) M; I2 q% v
- 5 [/ n9 {! [1 e* W4 V
- #endif /* DISPLAY_FROM_USER_EXIT */; \! f+ A( Z+ z6 P8 i- j
) Y1 ]2 O) S) [, j* n5 @2 i+ V- int APP_constructor_cb ( int dialog_id,
- b' m# B: Y6 y* h: n
& c6 m8 `) a" s7 A- void * client_data,; g2 B( l6 s7 |& H" {/ |
" o7 N8 o0 i$ U# _- UF_STYLER_item_value_type_p_t callback_data)
/ Z/ ?5 S7 y; K+ _; ~ - , w% w! \- w G; p9 y* }
- {
+ o5 P; ]6 e& H' N/ D
" \9 }# R* t. b: ~& C- if ( UF_initialize() != 0)
9 c" Z* p3 Q2 y; u5 D% P! j - . m! ?7 v' s1 U4 T# t+ @" ?
- return ( UF_UI_CB_CONTINUE_DIALOG );) a% g& B3 q' U
- 2 E a4 `7 V6 k$ V8 F% v* z. n5 N8 j
- 3 W" v" Y; ^: {/ }. A
3 V; X% k C( G; ^-
; T( j4 n8 B! x- Q
U- U( O* R2 ]' l$ ]- UF_terminate ();0 ?! I( {6 z1 ^
- & I- B$ B0 Q! _- d/ d4 C0 B
-
! S, W0 Y& X/ O M* O5 v
( D* L, ~3 j3 s; |$ O) K6 [& }" }- /* Callback acknowledged, do not terminate dialog */
2 ?1 ~: E- a$ B
) j6 E0 H0 A; ]% W: @- return (UF_UI_CB_CONTINUE_DIALOG);
% H9 p; h# o1 e: f - 3 ^8 `1 m! S$ v) r
- /* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */
! p: \& s' A5 T - 6 m O' K- l! X# U
- /* for this callback type. You must continue dialog construction.*/
: B6 |( x' u8 P$ H& h- \$ {* z - 3 r% p) \; y0 J8 i/ T
-
3 F8 G3 x' B, J* C1 f
1 W$ R; w5 ?8 K/ L- }
; r4 @, p) D. L; P7 I% S
; G$ y6 L2 ^3 M- I+ f& r4 r b$ Q$ F: ~- 6 ~( c5 b8 [9 [4 b8 [ G; J
- * X2 V4 J" x* B5 P" P6 ?% I
-
- ]+ P8 ?6 T- d- a0 ~( Z& P& y - ; j# t. L9 }5 W& Z T- i" d
- /*1 |8 Y, D4 [ H& b4 T' d
7 C2 x/ Y) e* ?% J, i- int APP_destructor_cb ( int dialog_id,
6 G n1 ?9 o# V v3 r9 c W
6 ~: M; a# A4 f2 R- void * client_data,
6 a8 q2 n- t: G; k6 x; w
1 w7 q( W5 q; x! `' V2 E7 T/ h- UF_STYLER_item_value_type_p_t callback_data)
( m+ d6 p7 D! y+ a6 C7 `+ f( h
* u2 Y1 Q6 X1 r" A( i" ^, A5 ~: ^- {' A! G7 s" G6 D" u; _
- O) s) l0 s6 U1 I3 u- /* Make sure User Function is available. */
8 c- T% ~$ o5 f4 M ?& i3 x
* {# N( {0 H6 ~# b5 ]& o) u- if ( UF_initialize() != 0)
" b2 p) C: G& y! a a7 A- q. p; i( Z/ { - 5 \3 D/ V6 b) _" |
- return ( UF_UI_CB_CONTINUE_DIALOG );, w2 |$ T% _2 C& p _1 }1 R
* x( z6 G: m0 |2 t+ v. Y7 L-
& S1 D. \' Q) v7 P - ' U! p& C+ i+ ^6 _; T' k
- /* ---- Enter your callback code here ----- */* ]: w: }) g6 s- y, n
# R, N* L2 G+ x0 C% ~- ) {8 m0 N8 W+ L( l& P+ J5 K9 N$ T
- & W4 D9 E# W- @5 Q2 v- w
- UF_terminate ();
. I/ i6 q9 Q1 w; L/ [$ ]
* u# J w( v, }, z; \% z- ( @' F7 z, f$ g- T- y0 d% h
: x0 a0 j0 e) S7 [- /* Callback acknowledged, do not terminate dialog. */7 Z* e! x8 x! X T/ I* q
- 9 }$ i4 {! `0 Y9 [
- /* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */
8 |% k1 [- v m9 ?7 A - `* M& V1 o! v2 ~6 ~/ B W" b$ b8 E
- /* for this callback type. You must continue dialog destruction*/: y, r/ Q% G4 V8 d& {" }0 ~
" U; m r4 n& f) w- {4 }- return (UF_UI_CB_CONTINUE_DIALOG);) v1 U- P2 @4 J5 Q- V
- ( w; ?. J' m, h% {4 v; j
-
* I( |; X1 R' S |7 s! ] A - 0 h1 c8 T* P9 f- J: s
- }
( E2 {" U* c9 M. C0 } - % a, }, J; A" H
-
: T6 z" Y7 ~; r6 d# J - 7 P8 G1 {; z7 Z! v$ z
-
4 H7 p# _9 T: F
t$ D7 F6 t, U' v- int APP_ok_cb ( int dialog_id,
5 R' U, z3 E' ?2 \1 }3 P) ^2 x - : o }( e. a8 o3 L4 X
- void * client_data,
6 i0 r9 v& _ U5 {" T* C0 ^
/ P% j) Q6 W1 X& H0 e* K2 c- UF_STYLER_item_value_type_p_t callback_data). t5 G6 b. |& i
- : f" e; u+ ^: }4 j: L* Z
- {" Q6 f) W0 {* _; P- O+ u
, C9 u2 X( t0 k: w- /* Make sure User Function is available. */
9 b! q9 Z* l$ e2 K0 P A - % z0 t0 H- N; m9 }4 m6 H# Y; Y
- if ( UF_initialize() != 0)7 H/ t7 W: m4 m5 y! y( x3 g
- B* Q4 v Q6 r. @- return ( UF_UI_CB_CONTINUE_DIALOG );# g9 a" o0 P1 n1 o: ]- t( `- W; F+ f
8 H/ u4 \7 f( ~: [- @! c-
4 m9 [: v+ u9 f9 d. I7 B" v) p
7 ~# E& h; o4 Y- /* ---- Enter your callback code here ----- */; \; G2 @" |! S1 l# K- D: x
) e* V3 s8 d1 y-
) c6 L4 L, \; b2 g8 p - 7 e/ t' ]" o1 }3 {" L s
- int i;
1 D- _! i7 u0 y/ D/ f. x6 G
( R# u ^) j3 p- write_para(dialog_id);
/ n; M8 h" V0 S$ [
; k3 I8 T6 E0 ?+ F/ T- const char env[255]="UGII_USER_DIR";
' N- W x- k: |) z0 \8 Z0 E7 g - ) C* A; v3 J' b& ?1 U% t
- char *basedir=NULL;
0 [- `7 {6 H+ x& X6 `9 _3 I; o; o1 \ - 1 k- g; s. J m4 }% }2 u# |4 p$ m
- basedir=getenv(env);/ I" {! l5 R& r8 c- W+ D* J
+ Y* N+ l& X: q5 y6 U- ' v. B* i$ ~; k W
3 `% ^8 k- y* @2 ?7 R* j7 z: S- char dir[100];. J8 T l1 Y5 ]; J- N _2 F$ C
. q' T; i x7 b) {- strcpy(dir,basedir);: H+ R' b& G" j6 Q0 y& b& i( C0 B
- 2 Q2 ^0 p7 Q# {$ F; x
- strcat(dir,"\\grip\\huajianzhou.grx");
) L7 Z4 P( Q) r4 @1 j0 n
% e/ t4 r& u# h$ o2 ?& q-
8 v6 Y- Q2 L1 C8 ~* O6 K/ H0 P - , j9 Y; h* s( o; X( J
- char *grip_exe=dir;
, A% O# z- k; ~& L! L
' S, x/ Y, h) j7 f- int status;2 L% R* U k3 g0 `9 ]0 N$ e& o
9 d7 `7 G$ z! ?. S0 a# H$ P- int grip_arg_count=7; //参数个数& H" \: l- L# x/ _: E
- 2 u9 a. @& G( v/ B
- UF_args_t grip_arg_list[7];' x( I6 I6 N& h4 R
- / i* b) ?4 j( m9 o2 }8 Z- N+ q
- & t4 ?# |! ~# Q) W/ g8 c
7 D+ S: {$ ] k9 t4 [- grip_arg_list[0].type=UF_TYPE_DOUBLE;
3 y0 G) Q q2 `7 [5 x- P, P - " V! J+ Q: ?& e% y% ]! _4 J" ?
- grip_arg_list[0].length=0;
" h r, n" }7 w: ]6 o% N% U1 k
6 s u g' Y6 p1 N5 W3 G. U; B/ u- double fdat=data[0].value.integer;
4 H5 b. u3 k8 k* h- d/ d, J6 f6 I - ) {- X$ [; i# N
- grip_arg_list[0].address=&fdat;" Y" t/ H' B5 h4 P, m
- % T: T+ f$ ]* { {6 P* y7 V- Q( r
-
6 r# _- O1 m. Q& C - & A3 P5 T' P4 ?8 _9 _$ t- _. O
-
; u' p7 S5 j) S' P4 w
: W3 f4 O+ y' s: U# _2 ^- for(i=1;i<7;i++)! F& J! w, f# g+ C6 {1 Z7 O
5 ~6 d) r- @0 p! \% S& Q8 r- {
* Y* ~! w. ~2 Z
- g, a- U, {; ~" |- n- grip_arg_list[i].type=UF_TYPE_DOUBLE;; v8 K5 p, o7 t5 p2 [) L
+ d) `6 R% C- X1 l) C, Z- grip_arg_list[i].length=0;
7 G# p& j) V. A ~2 b- f, F& B - . m, A [" h2 W; o1 @! R
- grip_arg_list[i].address=&data[i].value.real;9 J( d4 d: X# B7 Y, s- E! F9 }
- % ^- n/ m& w) ^' w4 ~2 F" E
- }
1 ]3 L/ m+ ?" y3 k2 x. ~- k
- H0 k6 Q6 T" s% o-
9 Y" u6 ^' H6 {9 f# [0 t! w5 v - 1 {9 F9 |' c. I( V
- status=UF_call_grip(grip_exe,grip_arg_count,grip_arg_list);
# y# R! A. ~9 M% m4 N - . y' e# l, n! t H, [6 Z! t
-
/ S8 j K& F9 s- G! {2 x, V - 1 @5 t9 H$ ~- K, T$ q2 `; v
- UF_terminate ();
' X* M0 e. V" \ h, D2 \' |7 [ - ' @$ M6 q f4 v/ t8 y4 D* n, Z
- ; h: N! {0 V8 V3 T0 W- B9 C
! m& A: l' f% Z6 P. i- /* Callback acknowledged, terminate dialog */5 C6 B" l& l6 Z u9 O7 A# B- g
- . c% I1 `7 o6 Z9 X5 @
- /* It is STRONGLY recommended that you exit your */4 X& l: \2 [- y
- ) L5 U6 R8 }3 p% t# ]/ Q
- /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
. r( W' `0 ~- ^- t) L# ^( p - 1 C7 S( q: F% O+ z
- /* return ( UF_UI_CB_EXIT_DIALOG ); */1 g5 X2 n" @7 _' K
- ( ? E* C" B" A' E: I. ~+ ~( s
- return (UF_UI_CB_EXIT_DIALOG);
% ]* {' e. G8 E
# c% ^5 N* j& g, `9 t- x1 C$ l) [: D4 q$ [+ l9 C
- ! S" D% Z- F. G7 [, W
- }& B, I' J" ]# H( ?9 W W, Z
% P) `( C( h8 s3 v1 t-
* b; s0 I* Y! L9 |! l, ~2 _ - , `' A2 q8 i& ^- n0 v+ X
-
8 _1 v* V9 r+ L1 r
U* ~! A1 g0 q+ ^# o! n- int APP_apply_cb ( int dialog_id,( B/ q2 ?1 t" N7 ~3 }* e" `
4 ]# t6 h7 W: P7 V- n0 D; w; c: J: t9 w- void * client_data,
8 t* ]0 H0 {, t4 `0 r Y* Y - - ^. Q) b' _; I) O
- UF_STYLER_item_value_type_p_t callback_data)6 V% ], t9 K8 q' \5 X
- + N' h# v. V. ]+ s: J @3 E4 O
- {8 R) g1 ]% Z, _5 w F
$ G. i" O* n& R, }* C' x- /* Make sure User Function is available. */ 8 S Y) A- n ^ A
- 5 s: T* ]: z+ W. k3 e- O, v# I
- if ( UF_initialize() != 0)
* h) s7 B; a4 k8 ~ - 7 P7 g& G1 Z4 c7 x) @" K
- return ( UF_UI_CB_CONTINUE_DIALOG );* d& c% y2 Q% x# s2 b$ ^
* v5 V$ {& l2 ~$ b5 O- 9 q- K- t: F( j1 G/ g/ D
- 5 d; U' S1 p8 u7 t: A0 N2 q
- /* ---- Enter your callback code here ----- */- S( }1 X7 H- m1 u8 p# e
- i$ _' Q# l9 ^9 |( s7 ^$ L7 g- int i;. G: [& n2 c$ s8 I
- " F# B4 a) V; a
- write_para(dialog_id);! x6 K) p5 t8 O- d- D8 K
- - u% ^+ t; a; z, T0 C% E" [ a( P
- const char env[255]="UGII_USER_DIR";
6 a# Z6 [3 D: b5 S$ D3 P# ]2 d( { - # _2 j+ E7 H y/ [- z
- char *basedir=NULL;
/ d5 l+ v7 Q$ F8 s - * z8 S9 C& r& q* M
- basedir=getenv(env);
X9 N3 o' c7 w5 }5 V% n. c
2 m9 q3 i4 ?1 Z5 Y ^- * x. g) ~) B5 B
0 ]+ p. O# \& ~# X( k: S- char dir[100];
. `" U, F( x& u( R/ r
+ p* h7 c% q H$ l- strcpy(dir,basedir);
( R3 b* Z9 w' T4 t
' }: Y9 H. ^+ i- @- strcat(dir,"\\grip\\huajianzhou.grx");
1 _& I6 D# R# i. z& X4 U- d* F; J, H8 d - 0 N4 }1 S9 k* O2 y6 E
-
2 j% u; d6 T3 d ]: m8 [ - 9 z7 @7 |" w+ Z. v
- char *grip_exe=dir;
8 c( N, s( {% f) B, C3 b N' M: u - & e C1 P! b7 B; V1 A" e
- int status;
% ~! ~, ?' S! h; B$ G
1 r" q. Y) O) l& L( u1 a# N1 d- int grip_arg_count=7; //参数个数/ B% w! X# k' F8 }2 H
- / V b. o0 R& C6 U6 S+ v1 J0 m2 _
- UF_args_t grip_arg_list[7];
3 @5 o% }: v9 E- a g6 F
& O& ~& A: r0 W1 x- _+ e-
% s7 a& F1 S8 w) A
: _ ^; I* y0 f; [" x6 C3 ^- grip_arg_list[0].type=UF_TYPE_DOUBLE;! G b% T5 {& Y& b- f
( ]$ Z- Y- b8 p7 F4 B- grip_arg_list[0].length=0;
$ m6 i5 u% j+ W, S$ J
% a1 O w, W" S% f/ |+ N- double fdat=data[0].value.integer;, J9 ^6 {5 w6 J6 q! h, d& G
$ z+ E2 Z+ B8 h' G- Y- grip_arg_list[0].address=&fdat;
0 M6 D c N% s: n% v9 R4 c( S; e
6 S" _4 R: m& A* C& [4 c$ v- 6 R/ J2 v2 H% z2 a. f
! ?" W' J8 x$ N9 \- 8 F; A1 N; [. U6 Z: T% x
- 2 \- P3 e- ^ ^1 @) t
- for(i=1;i<7;i++)
0 Y' z6 [0 m H1 g4 m - $ Z' o" p/ r3 k7 z& k h4 f/ H
- {" @ ?4 m @8 t& f( v
- $ `( D Z" k" e @# B
- grip_arg_list[i].type=UF_TYPE_DOUBLE;
* w& M ~3 x2 ~/ |8 L
* `: C& T2 d0 D v% v& \- grip_arg_list[i].length=0;
& R+ Z; i6 ] p7 l; N8 ? - * v1 j1 ~: d) ^- R
- grip_arg_list[i].address=&data[i].value.real;+ b; C* _8 Z/ L# G
: P8 [+ g4 R7 e+ j- }9 Y a: L$ P6 b6 Q0 I' c
- Y, Z7 }* l0 R7 Y9 K3 `-
3 m* X1 I& v# @$ Z. C: b3 f! N1 S
$ p" |8 i& v& b: o& E% ?' D K- status=UF_call_grip(grip_exe,grip_arg_count,grip_arg_list);
; Z' O; S4 P; k. ^! } - 5 j( C1 [) w; p! ^
-
& `9 s6 M0 \" `5 y$ p5 z - 2 l* f" e) [3 c8 [* O. |: j% x$ V6 [
- UF_terminate ();4 f& s+ ^0 r0 k9 ]+ ]/ [
- : G/ }+ b1 e) i. d- {' B
- 9 ?6 C& y& t8 D- b# b- b
8 t* ~& l" P. B& A7 d. g- /* Callback acknowledged, do not terminate dialog */$ t, O6 B6 M. S+ w% M1 `
- 8 ]4 |2 j# r8 m: G- k* N$ {# b
- /* A return value of UF_UI_CB_EXIT_DIALOG will not be accepted */
1 O1 K3 d2 I5 [+ P6 m! g7 ?
7 G' [1 P! a$ k4 S7 q# V6 d6 b+ i- /* for this callback type. You must respond to your apply button.*/
% |* G z" ] }7 u - 0 h! h V; }+ H% C1 m
- return (UF_UI_CB_CONTINUE_DIALOG);2 `9 Z' n, `/ G8 f6 z( C
, D( e' C$ d6 A; p-
+ T; O. c+ u( L) I; n$ T6 K* v" y4 ]
) J# e# d8 ^* E# c e- }
3 e( o& U) V! v6 D9 C X# i! n# z6 ] - 4 [8 `3 Y3 e4 f* z7 A: S3 t) g
- void write_para(int dialog_id): E. Z* _$ [9 q' I1 {* B, S. Y
- 4 G) D; B# w5 Y% E. Z$ w2 l4 c' q
- {: m% u$ ]2 F* S( Q" w" D
- 6 K% H3 j4 ]8 q( j, b/ z5 f% q
- data[0].item_attr=UF_STYLER_VALUE;
o# t5 e! s' H# v; V. _ - L) x B5 t5 o) K; c1 N
- data[0].item_id=APP_INT_N;
$ f' K6 \' r0 V$ t
6 r: W- W; v% u/ a- n! z- UF_STYLER_ask_value(dialog_id,&data[0]);3 |6 I" G! n5 t$ G% @& u) g- m
0 z0 k+ I; l# Q4 h- ( t( h/ }0 m, F O$ y- W0 x
# ^; B7 l: t$ F- data[1].item_attr=UF_STYLER_VALUE;
. c% ?% N a7 h - / W" g! x5 R3 }9 A
- data[1].item_id=APP_REAL_D1;4 W9 N/ S1 y% [/ o
5 H' ]: [0 d7 r: {1 |- UF_STYLER_ask_value(dialog_id,&data[1]); b+ j- n( I5 G
w8 i2 ]3 u* O# V& ?4 S-
" [ g; O% X; F S - " v* q0 N+ g k% F; G. H
-
# v% i8 d7 a0 \' D1 E3 k; J
+ r" A. o) y$ O5 o- ] m- data[2].item_attr=UF_STYLER_VALUE;$ K- o, y6 A( l1 J
+ n8 i6 k* p- B) K; \ L- data[2].item_id=APP_REAL_D2;% m, K, D, \4 |) v; ?" e$ E3 ^* @
- 3 m( B, q* h4 Y! k, C* m, e& T
- UF_STYLER_ask_value(dialog_id,&data[2]);
* D+ G: j8 n7 G* e& P
7 c) t' i! |- w% C9 F9 D- - |- i5 j; }' D1 ^" d
, X8 {7 H" u3 D- H- data[3].item_attr=UF_STYLER_VALUE;
% I, p/ o- H: p1 n7 }
( S" N) K: }1 {4 |& C9 S- data[3].item_id=APP_REAL_W;
' e# y- ^- n/ Z( e - 4 p- q* l$ x5 ~0 T) L" ^4 W% z, [
- UF_STYLER_ask_value(dialog_id,&data[3]);
: d p! Z: K7 A7 Q/ Z# f - 3 g. P0 B* H) d& p L
-
- t: a0 t; ~9 J* @ - - q+ S% Q2 i# {3 a- K6 }
- data[4].item_attr=UF_STYLER_VALUE; s5 g! e# K& b# V1 P
- * Y# a2 s( W. |1 ?8 B
- data[4].item_id=APP_REAL_K;& w/ p( R8 ]. g0 b- O$ k2 M9 O$ c2 M
- + Q4 l5 o0 T$ Q/ ^
- UF_STYLER_ask_value(dialog_id,&data[4]);( V5 p _' N4 [: N) t2 {$ [/ b
+ o) R- C) J! [, x: \- data[5].item_attr=UF_STYLER_VALUE;0 h5 B* p+ D9 C4 U5 q
, ]9 B6 A$ A: L/ H' d2 q- data[5].item_id=APP_REAL_L;( M2 O7 o: G; p4 f9 _3 Z. j) A
- P- e% ^9 r3 h( G8 V; O- UF_STYLER_ask_value(dialog_id,&data[5]);
i' L* T3 C) L r
* w# T: w: w$ B. F-
- v3 ^# x8 b+ o3 v - 7 b) K3 f u; \6 h8 D; U% B% F
- data[6].item_attr=UF_STYLER_VALUE;5 a4 S" S! n; H: `+ y6 X$ ~
3 [, h3 H/ v" ?5 M X7 z/ _& N- data[6].item_id=APP_REAL_LL;3 u& s) ]% U( m; `
- 8 g4 [$ l8 J$ ]7 ~
- UF_STYLER_ask_value(dialog_id,&data[6]);; m$ x; G0 l% B x; X& ^- {1 z
( u e: c- b6 L- }! A9 @! n0 t' c# `
+ ]; ^' M) A- S: D; `-
' \. P2 ^) D: S5 | I0 ^" p
3 u. D7 B2 k B+ K5 l0 h9 X, Y- W2 J- /*% Z/ E4 E4 R, x
% H; c8 [! F$ V" i* o- int APP_cancel_cb ( int dialog_id,: ~/ m, F/ B6 B1 ~6 f
- . w7 b/ H7 Y3 d: b% k4 u0 |1 l
- void * client_data,1 Y4 b" ]8 z% q J& G- R
; v* V5 X; A& s( N- E- h: Y- UF_STYLER_item_value_type_p_t callback_data)
' x' X9 E( j' f8 Z$ ?6 e
" U" h3 \$ W$ L2 z- {
8 v# [. q; i9 u$ I* ]6 u
' x/ Q, A) G; A" w4 |8 ^- /* Make sure User Function is available. */ 6 G. M4 n4 C; i4 C
- $ ~0 R: J7 N! F
- if ( UF_initialize() != 0): [% J0 ^# ], a2 K# @8 k, l ~' J
- . c: T, ^+ I9 ?! E: f8 A8 A1 Y" e) a
- return ( UF_UI_CB_CONTINUE_DIALOG );# G9 K6 b% S' U/ B2 O
+ w7 `9 `# Q/ j7 p( _-
- `& t3 w. [ H2 y& v2 ?3 R - ( u6 y8 J) Q V6 b% G& C
- /* ---- Enter your callback code here ----- */; l2 w& a$ W" h( _; A
- ], p8 v* f% ^. r2 t0 \* ^
-
& Q( J$ ~. j/ R/ J( H
6 i* A/ \) [9 [# a- w- UF_terminate ();# Z B$ c2 I3 i" q' ?
- * R- A [% V' t) o* O1 W/ C8 j% W
-
2 K* J9 d5 F: Y* f, C' I( \$ E! H
5 @$ R- A. t9 `. e$ | S- /* Callback acknowledged, terminate dialog */* Z5 Z+ l0 y# B: ~ ?
- % w- G1 b7 D& \% C
- /* It is STRONGLY recommended that you exit your */
6 Q6 Z# U( B( G/ s, s) @ - $ k; O3 M) b3 i4 }' g
- /* callback with UF_UI_CB_EXIT_DIALOG in a cancel call */5 A: F) o1 @% i) c
8 i( B8 x% D' ]* G! ~- /* back rather than UF_UI_CB_CONTINUE_DIALOG. */3 }5 o3 F& ?6 X8 g a8 n
- / _ n% H$ n6 k1 i! D) a
- return ( UF_UI_CB_EXIT_DIALOG ); $ ]0 q6 z$ X% U' p
- % V6 f l/ U) n3 E9 }7 x
-
* W( B: x# G5 J/ p
4 O# r5 ^7 W+ _% r0 q- _ G- }
[1 k" Y+ A p
8 F6 G$ Z5 m; B: k; w; M) {-
8 t& w% V' i' E0 P; d - - v! P/ Z: I6 y3 g' K! D$ A+ G( V
- $ n+ h8 K- \# p* p9 ~. p$ A
- P6 l, r! m; W3 n: M3 b- /*. ?1 s$ @5 n2 M" Y e
- # F* L; E2 ^) L# z% z) c/ Q' [
- void read_para_from_database(int dialog_id,void *str_mid); g/ P* U, B# R8 m' l- n$ I
- ! a* l$ h9 U+ Y% `& n
- {
# g. \; n) Y2 C0 r: k h3 D
8 u. O9 ?% V! _1 X" _& m- /* Make sure User Function is available. */' O2 G k T4 H2 ^/ }
- ' I% h4 ^# f6 Y( {5 i3 [+ Y
- /* ---- Enter your callback code here ----- */
Z l! I, `& X) ~
7 H2 t* q% |) X- UF_STYLER_item_value_type_t data;
0 m7 ]$ c& S; c0 S. g; z
3 O, y9 j# C+ V7 p: J$ J- 0 g/ _8 l. C! w0 d8 o. {
7 |/ P- p6 e" o7 [4 D' d- data.item_attr=UF_STYLER_VALUE;% w/ }4 M( S1 r' ]% U- @
" X4 u( v: o2 [& D( |* H- data.item_id=APP_REAL_D1;
/ i8 t$ r' K% S4 P: n
! {5 o8 k) M1 ~' v0 O3 V- data.value.real=atof(((char **)str_mid)[1]);
$ p4 ?. h/ k6 A" N' P" O7 V) M
1 J8 H/ O+ o1 Q& J4 K+ F4 H* x- UF_STYLER_set_value(dialog_id,&data);
F% _) M# E: e; q
0 L& r7 L- t4 e7 N4 @! f; L- UF_STYLER_free_value(&data); ) ?7 W# O( c) H+ B. C- J, v
4 V" J! H; z" `, [& n* L6 B) T. N- data.item_attr=UF_STYLER_VALUE;
2 A Y% i. u/ i+ Y' F' g) \3 i - # {! r/ O3 y9 Z( G
- data.item_id=APP_REAL_D2;6 E9 ?; Y/ R! |5 l
; \: R: e9 M3 z) a/ k' x- L- data.value.real=atof(((char **)str_mid)[2]);# z- l7 f' b+ U+ ]! x$ }
- ! }- l% y% l, e* Q( B2 ~7 E
- UF_STYLER_set_value(dialog_id,&data);
* ^8 Y+ C7 f* w7 y - 6 }& R U3 E7 z' g# o$ g
- UF_STYLER_free_value(&data); 5 L) n: `( d, I& Y: ^. O/ B3 T
$ w8 ]2 j+ f$ j1 U9 w3 r; U x# J% ]- data.item_attr=UF_STYLER_VALUE;" ~! M- e: e: K& h* e
- 3 L Y1 d* M# X) E
- data.item_id=APP_REAL_W;9 ~) l4 L+ l& [, e$ M: s. c* m: L3 l
- 9 u6 J& c' U/ `" ^3 e
- data.value.real=atof(((char **)str_mid)[3]);
8 @- X3 r, U& u1 Q% G; x - & M; s# [7 E6 }9 t m8 w# S
- UF_STYLER_set_value(dialog_id,&data);1 X9 C% Z, g" {% \4 y* G6 n2 r
- ; U% E8 x" X" N5 y4 r/ I
- UF_STYLER_free_value(&data); 2 H2 d. {' J3 j: H+ i A! L A
- 7 Y: N7 N- E6 X+ U7 S9 n, p
- data.item_attr=UF_STYLER_VALUE;" B% |- Q9 b8 c$ N$ m/ B
- ' J) ?/ d# S0 j, C
- data.item_id=APP_INT_N;: A/ e* h8 {" A2 o, A' j' r
7 h; |4 Z: I% m; K3 n, m4 C- d; W- data.value.integer=atof(((char **)str_mid)[4]);
) ~7 Z6 {; b3 I8 X/ W
) Y* v8 G- ~! q- UF_STYLER_set_value(dialog_id,&data);
1 s- p- o( m, X# e% K - * z) a# }2 u7 W$ G: v8 T) a
- UF_STYLER_free_value(&data); " V, g( k" \5 k: A
- 1 N9 `+ s4 N* v" ~' L6 h
- data.item_attr=UF_STYLER_VALUE;
8 Z9 e6 [5 A& b9 S" t/ y
3 v: v: P9 y9 `9 H. W& @( D- data.item_id=APP_REAL_L;
" w3 d; {/ e e; `2 J - # s# }" C ]5 P& Y* |3 E
- data.value.real=atof(((char **)str_mid)[5]);3 t+ `3 u* C6 \! h) f$ E
- , }+ L* f: ?. u4 D( c4 V
- UF_STYLER_set_value(dialog_id,&data);
. _9 y5 r9 v' j - & _ K5 F* L: }* F7 G
- UF_STYLER_free_value(&data); / F$ Q5 \& j4 L3 o% N! C
9 i7 B' s0 n" _: X' \$ x+ R- data.item_attr=UF_STYLER_VALUE;* T- d; e% G, o' I
- & o, \4 ]2 E) o; L* Z# B
- data.item_id=APP_REAL_K;
0 |7 _( G! d( n/ i - ; p) L% T! d( M$ k5 V
- data.value.real=atof(((char **)str_mid)[6]);
1 u/ d! f+ |0 T9 S$ h u7 F3 Q - 9 L/ J% e& Q, W) d0 \; U1 @% M9 b8 H
- UF_STYLER_set_value(dialog_id,&data);4 O U+ \ t( ]. p, {
0 D1 R9 w3 W# S6 J2 ]& i- UF_STYLER_free_value(&data);
2 [4 I# \% W% [% ` - + U2 B, @* d2 F2 q
- data.item_attr=UF_STYLER_VALUE;
# w# \# j! z$ O8 D - ; M: T( ~& F6 O( `% H
- data.item_id=APP_REAL_LL;
; Z' w: z4 m! t3 k
' ~, q) U+ F1 }( {- data.value.real=atof(((char **)str_mid)[7]);
. d+ y$ B" H8 }" S" t* j+ k% B$ r - 5 p i# M" N6 {, l$ M6 i+ F2 w
- UF_STYLER_set_value(dialog_id,&data);
6 n; L/ m D0 T$ I Q g
9 f- y' J+ O; T+ l B; m- UF_STYLER_free_value(&data);
( m% B& L6 ~% K. ~1 I: y1 f - ! P3 U5 A$ M5 A; m+ a+ [
- }2 d* U/ F8 w6 v' h
- % I4 Q( F4 r0 H3 o2 \5 ^
- ! b: \$ y2 b5 T
- ( v3 Y$ v/ U& Q& g& d6 A6 p `
- int APP_action_database ( int dialog_id,) U, Z* h/ y1 b& x1 U: j! L& d
_( J5 n7 U* g' Z: V- void * client_data,; ]; u& N1 w' m" s& }4 `2 N& P
2 g ` o; {) X' O d- UF_STYLER_item_value_type_p_t callback_data)
1 H( L2 |" w% n8 t: Z( D
5 n0 {$ G5 I4 [) k) p/ r- {
9 D# p- b$ v( c8 f8 m
+ h- q( U' v9 V$ n" Y) X! c: k `- /* Make sure User Function is available. */
; }: g0 x8 ]& n
2 J. C& G3 u* U1 E- if ( UF_initialize() != 0)
# G/ r& L. ]) k. | - ; a! Z5 J% B! a1 ~$ G
- return ( UF_UI_CB_CONTINUE_DIALOG );. H3 X$ @- X/ ]
5 Z0 e4 p2 c1 N3 R9 X: [' i) q-
; N/ g1 D3 C. X+ p3 I
" w9 S$ ?0 j/ H( t0 z6 [ f- /* ---- Enter your callback code here ----- */
4 X- U0 r/ j9 u, ^! T$ \
0 G$ n1 ]! o+ J- char *str_mid[8];* }& @( q# E& T
. g! J& F1 Q* t/ G- m& A- if(para_database_func(str_mid)==true)5 G: ]) O# ?1 U" V* u3 ^$ f
- # X, v+ U( P% x; p; S
- read_para_from_database(dialog_id,str_mid);
& Z4 Q4 U9 n( D% V9 N6 F1 O3 a, } - 2 ^0 }4 N5 u. D- T& l! g
- for(int i=0;i<8;i++)5 }8 V( K+ ]: Z) P j; S# R
- , `1 n6 U! W' E% ]2 z# ]0 i+ g
- {
0 ^5 B' @* T% S, k) Q1 @ - ! T0 I7 D5 N! g1 `7 M0 d
- delete [] str_mid[i];; V) ]! K: p+ I+ L/ h
) U% _2 _7 N. u+ i( l2 i. \, V' q- }$ {8 G* F1 I: f% d3 y" }
$ J& K! S& k4 |, s5 z/ w$ O-
' m* U+ \% W3 l6 Q8 G* j% ` - ' O7 O; m/ B: b4 I1 U
-
- @) W3 B; e5 J+ O, V
8 O& |) Q8 X$ P% ~& M6 z) D1 V- UF_terminate ();( L; d# @/ ~# q% V
- 3 h2 |5 u: q: d3 {4 ]' C1 F
-
! j, R# o+ O0 ^) I+ J2 O/ V; Y" ]
/ l# o+ c0 a! c, R ]6 N" ^- /* Callback acknowledged, do not terminate dialog */! l0 _7 M5 k2 Z( @0 O6 V
* b& B3 u; j4 L" \- return (UF_UI_CB_CONTINUE_DIALOG);; m: O. N p" m/ f# a( D
- 7 n( s# j( ^+ ?
-
+ E1 W: i7 j' F i. ~0 c1 g
8 e) d- G- T6 p" t# `- G3 v( z* q- /* or Callback acknowledged, terminate dialog. */- I A9 c j2 y( w
- 1 o+ a8 U3 Y4 I9 _! t8 D2 R1 R
- /* return ( UF_UI_CB_EXIT_DIALOG ); */2 {* s* ~7 b+ D- G5 H
- % A. g" s4 S% p8 o, P- O$ E
- j! |, F# w( `0 u1 M9 ~. F* P
- . a; \1 m& c' w% K; T4 H- |
- }
复制代码
8 X2 I# Q2 I& z. j/ @5 N
. m. d# n a9 F- J1 @3 h |
|