Clubul de specialiști cf-bancă (ibso)


Funcția publică principală # 40; LastControl # 41;
Executați V_DEST_EXT.TEXT
V_DEST_EXT.TEXT = ""


Dacă LastControl nu este nimic atunci
Pași pentru a încărca un formular
altfel
"Acțiuni în timp ce pierdeți atenția controlului validat LastControl

Sfârșit Dacă
Main = True "Valoarea rezultată a validatorului # 40; Adevărat sau fals # 41;
Terminați funcția


Private Sub OK_OnClick
MsgBox "!"
end sub

În proprietățile suplimentare de extindere - Validare
Server, Client
Server, Client

este necesar să expuneți și să verificați, am jurat Administrator de mai multe ori (16.5), apoi a fost expus ca

Utilitate: Nici o evaluare

numai
Main = True 'Valoarea rezultată a validatorului (True or False)
ar trebui să fie sus
Executați V_DEST_EXT.TEXT
dar nu după,
sau va suprascrie Main
și nu ar trebui să fie ghilimele duble în err_msg.

Utilitate: Nici o evaluare

Vă mulțumim pentru răspunsuri)
Deja a reușit.

Utilitate: Nici o evaluare

O sarcină similară. Îmi puteți spune, până când problema va fi uitată.

Trebuie să faceți o verificare suplimentară și să avertizați utilizatorul.

Facem extensia. Vom scrie în secțiunea "verificare":

dacă P_message = 'DEFAULT' # 41; atunci
# 91; CSMD # 93; .init_form # 40; V_DEST_STR, METODA $ CLASS, METODA $ SNAME # 41 ;;

-- cecul nostru
dacă # 40; .. # 41; atunci
# 91; CSMD # 93; .MessageBox # 40; '! Atenție' V_DEST_STR, 'Mesajul nostru' # 41 ;;
debug_pipe # 40; 'V_DEST_STR =' || V_DEST_STR # 41 ;;
sfârșit dacă;


În scenariul clientului, ca în scriptură, se spune:

Funcția publică principală # 40; LastControl # 41;
Executați V_DEST_STR.TEXT
Principal = adevărat
Terminați funcția


Variabila V_DEST_STR există deja în formular și în variabile (în operația de distribuție pe care o extindem).
Verificările din proprietățile operației sunt corecte "Server, client".

Ei bine și. Nu funcționează. (De ce aș scrie altfel?).
debug_pipe imprimă V_DEST_STR corect. dar utilizatorul nu primește niciun mesaj.

Ei bine. Cred că da. Am uitat o pirouetă din dansul șamanic cu [CSMD].
Am citit-o. Nu ca toate bine.
A creat o nouă operetă, a repetat totul în ea - funcționează de la prima fugă. (Da, toți programatorii știu că acest lucru este suspect.) Dar pentru o operație de 5 linii este în principiu permisă).

Concluzie.
Un truc este cu expansiunea.
Problema este relativ standard. Deci, cineva trebuie să fi întâlnit. Împarte, plz.

Variabila V_DEST_STR există deja în formular și în variabile (în operația de distribuție pe care o extindem).
Verificările din proprietățile operației sunt corecte "Server, client".

Plantez în extinderea unei variabile separat pentru executarea de cod VBA într-un client-script (V_DEST_EXT de exemplu, și nu uitați după situația în formă de „elemente“ pentru a schimba numele care este validiruemoe tip text1 V_DEST_EXT).

O variabilă separată, Carl
_________________
Nu puteți da totul: există multe, dar numai câteva

și care este problema - nu vânătoare încă o dată pentru a muta mouse-ul?

Ei bine.
Sunt cu siguranță un tip leneș. Ei bine, o dată mișcați mouse-ul
Ei bine, după cum înțelegem cu toții, va fi necesar să nu uitați să faceți acest lucru de fiecare dată când rulați patch-urile. Și dacă într-o zi o voi uita, atunci investitorii dintr-o ramură de la Siberia îndepărtată vor ridica o revoltă, chiar înainte să vin la muncă. Și voi fi de vină pentru tot. Ce este neplăcut.
Da, strict vorbind, de ce trebuie să faceți o prelungire, dacă vă puteți încadra direct în operațiunea de distribuție.
Ar fi de dorit totuși să nu spargeți originalul.

Dar ceva este într-adevăr un fel de neponyatki.
Mulțumesc, IXaNI, mi-a amânat cecul după ce am sunat la bază și am câștigat scriptul clientului.
Ce este magia? În cel care curăță cel mai mult acest V_DEST_STR aparent?
Se pare că piesele din operația inițială folosind [CSMD]

Cazul clasic este "atât mai rău".
Cu toate acestea, multe mulțumiri pentru ajutor, colegi!

Colegii, în timp ce s-au oprit aici pe care opțiune (poate cineva să vină la îndemână):

- Clientul a eliminat complet scriptul de la extensie. Părintele funcționează în mod normal.
- Din codul eliminat [CSMD] .init_form (V_DEST_STR) și V_DEST_STR: = null; presupunând că părintele va fi suficient.

Ie adăugat numai la cec (după apelarea bazei):

BASE $ SETVARS;
BASE $ VALIDATE;
BASE $ GETVARS;


dacă # 40; .. # 41; atunci
# 91; CSMD # 93; .MessageBox # 40; V_DEST_STR, "Atenție!", "Mesaj" # 41 ;;
sfârșit dacă;
.


Variabilele nu au adăugat. Operația inițială nu a fost atinsă.
Totul funcționează!
Nu s-au observat efecte secundare. (Pentru moment).

Cele mai multe vă mulțumesc pentru ajutor!