Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Bonjour a tous les mordus de PB
je fais du publipostage....
j'aimerais inserer dans ma lettre une datawindow 6 colonnes et x lignes suivant le clients...
vous avez des astuces...
merci
Hors ligne
Bonjour et , il y a qq posts à ce sujet sur le forum :
http://pbadonf.fr/forum/viewtopic.php?id=7
http://pbadonf.fr/forum/viewtopic.php?id=569
http://pbadonf.fr/forum/viewtopic.php?id=2730
Hors ligne
Merci pour la reponse rapide
je voudrais inserer ma datawindow à l'emplacement d'une balise dans word....
j'avais parcouru les pics mais je n'avais pas la bonne solution...
Le code suivant fonctionne tres bien .. il me reste à inserer ma datawindow..
merci pour les reponses
boolean lb_set_remote_ok, lb_execremote_fileopen integer li_value, li_msgbox, li_fileopen, li_rc, li_run, li_ctr long ll_rowcount, ll_len, ll_ddehandleword, ll_ddehandledoc, i,ll_compteur,numcols ,numrows string ls_sd_id, ls_fname, ls_lname, ls_street, ls_street1, ls_street2, ls_city, ls_state, ls_zip, & ls_word_exe_arr[], ls_word_exe, ls_named, ls_docname // determine what Word exe to call 4/20/2006 dlmuench ls_word_exe_arr[1] = "C:\Program Files\Microsoft Office\Office10\WINWORD.EXE" ls_word_exe_arr[2] = "C:\Program Files\Microsoft Office\Office11\WINWORD.EXE" FOR li_ctr = 1 TO UpperBound(ls_word_exe_arr) IF FileExists(ls_word_exe_arr[li_ctr] ) THEN ls_word_exe = ls_word_exe_arr[li_ctr] EXIT END IF NEXT lb_set_remote_ok = TRUE lb_execremote_fileopen = FALSE li_value = GetFileOpenName("Select Seed Letter Document to Print", + ls_docname, ls_named, "DOC", + "Doc Files (*.DOC),*.DOC" ) IF li_value > 0 THEN //user opens a file //try to open a channel to Word ll_ddehandleword = OpenChannel("WinWord", "System" ) IF ll_ddehandleword < 0 THEN //if open channel fails, run the Word application li_run = Run(ls_word_exe, Minimized! ) IF li_run < 0 THEN RETURN -1 END IF END IF IF li_value = 1 THEN li_msgbox = MessageBox("Attention", & "The file that you have chosen is" + " " + ls_docname + " " + & ".~nDo you want to print the contents of this file?", & Information!, OkCancel!, 2) END IF //if the previous open channel failed IF ll_ddehandleword < 0 THEN ll_ddehandleword = OpenChannel("WinWord", "System" ) IF ll_ddehandleword < 0 THEN RETURN -1 END IF END IF IF li_msgbox = 1 THEN//if OK to print //try to open a channel to the word document first ll_ddehandledoc = OpenChannel("WinWord", ls_docname) IF ll_ddehandledoc < 0 THEN//if the open channel fails then the word document has to be opened lb_execremote_fileopen = TRUE //Send a FileOpen command to the Word application to open a document li_rc = ExecRemote("[FileOpen.Name =" + "~"" + ls_docname + "~"" + "]", ll_ddehandleword) IF li_rc < 0 THEN RETURN -1 END IF //Open a channel to Word document and establish a warm link ll_ddehandledoc = OpenChannel("WinWord", ls_docname) // lecture des enreg de la dw numcols = long(dw_emp_list.Object.DataWindow.Column.Count) numrows = dw_emp_list.RowCount() ll_compteur = dw_emp_list.rowcount() //string ls_columns, ls_column, ls_wheres //long ll_rows, ll_index //boolean bl_erreur = false ////Scan the columns datawindow and find all the selected columns. ////Build a string of columns based on the selected rows. //ll_rows = dw_columns.RowCount ( ) // // //sle_1.text = is_table // //for li_step = 1 to ll_compteur for i = 1 to ll_compteur // IF ll_ddehandledoc = ll_rowcount then // ls_sd_id = Trim(dw_emp_list.GetItemnumber(i, "emp_id" )) ls_fname = dw_emp_list.GetItemString(i, "emp_fname" ) ls_lname = dw_emp_list.GetItemString(i, "emp_lname" ) ll_len = len(ls_lname) ls_lname = Left(ls_lname, 1) + Lower(Right(ls_lname, ll_len - 1)) ls_street = "" //ls_street1 = dw_emp_list.GetItemString(i, "dept_id" ) IF IsNull(ls_street1) = TRUE THEN // ls_street1 = "" END IF // ls_street2 = ads_seed_letter_info.GetItemString(i, "addr_2_txt" ) IF IsNull(ls_street2) = TRUE THEN // ls_street2 = "" END IF // ls_street = ls_street1 + ls_street2 // ls_city = ads_seed_letter_info.GetItemString(i, "cty_nm" ) // ls_state = ads_seed_letter_info.GetItemString(i, "st_cd" ) // ls_zip = ads_seed_letter_info.GetItemString(i, "zip_cd" ) // ll_len = len(ls_zip) IF ll_len <= 6 THEN ls_zip = left(ls_zip, 5) ELSE ls_zip = left(ls_zip, 5) + '-' + right(ls_zip, ll_len - 5) END IF //Ask the DDE server application to accept data to be stored in the specified location li_rc = SetRemote("fname", ls_fname, ll_ddehandledoc) IF li_rc < 0 THEN lb_set_remote_ok = FALSE END IF IF lb_set_remote_ok = TRUE THEN li_rc = SetRemote("lname", ls_lname, ll_ddehandledoc) IF li_rc < 0 THEN lb_set_remote_ok = FALSE END IF END IF IF lb_set_remote_ok = TRUE THEN li_rc = SetRemote("street1", ls_street, ll_ddehandledoc) IF li_rc < 0 THEN lb_set_remote_ok = FALSE END IF END IF IF lb_set_remote_ok = TRUE THEN li_rc = SetRemote("city", ls_city, ll_ddehandledoc) IF li_rc < 0 THEN lb_set_remote_ok = FALSE END IF END IF IF lb_set_remote_ok = TRUE THEN li_rc = SetRemote("state", ls_state, ll_ddehandledoc) IF li_rc < 0 THEN lb_set_remote_ok = FALSE END IF END IF IF lb_set_remote_ok = TRUE THEN li_rc = SetRemote("zip", ls_zip, ll_ddehandledoc) IF li_rc < 0 THEN lb_set_remote_ok = FALSE END IF END IF IF lb_set_remote_ok = TRUE THEN li_rc = SetRemote("fname2", ls_fname, ll_ddehandledoc) IF li_rc < 0 THEN lb_set_remote_ok = FALSE END IF END IF IF lb_set_remote_ok = TRUE THEN IF ls_sd_id = "" THEN li_rc = SetRemote("sd_id", ls_sd_id, ll_ddehandledoc) END IF END IF ///envoyer ma datawindow sur 1 balise word //if setremotes were successful then only do we want to print the document and save it IF lb_set_remote_ok = TRUE THEN //Send a FilePrint command to the Word document to print the document li_rc = ExecRemote("[FilePrint]", ll_ddehandledoc) IF li_rc < 0 THEN RETURN -1 END IF END IF // END IF i++ next END IF //Send a FileSave command to the Word document to save the changes li_rc = ExecRemote("[FileSave]", ll_ddehandledoc) IF li_rc < 0 THEN RETURN -1 END IF //closes the channel to the word document li_rc = CloseChannel(ll_ddehandledoc) IF li_rc < 0 THEN RETURN -1 END IF IF lb_execremote_fileopen = TRUE THEN //if execremote used to open the file then we have to close it //Send a single FileClose command to the word DDE server application (cold link) li_rc = ExecRemote("[FileClose()]", "WinWord", ls_docname) IF li_rc < 0 THEN RETURN -1 END IF END IF END IF//if OK to print // //closes the channel to the Word application li_rc = CloseChannel(ll_ddehandleword) IF li_rc = 0 THEN//if 'Run' was used to start Word, we want to exit the Word application //Send a single FileExit command to the word DDE server application (cold link) li_rc = ExecRemote("[FileExit()]", "WinWord", "System" ) IF li_rc < 0 THEN RETURN -1 END IF END IF END IF//user opens a file IF li_msgbox = 2 THEN RETURN 2 END IF IF lb_set_remote_ok = FALSE THEN RETURN -1 END IF RETURN 1
Hors ligne
Pages: 1