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