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