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