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