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