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