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